Bob103

сортировка вставкой

Jun 1st, 2016
84
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <fstream>
  3. #include <string>
  4. #include <iomanip>
  5. #include <algorithm>
  6. using namespace std;
  7.  
  8. ifstream in("Input.txt");
  9. ofstream out("Output.txt");
  10.  
  11.  
  12. struct Student
  13. {
  14. string name, secondname, fam;
  15. int year;
  16. int mark[5];
  17. int key;
  18. void print();
  19. };
  20.  
  21. void Student::print()
  22. {
  23. out << setw(12) << left << fam << setw(10) << name << setw(15) << secondname << setw(5) << year;;
  24.  
  25. for (int i = 0; i < 5; i++)
  26. {
  27. out << setw(3) << mark[i];
  28. }
  29. out << setw(5) << key << endl;
  30. }
  31.  
  32. void sort(Student *a, int n)
  33. {
  34. Student temp;
  35. for (int i = 0; i < n; i++)
  36. {
  37. int temp = a[i].key;// запомним i-ый элемент
  38. int j = i - 1;//будем идти начиная с i-1 элемента
  39. while (j >= 0 && a[j].key > temp)
  40. // пока не достигли начала массива
  41. // или не нашли элемент больше i-1-го
  42. // который храниться в переменной temp
  43. {
  44. a[j + 1].key = a[j].key;
  45. //проталкиваем элемент вверх
  46. j--;
  47. }
  48. a[j + 1].key = temp;
  49. }
  50. }
  51. int main()
  52. {
  53. int n = 0, m, i;
  54. Student stud[10];
  55.  
  56. if (!in)
  57. cout << "Error,file Input.txt doesn't open";
  58.  
  59. else
  60. {
  61. in >> m;
  62. while (in.peek() != EOF)
  63. {
  64. in >> stud[n].fam;
  65. in >> stud[n].name;
  66. in >> stud[n].secondname;
  67. in >> stud[n].year;
  68. stud[n].key = 0;
  69. for (int i = 0; i < 5; i++)
  70. {
  71. in >> stud[n].mark[i];
  72. stud[n].key+=mark[i];
  73. }
  74. n++;
  75. }
  76. sort(stud, n);
  77. out << m << endl;
  78. for (int i = n - 1; i >= 0; i--)
  79. stud[i].print();
  80. }
  81. in.close();
  82. out.close();
  83. return 0;
  84. }
Advertisement
Add Comment
Please, Sign In to add comment