home *** CD-ROM | disk | FTP | other *** search
- /*
- prog5-4.cpp
-
- En enkel klass för klockslag, nu med stöd för ut- och inmatning
- via iostream.
-
- */
-
- #include <iostream.h>
-
- class time
- {
- private:
-
- int h, m;
-
- public:
-
- // konstruktor med förvalda argument
- time(int = 0, int = 0);
-
- // ändra klockslag
- void set(int, int);
-
- // hämta minut
- int getminute() const { return m; }
-
- // hämta timme
- int gethour() const { return h; }
-
- // skriv ut klockslag
- friend ostream& operator<<(ostream&,const time&);
-
- // mata in klockslag
- friend istream& operator>>(istream&,time&);
- };
-
- // konstruktor
- time::time(int hour, int minute)
- {
- h = hour;
- m = minute;
- }
-
- // ändra klockslag
- void time::set(int hour, int minute)
- {
- h = hour;
- m = minute;
- }
-
- // skriv ut klockslag
- ostream& operator<<(ostream& o,const time& t)
- {
- // mata ut timme och tecknet ':'
- o << t.gethour() << ':';
-
- // för att göra utmatningen lite snyggare, använder vi
- // medlemsfunktionerna width och fill så att minuterna
- // alltid skrivs ut med två siffror och fylls ut med
- // nollor (gör att 12:00 skrivs ut istället för 12:0).
- o.width(2);
- o.fill('0');
-
- // mata ut minut
- return o << t.getminute();
- }
-
- // mata in klockslag
- istream& operator>>(istream& i,time& t)
- {
- char c;
-
- // läs in timme
- i >> t.h;
-
- // läs in separationstecken (':' eller '.')
- i >> c;
-
- // läs in minut
- return i >> t.m;
- }
-
- // testa klassen time
- main()
- {
- time in,lunch,back,out;
-
- cout << "Ange dina tider (hh:mm):\n";
- cout << "In> ";
- cin >> in;
- cout << "Lunch> ";
- cin >> lunch;
- cout << "Tillbaka> ";
- cin >> back;
- cout << "Ut> ";
- cin >> out;
- cout << "Jaha, du kom " << in << ", hade lunch mellan " << lunch;
- cout << " och " << back << ", och gick klockan " << out << ".\n";
- cout << "Kallar du det en arbetsdag?\n";
-
- return 0;
- }
-
-