Advertisement
Guest User

Untitled

a guest
Jan 16th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.84 KB | None | 0 0
  1. #include <iostream>
  2. #include <conio.h>
  3.  
  4. using namespace std;
  5.  
  6. enum Items : int
  7. {
  8.     Aries, //oven
  9.     Leo, //lev
  10.     Sagittarius, //strelec
  11.     Taurus, //telec
  12.     Virgo, //deva
  13.     Capricorn, //cozerog
  14.     Gemini, //blizneci
  15.     Libra, //vesi
  16.     Aquarius, //vodolei
  17.     Cancer, //rak
  18.     Scorpio, //scorpion
  19.     Pisces //ribi
  20. };
  21.  
  22. char ItemsTexts[12][30] =
  23. {
  24.     "Овен",
  25.     "Лев",
  26.     "Стрелец",
  27.     "Телец",
  28.     "Дева",
  29.     "Козерог",
  30.     "Блезнецы",
  31.     "Весы",
  32.     "Водолей",
  33.     "Рак",
  34.     "Скорпион",
  35.     "Рыбы"
  36. };
  37.  
  38. enum Month
  39. {
  40.     January=1,
  41.     February,
  42.     March,
  43.     April,
  44.     May,
  45.     June,
  46.     July,
  47.     August,
  48.     September,
  49.     October,
  50.     November,
  51.     December
  52. };
  53.  
  54. struct Person
  55. {
  56.     int Date[3];
  57.     char Name[20];
  58.     char LName[50];
  59. };
  60.  
  61. int getSignature(Person man);
  62. bool isInInterval(int D, int M, int d1, int m1, int d2, int m2);
  63.  
  64. int main()
  65. {
  66.     /*
  67.     Знак зодиака. Фамилия, имя, знак зодиака, дата рождения.
  68.     Дату рождения реализовать с помощью битового поля, знак зодиака – через перечисления
  69.     */
  70.  
  71.     setlocale(LC_ALL,"Russian");
  72.     system("color 8b");
  73.  
  74.     cout << "<========ЗНАКИ ЗОДИАКА ПО ДАТАМ========>" << endl << endl;
  75.  
  76.     while(true)
  77.     {
  78.         Person man;
  79.         cout << "[?] Имя: "; cin >> man.Name;
  80.         cout << "[?] Фамилия: "; cin >> man.LName;
  81.         cout << "[?] Дата[ДЕНЬ]: "; cin >> man.Date[2];
  82.         cout << "[?] Дата[МЕСЯЦ]: "; cin >> man.Date[1];
  83.         cout << "[?] Дата[ГОД]: "; cin >> man.Date[0];
  84.         if(getSignature(man) != -1)
  85.         cout << "[*] Знак зодиака: " << ItemsTexts[getSignature(man)];
  86.         else cout << "[!]  Синтаксическая ошибка выполнения!";
  87.  
  88.         cout << endl << endl;
  89.     }
  90.  
  91.     system("pause");
  92.     return 0;
  93. }
  94.  
  95. bool isInInterval(int D, int M, int d1, int m1, int d2, int m2)
  96. {
  97.     if((M == m1 && D > d1) || (M == m2 && D < d2)) return true;
  98.     else return false;
  99. }
  100.  
  101. int getSignature(Person man)
  102. {
  103.     int m = man.Date[1], d = man.Date[2];
  104.    
  105.     if(isInInterval(d, m, 21, March, 20, April)) return Aries;
  106.     if(isInInterval(d, m, 21, April, 21, May)) return Taurus;
  107.     if(isInInterval(d, m, 22, May, 21, June)) return Gemini;
  108.     if(isInInterval(d, m, 22, June, 22, July)) return Cancer;
  109.     if(isInInterval(d, m, 23, July, 22, August)) return Leo;
  110.     if(isInInterval(d, m, 23, August, 23, September)) return Virgo;
  111.     if(isInInterval(d, m, 24, September, 23, October)) return Libra;
  112.     if(isInInterval(d, m, 24, October, 22, November)) return Scorpio;
  113.     if(isInInterval(d, m, 23, November, 21, December)) return Sagittarius;
  114.     if(isInInterval(d, m, 22, December, 20, January)) return Capricorn;
  115.     if(isInInterval(d, m, 21, January, 19, February)) return Aquarius;
  116.     if(isInInterval(d, m, 20, February, 20, March)) return Pisces;
  117.    
  118.     return -1;
  119. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement