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 }