From aryx, 6 Years ago, written in C++.
Embed
  1. // i'm a bassline JUNKIE.
  2. // Tóth Patrik, GAMF 2018
  3.  
  4. #include <iostream>
  5. #include <fstream>
  6. #include <string>
  7.  
  8. using namespace std;
  9.  
  10. struct place
  11. {
  12.         bool used;
  13.         int category;
  14. };
  15.  
  16. void main() {
  17.  
  18.         place places[15][20]; // 15 sor, 20 szék
  19.         int kategoriak[5] = { 5000, 4000, 3000, 2000, 1500 }; // a kategoriak, a sorszam+1 az azonositojuk vegulis
  20.  
  21.         // adatok betöltése & kiírása
  22.         ifstream foglfile("foglaltsag.txt");
  23.         if (foglfile.fail()) { cerr << "hiba a foglaltsag.txt megnyitasakor! "; system("pause"); exit(1); }
  24.         ifstream katfile("kategoria.txt");
  25.         if (katfile.fail()) { cerr << "hiba a kategoria.txt megnyitasakor! "; system("pause"); exit(1); }
  26.  
  27.         string fogl_line, kat_line;
  28.         for (int x = 0; x < 15; x++) {
  29.                 foglfile >> fogl_line; // egesz szeksor infojat toltjuk be
  30.                 katfile >> kat_line; //egesz szeksor infoja szinten
  31.                 cout << fogl_line << "\n" << kat_line << "\n";
  32.                 for (int y = 0; y < 20; y++) {
  33.                         if (fogl_line[y] == 'x') { // ha x van ott, akkor foglalt
  34.                                 places[x][y].used = true;
  35.                         } else { // ha nem,... nem.
  36.                                 places[x][y].used = false;
  37.                         }
  38.                        
  39.                         switch (kat_line[y]) {
  40.                                 case '1': places[x][y].category = 1; break;
  41.                                 case '2': places[x][y].category = 2; break;
  42.                                 case '3': places[x][y].category = 3; break;
  43.                                 case '4': places[x][y].category = 4; break;
  44.                                 case '5': places[x][y].category = 5; break;
  45.                         }
  46.                 }
  47.         }
  48.         foglfile.close();
  49.         katfile.close();
  50.  
  51.         cout << "\n\n";
  52.  
  53.         cout << places[2][3].category << "\n\n";
  54.  
  55.         // 2. feladat, bekérés
  56.         cout << "Add meg a sort: ";
  57.         int sor;
  58.         cin >> sor;
  59.         cout << "Add meg a szeket: ";
  60.         int szek;
  61.         cin >> szek;
  62.         if (places[sor-1][szek-1].used == true) { // -1, mert 0-tol indexeltuk az tombot!
  63.                 cout << "Ez a szek foglalt.";
  64.         }
  65.         else {
  66.                 cout << "Ez a szek szabad.";
  67.         }
  68.         cout << "\n\n";
  69.  
  70.  
  71.         // 3. feladat, szazalekos cucc
  72.         int eladott = 0;
  73.         for (int x = 0; x < 15; x++) {
  74.                 for (int y = 0; y < 20; y++) {
  75.                         if (places[x][y].used == true) {
  76.                                 eladott++;
  77.                         }
  78.                 }
  79.         }
  80.         int szazalek = eladott / (15. * 20.) * 100;
  81.         cout << "Az eloadasra eddig " << eladott << " jegyet adtak el, ez a nezoter " << szazalek << "%-a.\n\n";
  82.  
  83.  
  84.         // 4+5. feladat, melyik kateg a legtobb jegy
  85.         int kat_legtobbjegy;
  86.         int kat_count_seged = 0;
  87.         int kat_count = 0;
  88.         int sum = 0;
  89.         for (int i = 0; i < 5; i++) {
  90.                 kat_count_seged = 0;
  91.                 for (int x = 0; x < 15; x++) {
  92.                         for (int y = 0; y < 20; y++) {
  93.                                 if ((places[x][y].used == true) && (places[x][y].category == i+1)) {
  94.                                         sum += kategoriak[i];
  95.                                         kat_count_seged += 1;
  96.                                 }
  97.                         }
  98.                 }
  99.                 if (kat_count_seged > kat_count) {
  100.                         kat_legtobbjegy = i + 1;
  101.                         kat_count = kat_count_seged;
  102.                 }
  103.         }
  104.         cout << "A legtobb jegyet a(z) " << kat_legtobbjegy << ". arkategoriaban ertekesitettek.\n";
  105.         cout << "A szinhaz bevetele pillanatnyilag " << sum << " Ft.\n\n";
  106.  
  107.  
  108.         // 6. feladat, páros helyek
  109.         int dupla = 0;
  110.         for (int x = 0; x < 15; x++) {
  111.                 for (int y = 0; y < 20; y+=2) {
  112.                         if (places[x][y].used == false && places[x][y+1].used == false) {
  113.                                 dupla++;
  114.                         }
  115.                 }
  116.         }
  117.         cout << "Paros ures helyek szama: " << dupla << "\n\n";
  118.  
  119.  
  120.         // 7. feladat
  121.         ofstream szabadf("szabad.txt");
  122.         if (szabadf.fail()) { cerr << "hiba a szabad.txt megnyitasakor! "; system("pause"); exit(1); }
  123.         for (int x = 0; x < 15; x++) {
  124.                 for (int y = 0; y < 20; y++) {
  125.                         if (places[x][y].used == true) {
  126.                                 szabadf << "x";
  127.                         }
  128.                         else {
  129.                                 szabadf << places[x][y].category;
  130.                         }
  131.                 }
  132.                 szabadf << "\n";
  133.         }
  134.         szabadf.close();
  135.  
  136.         system("pause");
  137.  
  138. }