Помогите пожалуйста переделать код под вот это задание : Общая постановка. Создать программу с абстрактным базовым классом и множественным наследованием,(либо иерархией классов) реализовать в нем: - конструктор, - деструктор, - виртуальную функцию просмотра текущего состояния объекта print(), - friend – функцию Run (). Производные классы должны содержать переопределенную функцию просмотра состояния объектов, а также при вводе – выводе данных использовать функции обработки исключительных ситуаций. Используя стандартные файловые потоки, информацию об объектах вывести в файл.Для корректной работы с файлом использовать обработку исключительных ситуаций. 5. Объекты недвижимости (Адрес, Tип, этажность, квартир на этаж, подъездов, всего квартир - функция Run ()) Код | #include <iostream> #include <string.h> #include <conio.h> #include <iomanip> #include <fstream> using namespace std; class cMobil{ public: virtual ~cMobil(); virtual void print(); static void PrintAll(); static void DeleteAll(); cMobil (const char *NAME); cMobil (){} char* name; //Наименование char firma[30]; //Фирма char standart[30]; //Стандарт связи int akm; //Заряд аккумулятора int po; //Потребление при ожидании int pr; //Потребление при разговоре private: cMobil* next; static cMobil* first; }; class cTime: public cMobil{ public: cTime (const char *NAME); cTime (){} void print(); friend float Run(int AKM,int PO); friend float Run1(int AKM,int PR); }; cMobil* cMobil::first=NULL; cMobil::cMobil(const char *NAME){ name = new char [strlen(NAME)+1]; strcpy (name,NAME); cout<<"Firm: "; cin>>firma; cout<<"Standard connection: "; cin>>standart; cout<<"Battery charge: "; cin>>akm; cout<<"Consumption at expectation: "; cin>>po; cout<<"Consumption at conversation: "; cin>>pr; next=first; first=this; cout<<"\nData is accepted. Press any key to continue"; getch(); system("cls"); } cMobil::~cMobil(){ delete [] name; } float Run(int AKM, int PO){ float rez = AKM / PO; return rez; } float Run1(int AKM,int PR){ float rez = AKM / PR; return rez; } void cMobil::print(){ cout<<endl<<"|"<<setw(8)<<name<<"|"<<setw(8)<<firma<<"|"<<setw(19)<<standart<<"|"<<setw(14)<<akm<<"|"<<setw(26)<<po<<"|"<<setw(27)<<pr; ofstream os("text.txt",ios::app); os << endl<<"|"<<setw(8)<<name<<"|"<<setw(8)<<firma<<"|"<<setw(19)<<standart<<"|"<<setw(14)<<akm<<"|"<<setw(26)<<po<<"|"<<setw(27)<<pr; os.close(); } cTime::cTime(const char *NAME):cMobil(NAME) { //... } void cTime::print(){ cMobil::print(); cout<<"|"<<setw(12)<<Run(akm,po)<<"|"<<setw(17)<<Run1(akm,pr)<<"|"<<endl; cout<<"--------------------------------------------------------------------------------------------------------------------------------------------"; ofstream os("text.txt",ios::app); os << "|"<<setw(12)<<Run(akm,po)<<"|"<<setw(17)<<Run1(akm,pr)<<"|"<<endl; os << "--------------------------------------------------------------------------------------------------------------------------------------------"; os.close(); } void cMobil::PrintAll() { cout<<"--------------------------------------------------------------------------------------------------------------------------------------------"<<endl; cout<<"| Name | Firm |Standard connection|Battery charge|Consumption at expectation|Consumption at conversation|Waiting time|Conversation time|"<<endl; cout<<"--------------------------------------------------------------------------------------------------------------------------------------------"; ofstream os("text.txt",ios::out ); os << "--------------------------------------------------------------------------------------------------------------------------------------------"<<endl; os << "| Name | Firm |Standard connection|Battery charge|Consumption at expectation|Consumption at conversation|Waiting time|Conversation time|"<<endl;; os << "--------------------------------------------------------------------------------------------------------------------------------------------"; os.close(); cMobil* pMobil=first; while(pMobil) { pMobil->print(); pMobil=pMobil->next; } cout<<"\nPress any key to continue"; getch(); system("cls"); } int main() { int x; do{ cout<<"\nSelect the menu item:"<<endl; cout<<"\n1 - Data input\n2 - Saving in a file and print on the screen\n3 - Exit\n"<<endl; cout<<"You have chosen: "; cin>>x; switch (x) { case 1: system("cls"); char name[100]; cout<<"Name: "; cin>>name; new cTime(name); break; case 2: system("cls"); cMobil::PrintAll(); break; } }while(x!=3); return 0; }
|
|