Brollylssj

Napisz funkcję sortującą studentów nierosnoco

Nov 26th, 2014
156
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.23 KB | None | 0 0
  1. /*Napisz funkcję sortującą studentów (dane z Zadania 1) nierosnąco według średniej ocen. Należy
  2. zastosować algorytm sortowania przez proste wstawianie. Implementacja optymalna.
  3.  
  4. Zadanie 2:
  5. Napisz funkcję sortującą studentów (dane z Zadania 1) nierosnąco według średniej ocen. Należy
  6. zastosować algorytm sortowania przez proste wstawianie. Implementacja optymalna. */
  7.  
  8.  
  9. #include<iostream>
  10. #include <string>
  11. #include<iomanip>
  12.  
  13. using namespace std;
  14. int const size =10;
  15. struct student
  16. {
  17.     string name;
  18.     double average;
  19.  
  20.  
  21.     student()
  22.     {
  23.  
  24.     }
  25.  
  26.  
  27.     student(string name_,double average_)
  28.     {
  29.        name = name_;
  30.        average = average_;
  31.     }
  32. };
  33.  
  34.  
  35. void show(student *tab)
  36. {
  37.     for (int i =0;i<size;i++)
  38.     {
  39.         cout<<setw(5)<<tab[i].average<<" "<<tab[i].name<<endl;
  40.  
  41.     }
  42.  
  43.     cout<<endl;
  44. }
  45.  
  46. void search(student *tab)
  47. {
  48.     double x_srednia;
  49.     cout<<"Podaj srednia "<<endl;
  50.     cin>>x_srednia;
  51.  
  52.     cout<<"Osoby z wyzsza srednia niz "<<x_srednia<<" to:"<<endl;
  53.  
  54.     for(int i = 0; i<size ; i++)
  55.     {
  56.         if(x_srednia<tab[i].average)
  57.             cout<<setw(4)<<tab[i].average<<" "<<tab[i].name<<endl;
  58.  
  59.  
  60.     }
  61.  
  62. }
  63.  
  64. // zada2
  65. void proste_wstawianie(student *tab)
  66. {
  67.     double temp;
  68.     int j;
  69.     for (int i =1; i<size ;i++)
  70.     {
  71.         temp = tab[i].average;
  72.         for(j =i-1;j>=0 && tab[j].average>temp;j--)
  73.         {
  74.             tab[j+1].average = tab[j].average;
  75.             swap(tab[j+1].name,tab[j].name);
  76.         }
  77.  
  78.         tab[j+1].average = temp;
  79.     }
  80.  
  81.  
  82. }
  83.  
  84. int main()
  85. {
  86.     struct student tab[size];
  87.  
  88.     struct student person1("Katowicki",3.0);
  89.     struct student person2("Nyski",4.5);
  90.     struct student person3("Augustowski",4.5);
  91.     struct student person4("Krakowski",5.0);
  92.     struct student person5("Opolski",3.5);
  93.     struct student person6("Wroclawski",4.0);
  94.     struct student person7("Poznanski",4.0);
  95.     struct student person8("Krakowski",4.5);
  96.     struct student person9("Radomski",3.5);
  97.     struct student person10("Katowicki",4.0);
  98.    
  99.  
  100.     tab[0] = person1;
  101.     tab[1] = person2;
  102.     tab[2] = person3;
  103.     tab[3] = person4;
  104.     tab[4] = person5;
  105.     tab[5] = person6;
  106.     tab[6] = person7;
  107.     tab[7] = person8;
  108.     tab[8] = person9;
  109.     tab[9] = person10;
  110.  
  111.     show(tab);
  112.  
  113.     search(tab);
  114.  
  115.     cout<<"Posortowana tabela niemalejaco"<<endl;
  116.     proste_wstawianie(tab);
  117.     show(tab);
  118.  
  119.  
  120.     system("PAUSE");
  121.     return 0;
  122. }
Advertisement
Add Comment
Please, Sign In to add comment