Advertisement
Guest User

Untitled

a guest
May 22nd, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.48 KB | None | 0 0
  1.  
  2. #include <iostream>
  3. #include <fstream>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include <iomanip>
  7.  
  8. using namespace std;
  9.  
  10. struct Sportsmen
  11. {
  12. char NameLast[20];
  13. int Number;
  14. int try_1;
  15. int try_2;
  16. int try_3;
  17. Sportsmen* Next;
  18. };
  19.  
  20. class List
  21. {
  22. Sportsmen* Head;
  23. public:
  24. List() :Head(NULL) {};
  25. //(Head = NULL)
  26. ~List();
  27. void ReadFromFile();
  28. void Add();
  29. void Show();
  30. void LoadToFile();
  31. void Sort();
  32. void Search();
  33. };
  34. List::~List()
  35. {
  36. while (Head != NULL)
  37. {
  38. Sportsmen* temp = Head->Next;
  39. delete Head;
  40. Head = temp;
  41. }
  42. }
  43. void List::ReadFromFile()//прочитать файл
  44. {
  45. ifstream fin("student.txt");
  46. Sportsmen* temp;
  47. if (fin.is_open())
  48. {
  49. cout << "File is open" << endl;
  50. while (!fin.eof())
  51. {
  52. temp = new Sportsmen;
  53. fin >> temp->NameLast >> temp->Number >> temp->try_1 >> temp->try_2 >> temp->try_3;
  54. temp->Next = Head;
  55. Head = temp;
  56. }
  57. cout << "Data is received" << endl;
  58. fin.close();
  59. }
  60. else cout << "File is not found";
  61. }
  62. void List::Show()//показать что в файлы (вывод)
  63. {
  64. Sportsmen* temp = Head;
  65. system("cls");
  66. cout << setw(20) << "Name" << setw(20) << "Number" << setw(10) << "Try 1" << setw(10) << "Try 2" << setw(10) << "Try 3" << endl;
  67. cout << "______________________________________________________________________________________________" << endl << endl;
  68. while (temp != NULL)
  69. {
  70. cout << setw(20) << temp->NameLast;
  71. cout << setw(20) << temp->Number;
  72. cout << setw(10) << temp->try_1;
  73. cout << setw(10) << temp->try_2;
  74. cout << setw(10) << temp->try_3 << endl;
  75. temp = temp->Next;
  76. }
  77. cout << "_______________________________________________________________________________________________" << endl << endl;
  78.  
  79. }
  80. void List::Add()
  81. {
  82. Sportsmen st;
  83. Sportsmen* temp = new Sportsmen;
  84. temp->Next = Head;
  85. system("cls");
  86. cin.ignore();
  87. cout << "NameLast: "; cin.getline(st.NameLast, 20);
  88. cout << "Number: "; cin >> st.Number;
  89. cin.ignore();
  90. cout << "Try 1: "; cin >> st.try_1;
  91. cin.ignore();
  92. cout << "Try 2: "; cin >> st.try_2;
  93. cin.ignore();
  94. cout << "Try 3: "; cin >> st.try_3;
  95. cin.ignore();
  96.  
  97. strcpy(temp->NameLast, st.NameLast);
  98. temp->Number = st.Number;
  99. temp->try_1 = st.try_1;
  100. temp->try_2 = st.try_2;
  101. temp->try_3 = st.try_3;
  102. Head = temp;
  103. }
  104. void List::Sort() {
  105.  
  106. Sportsmen* left = Head;
  107. Sportsmen* right = Head->Next;
  108. Sportsmen* temp = new Sportsmen;
  109. while (left->Next) {
  110. while (right) {
  111. if ((left->try_1) < (right->try_1)) {
  112. temp->try_1 = left->try_1;
  113. left->try_1 = right->try_1;
  114. right->try_1 = temp->try_1;
  115. }
  116. right = right->Next;
  117. }
  118. left = left->Next;
  119. right = left->Next;
  120. }
  121. }
  122.  
  123. void List::Search() {
  124. Sportsmen* temp;
  125. char e[20];
  126. cout << "Input elment: " << "\n";
  127. cin >> e;
  128. temp = Head;
  129. while (temp->Next)//пока есть значения
  130. {
  131. //strcmp тобишь если совпадает (temp->NameLast-наш элемент из списка) с нашим (e) то выдает 0
  132. if (strcmp(temp->NameLast, e) == 0) // если el - строка, то нужно объявить как char el[20], если символ, то сравнивать можно без strcmp
  133. {
  134. cout << "Finded :) " << "\n";
  135. break; // чтобы выйти из цикла при нахождении первого элемента
  136. }
  137. else
  138. temp = temp->Next;
  139. }
  140. }
  141.  
  142.  
  143.  
  144.  
  145. int main() {
  146. cout.setf(ios::left);
  147. bool flag = true;
  148. int choice;
  149. Sportsmen Sportsmen;
  150. List spisok;
  151. while (flag)
  152. {
  153. system("cls");
  154. cout << " MENU" << endl;
  155. cout << "_____________________________" << endl;
  156. cout << "1: Read from the file" << endl;
  157. cout << "2: Show list" << endl;
  158. cout << "3: Add Sportsmen" << endl;
  159. cout << "4: Save to the file" << endl;
  160. cout << "5: Zadanie" << endl;
  161. cout << "6: Search" << endl;
  162. cout << "7: Sort" << endl;
  163. cout << "8: Exit" << endl;
  164. cout << "_____________________________" << endl << endl;
  165. cout << "Make your choice (1-8): ";
  166. cin >> choice;
  167. switch (choice)
  168. {
  169. case 1: spisok.ReadFromFile();
  170. system("PAUSE");
  171. break;
  172. case 2: spisok.Show();
  173. system("PAUSE");
  174. break;
  175. case 3: spisok.Add();
  176. break;
  177. case 5: spisok.Search();
  178. system("PAUSE");
  179. break;
  180. case 6: spisok.Search();
  181. system("PAUSE");
  182. break;
  183. case 7: spisok.Sort();
  184. system("PAUSE");
  185. break;
  186. case 8: flag = false;
  187. break;
  188. default: cout << "You are wrong. ";
  189.  
  190. }
  191. }
  192. system("PAUSE");
  193. return 0;
  194. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement