BigEdu.ru
» » » Объектно ориентированое програмирование на С
Вернуться назад

Объектно ориентированое програмирование на С

Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта. Описание объекта и его основных свойств приводится ниже. Разработать вызывающую программу (main), использующей объекты разработанного класса и тестирующие работоспособность всех методов.
Варианты заданий
14. Объект «прямоугольник заданный длинами двух сторон». Предусмотреть возможность операции присваивания, определения площади и периметра, а так же логический метод, отвечающий на вопрос – является ли прямоугольник квадратом. Конструктор должен позволить создавать объекты без и с начальной инициализацией.
Програма:
#ifndef rectangle__h
#define rectangle__h
#include
class rectangle
{
private:
double a, b;
public:
rectangle();
rectangle(double, double);
~rectangle();
rectangle & operator=(const rectangle & x);
double square(void);
double perimeter(void);
double diagonal(void);
int is_square(void);
void print_rectangle(void);
};
#endif
#ifndef conrectangle__h
#define conrectangle__h
#include
#include "rectangle.h"
rectangle::rectangle()
{
cout<<"The constructor \"rectangle()\" worked.\n";
a=1.0;
b=1.0;
};
rectangle::rectangle(double x, double y)
{
cout<<"The constructor \"rectangle(double, double)\" worked.\n";
a=x;
b=y;
};
rectangle::~rectangle()
{
cout<<"The destructor \"~rectangle()\" worked.\n";
a=0.0;
b=0.0;
};
rectangle & rectangle::operator=(const rectangle & x)
{
if(this==&x) return *this;
this->a=x.a;
this->b=x.b;
return *this;
};
double rectangle::square(void)
{
return a*b;
};
double rectangle::perimeter()
{
return 2*a+2*b;
};
double rectangle::diagonal()
{
return sqrt(a*a+b*b);
};
int rectangle::is_square()
{
if(a==b) return 1;
return 0;
};
void rectangle::print_rectangle()
{
char msg1[]=" ", msg2[]=" not ";
cout<<"a="<<a<<" b="<<b;
cout<<"\nS= "<<square()<<" m^2 P="<<perimeter()<<" m d="<<diagonal()<<" m";
cout<<"\nRectangle is";
if(is_square())
cout<<msg1;
else
cout<<msg2;
cout<<"square.\n";
return;
};
#endif
#include
#include "conrectangle.h"
void main()
{
rectangle r1;
double a,b;
char s[1];
cout<<"\nESLI VAM ETA PROGA POKAZHETSA TUPOY... NE PEREZHYVAITE! ETO DEISTVITEL'NO TAK :)\n";
do
{
cout<<"\n Our rectangle:\n";
r1.print_rectangle();
cout<<"Input a, b:\n";
cin>>a>>b;
rectangle r2(a, b);
cout<<"\n Your rectangle:\n";
r2.print_rectangle();
r1=r2;
cout<<"\n Your rectangle is our now:\n";
r1.print_rectangle();
cout<<"Repeat or quit?(r/q)...";
cin>>s;
}
while (s[0]!='q');
return;
};
Результати:
D:\Studies\Labs\Cpp\Individ_6>ind1
The constructor "rectangle()" worked.
ESLI VAM ETA PROGA POKAZHETSA TUPOY... NE PEREZHYVAITE! ETO DEISTVITEL'NO TAK :)
Our rectangle:
a=1 b=1
S= 1 m^2 P=4 m d=1.41421 m
Rectangle is square.
Input a, b:
456.125
789.5452485
The constructor "rectangle(double, double)" worked.
Your rectangle:
a=456.125 b=789.545
S= 360131 m^2 P=2491.34 m d=911.829 m
Rectangle is not square.
Your rectangle is our now:
a=456.125 b=789.545
S= 360131 m^2 P=2491.34 m d=911.829 m
Rectangle is not square.
Repeat or quit?(r/q)...r
The destructor "~rectangle()" worked.
Our rectangle:
a=456.125 b=789.545
S= 360131 m^2 P=2491.34 m d=911.829 m
Rectangle is not square.
Input a, b:
0.4876
0.4876
The constructor "rectangle(double, double)" worked.
Your rectangle:
a=0.4876 b=0.4876
S= 0.237754 m^2 P=1.9504 m d=0.689571 m
Rectangle is square.
Your rectangle is our now:
a=0.4876 b=0.4876
S= 0.237754 m^2 P=1.9504 m d=0.689571 m
Rectangle is square.
Repeat or quit?(r/q)...r
The destructor "~rectangle()" worked.
Our rectangle:
a=0.4876 b=0.4876
S= 0.237754 m^2 P=1.9504 m d=0.689571 m
Rectangle is square.
Input a, b:
16.23
31.06
The constructor "rectangle(double, double)" worked.
Your rectangle:
a=16.23 b=31.06
S= 504.104 m^2 P=94.58 m d=35.0448 m
Rectangle is not square.
Your rectangle is our now:
a=16.23 b=31.06
S= 504.104 m^2 P=94.58 m d=35.0448 m
Rectangle is not square.
Repeat or quit?(r/q)...q
The destructor "~rectangle()" worked.
The destructor "~rectangle()" worked.
D:\Studies\Labs\Cpp\Individ_6>
2 часть работы «Информационные динамические структуры»
Постановка задачи
Написать программу, в которой создаются динамические структуры, и выполнить их обработку в соответствии со своим вариантом.
Для каждого вариант разработать следующие методы:
1. Конструктор пустого списка.
2. Добавление элемента в список (в соответствии со своим вариантом).
3. Удаление элемента из списка (в соответствии со своим вариантом).
4. Печать списка.
5. Запись списка в файл.
6. Восстановление списка из файла.
7. Деструктор списка (уничтожение).
Порядок выполнения работы
1. Разработать описание класса, выделить публичные и приватные поля данных. Разработать интерфейс класса – прототипы методов.
2. Написать функцию для создания списка. Функция может создавать пустой список, а затем добавлять в него элементы.
3. Написать функцию для печати списка. Функция должна предусматривать вывод сообщения, если список пустой.
4. Написать функции для удаления и добавления элементов списка в соответствии со своим вариантом.
5. Выполнить изменения в списке и печать списка после каждого изменения.
6. Написать функцию для записи списка в файл.
7. Написать функцию для уничтожения списка.
8. Записать список в файл, уничтожить его и выполнить печать (при печати должно быть выдано сообщение "Список пустой").
9. Написать функцию для восстановления списка из файла.
10. Восстановить список и распечатать его.
11. Уничтожить список.
Варианты заданий
14. Записи в линейном списке содержат поле данных звена типа *char(строка символов). Сформировать двунаправленный список. Удалить из него К элементов с указанными номерами. Добавить К элементов с указанными номерами.

Внимание, отключите Adblock

Вы посетили наш сайт со включенным блокировщиком рекламы!
Ссылка для скачивания станет доступной сразу после отключения Adblock!

Скачать полную версию
Рефераты по информатике Разработать класс, набор методов (конструктор и минимум два метода) для программной модели заданного объекта. Описание объекта и его основных свойств
Оценок: 301 (Средняя 5 из 5)

Наверняка у вас есть товары или услуги, продажа которых приносит вам максимальную прибыль. Для быстрого старта в сети вам необходимо создание посадочной страницы (одностраничного сайта), на которой будет размещена информация о маржинальных товарах/услугах интернет магазина. За 8 лет опыта разработки конверсионных страниц мы выработали оптимальную структуру, которая позволит привлекать через landing page больше продаж. На такую структуру «одевается» ваш контент — фирменный стиль, тексты, фотографии, уникальные торговые предложения, после чего страница выходит в свет. Разработка лендинга и запуск в сети — до 7 рабочих дней. Стоит отметить, что в разработку самой посадочной страницы входит и написание копирайтером продающих текстов для вашего бизнеса, чтобы каждый посетитель страницы захотел совершить покупку именно у вас. Результат: качественно разработаная продающая посадочная страница, которая готова приносить вам новых клиентов.

© 2016 - 2022 BigEdu.ru