Advertisement
Guest User

Untitled

a guest
Nov 24th, 2014
143
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.98 KB | None | 0 0
  1. #include <QtCore/QCoreApplication>
  2. #include <iostream>
  3. #include <iomanip>
  4. #include <windows.h>
  5. #include <cstdio>
  6.  
  7. using namespace std;
  8.  
  9. struct group
  10. {
  11. char bukva[3];
  12. int number;
  13. };
  14.  
  15. struct stud
  16. {
  17. char group[7];
  18. char starosta[20];
  19. int contract;
  20. int budget;
  21. } s1,s2;
  22.  
  23. stud mas[100]=
  24. {
  25. {"KИ-141","Гриц Настя",7,20},
  26. {"EM-132","Ковтун Михаил",4,15},
  27. {"BT-101","Дрозд Марина",1,20},
  28. {"КИ-143","Косовец Вика",3,17},
  29. {"ПИ-121","Васнецова Саша",3, 21}
  30. };
  31. int size=5;
  32.  
  33. void variant (int);
  34. void show_mas ();
  35. void add_new ();
  36. bool cmp(int, int);
  37. int cmp1(stud s1, stud s2);
  38. void sort_group();
  39. void sort_stud ();
  40. void student_group();
  41. void suma_students();
  42.  
  43. int main(int argc, char *argv[])
  44. {
  45. QCoreApplication a(argc, argv);
  46. system ("Color F0");
  47. int var;
  48. while (true)
  49. {
  50. system ("cls");
  51. SetConsoleTitleA("МЕНЮ");
  52. cout<<"Варианты работы программы:"<<endl;
  53. cout<<"1. Показать массив структур."<<endl
  54. <<"2. Добавить запись в массив структур."<<endl
  55. <<"3. Сортировать массив по группам."<<endl
  56. <<"4. Сортировать массив по количеству студентов"
  57. <<" + количество бюджетников."<<endl
  58. <<"5. Список групп с подсчетом количества студентов"<<endl
  59. <<"6. Подсчет общего количества бюджетноков и контрактников."<<endl<<endl
  60. <<"Ваш выбор: ";
  61. cin>>var;
  62. variant(var);
  63. };
  64. return a.exec();
  65. }
  66.  
  67. void variant (int var)
  68. {
  69. switch (var)
  70. {
  71. case 1: show_mas(); break;
  72. case 2: add_new();
  73. show_mas(); break;
  74. case 3: sort_group();
  75. show_mas(); break;
  76. case 4: sort_stud();
  77. show_mas(); break;
  78. case 5: student_group(); break;
  79. case 6: suma_students(); break;
  80. }
  81. }
  82.  
  83. void show_mas ()
  84. {
  85. system ("cls");
  86. SetConsoleTitleA ("Структура данных");
  87. cout<<"Наш массив: "<<endl<<endl;
  88. for (int i=0; i<size; i++)
  89. {
  90. cout<<setw(14)<<mas[i].group
  91. <<setw(20)<<mas[i].starosta
  92. <<setw(10)<<mas[i].budget
  93. <<setw(10)<<mas[i].contract<<endl;
  94. }
  95. cout<<endl<<endl;
  96. system("pause");
  97. }
  98.  
  99. void add_new ()
  100. {
  101. system ("cls");
  102. SetConsoleTitleA ("Добавление в структуру данных");
  103. size++;
  104. cout<<"Введите группу: ";
  105. gets(mas[size-1].group);
  106. gets(mas[size-1].group);
  107. cout<<"Введите фамилию и имя старосты группы: ";
  108. gets(mas[size-1].starosta);
  109. cout<<"Введите количество бюджетников: ";
  110. cin>>mas[size-1].budget;
  111. cout<<"Введите количество контрактников: ";
  112. cin>>mas[size-1].contract;
  113. system("pause");
  114. }
  115.  
  116.  
  117.  
  118. bool cmp ( int s1, int s2)
  119. {
  120. if(s1<s2 || s1==s2) return true;
  121. return false;
  122. }
  123.  
  124. int cmp1(stud s1, stud s2)
  125. {
  126. if(strcmp(s1.group,s2.group)!=0)
  127. return strcmp(s1.group,s2.group);
  128. }
  129.  
  130. void sort_group ()
  131. {
  132. int last=size;
  133. bool ok;
  134. do {
  135. last=last-1;
  136. ok=true;
  137. stud x;
  138. for (int i=0; i<last; i++)
  139. {
  140. if (cmp1(mas[i].group,mas[i+1].group)<0)
  141. {
  142. x=mas[i];
  143. mas[i]=mas[i+1];
  144. mas[i+1]=x;
  145. ok=false;
  146. }
  147. }
  148. } while (!ok);
  149. system("pause");
  150. }
  151.  
  152. void sort_stud()
  153. {
  154. system ("cls");
  155. SetConsoleTitleA ("Сортировка за количеством студентов");
  156. int suma1, suma2;
  157. for (int i=0; i<size; i++)
  158. {
  159. suma1=mas[i].budget+mas[i].contract;
  160. suma2=mas[i+1].budget+mas[i+1].contract;
  161. if (cmp(suma1,suma2))
  162. swap(mas[i],mas[i+1]);
  163. if (cmp(mas[i].budget,mas[i+1].budget))
  164. swap(mas[i].budget,mas[i+1].budget);
  165. }
  166. system("pause");
  167. }
  168.  
  169. void student_group ()
  170. {
  171. system ("cls");
  172. SetConsoleTitleA ("Группа + количество студентов");
  173. int suma;
  174. for (int i=0; i<size; i++)
  175. {
  176. suma=mas[i].budget+mas[i].contract;
  177. cout<<mas[i].group<<setw(15)<<suma<<endl;
  178. }
  179. system("pause");
  180. }
  181.  
  182. void suma_students ()
  183. {
  184. system ("cls");
  185. SetConsoleTitleA ("Общее количество студентов");
  186. int suma_b=0, suma_c=0;
  187. for (int i=0; i<size; i++)
  188. {
  189. suma_b+=mas[i].budget;
  190. suma_c+=mas[i].contract;
  191. }
  192. cout<<"Всего бюджетников: "<<suma_b<<endl;
  193. cout<<"Всего контрактников: "<<suma_c<<endl;
  194. system("pause");
  195. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement