Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define _CRT_SECURE_NO_WARNINGS
- #include <iostream>
- #include <conio.h>
- #include <string>
- #include <locale.h>
- #include <stdio.h>
- #include <fstream>
- #include <iomanip>
- using namespace std;
- class carrier //вводим базовый класс Carrier (Носитель)
- {
- public:
- /* Объявляем поля класса: */
- char file_system[1000]; // файловая система
- double space;//char space[100]; //обём информации
- float cost;//char cost[100]; // стоимость
- int time;// char time[100]; // время доступа
- virtual void read() //метод "чтение" _____________________________
- {
- cout << "Чтение:" << endl;
- cout << "файловая система: "; cin >> file_system; //заполняем поля класса
- cout << "объем информации: "; cin >> space;// gets_s(space);
- cout << "стоимость: "; cin >> cost;// gets_s(cost);
- cout << "время доступа: "; cin >> time;// gets_s(time); ///
- }
- virtual void write() //метод "вывод на экран" _____________________________sprintf(str, "%d", number);
- {
- cout << "\nВывод на экран:" << endl; //выводим значение полей на экран
- cout << "файловая система: " << file_system << endl;
- cout << "объем информации: " << space << endl;
- cout << "стоимость: " << cost << endl;
- cout << "время доступа: " << time << endl; ///
- }
- virtual void put()//метод "запись в файл" _____________________________
- {
- cout << "\nДанные успешно записаны в файл f1.txt" << endl;
- /* char s1[1000]; char s2[1000]; char s3[1000]; char s4[1000]; const char*enter = "\n"; //вводим локальные переменные строкового типа
- FILE*f = fopen("f1.txt", "w"); //открываем файл в режиме записи
- strcpy(s1, file_system); fputs(s1, f); fputs(enter, f); //заполняем значениями полей локальные переменные и записываем эти значения в файл "f1.txt"
- strcpy(s2, space); fputs(s2, f); fputs(enter, f);
- strcpy(s3, cost); fputs(s3, f); fputs(enter, f);
- strcpy(s4, time); fputs(s4, f); fputs(enter, f); ///
- fclose(f); //закрываем файл */
- ofstream f;
- f.open("f1.txt");
- f << file_system << "\n" << space << "\n" << cost << "\n" << time << endl;
- f.close(); //закрываем файл
- }
- virtual void get() //метод "чтение из файла" _____________________________
- {
- cout << endl << "Считываю данные из файла f2.txt: " << endl;
- /* char t1[1000]; char t2[1000]; char t3[1000]; char t4[1000]; const int maxsize = 255; //вводим локальные переменные строкового типа
- FILE*ff = fopen("f2.txt", "r"); //открываем файл в режиме чтения
- cout << endl << "Считываю данные из файла f2.txt: " << endl;
- fgets(t1, maxsize, ff); strcpy(file_system, t1); cout << "файловая система: "; printf("%s", t1); //считываем данные из файла "f2.txt" и заполняем ими поля
- fgets(t2, maxsize, ff); strcpy(space, t2); cout << "объем информации: "; printf("%s", t2);
- fgets(t3, maxsize, ff); strcpy(cost, t3); cout << "стоимость: "; printf("%s", t3);
- fgets(t4, maxsize, ff); strcpy(time, t4); cout << "время доступа: "; printf("%s", t4); //
- fclose(ff); //закрываем файл */
- ifstream ff;
- ff.open("f2.txt");
- ff >> file_system; ff >> space; ff >> cost; ff >> time;
- cout << "файловая система:" << file_system << "\n" << "объём информации: " << space << "\n" << "стоимость: " << cost << "\n" << "время доступа: " << time << "\n";
- ff.close();
- }
- };
- class winchester : public carrier //вводим производный класс "Винчестер"
- {
- private:
- /* Объявляем поля класса: */
- char creator[100]; //производитель
- char interf[100]; //интерфейс
- float speed;// char speed[100]; //кол-во оборотов в минуту
- public:
- void read() //метод "чтение" _____________________________
- {
- cout << "\nНоситель: Винчестер" << endl;
- carrier::read(); //наследуем метод базового класса "read"
- cout << "производитель: "; cin >> creator; //заполняем собственные поля производного класса
- cout << "интерфейс: "; cin >> interf;
- cout << "количество оборотов в минуту: "; cin >> speed; ///
- }
- void write() //метод "вывод на экран" _____________________________
- {
- carrier::write(); //наследуем метод базового класса "write"
- cout << "производитель: " << creator << endl; //выводим значение полей производного класса на экран
- cout << "интерфейс: " << interf << endl;
- cout << "количество оборотов в минуту: " << speed << endl; ///
- }
- void put() //метод "запись в файл" _____________________________
- {
- carrier::put(); // наследуем метод базового класса "put"
- /* char s1[1000]; char s2[1000]; char s3[1000]; const char*enter = "\n"; //вводим локальные переменные строкового типа
- FILE*f = fopen("f1.txt", "a+"); //открываем файл в режиме добавления
- strcpy(s1, creator); fputs(s1, f); fputs(enter, f); //добавляем к уже имеющейся информации в файле значения полей производного класса
- strcpy(s2, interf); fputs(s2, f); fputs(enter, f);
- strcpy(s3, speed); fputs(s3, f); fputs(enter, f); ///
- fclose(f); //закрываем файл */
- ofstream f;
- f.open("f1.txt", ios_base::app);
- f << creator << "\n" << interf << "\n" << speed << endl;
- f.close();
- }
- void get() //метод "чтение из файла" _____________________________
- {
- char t1[1000]; char t2[1000]; char t3[1000]; char t4[1000];
- carrier::get(); //наследуем метод базового класса "get"
- /* char t1[1000]; char t2[1000]; char t3[1000]; const int maxsize = 255; //вводим локальные переменные строкового типа
- FILE*ff = fopen("f2.txt", "r"); //открываем файл в режиме чтения
- /* прогоняем четыре строчки файла, которые уже были считаны унаследованным методом базового класса "get": */ /*
- fgets(t1, maxsize, ff); fgets(t1, maxsize, ff); fgets(t1, maxsize, ff);
- fgets(t1, maxsize, ff); strcpy(creator, t1); cout << "производитель: "; printf("%s", t1); //считываем оставшуюся информацию из файла, полученными значениями заполняем поля производного класса
- fgets(t2, maxsize, ff); strcpy(interf, t2); cout << "интерфейс: "; printf("%s", t2);
- fgets(t3, maxsize, ff); strcpy(speed, t3); cout << "количество оборотов в минуту: "; printf("%s", t3); ///
- fclose(ff); //закрываем файл */
- ifstream ff;
- ff.open("f2.txt", ios_base::app);
- ff >> t1; ff >> t2; ff >> t3; ff >> t4; // прогоняем четыре строчки файла, которые уже были считаны унаследованным методом базового класса "get"
- ff >> creator; ff >> interf; ff >> speed;
- cout << "производитель:" << creator << "\n" << "интерфейс: " << interf << "\n" << "количество оборотов в минуту: " << speed << "\n";
- ff.close();
- }
- };
- class cdrom : public carrier //вводим производный класс "CD-ROM"
- {
- private:
- /* Объявляем поля класса: */
- char creator[1000]; //производитель
- float speed2;// char speed2[100]; //скорость записи
- public:
- void read() // метод "чтение" _____________________________
- {
- cout << "\n———————————————————————————————————————\nНоситель: CD-ROM" << endl;
- carrier::read(); //наследуем метод базового класса "read"
- cout << "производитель: "; cin >> creator; //заполняем собственные поля производного класса
- cout << "количество оборотов в минуту: "; cin >> speed2; ///
- }
- void write() //метод "вывод на экран" _____________________________
- {
- carrier::write(); //наслудуем метод базового класса "write"
- cout << "производитель: " << creator << endl; //выводим значение полей производного класса на экран
- cout << "скорость записи: " << speed2 << endl; ///
- }
- void put() //метод "запись в файл" _____________________________
- {
- cout << "\nДанные успешно записаны в файл f3.txt" << endl;
- /* char s1[1000]; char s2[1000]; char s3[1000]; char s4[1000]; char s5[1000]; char s6[1000]; const char*enter = "\n"; //вводим локальные переменные строкового типа
- FILE*f = fopen("f3.txt", "w"); //открываем файл в режиме записи
- strcpy(s1, file_system); fputs(s1, f); fputs(enter, f); //заполняем значениями полей локальные переменные и записываем эти значения в файл "f3.txt"
- strcpy(s2, space); fputs(s2, f); fputs(enter, f);
- strcpy(s3, cost); fputs(s3, f); fputs(enter, f);
- strcpy(s4, time); fputs(s4, f); fputs(enter, f);
- strcpy(s5, creator); fputs(s5, f); fputs(enter, f);
- strcpy(s6, speed2); fputs(s6, f); fputs(enter, f); ///
- fclose(f); //закрываем файл */
- ofstream f;
- f.open("f3.txt");
- f << file_system << "\n" << space << "\n" << cost << "\n" << time << "\n" << creator << "\n" << speed2 << endl;
- f.close();
- }
- void get() //метод "чтение из файла" _____________________________
- {
- cout << endl << "Считываю данные из файла f4.txt: " << endl;
- /* char t1[1000]; char t2[1000]; char t3[1000]; char t4[1000]; char t5[1000]; char t6[1000]; const int maxsize = 255; //вводим локальные переменные строкового типа
- FILE*ff = fopen("f4.txt", "r"); //открываем файл в режиме чтения
- cout << endl << "Считываю данные из файла f4.txt: " << endl;
- fgets(t1, maxsize, ff); strcpy(file_system, t1); cout << "файловая система: "; printf("%s", t1); //заполняем поля производного класса
- fgets(t2, maxsize, ff); strcpy(space, t2); cout << "объем информации: "; printf("%s", t2);
- fgets(t3, maxsize, ff); strcpy(cost, t3); cout << "стоимость: "; printf("%s", t3);
- fgets(t4, maxsize, ff); strcpy(time, t4); cout << "время доступа: "; printf("%s", t4);
- fgets(t5, maxsize, ff); strcpy(creator, t5); cout << "производитель: "; printf("%s", t5);
- fgets(t6, maxsize, ff); strcpy(speed2, t6); cout << "скорость записи: "; printf("%s", t6); ///
- fclose(ff); //закрываем файл */
- ifstream ff;
- ff.open("f4.txt");
- ff >> file_system; ff >> space; ff >> cost; ff >> time; ff >> creator; ff >> speed2;
- cout << "файловая система:" << file_system << "\n" << "объём информации: " << space << "\n" << "стоимость: " << cost << "\n" << "время доступа: " << time << "\n";
- cout << "производитель: " << creator << "\n" << "скорость записи: " << speed2 << endl;
- }
- };
- void main(void)
- {
- winchester winchester; cdrom cdrom; //объявляем переменные соответствующих типов производных классов
- setlocale(0, ""); setlocale(LC_ALL, "RUS");
- winchester.read(); winchester.write(); winchester.put(); winchester.get(); //вызываем методы первого производного класса
- cdrom.read(); cdrom.write(); cdrom.put(); cdrom.get(); //вызываем методы второго производного класса
- _getch(); //задержка экрана
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement