Tassos

Δημιουργία αντικειμένου Time σε C++.

Mar 16th, 2015
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 7.29 KB | None | 0 0
  1. {                                      Visit:   http://g-lts.info/  for more code!                            }
  2.  
  3. # include <iostream>
  4.  
  5. using namespace std;
  6.  
  7. class Time
  8. {
  9.     private:
  10.         int hour,minute,second;
  11.     public:
  12.         Time(int h,int m,int s);
  13.         void print12();
  14.         void print24();
  15.         void nextSecond();
  16.         void prevSecond();
  17.         int toSeconds();
  18.         int countMidnight();
  19.        
  20.         bool setHour(int h );
  21.         bool setMinute(int m);
  22.         bool setSecond(int s);
  23.        
  24.         int getHour();
  25.         int getMinute();
  26.         int getSecond();
  27. };
  28.  
  29.  
  30.  
  31. Time::Time(int h,int m,int s)
  32. {
  33.     hour=h;
  34.     minute=m;
  35.     second=s;
  36. }
  37.  
  38.  
  39. /* Τέλος κατασκευαστή.*/
  40.  
  41.  
  42. /* ================================================================== */
  43. /* Μέθοδοι set : */
  44.    
  45.            
  46. bool Time::setHour(int h )
  47. { // Θέτει την ώρα ελέγχοντας την όμως.
  48.     if ( h<0 || h>23 ) // Αν ΔΕΝ είναι στο διάστημα [0 - 23].
  49.         return false;
  50.  
  51.     hour=h; // Αν είναι στο σωστό διάστημα τότε το δεχόμαστε.
  52.     return true; // :)
  53. }
  54.  
  55.  
  56.  
  57. bool Time::setMinute(int m)
  58. { // Θέτει τα λεπτά ελέγχοντάς τα όμως.
  59.     if ( m<0 || m>59 ) // Αν ΔΕΝ είναι στο διάστημα [0 - 59].
  60.         return false;
  61.        
  62.     minute=m; // Αν είναι στο σωστό διάστημα τότε το δεχόμαστε.
  63.     return true;
  64. }
  65.  
  66.  
  67.  
  68. bool Time::setSecond(int s)
  69. { // Θέτει τα δευτερόλεπτα ελέγχοντάς τα όμως.
  70.     if ( s<0 || s>59 ) // Αν ΔΕΝ είναι στο διάστημα [0 - 59].
  71.         return false;
  72.        
  73.     second = s; // Αν είναι στο σωστό διάστημα τότε το δεχόμαστε.
  74.     return true;
  75. }
  76.  
  77.  
  78. /* Τέλος των μεθόδων set . */
  79. /* ================================================================== */
  80. /* Μέθοδοι get : */
  81.  
  82.        
  83. int Time::getHour()
  84. {
  85.     return hour;
  86. }
  87.  
  88.  
  89.  
  90. int Time::getMinute()
  91. {
  92.     return minute;
  93. }
  94.  
  95.  
  96.  
  97. int Time::getSecond()
  98. {
  99.     return second;
  100. }
  101.  
  102.  
  103.  
  104. /* Τέλος των μεθόδων get . */
  105.  
  106. /* ================================================================== */
  107.  
  108.  
  109.  
  110. int Time::toSeconds()
  111. { // Μετατρέπει την ώρα σε δευτερόλεπτα.
  112.     int total=0;
  113.     total=total+second; // Προσθέτουμε αρχικά τα δευτερόλεπτα στα "συνολικά δευτερόλεπτα".
  114.     total = total + minute * 60; // Μετατρέπουμε τα λεπτά σε δευτερόλεπτα (minute * 60) και τα προσθέτουμε και αυτά στο σύνολο.
  115.     total = total + hour * 3600; // Μετατρέπουμε τις ώρες σε λεπτά (hour * 3600) και τις προσθέτουμε στο σύνολο.
  116.     return total; // Τέλος επιστρέφουμε τα συνολικά λεπτά.
  117. }
  118.  
  119.  
  120.  
  121. int Time::countMidnight()
  122. {// Επιστρέφει τα δευτερόλεπτα που υπολείπονται μέχρι το πέρας της ημέρας.
  123.     int count1=toSeconds(); // Μετατρέπουμε καταρχήν των τρέχουσα ώρα σε δευτερόλεπτα.
  124.     int count2=24 * 3600; // Μετατρέπουμε την τελευταία ώρα της ημέρας σε δευτερόλεπτα.
  125.     return count2-count1; // Αφαιρούμε από τα μεσάνυχτα την τρέχουσα ώρα και βλέπουμε - επιστρέφουμε τι απομένει.
  126. }
  127.  
  128.  
  129.  
  130. void Time::print12()
  131. {// Επιστρέφει την ώρα σε 12ωρη μορφή.
  132.     if ( hour > 12 ) // Αν είναι πάνω από 12 η ώρα, αφαιρούμε από την τρέχουσα ώρα 12.
  133.         cout<<hour-12<<":"<<minute<<":"<<second<< " μ.μ"<<endl;
  134.     else // Διαφορετικά οκ όλα είναι μια χαρά. ;)
  135.         cout<<hour<<":"<<minute<<":"<<second<<" π.μ." << endl;
  136. }
  137.  
  138.  
  139.  
  140. void Time::print24()
  141. { // Απλώς εμφανίζει την ώρα.
  142.     cout<<hour<<":"<<minute<<":"<<second<<endl;
  143. }
  144.  
  145.  
  146.  
  147. void Time::prevSecond()
  148. { // Πάμε την τρέχουσα ώρα 1 δευτερόλεπτο πίσω.
  149.     --second; // Αφαιρούμαι απλά 1 δευτερόλεπτο.
  150.     if ( second == -1 ) // Αν ήταν στο 0 όμως και πάει στο -1 ( δε το θέλουμε αυτό ) :
  151.     {
  152.         second=59; // Έτσι ορίζουμε τα δευτερόλεπτα να έχουν τιμή 59 και όχι -1.
  153.         --minute; // Όμως έτσι εννοείται πως πάμε και ένα λεπτό πίσω. ;)
  154.        
  155.         if ( minute == -1 ) // Αν τα λεπτά ήταν στο 0 όμως και πάει στο -1 ( δε το θέλουμε αυτό ) :
  156.         {
  157.             minute=59; // Έτσι ορίζουμε τα λεπτά να έχουν τιμή 59 και όχι -1.
  158.             hour--; // & έτσι εννοείται όμως πως πάμε και μια ώρα πίσω. ;)
  159.            
  160.             if ( hour == -1 ) // Αν όμως και η ώρα ήταν στο 0 και πάει στο -1, τότε :
  161.             {
  162.                 hour=23; // ορίζουμε πως η ώρα θα είναι 23 .
  163.             }
  164.         }
  165.     }
  166. }
  167.  
  168.  
  169.    
  170. void Time::nextSecond()
  171. { // Πάμε 1 δευτερόλεπτο μπροστά.
  172.  
  173.     ++second; // Προσθέτουμε απλώς 1 δευτερόλεπτο στην ιδιότητα του αντικειμένου μας.
  174.  
  175.     if ( second == 60 ) // Αν τα δευτερόλεπτα όμως γίνουν 60 ( δε το θέλουμε αυτό ) :
  176.     {
  177.         minute++; // Αυτό σημαίνει πως πάμε τελικά 1 λεπτό εμπρός ( χάρης του ενός δευτερολέπτου )
  178.         second=0; // και τα δευτερόλεπτα εννοείται μηδενίζονται.
  179.        
  180.         if ( minute == 60 ) // Αν τα λεπτά όμως γίνουν 60 ( δε το θέλουμε αυτό ) :
  181.         {
  182.             hour++; // Τότε τελικά πάμε μια ώρα εμπρός
  183.             minute=0; // και τα λεπτά μηδενίζονται.
  184.            
  185.             if ( hour == 24 ) // Τέλος αν η ώρα γίνει 24 ( πράγμα το οποίο δε το θέλουμε )
  186.             {
  187.                 hour=0; // Η ώρα μηδενίζει. :)
  188.             }
  189.         }
  190.     }
  191. }
  192.  
  193.  
  194.  
  195.  
  196.  
  197.  
  198.  
  199.  
  200.  
  201. int main()
  202. {
  203.     Time t1(23,59,59); // Δημιουργούμε το αντικείμενο t1 και θέτουμε απευθείας την ώρα.
  204.     Time t2(22,59,59); // Δημιουργούμε το αντικείμενο t2 και θέτουμε απευθείας την ώρα.
  205.    
  206.     t1.print12(); // Εμφανίζουμε την ώρα σε 12ωρη μορφή.
  207.    
  208.     t2.print24(); // Εμφανίζουμε την ώρα σε 24ωρη μορφή.
  209.    
  210.     cout<<"Η ώρα άλλαξε. "<<endl;
  211.    
  212.     t2.nextSecond(); // Πάμε 1 sec μπροστά.
  213.    
  214.     t2.print24();// Εμφανίζουμε την ώρα σε 24ωρη μορφή.
  215.    
  216.     cout<<"Προς τα κάτω. "<<endl;
  217.    
  218.     t2.prevSecond(); // Αφαιρούμε 1 sec από την τρέχω ώρα του t2.
  219.    
  220.     t2.print24(); // Εμφανίζουμε την ώρα σε 24ωρη μορφή.
  221.    
  222.    
  223.     cout<<"Η t1 απέχει από τα μεσάνυχτα : "<<t1.countMidnight()<<endl;
  224.     cout<<"Η t2 απέχει από τα μεσάνυχτα : "<<t2.countMidnight()<<endl;
  225.    
  226.     return 0;
  227. }
  228.  
  229.  
  230.  
  231.  
  232.  
  233.  
  234.  
  235. {                                      Visit:   http://g-lts.info/  for more code!                            }
Advertisement
Add Comment
Please, Sign In to add comment