Создайте классы Окружность, Цилиндр, Конус используя наследование. Изучается полиморфизм.Создайте классы Окружность, Цилиндр, Конус используя наследование. Изучается полиморфизм. Пусть окружность характеризуется радиусом. Обязательные функции: расчет площади окружности, функция для изменения значения радиуса, функция для вывода значения радиуса. Цилиндр характеризуется радиусом основания и высотой. Обязательные функции: расчета объема цилиндра, функции для изменения значения и вывода радиуса основания и высоты. Конус характеризуется радиусом основания и высотой. Обязательные функции: расчета объема конуса, функции для изменения значения и вывода радиуса основания и высоты. Описание классов 1.Класс окружность (okr) Данные класса: r - радиус окружности, Функции класса: SetR изменяет значение r, GetR выдает значение r, plo рассчитывает площадь окружности 2.Класс цилиндр (zilindr), производный от класса okr Данные класса: r - радиус основания (наследуется от okr) h - высота Функции класса: SetR, GetR, plo (наследуется от okr) SetH изменяет значение h, GetH выдает значение h, ob рассчитывает объем цилиндра vvod позволяет ввести r и h vivod выводит r и h 3.Класс конус (konus), производный от класса zilindr Данные класса: r - радиус основания, h - высота (наследуется от okr) Функции класса: SetR, GetR, plo (наследуется от okr) SetH, GetH (наследуется от zilindr) vvod, vivod (наследуется от zilindr) ob рассчитывает объем конуса Текст программы: #include <conio.h> #include <iostream.h> // ********* okr ************* class okr { protected: float r; public: okr(float xr); okr(); ~okr(); void SetR(float rc); float GetR(); float plo(); }; okr::okr() {} okr::okr(float xr) { r=xr;} okr::~okr() {} void okr::SetR(float rc) { r=rc;} float okr::GetR() {return r;} float okr::plo() { return M_PI*r*r; } // ********* zilindr ************* class zilindr: public okr { protected: float h; public: zilindr (float xr, float xh); zilindr (); ~zilindr (); void SetH (float hc); float GetH (); float ob(); void vivod (); void vvod (); }; zilindr::zilindr() { } zilindr::zilindr (float xr, float xh) : okr (xr) { h=xh; } zilindr::~zilindr () { } void zilindr::SetH (float hc) { h=hc;} float zilindr::GetH () {return h;} float zilindr::ob() { return plo()*h;} void zilindr::vivod () { cout <<"\nрадиус основания "<< r ; cout <<"\nвысота "<< h ; } void zilindr::vvod () { float rc; cout <<"\nВведите радиус "; cin >> r ; cout <<"\n высоту "; cin >> h ; } // ********* konus ************* class konus: public zilindr { public: konus (); konus (float xr, float xh); ~konus (); float ob(); }; konus::konus () { } konus::konus (float xr, float xh) : zilindr (xr,xh) { } konus::~konus () { } float konus::ob() { return plo()*h/3;} void main() { zilindr s1; cout <<"\n\n\nЦилиндр s1"; s1.vvod(); cout <<"\n\tПлощадь основания " << s1.plo(); cout <<"\n\tОбъем " << s1.ob(); konus s2; cout <<"\nКонус s2"; s2.vvod(); cout <<"\nИзмените размеры конуса s2"; s2.vvod(); cout <<"\nТеперь конус s2 имеет размеры"; s2.vivod(); cout <<"\n\tПлощадь основания "<<s2.plo(); cout <<"\n\tОбъем "<<s2.ob(); cout<<"\n Для выхода - нажмите клавишу"; getch(); }Исполняемый файл pr12_00.exe (упакованный) |