Форум программистов, компьютерный форум CyberForum.ru

Создать программу с абстрактным базовым классом и множественным наследованием (немного переделать программный код) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ инициализация векторов http://www.cyberforum.ru/cpp-beginners/thread868764.html
Даны массивы ai={1,2,3}; ai2={1,2,5,6,7}; ai3={12,56,98}; vector<int>svec, Как присвоить их вектору
C++ Дано натуральное число N. Вычислить S = k * (k + 1)*. . . *(k + k) Дано натуральное число N. Вычислить S = k * (k + 1)*. . . *(k + k). помогите ребят плиз http://www.cyberforum.ru/cpp-beginners/thread868761.html
C++ isalnum ошибка
ребят всегда когда использую isalnum натыкаюсь на ошибку(работает она правильно, но ошибка напостой вылетает). в чем проблема??? --------------------------- Microsoft Visual C++ Debug Library --------------------------- Debug Assertion Failed! Program: ...и документы\Visual Studio 2010\Projects\test1\Debug\test1.exe File: f:\dd\vctools\crt_bld\self_x86\crt\src\isctype.c Line: 56...
Программа для тестирования разными способами C++
Даны натуральное число N (N>5) и одномерный массив А1 , А2, ..., AN символьных элементов. Определить три максимальных и два минимальных значения этого массива.
C++ MS VS 2008 ругается на <iostream.h>: нет такой библиотеки http://www.cyberforum.ru/cpp-beginners/thread868741.html
MS VS 2008 ругается на <iostream.h> говорит нет такой библиотеки, убираем .h и получаем кучу ошибок уже ниже в коде(штук 25) пробовали решить их 1 влечет за собой еще кучу. Проект был написан на VS 2006 (программка ищет в .тхт лабиринте короткий путь к выходу). Чем можете помочь? #include <iostream.h> #include <stdio.h> #include <io.h> using namespace std; #define MEN 2 #define LF 10...
C++ Перегрузка конструкторов (библиотечный каталог) Написать программу, которая бы реализовывала библиотечный каталог. Программа должна запрашивать название книги, автора, год издания, цену и выдавать общее количество книг, общую стоимость, названия книг, которые дороже определённой суммы. В этой программе должен быть создан класс, в котором используются перегруженные конструкторы. подробнее

Показать сообщение отдельно
Shank
0 / 0 / 0
Регистрация: 17.05.2013
Сообщений: 14

Создать программу с абстрактным базовым классом и множественным наследованием (немного переделать программный код) - C++

17.05.2013, 22:59. Просмотров 389. Ответов 0
Метки (Все метки)

Помогите пожалуйста переделать код под вот это задание :

Общая постановка. Создать программу с абстрактным базовым классом и множественным наследованием,(либо иерархией классов) реализовать в нем:
- конструктор,
- деструктор,
- виртуальную функцию просмотра текущего состояния объекта print(),
- friend – функцию Run ().
Производные классы должны содержать переопределенную функцию просмотра состояния объектов, а также при вводе – выводе данных использовать функции обработки исключительных ситуаций. Используя стандартные файловые потоки, информацию об объектах вывести в файл.Для корректной работы с файлом использовать обработку исключительных ситуаций.

5. Объекты недвижимости
(Адрес, тип, этажность, квартир на этаж, подъездов, всего квартир - функция Run ())

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
#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;
    }
Добавлено через 25 секунд
И исправить ошибки по возможности
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru