Advertisement
Guest User

OOP_3 Encapsulation

a guest
Aug 24th, 2015
325
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.48 KB | None | 0 0
  1. /*
  2. შექმენით Calendar კლასი, რომელშიც დაიცავთ
  3. ინკაფსულაციის პრინციპს. აღნიშნულ კლასს უნდა ჰქონდეს
  4. day, month, year ველები, ორი კონსტრუქტორი - ერთი სამ პარამეტრიანი,
  5. მეორე უპარამეტრო, ასევე უნდა ჰქონდეს დამხმარე ფუნქციები (setter, getter),
  6. და უნდა ჰქონდეს თარიღის შემოწმების ფუნქცია
  7.  
  8. */
  9.  
  10. #include <iostream>
  11.  
  12. using namespace std;
  13.  
  14. class Calendar{
  15. private:
  16.     int day;
  17.     int month;
  18.     int year;
  19. public:
  20.     Calendar();
  21.     Calendar(int d, int m, int y);
  22.     void checkDate(int &d, int &m, int &y);
  23.  
  24.     int get_d();
  25.     void set_d(int d);
  26.  
  27.     int get_m();
  28.     void set_m(int m);
  29.  
  30.     int get_y();
  31.     void set_y(int y);
  32.  
  33.     void printDate(Calendar &calendar);
  34. };
  35.  
  36. Calendar::Calendar(){
  37.     day = 1;
  38.     month = 1;
  39.     year = 1970;
  40. }
  41.  
  42. Calendar::Calendar(int d, int m, int y){
  43.     checkDate(d, m, y);
  44.     day = d;
  45.     month = m;
  46.     year = y;
  47. }
  48.  
  49. int Calendar::get_d(){
  50.     return day;
  51. }
  52.  
  53. int Calendar::get_m(){
  54.     return month;
  55. }
  56.  
  57. int Calendar::get_y(){
  58.     return year;
  59. }
  60.  
  61. void Calendar::set_d(int d){
  62.     day = d;
  63. }
  64.  
  65. void Calendar::set_m(int m){
  66.     month = m;
  67. }
  68.  
  69. void Calendar::set_y(int y){
  70.     year = y;
  71. }
  72.  
  73. void Calendar::checkDate(int &d, int &m, int &y){
  74.     if (d < 0){
  75.         d = -d;
  76.     }
  77.     if (m < 0){
  78.         m = -m;
  79.     }
  80.     if (y < 0){
  81.         y = -y;
  82.     }
  83.  
  84.     if (m > 12){
  85.         m = m % 12;
  86.     }
  87.  
  88.     if (y % 4 == 0 && m == 2 && d > 28){
  89.         d = d % 28;
  90.     }
  91.  
  92.     if ((m == 1 || m == 3 || m == 5 || m == 7 || m == 8 || m == 10 || m == 12) && d > 31){
  93.         d = d % 31;
  94.     }
  95.  
  96.     if ((m == 4 || m == 6 || m == 9 || m == 11 ) && d > 30){
  97.         d = d % 30;
  98.     }
  99.  
  100. }
  101.  
  102. void printDate(Calendar &c){
  103.     cout << "Day : " << c.get_d() << endl << "Month : " << c.get_m() << endl << "Year : " << c.get_y() << endl << endl;
  104. }
  105.  
  106. int main(){
  107.  
  108.     Calendar cal1(28,07,1993);
  109.  
  110.     printDate(cal1);
  111.  
  112.     Calendar cal2(31, 2, 2012);
  113.  
  114.     printDate(cal2);
  115.  
  116.     Calendar cal3;
  117.     printDate(cal3);
  118.  
  119.     int day, month, year;
  120.     cout << "Shemoitanet dge" << endl;
  121.     cin >> day;
  122.  
  123.     cout << "Shemoitanet tve" << endl;
  124.     cin >> month;
  125.  
  126.     cout << "Shemoitanet weli" << endl;
  127.     cin >> year;
  128.  
  129.      cal3;
  130.     cal3.set_d(day);
  131.     cal3.set_m(month);
  132.     cal3.set_y(year);
  133.  
  134.     printDate(cal3);
  135.  
  136.     return 0;
  137. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement