Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <cstdlib>
- using namespace std;
- typedef unsigned int uint;
- struct Szek {
- uint sor; // 1-15
- uint oszlop; // 1-20
- bool foglalt;
- char ar_kat;
- };
- void feladat1(Szek *szekek);
- void feladat1b(Szek *szekek);
- void feladat2(Szek *szekek);
- void feladat3(Szek *szekek);
- void feladat4(Szek *szekek);
- void feladat5(Szek *szekek);
- void feladat6(Szek *szekek);
- void feladat7(Szek *szekek);
- int main(int argc, char** args) {
- Szek *szekek; //[15*20];
- szekek = (Szek*) malloc(sizeof(Szek) * 15 * 20);
- feladat1(szekek);
- feladat1b(szekek);
- feladat2(szekek);
- feladat3(szekek);
- feladat4(szekek);
- feladat5(szekek);
- feladat6(szekek);
- feladat7(szekek);
- //cout << "sz: " << szekek[0].sor << " " << szekek[0].ar_kat << endl;
- cout << "Vege" << endl;
- return 0;
- }
- void feladat1(Szek* szekek) {
- cout << "1. feladat 1. rĂŠsz" << endl;
- FILE *f;
- f = fopen("foglaltsag.txt", "r");
- if( f == NULL ) {
- cout << "A fajl megnyitasa sikertelen." << endl;
- return;
- }
- uint sor = 1, count = 1;
- while( !feof(f) ) {
- char c = fgetc(f);
- if( c == 'x' || c == 'o' ) {
- Szek szek;
- szek.sor = sor;
- szek.oszlop = count;
- szek.foglalt = c == 'x' ? true : false;
- //cout << sor << " _ " << count << endl;
- szekek[(sor-1)*20 + (count-1)] = szek;
- count++;
- } else { // c == '\n'
- sor++;
- count = 1;
- }
- }
- fclose(f);
- }
- void feladat1b(Szek *szekek) {
- cout << "1. feladat 2. rĂŠsz" << endl;
- FILE *f;
- f = fopen("kategoria.txt", "r");
- if( f == NULL ) {
- cout << "A fajl megnyitasa sikertelen." << endl;
- return;
- }
- uint sor = 1, count = 1;
- while( !feof(f) ) {
- char c = fgetc(f);
- switch( c ) {
- case '5':
- case '4':
- case '3':
- case '2':
- case '1':
- //cout << "ar kat: " << c << endl;
- szekek[(sor-1)*20 + (count++ - 1)].ar_kat = c;
- break;
- default: // \n
- sor++;
- count = 1;
- }
- }
- fclose(f);
- }
- void feladat2(Szek* szekek) {
- cout << "2. feladat" << endl;
- uint sor;
- cout << "Adjon meg egy sort (1-15): ";
- cin >> sor;
- cout << endl;
- uint szek;
- cout << "Adjon meg egy szeket (1-20): ";
- cin >> szek;
- cout << endl;
- Szek sz = szekek[(sor-1) * 20 + (szek-1)];
- if( sz.foglalt )
- cout << "A szek foglalt!";
- else
- cout << "A szek NEM foglalt!";
- cout << endl << endl;
- }
- void feladat3(Szek* szekek) {
- cout << "3. feladat" << endl;
- uint ossz = 15*20;
- uint foglalt = 0;
- for(uint i = 0; i < ossz; i++) {
- if( szekek[i].foglalt )
- foglalt++;
- }
- uint szazalek = (uint)(((float)foglalt / (float)ossz) * 100.0f);
- cout << "Az eloadasra eddig " << foglalt << "jegyet adtak el, ez a nezoter " << szazalek << "%-a." << endl << endl;
- }
- void feladat4(Szek *szekek) {
- cout << "4. feladat" << endl;
- uint kat[] = {0, 0, 0, 0, 0};
- for(uint i = 0; i < 15*20; i++) {
- switch( szekek[i].ar_kat ) {
- case '1': kat[0]++; break;
- case '2': kat[1]++; break;
- case '3': kat[2]++; break;
- case '4': kat[3]++; break;
- case '5': kat[4]++; break;
- }
- }
- uint max = 0, k = 0;
- for(uint i = 0; i < 5; i++) {
- if( kat[i] > max ) {
- max = kat[i];
- k = i;
- }
- }
- cout << "A legtobb jegyet a(z) " << (k+1) << ". arkategoriaban erekesitettek." << endl << endl;
- }
- void feladat5(Szek *szekek) {
- cout << "5. feladat" << endl;
- int bevetel = 0;
- for(uint i = 0; i < 15*20; i++) {
- switch( szekek[i].ar_kat ) {
- case '1': bevetel += 5000; break;
- case '2': bevetel += 4000; break;
- case '3': bevetel += 3000; break;
- case '4': bevetel += 2000; break;
- case '5': bevetel += 1500; break;
- }
- }
- cout << "Pillanatnyi bevetel: " << bevetel << " Ft" << endl << endl;
- }
- void feladat6(Szek *szekek) {
- cout << "6. feladat" << endl;
- uint egyedulallo = 0;
- for(uint x = 0; x < 15; x++) {
- for(uint y = 1; y < 19; y++) {
- if( szekek[x*20 + y-1].foglalt && !szekek[x*20 + y].foglalt && szekek[x*20 + y+1].foglalt )
- egyedulallo++;
- }
- cout << "foglaltasg: " << egyedulallo << endl;
- }
- cout << egyedulallo << " db egyedulallo szek van!" << endl << endl;
- }
- void feladat7(Szek *szekek) {
- cout << "7. feladat" << endl;
- FILE *f;
- f = fopen("szabad.txt", "w+");
- if( f == NULL ) {
- cout << "Nem lehet megnyitni a fajlt irasra!" << endl;
- return;
- }
- for(uint x = 0; x < 15; x++) {
- for(uint y = 0; y < 20; y++) {
- Szek szek = szekek[x*20 + y];
- fputc(szek.foglalt ? 'X' : szek.ar_kat, f);
- }
- fputc('\n', f);
- }
- fclose(f);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement