Advertisement
edems96

futar.cpp

Apr 7th, 2015
243
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 4.28 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 Ut {
  10.     uint nap; // 1-7
  11.     uint fuvarszam; // 1-40
  12.     uint tav; // km; max 30
  13. };
  14.  
  15. Ut *utak;
  16. uint utc = 0;
  17.  
  18. void feladat1();
  19. void feladat2();
  20. void feladat3();
  21. void feladat4();
  22. void feladat5();
  23. void feladat6();
  24. void feladat7();
  25. void feladat8();
  26.  
  27. uint utErtek(uint tav);
  28.  
  29. int main(int argc, char **args) {
  30.     feladat1();
  31.     feladat2();
  32.     feladat3();
  33.     feladat4();
  34.     feladat5();
  35.     feladat6();
  36.     feladat7();
  37.     feladat8();
  38.  
  39.     return 0;
  40. }
  41.  
  42. void feladat1() {
  43.     cout << "1. feladat: Adatok beolvasa" << endl;
  44.     FILE *f;
  45.    
  46.     f = fopen("tavok.txt", "r");
  47.    
  48.     if( f == NULL ) {
  49.         cout << "Nem lehet megnyitni a fajlt!" << endl;
  50.         return;
  51.     }
  52.    
  53.     utak = (Ut*) malloc(sizeof(Ut) * 7 * 40);
  54.    
  55.     while( !feof(f) ) {
  56.         Ut ut;
  57.         uint r = fscanf(f, "%d %d %d\n",
  58.             &ut.nap,
  59.             &ut.fuvarszam,
  60.             &ut.tav);
  61.            
  62.         if( r == -1 )
  63.             break;
  64.            
  65.         utak[utc++] = ut;
  66.     }
  67.    
  68.     fclose(f);
  69.     cout << endl;
  70. }
  71.  
  72. void feladat2() {
  73.     cout << "2. feladat" << endl;
  74.    
  75.     Ut ut;
  76.     ut.nap = 7;
  77.     ut.fuvarszam = 40;
  78.     ut.tav = 0;
  79.    
  80.     for(uint i = 0; i < utc; i++) {
  81.         if( utak[i].nap < ut.nap ) {
  82.             ut = utak[i];
  83.             continue;
  84.         }
  85.        
  86.         if( utak[i].nap == ut.nap && utak[i].fuvarszam < ut.fuvarszam ) {
  87.             ut = utak[i];
  88.         }
  89.     }
  90.    
  91.     cout << "A het legelso utja " << ut.tav << " km hosszu volt!" << endl;
  92.     cout << endl;
  93. }
  94.  
  95. void feladat3() {
  96.     cout << "3. feladat" << endl;
  97.    
  98.     Ut ut;
  99.    
  100.     for(uint i = 0; i < utc; i++) {
  101.         if( utak[i].nap > ut.nap ) {
  102.             ut = utak[i];
  103.             continue;
  104.         }
  105.        
  106.         if( utak[i].nap == ut.nap && utak[i].fuvarszam > ut.fuvarszam )
  107.             ut = utak[i];
  108.     }
  109.    
  110.     cout << "A het utolso utja " << ut.tav << " km hosszu volt!" << endl;
  111.     cout << endl;
  112. }
  113.  
  114. void feladat4() {
  115.     cout << "4. feladat" << endl;
  116.    
  117.     bool munkaNap[] = {false, false, false, false, false, false, false};
  118.    
  119.     for(uint i = 0; i < utc; i++) {
  120.         munkaNap[utak[i].nap-1] = true;
  121.     }
  122.    
  123.     for(uint i = 0; i < 7; i++) {
  124.         if( !munkaNap[i] ) {
  125.             cout << "A het "<< (i+1) << ". napjan a futar NEM dolgozott!" << endl;
  126.         }
  127.     }
  128.    
  129.     cout << endl;
  130. }
  131.  
  132. void feladat5() {
  133.     cout << "5. feladat" << endl;
  134.    
  135.     uint tavok[] = {0, 0, 0, 0, 0, 0, 0};
  136.    
  137.     for(uint i = 0; i < utc; i++) {
  138.         tavok[utak[i].nap-1] += utak[i].tav;
  139.     }
  140.    
  141.     for(uint i = 0; i < 7; i++) {
  142.         cout << (i+1) << ". nap: " << tavok[i] << " km " << endl;
  143.     }
  144.    
  145.     cout << endl;
  146. }
  147.  
  148. uint utErtek(uint tav) {
  149.     if( tav >= 1 && tav <= 2 )
  150.         return 500;
  151.     else if( tav >= 3 && tav <= 5 )
  152.         return 700;
  153.     else if( tav >= 6 && tav <= 10 )
  154.         return 900;
  155.     else if( tav >= 11 && tav <= 20 )
  156.         return 1400;
  157.     else if( tav >= 21 && tav <= 30 )
  158.         return 2000;
  159. }
  160.  
  161. void feladat6() {
  162.     cout << "6. feladat" << endl;
  163.    
  164.     uint tav;
  165.     cout << "Adjon meg egy tavot km-ben (egesz szam): ";
  166.     cin >> tav;
  167.     cout << endl;
  168.    
  169.     uint fizetes = utErtek(tav);
  170.  
  171.     cout << tav << " km tav utan a ceg " << fizetes << " Ft-ot fizetne!" << endl;
  172.     cout << endl;
  173. }
  174.  
  175. void feladat7() {
  176.     cout << "7. feladat" << endl;
  177.    
  178.     Ut sUtak[utc];
  179.     uint c = 0;
  180.  
  181.     while( c < utc ) {
  182.         Ut ut;
  183.         ut.nap = 8;
  184.         ut.fuvarszam = 41;
  185.  
  186.         for(uint i = 0; i < utc; i++) {
  187.             if( c == 0 ) {
  188.            
  189.                 if( ut.nap > utak[i].nap ) {
  190.                     ut = utak[i];
  191.                     continue;
  192.                 }
  193.                
  194.                 if( ut.nap == utak[i].nap && ut.fuvarszam > utak[i].fuvarszam )
  195.                     ut = utak[i];
  196.             } else {
  197.                
  198.                 if( sUtak[c-1].nap < utak[i].nap ) {
  199.                     if( ut.nap > utak[i].nap )
  200.                         ut = utak[i];
  201.                        
  202.                     if( ut.nap == utak[i].nap && ut.fuvarszam > utak[i].fuvarszam )
  203.                         ut = utak[i];
  204.                 }
  205.                
  206.                 if( sUtak[c-1].nap == utak[i].nap && sUtak[c-1].fuvarszam < utak[i].fuvarszam ) {
  207.                
  208.                     if( ut.nap > utak[i].nap )
  209.                         ut = utak[i];
  210.                    
  211.                     if( ut.nap == utak[i].nap && ut.fuvarszam > utak[i].fuvarszam )
  212.                         ut = utak[i];
  213.                        
  214.                 }  
  215.             }
  216.         }
  217.        
  218.         sUtak[c++] = ut;
  219.     }
  220.    
  221.     for(uint i = 0; i < c; i++) {
  222.         cout << sUtak[i].nap << ". nap " << sUtak[i].fuvarszam << ". ut: " << utErtek(sUtak[i].tav) << " Ft" << endl;
  223.     }
  224.    
  225.     cout << endl;
  226. }
  227.  
  228. void feladat8() {
  229.     cout << "8. feladat" << endl;
  230.    
  231.     uint fizetes;
  232.    
  233.     for(uint i = 0; i < utc; i++) {
  234.         fizetes += utErtek(utak[i].tav);
  235.     }
  236.    
  237.     cout << "A futar a heti munkajaert "<< fizetes << " Ft-ot kap!" << endl;
  238.     cout << endl;
  239. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement