Advertisement
Guest User

matura

a guest
Feb 28th, 2014
228
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.18 KB | None | 0 0
  1. #include <iostream>
  2. using namespace std;
  3. #include <conio.h>
  4. #include <string>
  5. #include <fstream>
  6. #include <sstream>
  7. #include <cstdlib>
  8.  
  9. //====================================================================================================================
  10.  
  11. struct daneOsob
  12. {
  13.     string dane[7];
  14. };
  15.  
  16. struct daneWojew
  17. {
  18.     string dane[2];
  19. };
  20.  
  21. struct daneZain
  22. {
  23.     string dane[3];
  24. };
  25.  
  26. //====================================================================================================================
  27.  
  28. int main()
  29. {
  30.     ifstream dane_k("dane_k.txt");
  31.    
  32.     string tekstPom;   
  33.     int lWyrazow=0,lOsob=0;
  34.     daneOsob osoba[10];     // !! Tu wpisz liczbe osob na liscie
  35.    
  36.    
  37.     while(dane_k >> tekstPom)
  38.     {
  39.         osoba[lOsob].dane[lWyrazow%7]=tekstPom;
  40.        
  41.         lWyrazow++;
  42.         lOsob=lWyrazow/7;
  43.     }
  44.     /*============*/
  45.    
  46.     /* pkt1 */
  47.     int ileKobiet=0;
  48.    
  49.     for(int j=0;j<lOsob;j++)
  50.     {
  51.         if(osoba[j].dane[2].at(osoba[j].dane[2].length()-1)=='a') // jezeli masz kompilator zgodny z c++11 to mozesz uzyc funkcji string.back()
  52.         {
  53.             ileKobiet++;
  54.         }
  55.     }
  56.     /*============*/
  57.    
  58.     /* pkt2 */
  59.     int lUzytkownikow[lOsob];
  60.     string sNazwaSieci[lOsob];
  61.     int j=0;
  62.     bool bylo=false;
  63.    
  64.     for(int i=0;i<lOsob;i++)
  65.     {
  66.         lUzytkownikow[i]=1;
  67.        
  68.         for(int k=0;k<lOsob;k++)
  69.         {
  70.             if(osoba[i].dane[4]==sNazwaSieci[k])
  71.             {
  72.                 bylo=true;
  73.             }
  74.         }
  75.        
  76.         if(!bylo)
  77.         {
  78.             sNazwaSieci[j]=osoba[i].dane[4];
  79.             j++;
  80.         }
  81.         bylo=false;
  82.     }
  83.    
  84.     bool raz=true;
  85.    
  86.     for(int i=0;i<lOsob;i++)
  87.     {
  88.         for(int k=0;k<i;k++)
  89.         {
  90.             if(osoba[i].dane[4]==osoba[k].dane[4])
  91.             {
  92.                 for(int p=0;p<j;p++)
  93.                 {
  94.                     if(osoba[i].dane[4]==sNazwaSieci[p])
  95.                     {
  96.                         if(raz)
  97.                         {
  98.                             lUzytkownikow[p]++;
  99.                             raz=false;
  100.                         }
  101.                     }
  102.                 }      
  103.             }
  104.         }
  105.         raz=true;
  106.     }
  107.    
  108.     for(int i=0;i<j;i++)
  109.     {
  110.         cout << "Z sieci " << sNazwaSieci[i] << " kozysta " << lUzytkownikow[i] << " uzytkownikow" << endl;
  111.     }
  112.     /*============*/
  113.    
  114.     /* pkt3 */
  115.     ifstream wojew("wojew.txt");
  116.    
  117.     tekstPom="";
  118.     lWyrazow=0;
  119.     int lWoj=0;
  120.     daneWojew wojewodztwo[5];       // !! Tu wpisz liczbe wojewodztw na liscie
  121.    
  122.     while(wojew >> tekstPom)
  123.     {
  124.         wojewodztwo[lWoj].dane[lWyrazow%2]=tekstPom;
  125.        
  126.         lWyrazow++;
  127.         lWoj=lWyrazow/2;
  128.     }
  129.    
  130.     string nazwaWojewodztwa[lWoj];
  131.     int lMieszkancow[lWoj];
  132.     j=0;
  133.     bylo=false;
  134.    
  135.     for(int i=0;i<lWoj;i++)
  136.     {
  137.         lMieszkancow[i]=0;
  138.        
  139.         for(int k=0;k<lWoj;k++)
  140.         {
  141.             if(wojewodztwo[i].dane[0]==nazwaWojewodztwa[k])
  142.             {
  143.                 bylo=true;
  144.             }
  145.         }
  146.        
  147.         if(!bylo)
  148.         {
  149.             nazwaWojewodztwa[j]=wojewodztwo[i].dane[0];
  150.             j++;
  151.         }
  152.         bylo=false;
  153.     }
  154.    
  155.     raz=true;
  156.    
  157.     for(int i=0;i<lOsob;i++)
  158.     {
  159.         for(int k=0;k<lWoj;k++)
  160.         {
  161.             if(osoba[i].dane[6]==wojewodztwo[k].dane[1])
  162.             {
  163.                 for(int p=0;p<lWoj;p++)
  164.                 {
  165.                     if(wojewodztwo[k].dane[0]==wojewodztwo[p].dane[0])
  166.                     {
  167.                         if(raz)
  168.                         {
  169.                             lMieszkancow[p]++;
  170.                             raz=false;
  171.                         }
  172.                     }
  173.                 }
  174.             }
  175.         }
  176.         raz=true;
  177.     }
  178.    
  179.     cout << endl;
  180.    
  181.     for(int i=0;i<lWoj;i++)
  182.     {
  183.         cout << "W wojewodztwie " << nazwaWojewodztwa[i] << " mieszka " << lMieszkancow[i] << " kandydatow" << endl;
  184.     }
  185.    
  186.     for(int i=0;i<lWoj;i++)
  187.     {
  188.         if(lMieszkancow[i]>20)
  189.         {
  190.             cout << nazwaWojewodztwa[i] << " - w tym wojewodztwie jest wiecej niz 20 kandydatow" << endl;
  191.         }
  192.     }
  193.     /*============*/
  194.    
  195.     /* pkt4 */
  196.     ifstream zain_wyk("zain_wyk.txt");
  197.    
  198.     daneZain zain[lOsob];
  199.     int licznik=0;
  200.     lWyrazow=0;
  201.    
  202.     while(zain_wyk >> tekstPom)
  203.     {
  204.         zain[licznik].dane[lWyrazow%3]=tekstPom;
  205.        
  206.         lWyrazow++;
  207.         licznik=lWyrazow/3;
  208.     }
  209.    
  210.     int ileWyzsze=0;
  211.     int ileSrednie=0;
  212.    
  213.     cout << endl;
  214.    
  215.     for(int i=0;i<lOsob;i++)
  216.     {      
  217.         if((zain[i].dane[2]=="srednie" || zain[i].dane[2]=="wyzsze") &&
  218.            (atoi(osoba[i].dane[5].c_str())<=50)                      &&
  219.            (zain[i].dane[1]=="gry_komputerowe"))
  220.         {
  221.             cout << osoba[i].dane[2] << " " << osoba[i].dane[1] << " ";
  222.            
  223.             for(int k=0;k<lWoj;k++)
  224.             {
  225.                 if(osoba[i].dane[6]==wojewodztwo[k].dane[1])
  226.                 {
  227.                     cout << wojewodztwo[k].dane[0] << endl;
  228.                 }
  229.             }
  230.            
  231.             if(zain[i].dane[2]=="srednie")
  232.             {
  233.                 ileSrednie++;
  234.             }
  235.             else if(zain[i].dane[2]=="wyzsze")
  236.             {
  237.                 ileWyzsze++;
  238.             }
  239.         }
  240.     }
  241.    
  242.     cout << endl << "W tej grupie jest " << endl << ileSrednie << " osob z srednim wyksztalceniem i " << endl << ileWyzsze << " osob z wyzszym wyksztalceniem" << endl;
  243.     /*============*/
  244.    
  245.     /* pkt5 */
  246.    
  247.     int lKobiet=0;
  248.     int lMezczyzn=0;
  249.    
  250.     for(int i=0;i<lOsob;i++)
  251.     {
  252.         if(zain[i].dane[1]=="polityka" || zain[i].dane[1]=="sport")
  253.         {
  254.             if(osoba[i].dane[2].at(osoba[i].dane[2].length()-1)=='a') // jezeli masz kompilator zgodny z c++11 to mozesz uzyc funkcji string.back()
  255.             {
  256.                 if(atoi(osoba[i].dane[3].c_str())>=168)
  257.                 {
  258.                     lKobiet++;
  259.                 }
  260.             }
  261.             else
  262.             {
  263.                 if(atoi(osoba[i].dane[3].c_str())>=175)
  264.                 {
  265.                     lMezczyzn++;
  266.                 }
  267.             }
  268.         }
  269.     }
  270.    
  271.     cout << endl << "Kryteria spelnia :" << endl << lKobiet << " kobiet i" << endl << lMezczyzn << " mezczyzn" << endl;
  272.    
  273.    
  274.     /*============*/
  275.    
  276.    
  277.     zain_wyk.close();
  278.     wojew.close();
  279.     dane_k.close();
  280.  
  281.  getch();
  282.  return 0;
  283. }
  284. //====================================================================================================================
  285.  
  286. //*****************************************************************************
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement