- •1.Краткий обзор агрегатного типа struct.
- •Intcena;
- •Int main()
- •Int cena;
- •Void vyvod(avto s)
- •Int main()
- •3.Понятие объединения union.
- •Void vyvod(avto s, int I)
- •Int main()
- •Intcena;
- •Int main()
- •Int cena;
- •Intmain()
- •Void reset(); …
- •Void Demo::reset() // определениефункции reset( )
- •9.Пример реализации класса для организации обработки символьной строки.
- •Int demochar::length()
- •Int main()
- •10.Пример реализации класса для организации обработки одномерного массива целочисленных значений.
- •11.Инициализация объектов.
- •Int main()
- •12Указатель this.
- •13.Постоянные функции-члены класса.
- •3. Class avto {
- •15. Int main()
- •14.Массив объектов.
- •3. Class avto {
- •24. Int main() {
- •15.Статические переменные-члены и функции-члены класса.
- •17. Staticint GetSumCena() { return SumCena; };
- •19. Staticint SumCena;
- •16 Дружественные функции.
- •8. Friendvoid GetFields(avto&);
- •17 Класс, содержащий переменную-член типа класс.
- •3. Class Date_Avto {
- •16. Class avto {
- •30. Int main()
- •18 Сложность больших программных систем.
- •19 Пять признаков сложной системы.
- •20 Роль декомпозиции, абстракции, иерархии при построении сложных систем.
- •21 Объектная модель.
- •Ood основывается на объектно-ориентированной декомпозиции;
- •25Пример программы с наследованием классов.
- •3. Class avto {
- •18. Class gruz_avto : public avto {
- •36. Int main(){
- •26 Переопределение функций-членов внутри производного класса.
- •3. Class avto {
- •18. Class gruz_avto : public avto {
- •30. Int main()
- •5.Classint_Matrix// класс для обработки целочисленной матрицы
- •45. Int main()
- •Int main()
- •2. Usingnamespace std;
- •3. Int main()
- •18. Return 0;
- •Int main()
- •20. F.Write((char*)&s,sizeof(s));
- •7. Intcena;
- •21. F.Write((char*)&s,sizeof(s)); };
- •22. F.Close();
- •25. F.Seekg(sizeof(s), ios_base::beg);
- •26. F.Read((char*)&s,sizeof(s));
20. F.Write((char*)&s,sizeof(s));
21. };
В строке 22 закрывается файл, а в 24 – двоичный файл открывается для чтения.
В строках 25–26 организован цикл для чтения всех записей (в данном варианте программы двух записей) двоичного файл и вывода соответствующих значений на экран.
25. while (F.read((char*)&S,sizeof(S))) cout << S.marka <<
26. " "<< S.cena <<" "<< S.rashod << endl;
В строках 28-29 выводится размер структурного значения.
39 Прямой доступ в двоичных файлах.
Программист имеет возможность применять внутри двоичного файла прямой доступ, позиционируя внутренний файловый курсор либо относительно начала файла (beg), либо относительно текущей записи (cur).
1. #include<fstream>
2. #include<iostream>
3. usingnamespace std;
4. class avto
5. { public:
6. char marka[12];
7. int cena;
8. double rashod;
9. };
10. int main()
11. {
12. char FileName[20]; avto S;
13. cout <<"Vvedite imya FILE : "; cin >> FileName;
14. fstream F;
15. F.open(FileName,ios::out | ios::binary);
16. for(int i=0; i<4; i++)
17. { cout << endl;
18. cout <<"Vvedite marku avto: "; cin >> S.marka;
19. cout <<"Vvedite cenu avto: "; cin >> S.cena;
20. cout <<"Vvedite rashod avto: "; cin >> S.rashod;
21. F.write((char*)&S,sizeof(S)); };
22. F.close();
23. cout << endl <<"FILE "<< FileName <<" : \n";
24. F.open(FileName,ios::in | ios::binary);
25. F.seekg(sizeof(S),ios_base::beg);
26. F.read((char*)&S,sizeof(S));
27. cout << S.marka <<" "<< S.cena <<" "<<
28. S.rashod << endl;
29. F.seekg(sizeof(S),ios_base::cur);
30. F.read((char*)&S,sizeof(S));
31. cout << S.marka <<" "<< S.cena <<" "<<
32. S.rashod << endl;
33. F.seekg(0,ios_base::beg);
34. F.read((char*)&S,sizeof(S));
35. cout << S.marka <<" "<< S.cena <<" "<<
36. S.rashod << endl;
37. F.close();
38. cout << endl <<"SIZE OBJECT-CLASS avto = "<<
39. sizeof(avto) << endl;
40.return 0;
41. }
В строке 1 подключается библиотека <fstream>, внутри которой определены три класса ifstream, ofstream и fstream для работы с файлами.
В строках 4-9 описывается classavto, внутри которого определены 3 поля.
4. class avto
5. { public:
6. char marka[12];
7. Intcena;
8. doublerashod;
9. };
В строке 12 определяются переменная FileName для размещения имени двоичного файла на внешнем устройстве и объект S класса avto. В строке 13 обеспечивается ввод имени двоичного файла на внешнем устройстве.
В строке 14 создается поток Fкласса fstream, который в 15 строке ассоциируется с двоичным файлом на внешнем устройстве (имя файла на внешнем устройстве берется из переменной FileName), и двоичный файл открывается для вывода.
В строках 16-22 организован цикл для ввода значений 3 полей объекта S и для записи значений 4 экземпляров класса (объектов) в двоичный файл.
16. for(int i=0; i<4; i++)
17. { cout << endl;
18. cout <<"Vvedite marku avto: "; cin >> S.marka;
19. cout <<"Vvedite cenu avto: "; cin >> S.cena;
20. cout <<"Vvedite rashod avto: "; cin >> S.rashod;