Sakura
Thú CƯng :
Số bài viết : 1124 Điểm : 1688 Được cảm ơn : 35 Ngày sinh : 03/11/1990 Tham gia ngày : 16/03/2010 Tuổi : 34 Đến từ : Bình Dương Ngề nghiệp : IT Student
| Tiêu đề: [OOP] - Bài Tập Class Time - Hay - Nhiều Thao Tác 26/7/2010, 08:43 | |
| Bài này mình đã cố gắng làm thêm các thao tác mà ở các bài kia không có là: overload các toán tử để có thể sử dụng cả 3 trường hợp: TIME + TIME, TIME + số, số + TIME, và nhiều cái mới nữa, các bạn cứ xem từ từ, Code rõ ràng chưa từng thấy! Hjhj! - Code:
-
#include #include using namespace std; class TIME { private: int gio, phut, giay; public: TIME() { gio = phut = giay = 0; } TIME(int gio, int phut, int giay) { this->Set(gio, phut, giay); } void Set(int gio, int phut, int giay) { if(gio > 23 || gio < 0) this->gio = 0; else this->gio = gio; if(phut > 59 || phut < 0) this->phut = 0; else this->phut = phut; if(giay > 59 || giay < 0) this->giay = 0; else this->giay = giay; } friend ostream &operator <<(ostream &os, TIME T) { os<<<":"<<<":"< return os; } friend istream &operator >>(istream &is, TIME &T) { do { cout<<"Nhap Gio: "; is>>T.gio; }while(T.gio < 0 || T.gio > 23); do { cout<<"Nhap Phut: "; is>>T.phut; }while(T.phut < 0 || T.phut > 60); do { cout<<"Nhap Giay: "; is>>T.giay; }while(T.giay < 0 || T.giay > 60); return is; } void Tang() { //Xu ly giay if(this->giay == 59) { this->giay = 0; if(this->phut == 59) { this->phut = 0; if(this->gio == 23) { this->gio = 0; } else { this->gio += 1; } } else { this->phut += 1; } } else { this->giay += 1; } } void operator++() { int tonggiay = this->TongGiay(); tonggiay++; this->DoiRaTIME(tonggiay); } void operator--() { int tonggiay = this->TongGiay(); tonggiay--; this->DoiRaTIME(tonggiay); } void Giam() { if(this->giay == 0) { this->giay = 59; if(this->phut == 0) { this->phut = 59; if(this->gio == 0) { this->gio = 23; } else { this->gio -= 1; } } else { this->phut -= 1; } } else { giay -= 1; } } int TongGiay() { int tong = 0; tong = this->gio * 3600 + this->phut * 60 + this->giay; return tong; } void DoiRaTIME(int s) { this->gio = this->phut = this->giay = 0; //86400 while(s > 86399) { s -= 86399; } while(s < 0) { s += 86399; } this->gio = s / 3600; this->phut = (s - (3600 * this->gio)) / 60; this->giay = s - (3600 * this->gio + 60 * this->phut); } TIME operator+(int giay) { TIME C; int tonggiay = this->TongGiay(); tonggiay += giay; C.DoiRaTIME(tonggiay); return C; } TIME operator-(int giay) { TIME C; int tonggiay = this->TongGiay(); tonggiay -= giay; C.DoiRaTIME(tonggiay); return C; } TIME operator+ (TIME T) { TIME temp; int tonggiay1 = this->TongGiay(); int tonggiay2 = T.TongGiay(); int tonggiay = tonggiay1 + tonggiay2; temp.DoiRaTIME(tonggiay); return temp; } TIME operator- (TIME T) { TIME temp; int tonggiay1 = this->TongGiay(); int tonggiay2 = T.TongGiay(); int tonggiay = tonggiay1 - tonggiay2; temp.DoiRaTIME(tonggiay); return temp; } friend TIME operator+(int sogiay, TIME T) { TIME C; int tonggiay = T.TongGiay(); tonggiay += sogiay; C.DoiRaTIME(tonggiay); return C; } friend TIME operator-(int sogiay, TIME T) { TIME C; int tonggiay = T.TongGiay(); tonggiay -= sogiay; C.DoiRaTIME(tonggiay); return C; } }; int main() { cout<<"-----BAI TAP CAI DAT LOP PHAN SO VA CAS PHEP TOAN CO BAN-------\n\n"; cout<<"\n----------------Programming By Edward_Thien -------------------\n\n\n"; //Cac Khai Bao Doi Tuong cout<<"\n----------- Khai Bao Doi Tuong TIME --------------\n"; TIME T; TIME A(10, 45, 30), B(10, 14, 30), TONG, HIEU; int sg; //so giay //Overload Toan Tu << & >> cout<<"\n\n----------- Overload Toan Tu << & >> -----------------\n"; cout<<"\nNhap Thoi Gian:\n"; cin>>T; cout<<"\nXuat Gio: "; cout< //Cac Phuong Thuc Tang Giam cout<<"\n\n------------------- Cac Phuong Thuc Tang Giam -------------------\n"; T.Tang(); cout<<"\nT Sau Khi Tang Len 1 Giay: "< T.Giam(); cout<<"\n\nT Sau Khi Giam Xuong 1 Giay: "<<<" Giay"; //Su Dung Toan Tu ++ && -- cout<<"\n\n------------- Su Dung Toan Tu ++ --------------------\n"; cout<[url=http://itworld.forumvi.net/]<<" Sau Khi ++: "; A++; cout< cout<<"\n\n------------- Su Dung Toan Tu -- --------------------\n"; cout<[/url][url=http://itworld.forumvi.net/]<<" Sau Khi --: "; A--; cout< //Tinh Tong So Giay cout<<"\n\n---------------------- Tinh Tong So Giay ----------------\n"; cout<<"\nTong So Giay: "< //Doi Ra Gio Tu 1 So Giay cout<<"\n\n------------ Doi Ra Gio Tu So Giay --------------\n"; cout<<"\nNhap So Giay: "; cin>>sg; T.DoiRaTIME(sg); cout<<"\n"<<<" Giay Doi Ra Duoc "< //Cong Tru 2 TIME cout<<"\n\n------------------ Cac Phep Toan Tinh Toan Tren TIME --------------------\n"; TONG = A + B; cout<<"\n"<[/url][url=http://itworld.forumvi.net/]<<" + "<[b]<<" = "< HIEU = A - B; cout<<"\n"<[/b][/url][b][url=http://itworld.forumvi.net/]<<" - "<[b]<<" = "< //Cong Tru TIME Voi So Giay cout<<"\n\n---------------------- Cong TIME Voi So Giay --------------------------\n"; cout<<"\nNhap So Giay: "; cin>>sg; TONG = A + sg; cout<[/b][/url][b][url=http://itworld.forumvi.net/]<<" + "<<<" Giay = "< cout<<"\n\n---------------------- Tru TIME Voi So Giay --------------------------\n"; cout<<"\nNhap So Giay: "; cin>>sg; HIEU = A - sg; cout<[/url][url=http://itworld.forumvi.net/]<<" - "<<<" Giay = "< //Cong Tru So Giay Voi TIME cout<<"\n\n---------------------- Cong So Giay Voi TIME -----------------------\n"; cout<<"\nNhap So Giay: "; cin>>sg; TONG = sg + A; cout<<<" + "<[/url][url=http://itworld.forumvi.net/]<<" Giay = "< cout<<"\n\n---------------------- Tru So Giay Voi TIME -----------------------\n"; cout<<"\nNhap So Giay: "; cin>>sg; HIEU = sg - A; cout<<<" - "<[/url][url=http://itworld.forumvi.net/]<<" Giay = "< cout<<"\n\n\n------------------------- KET THUC -----------------------------"; _getch(); return 0; }[/url][/b][/b] File Tải Kèm (Vì Forum khó chịu lắm^_^): [You must be registered and logged in to see this link.]
Được sửa bởi Sakura ngày 2/7/2011, 11:05; sửa lần 1. |
|
hotboy
Thú CƯng :
Số bài viết : 705 Điểm : 1043 Được cảm ơn : 9 Ngày sinh : 21/03/1990 Tham gia ngày : 13/05/2010 Tuổi : 34 Đến từ : BDU
| Tiêu đề: Re: [OOP] - Bài Tập Class Time - Hay - Nhiều Thao Tác 26/7/2010, 16:52 | |
| |
|
minh_thjen
Số bài viết : 1 Điểm : 1 Được cảm ơn : 0 Ngày sinh : 15/02/1991 Tham gia ngày : 02/07/2011 Tuổi : 33 Đến từ : Việt Nam
| Tiêu đề: Re: [OOP] - Bài Tập Class Time - Hay - Nhiều Thao Tác 2/7/2011, 08:59 | |
| |
|
hotboy
Thú CƯng :
Số bài viết : 705 Điểm : 1043 Được cảm ơn : 9 Ngày sinh : 21/03/1990 Tham gia ngày : 13/05/2010 Tuổi : 34 Đến từ : BDU
| Tiêu đề: Re: [OOP] - Bài Tập Class Time - Hay - Nhiều Thao Tác 2/7/2011, 09:31 | |
| có cái code rồi đó, tải chi nữa y chang nhau àh bạn ui |
|
Sakura
Thú CƯng :
Số bài viết : 1124 Điểm : 1688 Được cảm ơn : 35 Ngày sinh : 03/11/1990 Tham gia ngày : 16/03/2010 Tuổi : 34 Đến từ : Bình Dương Ngề nghiệp : IT Student
| Tiêu đề: Re: [OOP] - Bài Tập Class Time - Hay - Nhiều Thao Tác 4/7/2011, 20:33 | |
| Eo`, link up lâu quá, ko ai down nên nó del đi rồi. Hicc! Xem tạm code đi bạn. |
|
Sponsored content
| Tiêu đề: Re: [OOP] - Bài Tập Class Time - Hay - Nhiều Thao Tác | |
| |
|