Advertisement
fferum

Untitled

Nov 4th, 2020
77
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.27 KB | None | 0 0
  1. #include <iostream>
  2. #include "computers_info.h"
  3. #include <fstream>
  4.  
  5. int main() {
  6.     ifstream file("../input.txt");
  7.     if (!file.is_open()) {
  8.         return 1;
  9.     }
  10.  
  11.     int year_now;
  12.     file >> year_now;
  13.  
  14.     int system_unit_count = 0, laptop_count = 0;
  15.  
  16.     while (!file.eof()) {
  17.         char n;
  18.         string firm, mark;
  19.         int year, more_info;
  20.         file >> n >> firm >> mark >> year >> more_info;
  21.         if (n == 'C') {
  22.             system_unit_count++;
  23.         }
  24.         if (n == 'H') {
  25.             laptop_count++;
  26.         }
  27.     }
  28.  
  29.     auto *computer_array = new Computer[system_unit_count + laptop_count];
  30.     auto *desktop_array = new Desktop[system_unit_count];
  31.     auto *laptop_array = new Laptop[laptop_count];
  32.  
  33.     file.seekg(0);
  34.     file >> year_now;
  35.  
  36.     int position_Com = 0;
  37.     int position_Des = 0;
  38.     int position_Lap = 0;
  39.     while (!file.eof()) {
  40.         char n;
  41.         string firm, mark;
  42.         int year, more_info;
  43.         file >> n >> firm >> mark >> year >> more_info;
  44.         computer_array[position_Com].ChangeF(firm);
  45.         computer_array[position_Com].ChangeM(mark);
  46.         computer_array[position_Com].ChangeY(year);
  47.         position_Com++;
  48.  
  49.         if (n == 'C') {
  50.             desktop_array[position_Des].ChangeF(firm);
  51.             desktop_array[position_Des].ChangeM(mark);
  52.             desktop_array[position_Des].ChangeY(year);
  53.             desktop_array[position_Des].ChangeP(more_info);
  54.             position_Des++;
  55.         }
  56.         if (n == 'H') {
  57.             laptop_array[position_Lap].ChangeF(firm);
  58.             laptop_array[position_Lap].ChangeM(mark);
  59.             laptop_array[position_Lap].ChangeY(year);
  60.             laptop_array[position_Lap].ChangeC(more_info);
  61.             position_Lap++;
  62.         }
  63.  
  64.     }
  65.  
  66.     ofstream desktopfile("../Desktop.txt");
  67.     ofstream laptopfile("../Laptop.txt");
  68.     ofstream computerfile("../Computer.txt");
  69.  
  70.     for (int i = 0; i < position_Des; i++) {
  71.         desktopfile << desktop_array[i].Print(year_now);
  72.     }
  73.  
  74.     for (int i = 0; i < position_Lap; i++) {
  75.         laptopfile << laptop_array[i].Print(year_now);
  76.     }
  77.  
  78.     for (int i = 0; i < position_Com; i++) {
  79.         computerfile << computer_array[i].Print();
  80.     }
  81.  
  82.     return 0;
  83. }
  84.  
  85.  
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement