Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.67/3: Рейтинг темы: голосов - 3, средняя оценка - 4.67
0 / 0 / 0
Регистрация: 13.01.2018
Сообщений: 39
1

Добавление вывода в файл и чтения из файла объектов класса

20.06.2018, 10:01. Показов 531. Ответов 1
Метки нет (Все метки)

Составить программу на языке С++, с добавлением вывода в файл и чтения из файла объектов класса.Работа должна отображаться на мониторе ПЭВМ. Не понимаю как это сделать

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
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
#include <iostream>
#include <string>
 
 
using namespace std;
 
 
 
 
// класс музейного экспоната  
class Entry {
 
 
private:
 
    // название экспоната  
    string name;
    // область экспоната  
    string area;
    // тип экспоната  
    string type;
    // год создания  
    int year = 0;
    // ценность  
    int value = 0;
 
    // секция в которой экспонат хранится
    string section;
    // номер экспоната  
    int id = 0;
 
 
public:
 
    // конструктор
    Entry();
    // конструктор
    Entry(string name, string area, string type, int year, int value, string section, int id);
    // деструктор
    ~Entry();
 
    // ввести данные с клавиатуры  
    virtual void updateData();
    // вывести данные на экран  
    virtual void printData();
 
 
    // операторы сравнения объектов  
    bool operator<(Entry & entry) { return year < entry.year; }
    bool operator>(Entry & entry) { return year > entry.year; }
    bool operator<=(Entry & entry) { return year <= entry.year; }
    bool operator>=(Entry & entry) { return year >= entry.year; }
    bool operator==(Entry & entry) { return name == entry.name; }
    bool operator!=(Entry & entry) { return name != entry.name; }
 
    // операция присваивания  
    void operator=(Entry & entry);
 
 
};
 
 
class SpecialEntry : public Entry {
 
 
private:
 
    string specialSection;
    int specialId = 0;
 
public:
 
    SpecialEntry() {}
    SpecialEntry(string name, string area, string type, int year, int value, string section, int id, string specialSection, int specialId)
        : Entry(name, area, type, year, value, section, id),
        specialSection(specialSection), specialId(specialId) {}
 
    // ввести данные с клавиатуры  
    void updateData();
    // вывести данные на экран  
    void printData();
 
 
};
 
 
 
 
// конструктор  
Entry::Entry() {
 
    cout << "Object Entry is being created" << endl << endl;
 
}
 
// конструктор  
Entry::Entry(string name, string area, string type, int year, int value, string section, int id)
    : name(name), area(area), type(type), year(year), value(value), section(section), id(id) {
 
    cout << "Object Entry is being created" << endl << endl;
 
}
 
// деструктор
Entry::~Entry() {
 
    cout << "Object Entry is being destroyed" << endl << endl;
 
}
 
 
// ввести данные с клавиатуры  
void Entry::updateData() {
 
 
    cout << "  Enter data  " << endl;
 
    cout << "name: ";
    getline(cin, name);
 
    cout << "area: ";
    getline(cin, area);
 
    cout << "type: ";
    getline(cin, type, '\n');
 
    cout << "year: ";
    cin >> year;
 
    cout << "value: ";
    cin >> value;
 
    // очистка буфера cin для удаления символа новой строки который там остался  
    cin.ignore();
 
    cout << "section: ";
    getline(cin, section);
 
    cout << "id: ";
    cin >> id;
 
    cout << endl;
 
 
}
 
// вывести данные на экран  
void Entry::printData() {
 
 
    cout << "  Entry  " << endl;
 
    cout << "Name: " << name << endl;
    cout << "Area: " << area << endl;
    cout << "Type: " << type << endl;
    cout << "Year: " << year << endl;
    cout << "Value: " << value << endl;
    cout << "Section: " << section << endl;
    cout << "ID: " << id << endl;
 
 
}
 
// операция присваивания  
void Entry::operator=(Entry & entry) {
 
 
    if (entry.name != "") { name = entry.name; }
    if (entry.area != "") { area = entry.area; }
    if (entry.type != "") { type = entry.type; }
    year = entry.year;
    if (entry.value != 0) { value = entry.value; }
 
    if (entry.section != "") { section = entry.section; }
    if (entry.id != 0) { id = entry.id; }
 
 
}
 
 
 
// ввести данные с клавиатуры  
void SpecialEntry::updateData() {
 
 
    Entry::updateData();
 
    // очистка буфера cin для удаления символа новой строки который там остался  
    cin.ignore();
 
    cout << "section: ";
    getline(cin, specialSection);
 
    cout << "id: ";
    cin >> specialSection;
 
 
}
 
// вывести данные на экран  
void SpecialEntry::printData() {
 
 
    Entry::printData();
 
    cout << "Special section: " << specialSection << endl;
    cout << "Special ID: " << specialId << endl;
 
    cout << endl;
 
 
}
 
 
 
 
 
int main() {
 
 
 
    // создание объекта экспоната  
    Entry * picture = new Entry("Egiptian picture", "Ancient History", "Painting", -2000, 9000, "A01", 908);
    picture->printData();
    cout << endl;
 
    // создание другого объекта экспоната  
    SpecialEntry * statue = new SpecialEntry("Egiptian statue", "Ancient History", "Statue", -2500, 19000, "A01", 909, "One 999", 20009);
    statue->printData();
 
 
    delete picture;
    delete statue;
 
 
    system("pause");
    return 0;
 
 
}
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2018, 10:01
Ответы с готовыми решениями:

В программе реализовать возможность записи объектов в файл и чтения объектов из файла
Добрый день, помогите, пожалуйста! У меня есть программа: #include &lt;iostream&gt; #include...

Добавить вывод в файл и чтение из файла объектов класса
Добавить вывод в файл и чтение из файла объектов класса. Работа должна отображаться на мониторе....

Вывод в файл и последующее чтение из файла объектов класса
Как наиболее правильно и канонично выводить (так чтобы потом ещё и прочитать) объекты классов в...

Запись объекта класса в файл и чтение из файла (Вызвано необработанное исключение: нарушение доступа для чтения)
Доброго времени суток. Вообщем-то есть некий класс Weapons: class Weapons { public: void...

1
7031 / 6054 / 2752
Регистрация: 14.04.2014
Сообщений: 25,928
20.06.2018, 10:10 2
Добавь операции >> и << в класс и пользуйся.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
20.06.2018, 10:10

Особенности чтения файлов при помощи объектов класса ofstream
Когда в объект ofstream забивается имя файла, который уже существует - он заменяется. Стирается...

Открыть текстовый файл для чтения и вывода в консоль
Добрый день! Пожалуйста, подскажите как сделать такое задание? Написать программу, которая вводит...

Добавление объектов класса в коллекцию
Начал выполнять задание и зашёл в тупик. Запутался так, что голова кипит. using System;...

Добавление объектов класса через форму
Здравствуйте, подскажите пожалуйста как это реализовать : Есть клас Band с Dictionary&lt;Guid,Band&gt; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.