evgeniyosipov

Ktozdeshozain.cpp

Dec 27th, 2014
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 5.63 KB | None | 0 0
  1. #include "stdafx.h"
  2.  
  3. using std::cin;
  4. using std::cout;
  5. using std::cerr;
  6. using std::endl;
  7. using std::flush;
  8. using std::string;
  9.  
  10.  
  11. int _tmain(int argc, _TCHAR* argv[])
  12. {
  13.  
  14.     setlocale(LC_ALL, "Russian");
  15.  
  16.     int kolvoChel=0;
  17.     int m=0;
  18.     int w=0;
  19.     int k=0;
  20.     string yn;
  21.     string pol;
  22.     string kid;
  23.     string names;
  24.  
  25.     cout << "Здравствуйте, вас приветствует \"Собиратор - 1000\". \nПоговорите со мной пожалуйста, а взамен я вам скажу приятные вещи.\n" << endl;
  26.  
  27.     cout << "Введите количество мужчин в семье: " << flush;
  28.     while (cin >> m, !cin.eof()){
  29.  
  30.              if(cin.fail()){
  31.              cerr << "Ошибка! Введите количество мужчин в семье (целое число): " << flush;
  32.              cin.clear();
  33.              cin.get();
  34.              fflush(stdin);
  35.              continue;
  36.              }
  37.  
  38.              fflush(stdin);
  39.              break;
  40.              }
  41.  
  42.  
  43.     cout << "Введите количество женщин в семье: " << flush;
  44.     while (cin >> w, !cin.eof()){
  45.  
  46.              if(cin.fail()){
  47.              cerr << "Ошибка! Введите количество женщин в семье (целое число): " << flush;
  48.              cin.clear();
  49.              cin.get();
  50.              fflush(stdin);
  51.              continue;
  52.              }
  53.  
  54.              fflush(stdin);
  55.              break;
  56.              }
  57.  
  58.     kolvoChel = m + w; // Общее кол-во человек в семье
  59.  
  60.     cout << "Введите количество детей в семье (до 18 лет): " << flush;
  61.     while (cin >> k, !cin.eof()){
  62.  
  63.              if (k > kolvoChel){
  64.              cerr << "Ошибка! Детей в семье не может быть больше общего кол-ва человек!\n"
  65.                   << "Введите количество детей в семье (целое число): " << flush;
  66.              cin.clear();
  67.              cin.get();
  68.              fflush(stdin);
  69.              continue;
  70.              }
  71.  
  72.              if(cin.fail()){
  73.              cerr << "Ошибка! Введите количество детей в семье (целое число): " << flush;
  74.              cin.clear();
  75.              cin.get();
  76.              fflush(stdin);
  77.              continue;
  78.              }
  79.  
  80.              fflush(stdin);
  81.              break;
  82.              }
  83.  
  84.     cout << "\n" << endl;
  85.    
  86.    
  87. //Имя     
  88.         cout << "Введите ваше имя: " << flush;
  89.         cin >> names;
  90.  
  91. //Пол
  92.     while (1)
  93. {  
  94.     cout << "Какого вы пола (M (мужского) или W (женского))?: " << flush;
  95.     cin >> pol;
  96.     switch (pol[0])
  97.     {
  98.     case 'M':
  99.     case 'W':
  100.     case 'm':
  101.     case 'w':
  102.              break;
  103.     default:
  104.             cout << "Ошибка! Введите M или W" << endl;
  105.             continue;
  106.     }
  107.  
  108.     break;
  109. }
  110.  
  111. // Вопрос про главного
  112.     while (1)
  113.     {  
  114.         cout << "Вы главный человек в доме (Y (да) или NO (нет))?: " << flush;
  115.         cin >> yn;
  116.         switch (yn[0])
  117.      {
  118.         case 'n':
  119.         case 'y':
  120.         case 'N':
  121.         case 'Y':
  122.                 break;
  123.         default:
  124.                 cout << "Ошибка! Введите Y или N" << endl;
  125.                 continue;
  126.      }
  127.        
  128.         break;
  129.     }
  130. // Если главный в семье
  131.     while(1){
  132.         if (yn[0] == 'y' || yn[0] == 'Y') {
  133.  
  134.        
  135.         if (pol[0] == 'M' || pol[0] == 'm')
  136.             cout << endl << "Да вы просто молодец, настоящий полковник ;)\n" << endl;
  137.         else cout << endl << "Да вы амазонка, настоящая воительница ;)\n" << endl;
  138.         break;
  139.      
  140. // Если не главный в семье
  141.     } else {
  142.         if (pol[0] == 'M' || pol[0] == 'm')
  143.             cout << endl  << "Понимаю, в жизьни всё бывает" << endl;
  144.         else cout << endl  << "Ну и правильно, вы умница! Мужчина капитан, а вы его компас ;)" << endl;
  145.         break;
  146.     }
  147.     }
  148.  
  149.     // Вопрос, являитесь ли вы ребёнком
  150.     if (k>0) {
  151.     while (1)
  152.     {  
  153.         cout << "\nПродолжаем дальше...\n" << endl;
  154.         cout << "Ах да, чуть не забыл! Вам меньше 18 лет (Y (да) или N (нет))?: " << flush;
  155.         cin >> kid;
  156.         cout << endl;
  157.         switch (kid[0])
  158.      {
  159.         case 'Y':
  160.         case 'N':
  161.         case 'y':
  162.         case 'n':
  163.                  break;
  164.         default:
  165.                 cout << "Ошибка! Введите Y или N" << endl;
  166.                 continue;
  167.      }
  168.         if ((kid[0] == 'Y' || kid[0] == 'y')&&(pol[0] == 'M' || pol[0] == 'm')&&(yn[0] == 'y' || yn[0] == 'Y'))
  169.             cout << "ООООО, да вы юный император, принц так сказать ;).\n" << endl;
  170.  
  171.         else if ((kid[0] == 'Y' || kid[0] == 'y')&&(pol[0] == 'W' || pol[0] == 'w')&&(yn[0] == 'y' || yn[0] == 'Y'))
  172.             cout << "Ничего себе, юная императрица, принцесса так сказать ;)\n" << endl;
  173.  
  174.         break;
  175.     }
  176.     }
  177.  
  178.     // Итоги
  179.     cout << "Подведём итоги: " << "У вас в семье " << kolvoChel << " человек\n" << endl;
  180.     cout << "Мужчин: " << m << "  " << "Женщин: " << w << "  " << "Детей: " << k << "\n" << endl;
  181.     if(yn[0] == 'y' || yn[0] == 'Y')
  182.         cout << "Вы глава семейства" << endl;
  183.  
  184.     else
  185.         cout << "Вы не глава семейства" << endl;
  186.  
  187.     if(kid[0] == 'Y' || kid[0] == 'y')
  188.         cout << "Вам < 18 лет\n" << endl;
  189.  
  190.     else
  191.         cout << "Вам 18 или более лет\n" << endl;
  192.  
  193.     cout << "Спасибо за ваше внимание, я теперь ваш электронный друг!\n"
  194.          << "С уважением, \"Собиратор - 1000\" \n"
  195.          << "\nЕвгений Осипов (www.fastandclever.ru), 2011\n" << std::endl;
  196.  
  197.     system ("pause");  
  198.     return 0;
  199. }
Advertisement
Add Comment
Please, Sign In to add comment