// i'm a bassline JUNKIE.
// Tóth Patrik, GAMF 2018
#include <iostream>
#include <fstream>
#include <string>
using namespace std;
struct place
{
bool used;
int category;
};
void main() {
place places[15][20]; // 15 sor, 20 szék
int kategoriak[5] = { 5000, 4000, 3000, 2000, 1500 }; // a kategoriak, a sorszam+1 az azonositojuk vegulis
// adatok betöltése & kiírása
ifstream foglfile("foglaltsag.txt");
if (foglfile.fail()) { cerr << "hiba a foglaltsag.txt megnyitasakor! "; system("pause"); exit(1); }
ifstream katfile("kategoria.txt");
if (katfile.fail()) { cerr << "hiba a kategoria.txt megnyitasakor! "; system("pause"); exit(1); }
string fogl_line, kat_line;
for (int x = 0; x < 15; x++) {
foglfile >> fogl_line; // egesz szeksor infojat toltjuk be
katfile >> kat_line; //egesz szeksor infoja szinten
cout << fogl_line << "\n" << kat_line << "\n";
for (int y = 0; y < 20; y++) {
if (fogl_line[y] == 'x') { // ha x van ott, akkor foglalt
places[x][y].used = true;
} else { // ha nem,... nem.
places[x][y].used = false;
}
switch (kat_line[y]) {
case '1': places[x][y].category = 1; break;
case '2': places[x][y].category = 2; break;
case '3': places[x][y].category = 3; break;
case '4': places[x][y].category = 4; break;
case '5': places[x][y].category = 5; break;
}
}
}
foglfile.close();
katfile.close();
cout << "\n\n";
cout << places[2][3].category << "\n\n";
// 2. feladat, bekérés
cout << "Add meg a sort: ";
int sor;
cin >> sor;
cout << "Add meg a szeket: ";
int szek;
cin >> szek;
if (places[sor-1][szek-1].used == true) { // -1, mert 0-tol indexeltuk az tombot!
cout << "Ez a szek foglalt.";
}
else {
cout << "Ez a szek szabad.";
}
cout << "\n\n";
// 3. feladat, szazalekos cucc
int eladott = 0;
for (int x = 0; x < 15; x++) {
for (int y = 0; y < 20; y++) {
if (places[x][y].used == true) {
eladott++;
}
}
}
int szazalek = eladott / (15. * 20.) * 100;
cout << "Az eloadasra eddig " << eladott << " jegyet adtak el, ez a nezoter " << szazalek << "%-a.\n\n";
// 4+5. feladat, melyik kateg a legtobb jegy
int kat_legtobbjegy;
int kat_count_seged = 0;
int kat_count = 0;
int sum = 0;
for (int i = 0; i < 5; i++) {
kat_count_seged = 0;
for (int x = 0; x < 15; x++) {
for (int y = 0; y < 20; y++) {
if ((places[x][y].used == true) && (places[x][y].category == i+1)) {
sum += kategoriak[i];
kat_count_seged += 1;
}
}
}
if (kat_count_seged > kat_count) {
kat_legtobbjegy = i + 1;
kat_count = kat_count_seged;
}
}
cout << "A legtobb jegyet a(z) " << kat_legtobbjegy << ". arkategoriaban ertekesitettek.\n";
cout << "A szinhaz bevetele pillanatnyilag " << sum << " Ft.\n\n";
// 6. feladat, páros helyek
int dupla = 0;
for (int x = 0; x < 15; x++) {
for (int y = 0; y < 20; y+=2) {
if (places[x][y].used == false && places[x][y+1].used == false) {
dupla++;
}
}
}
cout << "Paros ures helyek szama: " << dupla << "\n\n";
// 7. feladat
ofstream szabadf("szabad.txt");
if (szabadf.fail()) { cerr << "hiba a szabad.txt megnyitasakor! "; system("pause"); exit(1); }
for (int x = 0; x < 15; x++) {
for (int y = 0; y < 20; y++) {
if (places[x][y].used == true) {
szabadf << "x";
}
else {
szabadf << places[x][y].category;
}
}
szabadf << "\n";
}
szabadf.close();
system("pause");
}