Advertisement
Guest User

Untitled

a guest
Mar 27th, 2015
200
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.40 KB | None | 0 0
  1. #include <iostream>
  2. #include <vector>
  3. #include <fstream>
  4. #include <stdlib.h>
  5.  
  6. using namespace std;
  7.  
  8. typedef vector<string> vect;
  9.  
  10. void be_adat(vect &v); // adatok manuális beolvasása
  11. void f_adat(vect &v); // adatok beolvasás fájlból
  12. void kiir(vect &v); // eredmény megjelenítése
  13. int legmagasabb(vect &v);
  14. int hany(vect &v, int &i);
  15. int menu(int &dont); // menü
  16.  
  17. int main()
  18. {
  19.     vect v;
  20.     int dont;
  21.     menu(dont);
  22.  
  23.     if(dont==2)
  24.     {
  25.         be_adat(v);
  26.         kiir(v);
  27.     }
  28.     else if (dont==1)
  29.     {
  30.         f_adat(v);
  31.     }
  32.  
  33.     int diak;
  34.     if((diak = legmagasabb(v)))
  35.     {
  36.        cout<<"Volt ilyen diak: "<<diak<<endl;
  37.     }
  38.     return 0;
  39. }
  40. void be_adat(vect &v)
  41. {
  42.     string magas;
  43.     do
  44.     {
  45.         cout << "Adja meg a magassagot:";
  46.         cin >> magas;
  47.         if (magas !="0")
  48.         {
  49.             v.push_back(magas);
  50.         }
  51.     }while(magas != "0");
  52.  
  53. }
  54. void f_adat(vect &v)
  55. {
  56.     string ifname;
  57.     cout<<"Kerem az inputfajl nevet: ";
  58.     cin>>ifname;
  59.     ifstream infile(ifname.c_str());
  60.     if(infile.fail())
  61.     {
  62.         cout << "Nincs meg az inputfile!" << endl;
  63.         exit(1);
  64.     }
  65.  
  66.     int n;
  67.     infile >> n;
  68.  
  69.  
  70.     v.resize(n);
  71.     cout << "Beolvasott adatok:\n";
  72.     for(int i=0; i<n; ++i)
  73.     {
  74.         infile >> v[i];
  75.         cout << v[i] << endl;
  76.     }
  77. }
  78. void kiir(vect &v)
  79. {
  80.     for(int i=0; i<v.size(); ++i)
  81.     {
  82.         cout<<"A(z) "<<i+1<<". diak magassaga: "<<v[i]<<endl;
  83.     }
  84. }
  85. int hany(vect &v, int &i)
  86. {
  87.     int h=0;
  88.     for(int j=0;j<i;i++)
  89.     {
  90.         if(v[j]>v[i]) h++;
  91.     }
  92.     return h;
  93. }
  94. int legmagasabb(vect &v)
  95. {
  96.     int max=0;
  97.     int diak=1;
  98.     int h;
  99.     for(int i=1;i<v.size();i++)
  100.     {
  101.         h=hany(v,i);
  102.        if(h>max)
  103.        {
  104.            max=h;
  105.            diak=i;
  106.        }
  107.  
  108.     }
  109.     return diak;
  110. }
  111.  
  112. int menu(int &dont)
  113. {
  114.     bool hiba=false;
  115.  
  116.     do
  117.     {
  118.         cout << "File-bol(1) vagy billentyuzetrol(2) szeretne adatokat megadni?\n";
  119.         cin >> dont;
  120.         hiba=cin.fail();
  121.         if (hiba)
  122.         {
  123.             cerr << "Hibas bemenet!" << endl;
  124.             cin.clear();
  125.             string hibasadat;
  126.             getline(cin,hibasadat);
  127.         }
  128.  
  129.         else if (dont !=1 && dont !=2)
  130.             cout << "A lehetseges valasztas: 1 vagy 2!" << endl;
  131.  
  132.     }while( (dont != 1) && (dont != 2) );
  133.  
  134.     return dont;
  135. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement