Advertisement
turtlesergio

class_01_v2_upd270215

Feb 26th, 2015
183
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 12.71 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2. #include <iostream>
  3. #include <conio.h>
  4. #include <string>
  5. #include <locale.h>
  6. #include <stdio.h>
  7. #include <fstream>
  8. #include <iomanip>
  9.  
  10. using namespace std;
  11.  
  12. class carrier //вводим базовый класс Carrier (Носитель)
  13. {
  14. public:
  15. /* Объявляем поля класса: */
  16.     char file_system[1000]; // файловая система
  17.     double space;//char space[100]; //обём информации
  18.     float cost;//char cost[100]; // стоимость
  19.     int time;// char time[100]; // время доступа
  20.  
  21.     virtual void read() //метод "чтение" _____________________________
  22.     {
  23.         cout << "Чтение:" << endl;
  24.         cout << "файловая система: "; cin >> file_system; //заполняем поля класса
  25.         cout << "объем информации: "; cin >> space;// gets_s(space);
  26.         cout << "стоимость: "; cin >> cost;// gets_s(cost);
  27.         cout << "время доступа: "; cin >> time;// gets_s(time); ///
  28.     }
  29.     virtual void write() //метод "вывод на экран" _____________________________sprintf(str, "%d", number);
  30.     {
  31.         cout << "\nВывод на экран:" << endl; //выводим значение полей на экран
  32.         cout << "файловая система: " << file_system << endl;
  33.         cout << "объем информации: " << space << endl;
  34.         cout << "стоимость: " << cost << endl;
  35.         cout << "время доступа: " << time << endl; ///
  36.     }
  37.     virtual void put()//метод "запись в файл" _____________________________
  38.     {
  39.         cout << "\nДанные успешно записаны в файл f1.txt" << endl;
  40. /*      char s1[1000]; char s2[1000]; char s3[1000]; char s4[1000]; const char*enter = "\n"; //вводим локальные переменные строкового типа
  41.         FILE*f = fopen("f1.txt", "w"); //открываем файл в режиме записи
  42.         strcpy(s1, file_system); fputs(s1, f); fputs(enter, f); //заполняем значениями полей локальные переменные и записываем эти значения в файл "f1.txt"
  43.         strcpy(s2, space); fputs(s2, f); fputs(enter, f);
  44.         strcpy(s3, cost); fputs(s3, f); fputs(enter, f);
  45.         strcpy(s4, time); fputs(s4, f); fputs(enter, f); ///
  46.         fclose(f); //закрываем файл  */
  47.         ofstream f;
  48.         f.open("f1.txt");
  49.         f << file_system << "\n" << space << "\n" << cost << "\n" << time << endl;
  50.         f.close(); //закрываем файл
  51.     }
  52.  
  53.     virtual void get() //метод "чтение из файла" _____________________________
  54.     {
  55.         cout << endl << "Считываю данные из файла f2.txt: " << endl;
  56. /*      char t1[1000]; char t2[1000]; char t3[1000]; char t4[1000]; const int maxsize = 255; //вводим локальные переменные строкового типа
  57.         FILE*ff = fopen("f2.txt", "r"); //открываем файл в режиме чтения
  58.         cout << endl << "Считываю данные из файла f2.txt: " << endl;
  59.         fgets(t1, maxsize, ff); strcpy(file_system, t1); cout << "файловая система: "; printf("%s", t1); //считываем данные из файла "f2.txt" и заполняем ими поля
  60.         fgets(t2, maxsize, ff); strcpy(space, t2); cout << "объем информации: "; printf("%s", t2);
  61.         fgets(t3, maxsize, ff); strcpy(cost, t3); cout << "стоимость: "; printf("%s", t3);
  62.         fgets(t4, maxsize, ff); strcpy(time, t4); cout << "время доступа: "; printf("%s", t4); //
  63.         fclose(ff); //закрываем файл */
  64.         ifstream ff;
  65.         ff.open("f2.txt");
  66.         ff >> file_system; ff >> space; ff >> cost; ff >> time;
  67.         cout << "файловая система:" << file_system << "\n" << "объём информации: " << space << "\n" << "стоимость: " << cost << "\n" << "время доступа: " << time << "\n";
  68.         ff.close();
  69.     }
  70. };
  71.  
  72. class winchester : public carrier //вводим производный класс "Винчестер"
  73. {
  74. private:
  75. /* Объявляем поля класса: */
  76.     char creator[100]; //производитель
  77.     char interf[100]; //интерфейс
  78.     float speed;// char speed[100]; //кол-во оборотов в минуту
  79. public:
  80.     void read() //метод "чтение" _____________________________
  81.     {
  82.         cout << "\nНоситель: Винчестер" << endl;
  83.         carrier::read(); //наследуем метод базового класса "read"
  84.         cout << "производитель: "; cin >> creator; //заполняем собственные поля производного класса
  85.         cout << "интерфейс: "; cin >> interf;
  86.         cout << "количество оборотов в минуту: "; cin >> speed; ///
  87.     }
  88.     void write() //метод "вывод на экран" _____________________________
  89.     {
  90.         carrier::write(); //наследуем метод базового класса "write"
  91.         cout << "производитель: " << creator << endl; //выводим значение полей производного класса на экран
  92.         cout << "интерфейс: " << interf << endl;
  93.         cout << "количество оборотов в минуту: " << speed << endl; ///
  94.     }
  95.     void put() //метод "запись в файл" _____________________________
  96.     {
  97.         carrier::put(); // наследуем метод базового класса "put"
  98. /*      char s1[1000]; char s2[1000]; char s3[1000]; const char*enter = "\n"; //вводим локальные переменные строкового типа
  99.         FILE*f = fopen("f1.txt", "a+"); //открываем файл в режиме добавления
  100.         strcpy(s1, creator); fputs(s1, f); fputs(enter, f); //добавляем к уже имеющейся информации в файле значения полей производного класса
  101.         strcpy(s2, interf); fputs(s2, f); fputs(enter, f);
  102.         strcpy(s3, speed); fputs(s3, f); fputs(enter, f); ///
  103.         fclose(f); //закрываем файл */
  104.         ofstream f;
  105.         f.open("f1.txt", ios_base::app);
  106.         f << creator << "\n" << interf << "\n" << speed << endl;
  107.         f.close();
  108.     }
  109.     void get() //метод "чтение из файла" _____________________________
  110.     {
  111.         char t1[1000]; char t2[1000]; char t3[1000]; char t4[1000];
  112.         carrier::get(); //наследуем метод базового класса "get"
  113. /*      char t1[1000]; char t2[1000]; char t3[1000]; const int maxsize = 255; //вводим локальные переменные строкового типа
  114.         FILE*ff = fopen("f2.txt", "r"); //открываем файл в режиме чтения
  115.         /* прогоняем четыре строчки файла, которые уже были считаны унаследованным методом базового класса "get": */ /*
  116.         fgets(t1, maxsize, ff); fgets(t1, maxsize, ff); fgets(t1, maxsize, ff);
  117.         fgets(t1, maxsize, ff); strcpy(creator, t1); cout << "производитель: "; printf("%s", t1); //считываем оставшуюся информацию из файла, полученными значениями заполняем поля производного класса
  118.         fgets(t2, maxsize, ff); strcpy(interf, t2); cout << "интерфейс: "; printf("%s", t2);
  119.         fgets(t3, maxsize, ff); strcpy(speed, t3); cout << "количество оборотов в минуту: "; printf("%s", t3); ///
  120.         fclose(ff); //закрываем файл */
  121.         ifstream ff;
  122.         ff.open("f2.txt", ios_base::app);
  123.         ff >> t1; ff >> t2; ff >> t3; ff >> t4; // прогоняем четыре строчки файла, которые уже были считаны унаследованным методом базового класса "get"
  124.         ff >> creator; ff >> interf; ff >> speed;
  125.         cout << "производитель:" << creator << "\n" << "интерфейс: " << interf << "\n" << "количество оборотов в минуту: " << speed << "\n";
  126.         ff.close();
  127.     }
  128. };
  129.  
  130. class cdrom : public carrier //вводим производный класс "CD-ROM"
  131. {
  132. private:
  133. /* Объявляем поля класса: */
  134.     char creator[1000]; //производитель
  135.     float speed2;// char speed2[100]; //скорость записи
  136. public:
  137.     void read() // метод "чтение" _____________________________
  138.     {
  139.         cout << "\n———————————————————————————————————————\nНоситель: CD-ROM" << endl;
  140.         carrier::read(); //наследуем метод базового класса "read"
  141.         cout << "производитель: "; cin >> creator; //заполняем собственные поля производного класса
  142.         cout << "количество оборотов в минуту: "; cin >> speed2; ///
  143.     }
  144.     void write() //метод "вывод на экран" _____________________________
  145.     {
  146.         carrier::write(); //наслудуем метод базового класса "write"
  147.         cout << "производитель: " << creator << endl; //выводим значение полей производного класса на экран
  148.         cout << "скорость записи: " << speed2 << endl; ///
  149.     }
  150.     void put() //метод "запись в файл" _____________________________
  151.     {
  152.         cout << "\nДанные успешно записаны в файл f3.txt" << endl;
  153. /*      char s1[1000]; char s2[1000]; char s3[1000]; char s4[1000]; char s5[1000]; char s6[1000]; const char*enter = "\n"; //вводим локальные переменные строкового типа
  154.         FILE*f = fopen("f3.txt", "w"); //открываем файл в режиме записи
  155.         strcpy(s1, file_system); fputs(s1, f); fputs(enter, f); //заполняем значениями полей локальные переменные и записываем эти значения в файл "f3.txt"
  156.         strcpy(s2, space); fputs(s2, f); fputs(enter, f);
  157.         strcpy(s3, cost); fputs(s3, f); fputs(enter, f);
  158.         strcpy(s4, time); fputs(s4, f); fputs(enter, f);
  159.         strcpy(s5, creator); fputs(s5, f); fputs(enter, f);
  160.         strcpy(s6, speed2); fputs(s6, f); fputs(enter, f); ///
  161.         fclose(f); //закрываем файл */
  162.         ofstream f;
  163.         f.open("f3.txt");
  164.         f << file_system << "\n" << space << "\n" << cost << "\n" << time << "\n" << creator << "\n" << speed2 << endl;
  165.         f.close();
  166.  
  167.     }
  168.     void get() //метод "чтение из файла" _____________________________
  169.     {
  170.         cout << endl << "Считываю данные из файла f4.txt: " << endl;
  171. /*      char t1[1000]; char t2[1000]; char t3[1000]; char t4[1000]; char t5[1000]; char t6[1000]; const int maxsize = 255; //вводим локальные переменные строкового типа
  172.         FILE*ff = fopen("f4.txt", "r"); //открываем файл в режиме чтения
  173.         cout << endl << "Считываю данные из файла f4.txt: " << endl;
  174.         fgets(t1, maxsize, ff); strcpy(file_system, t1); cout << "файловая система: "; printf("%s", t1); //заполняем поля производного класса
  175.         fgets(t2, maxsize, ff); strcpy(space, t2); cout << "объем информации: "; printf("%s", t2);
  176.         fgets(t3, maxsize, ff); strcpy(cost, t3); cout << "стоимость: "; printf("%s", t3);
  177.         fgets(t4, maxsize, ff); strcpy(time, t4); cout << "время доступа: "; printf("%s", t4);
  178.         fgets(t5, maxsize, ff); strcpy(creator, t5); cout << "производитель: "; printf("%s", t5);
  179.         fgets(t6, maxsize, ff); strcpy(speed2, t6); cout << "скорость записи: "; printf("%s", t6); ///
  180.         fclose(ff); //закрываем файл */
  181.         ifstream ff;
  182.         ff.open("f4.txt");
  183.         ff >> file_system; ff >> space; ff >> cost; ff >> time; ff >> creator; ff >> speed2;
  184.         cout << "файловая система:" << file_system << "\n" << "объём информации: " << space << "\n" << "стоимость: " << cost << "\n" << "время доступа: " << time << "\n";
  185.         cout << "производитель: " << creator << "\n" << "скорость записи: " << speed2 << endl;
  186.     }
  187. };
  188.  
  189. void main(void)
  190. {
  191.     winchester winchester; cdrom cdrom; //объявляем переменные соответствующих типов производных классов
  192.     setlocale(0, ""); setlocale(LC_ALL, "RUS");
  193.     winchester.read(); winchester.write(); winchester.put(); winchester.get(); //вызываем методы первого производного класса
  194.     cdrom.read(); cdrom.write(); cdrom.put(); cdrom.get(); //вызываем методы второго производного класса
  195.     _getch(); //задержка экрана
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement