ChameL1oN

Ильяс_Индивидуалка

Dec 31st, 2015
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.56 KB | None | 0 0
  1. #define _CRT_SECURE_NO_WARNINGS
  2.  
  3. #include <iostream>
  4. #include <fstream>
  5. #include <locale>
  6.  
  7. using namespace std;
  8. //
  9. //
  10. //а) сколько мужчин старше 40 лет, имеющих высшее образование, ответили ДА на вопрос анкеты;
  11. //б) сколько женщин моложе 30 лет, имеющих среднее образование, ответили НЕТ на вопрос анкеты
  12. //в) сколько мужчин моложе 25 лет, имеющих начальное образование, ответили ДА на вопрос анкеты;
  13. //□производит вывод всех анкет и ответов на вопросы.Программа должна обеспечивать диалог с помощью меню и контроль ошибок при вводе.
  14.  
  15.  
  16.  
  17.  
  18. struct point{
  19. int age;
  20. bool male;
  21. short int prof;
  22. bool quest;
  23. point* next;
  24. };
  25.  
  26. ifstream f("Text.txt", ios::in);
  27.  
  28. point* MakeList(point* beg, int n){
  29. char quest;
  30. char male;
  31. beg->next = NULL;
  32. //cout << "Возраст?" << endl;
  33. //cin >> beg->age;
  34. f >> beg->age;
  35. //cout << "Введите пол: М or F" << endl;
  36. //cin >> male;
  37. f >> male;
  38. if (male == 'M'){
  39. beg->male = true;
  40. }
  41. else if(male == 'F'){
  42. beg->male = false;
  43. }
  44. else{
  45. cout << "Ошибка в вводе пола первого анкетируемого! [Необходимо: M или F]" << endl;
  46. }
  47. /*cout << "Выберите уровень образования:" << endl;
  48. cout << "1 - Начальное" << endl << "2 - Среднее" << endl << "3 - Высшее" << endl;
  49. cin >> beg->prof;
  50. cout << "Ответ на вопрос анкеты: Y/N" << endl;
  51. cin >> quest;*/
  52. f >> beg->prof;
  53. f >> quest;
  54. if (quest == 'Y' || quest == 'y'){
  55. beg->quest = true;
  56. }
  57. else{
  58. beg->quest = false;
  59. }
  60. point* r = beg;
  61. for (int i = 0; i < n - 1; i++){
  62. point* p = new(point);
  63. r->next = p;
  64. p->next = NULL;
  65. //cout << "Возраст?" << endl;
  66. //cin >> p->age;
  67. //cout << "Введите пол: М or F" << endl;
  68. //cin >> male;
  69. f >> p->age;
  70. f >> male;
  71. if (male == 'M'){
  72. p->male = true;
  73. }
  74. else if (male == 'F'){
  75. beg->male = false;
  76. }
  77. else{
  78. cout << "Ошибка в вводе пола! [Необходимо: M или F]" << endl;
  79. }
  80. //cout << "Выберите уровень образования:" << endl;
  81. //cout << "1 - Начальное" << endl << "2 - Среднее" << endl << "3 - Высшее" << endl;
  82. //cin >> p->prof;
  83. //cout << "Ответ на вопрос анкеты: Y/N" << endl;
  84. //cin >> quest;
  85. f >> p->prof;
  86. f >> quest;
  87. if (quest == 'Y' || quest == 'y'){
  88. p->quest = true;
  89. }
  90. else{
  91. p->quest = false;
  92. }
  93. r = p;
  94. }
  95. return beg;
  96. }
  97.  
  98. void print(point* beg){
  99. ofstream f("output.txt");
  100. int i = 1;
  101. while (beg != NULL){
  102. cout << "Подопытный #" << 665 + i << " : " << endl;
  103. cout << "Возраст: " << beg->age << endl;
  104. cout << "Пол: ";
  105. if (beg->male == true){
  106. cout << "Мужчина" << endl;
  107. }
  108. else{
  109. cout << "Женщина" << endl;
  110. }
  111. cout << "Образование: ";
  112. f << "Подопытный #" << 665 + i << " : " << endl;
  113. f << "Возраст: " << beg->age << endl;
  114. f << "Пол: ";
  115. if (beg->male == true){
  116. f << "Мужчина" << endl;
  117. }
  118. else{
  119. f << "Женщина" << endl;
  120. }
  121. f << "Образование: ";
  122. if (beg->prof == 1){
  123. cout << "Начальное" << endl;
  124. f << "Начальное" << endl;
  125. }
  126. else if (beg->prof == 2){
  127. cout << "Среднее" << endl;
  128. f << "Среднее" << endl;
  129. }
  130. else{
  131. cout << "Высшее" << endl;
  132. f << "Высшее" << endl;
  133. }
  134. cout << "Ответ на вопрос в анкете: ";
  135. f << "Ответ на вопрос в анкете: ";
  136. if (beg->quest == 1){
  137. cout << "Yes" << endl;
  138. f << "Yes" << endl;
  139. }
  140. else{
  141. cout << "No" << endl;
  142. f << "No" << endl;
  143. }
  144. cout << endl;
  145. cout << endl;
  146. f << endl;
  147. f << endl;
  148. beg = beg->next;
  149. i++;
  150. }
  151. }
  152.  
  153. void Find(point* beg){
  154. point* p = beg;
  155. int a=0, b=0, c=0;
  156. while (p != NULL){
  157. if (p->age > 40 && p->male == true && p->prof == 3) a++;
  158. if (p->age < 30 && p->male == false && p->prof == 2) b++;
  159. if (p->age < 25 && p->male == true && p->prof == 1) c++;
  160. p = p->next;
  161. }
  162. cout << "a)" << a << endl << "б)" << b << endl << "в)" << c << endl;
  163. }
  164. void main(){
  165.  
  166. setlocale(LC_ALL, "rus");
  167. int n;
  168. char make;
  169. bool flag = true;
  170. point* beg = new(point);
  171. beg->age = NULL;
  172. cout << "Введите кол-во записей" << endl;
  173. //cin >> n;
  174. f >> n;
  175. while (flag){
  176. cout << endl; cout << endl; cout << endl;
  177. cout << "Выберите действие:" << endl << "1 - Сформировать список " << endl << "2 - Распечатать данные" << endl << "3 - Поиск анкет" << endl << "4 - Exit" << endl;
  178. cout << endl; cout << endl;
  179. cin >> make;
  180. switch (make)
  181. {
  182. case '1': beg = MakeList(beg, n); break;
  183. case '2': if (beg->age != NULL)print(beg);
  184. else cout << "Список ещё не сформирован или пуст, воспользуйтесь операцией под номером 1" << endl << "При повторной ошибке обратитесь к разработчику" << endl; break;
  185. case '3': Find(beg); break;
  186. case '4': flag = false; break;
  187. default: cout << "Ошибка ввода" << endl; flag = true;
  188. break;
  189. }
  190. }
  191. cout << endl;
  192. }
Advertisement
Add Comment
Please, Sign In to add comment