1  #include <iostream>
  2  #include <fstream>
  3  #include <conio.h>
  4  #include <stdio.h>
  5  #include <windows.h>
  6  #include <cmath>
  7  #include <string>
  8  #include <cstring>
  9  #include <stdlib.h>
 10  
 11  #define N 15  //sor
 12  #define M 20   //oszlop
 13  
 14  using namespace std;
 15  
 16  string sor[N];
 17  string kat[N];
 18  int m[5];  //money kategóriánként
 19  
 20  void F1()
 21  {
 22      ifstream fsor;
 23      fsor.open("foglaltsag.txt");
 24      ifstream ksor;
 25      ksor.open("kategoria.txt");
 26      for(int i=0;i<N;i++)
 27      {
 28          fsor >> sor[i];
 29          ksor >> kat[i];
 30      }
 31      ksor.close();
 32      fsor.close();
 33      for(int i=0;i<N;i++) cout << sor[i] << endl;
 34      cout << endl;
 35      for(int i=0;i<N;i++) cout << kat[i] << endl;
 36      cout << endl;
 37  }
 38  
 39  void F2()
 40  {
 41      int s, o;
 42      cout << "Sor száma: ";
 43      cin >> s;
 44      cout << "Szék száma: ";
 45      cin >> o;
 46      if(sor[s-1][o-1]=='x') cout << "Foglalt";
 47      else cout << "Szabad";
 48      cout << endl;
 49  }
 50  void F3()
 51  {
 52      float e=0;      //Az e float típusú legyen, hogy a törtrésze se vesszen el!
 53      for(int s=0;s<N;s++)
 54      {
 55          for(int o=0;o<M;o++)
 56          {
 57              if(sor[s][o]=='x') e++;
 58          }
 59      }
 60      cout << "Eladtak " << e << " db jegyet, ez ennyi: ";
 61      cout << round(e/(15*20)*100) << "%-a." << endl;
 62  //round a cmath include fájlban található, egészre kerekít
 63  }
 64  
 65  void F4()
 66  {
 67      int kategoria;
 68      for(int i=0;i<5;i++) m[i]=0;
 69  
 70      for(int s=0;s<N;s++)
 71      {
 72          for(int o=0;o<M;o++)
 73          {
 74              kategoria=int(kat[s][o])-49;
 75  
 76  //FONTOS: az int() itt, mint függvény szerepel. kat[s][o] egy karakter, melynek ASCII-kódját adja vissza az int(), az '1' karakter ASCII kódja 49, így ezt le kell vonni, hogy az m tömböt indexelhessük, (2 - 50, 3-51,...stb.)
 77  
 78              if(sor[s][o]=='x') m[kategoria]++;
 79          }
 80      }
 81  
 82      for(int i=0;i<5;i++)
 83      {
 84          cout << i+1 << ": " << m[i] << endl;
 85      }
 86  
 87      kategoria=1;
 88      int max=m[0];  //maximum eladás db, az index pedig
 89                     //a kategóriát mondja meg!!!
 90      for(int i=1;i<5;i++)
 91      {
 92          if(m[i]>max)
 93          {
 94              max=m[i];kategoria=i+1;
 95          }
 96      }
 97      cout << "A legtöbb jegyet a(z) " << kategoria << ". árkategóriában értékesítették." << endl;
 98  }
 99  
100  void F5()
101  {
102      int bev=0;
103      for(int i=0;i<5;i++)
104      {
105          if(i==0) bev=bev+m[0]*5000;   //1 kategória darabszáma*5000
106          if(i==1) bev=bev+m[1]*4000;   //2 kategória darabszáma*4000
107          if(i==2) bev=bev+m[2]*3000;   //3 kategória darabszáma*3000
108          if(i==3) bev=bev+m[3]*2000;   //4 kategória darabszáma*2000
109          if(i==4) bev=bev+m[4]*1500;   //5 kategória darabszáma*1500
110      }
111      cout << "A színház bevétele: " << bev << " Ft" << endl;
112  }
113  
114  void F6()
115  {
116      int u_db=0;
117      for(int s=0;s<N;s++)
118      {
119          for(int o=0;o<M;o++)
120          {
121              //balszél üres, de mellette foglalt
122              if(o==0&&sor[s][o]=='o'&&sor[s][o+1]=='x') u_db++;
123              //soron belül van egy üres
124              if(o>0&&o<M&&sor[s][o]=='o'&&sor[s][o-1]=='x'&&sor[s][o+1]=='x') u_db++;
125              //jobbszél üres, de előtte foglalt
126              if(o==M-1&&sor[s][o]=='o'&&sor[s][o-1]=='x') u_db++;
127          }
128      }
129      cout << "Egyedülálló helyek száma: " << u_db << endl;
130  }
131  
132  void F7()
133  {
134      ofstream ki;
135      ki.open("szabad.txt");
136      for(int s=0;s<N;s++)
137      {
138          for(int o=0;o<M;o++)
139          {
140              if(sor[s][o]=='o') sor[s][o]=kat[s][o];
141              ki << sor[s][o];
142          }
143          ki << endl;
144      }
145      ki.close();
146  }
147  
148  int main()
149  {
150      setlocale(LC_ALL, "hun");
151      cout << "1. feladat" << endl;
152      F1();
153      cout << "2. feladat" << endl;
154      F2();
155      cout << "3. feladat" << endl;
156      F3();
157      cout << "4. feladat" << endl;
158      F4();
159      cout << "5. feladat" << endl;
160      F5();
161      cout << "6. feladat" << endl;
162      F6();
163      cout << "7. feladat" << endl;
164      F7();
165      return 0;
166  }