avr39ripe

cppStructAdv

Oct 18th, 2021
732
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include <iostream>
  2.  
  3. enum Dates { Day, Month, Year };
  4.  
  5. struct Date
  6. {
  7.     int day;
  8.     int month;
  9.     int year;
  10.  
  11.     void enter()
  12.     {
  13.         std::cin >> day;
  14.         std::cin >> month;
  15.         std::cin >> year;
  16.     }
  17.  
  18.     void print()
  19.     {
  20.         std::cout << day << '.' << month << '.' << year;
  21.     }
  22.     //void printDate(const Date& date)
  23.     //{
  24.     //  std::cout << date.day << '.' << ((date.month < 10) ? '0' : '\0') << date.month << '.' << date.year;
  25.     //}
  26.  
  27.     //Date& enterDate(Date& date)
  28.     //{
  29.     //  std::cin >> date.day;
  30.     //  std::cin >> date.month;
  31.     //  std::cin >> date.year;
  32.  
  33.     //  return date;
  34.     //}
  35.  
  36. };
  37.  
  38. void printDate(const Date& date)
  39. {
  40.     std::cout << date.day << '.' << ((date.month < 10) ? '0': '\0') << date.month << '.' << date.year;
  41. }
  42.  
  43. Date& enterDate(Date& date)
  44. {
  45.     std::cin >> date.day;
  46.     std::cin >> date.month;
  47.     std::cin >> date.year;
  48.  
  49.     return date;
  50. }
  51.  
  52. void printDate(int day, int month, int year)
  53. {
  54.     std::cout << day << '.' << ((month < 10) ? '0' + month : month) << '.' << year;
  55. }
  56.  
  57.  
  58. void printDate(int* date)
  59. {
  60.     std::cout << date[Dates::Day] << '.' << date[Dates::Month] << '.' << date[Dates::Year];
  61. }
  62.  
  63. int compareDate(int dayA, int monthA, int yearA, int dayB, int monthB, int yearB)
  64. {
  65.     if (yearA > yearB)
  66.     {
  67.         return 1;
  68.     }
  69.     else if ( yearA < yearB)
  70.     {
  71.         return -1;
  72.     }
  73.    
  74.     if (monthA > monthB)
  75.     {
  76.         return 1;
  77.     }
  78.     else if (monthA < monthB)
  79.     {
  80.         return -1;
  81.     }
  82.  
  83.     if (dayA > dayB)
  84.     {
  85.         return 1;
  86.     }
  87.     else if (dayA < dayB)
  88.     {
  89.         return -1;
  90.     }
  91.  
  92.     return 0;
  93. }
  94.  
  95.  
  96.  
  97. void testFunc(char, bool) { std::cout << "I'm alive! testFunc\n"; };
  98.  
  99. Date* generateDate()
  100. {
  101.     Date* gen{ new Date{ (rand() % 31) + 1, (rand() % 12) + 1, (rand() % 10000) + 1 } };
  102.     return gen;
  103. }
  104.  
  105.  
  106.  
  107.  
  108.  
  109.  
  110. int main()
  111. {
  112.     Date myDate{ 11,11,1997 }; // myDate.day {11}, myDate.month{10}, myDate.year{1997}
  113.     Date copyDate{24, 12, 1991}; // copyDate.day{ myDate.day }, copyDate.month{myDate.month}, copyDate.year {myDate.year}
  114.        
  115.     printDate(myDate); std::cout << '\n';
  116.     printDate(copyDate); std::cout << '\n';
  117.  
  118.  
  119.     myDate.enter();
  120.     copyDate.enter();
  121.  
  122.     myDate.print(); std::cout << '\n';
  123.     copyDate.print(); std::cout << '\n';
  124.  
  125.     return 0;
  126. }
RAW Paste Data