Advertisement
edems96

nezoter.cpp

Apr 6th, 2015
247
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.55 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <cstdlib>
  4.  
  5. using namespace std;
  6.  
  7. typedef unsigned int uint;
  8.  
  9. struct Szek {
  10.     uint sor; // 1-15
  11.     uint oszlop; // 1-20
  12.     bool foglalt;
  13.     char ar_kat;
  14. };
  15.  
  16. void feladat1(Szek *szekek);
  17. void feladat1b(Szek *szekek);
  18. void feladat2(Szek *szekek);
  19. void feladat3(Szek *szekek);
  20. void feladat4(Szek *szekek);
  21. void feladat5(Szek *szekek);
  22. void feladat6(Szek *szekek);
  23. void feladat7(Szek *szekek);
  24.  
  25. int main(int argc, char** args) {
  26.     Szek *szekek; //[15*20];
  27.     szekek = (Szek*) malloc(sizeof(Szek) * 15 * 20);
  28.    
  29.     feladat1(szekek);
  30.     feladat1b(szekek);
  31.     feladat2(szekek);
  32.     feladat3(szekek);
  33.     feladat4(szekek);
  34.     feladat5(szekek);
  35.     feladat6(szekek);
  36.     feladat7(szekek);
  37.    
  38.     //cout << "sz: " << szekek[0].sor << " " << szekek[0].ar_kat << endl;
  39.  
  40.     cout << "Vege" << endl;
  41.     return 0;
  42. }
  43.  
  44. void feladat1(Szek* szekek) {
  45.     cout << "1. feladat 1. rĂŠsz" << endl;
  46.    
  47.     FILE *f;
  48.     f = fopen("foglaltsag.txt", "r");
  49.    
  50.     if( f == NULL ) {
  51.         cout << "A fajl megnyitasa sikertelen." << endl;
  52.         return;
  53.     }
  54.    
  55.     uint sor = 1, count = 1;
  56.    
  57.     while( !feof(f) ) {
  58.         char c = fgetc(f);
  59.        
  60.         if( c == 'x' || c == 'o' ) {
  61.             Szek szek;
  62.             szek.sor = sor;
  63.             szek.oszlop = count;
  64.             szek.foglalt = c == 'x' ? true : false;
  65.            
  66.             //cout << sor << " _ " << count << endl;
  67.            
  68.             szekek[(sor-1)*20 + (count-1)] = szek;
  69.             count++;
  70.         } else { // c == '\n'
  71.             sor++;
  72.             count = 1;
  73.         }
  74.     }
  75.        
  76.     fclose(f);
  77. }
  78.  
  79. void feladat1b(Szek *szekek) {
  80.     cout << "1. feladat 2. rĂŠsz" << endl;
  81.    
  82.     FILE *f;
  83.     f = fopen("kategoria.txt", "r");
  84.    
  85.     if( f == NULL ) {
  86.         cout << "A fajl megnyitasa sikertelen." << endl;
  87.         return;
  88.     }
  89.    
  90.     uint sor = 1, count = 1;
  91.     while( !feof(f) ) {
  92.         char c = fgetc(f);
  93.        
  94.         switch( c ) {
  95.             case '5':
  96.             case '4':
  97.             case '3':
  98.             case '2':
  99.             case '1':
  100.                 //cout << "ar kat: " << c << endl;
  101.                 szekek[(sor-1)*20 + (count++ - 1)].ar_kat = c;
  102.                 break;
  103.                
  104.             default: // \n
  105.                 sor++;
  106.                 count = 1;
  107.         }
  108.     }
  109.    
  110.     fclose(f);
  111. }
  112.  
  113. void feladat2(Szek* szekek) {
  114.     cout << "2. feladat" << endl;
  115.    
  116.     uint sor;
  117.     cout << "Adjon meg egy sort (1-15): ";
  118.     cin >> sor;
  119.     cout << endl;
  120.    
  121.     uint szek;
  122.     cout << "Adjon meg egy szeket (1-20): ";
  123.     cin >> szek;
  124.     cout << endl;
  125.    
  126.     Szek sz = szekek[(sor-1) * 20 + (szek-1)];
  127.    
  128.     if( sz.foglalt )
  129.         cout << "A szek foglalt!";
  130.     else
  131.         cout << "A szek NEM foglalt!";
  132.        
  133.     cout << endl << endl;
  134. }
  135.  
  136. void feladat3(Szek* szekek) {
  137.     cout << "3. feladat" << endl;
  138.    
  139.     uint ossz = 15*20;
  140.     uint foglalt = 0;
  141.    
  142.     for(uint i = 0; i < ossz; i++) {
  143.         if( szekek[i].foglalt )
  144.             foglalt++;
  145.     }
  146.    
  147.     uint szazalek = (uint)(((float)foglalt / (float)ossz) * 100.0f);
  148.    
  149.     cout << "Az eloadasra eddig " << foglalt << "jegyet adtak el, ez a nezoter " << szazalek << "%-a." << endl << endl;
  150. }
  151.  
  152. void feladat4(Szek *szekek) {
  153.     cout << "4. feladat" << endl;
  154.    
  155.     uint kat[] = {0, 0, 0, 0, 0};
  156.    
  157.     for(uint i = 0; i < 15*20; i++) {
  158.         switch( szekek[i].ar_kat ) {
  159.             case '1': kat[0]++; break;
  160.             case '2': kat[1]++; break;
  161.             case '3': kat[2]++; break;
  162.             case '4': kat[3]++; break;
  163.             case '5': kat[4]++; break;
  164.         }
  165.     }
  166.    
  167.     uint max = 0, k = 0;
  168.     for(uint i = 0; i < 5; i++) {
  169.         if( kat[i] > max ) {
  170.             max = kat[i];
  171.             k = i;
  172.         }
  173.     }
  174.    
  175.     cout << "A legtobb jegyet a(z) " << (k+1) << ". arkategoriaban erekesitettek." << endl << endl;
  176. }
  177.  
  178. void feladat5(Szek *szekek) {
  179.     cout << "5. feladat" << endl;
  180.    
  181.     int bevetel = 0;
  182.     for(uint i = 0; i < 15*20; i++) {
  183.         switch( szekek[i].ar_kat ) {
  184.             case '1': bevetel += 5000; break;
  185.             case '2': bevetel += 4000; break;
  186.             case '3': bevetel += 3000; break;
  187.             case '4': bevetel += 2000; break;
  188.             case '5': bevetel += 1500; break;
  189.         }
  190.     }
  191.    
  192.     cout << "Pillanatnyi bevetel: " << bevetel << " Ft" << endl << endl;
  193. }
  194.  
  195. void feladat6(Szek *szekek) {
  196.     cout << "6. feladat" << endl;
  197.    
  198.     uint egyedulallo = 0;
  199.    
  200.     for(uint x = 0; x < 15; x++) {
  201.         for(uint y = 1; y < 19; y++) {
  202.            
  203.             if( szekek[x*20 + y-1].foglalt && !szekek[x*20 + y].foglalt && szekek[x*20 + y+1].foglalt )
  204.                 egyedulallo++;
  205.         }
  206.        
  207.         cout << "foglaltasg: " << egyedulallo << endl;
  208.     }
  209.    
  210.     cout << egyedulallo << " db egyedulallo szek van!" << endl << endl;
  211. }
  212.  
  213. void feladat7(Szek *szekek) {
  214.     cout << "7. feladat" << endl;
  215.    
  216.     FILE *f;
  217.     f = fopen("szabad.txt", "w+");
  218.    
  219.     if( f == NULL ) {
  220.         cout << "Nem lehet megnyitni a fajlt irasra!" << endl;
  221.         return;
  222.     }
  223.    
  224.     for(uint x = 0; x < 15; x++) {
  225.         for(uint y = 0; y < 20; y++) {
  226.             Szek szek = szekek[x*20 + y];
  227.            
  228.             fputc(szek.foglalt ? 'X' : szek.ar_kat, f);
  229.         }
  230.        
  231.         fputc('\n', f);
  232.     }
  233.    
  234.     fclose(f);
  235. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement