ThoiGian
/*Thời gian có giờ và phút, giờ có giá trị trong khoảng 0-23, phút có giá trị trong khoảng 0-59.
Nhập vào thời gian bắt đầu một ca thi và số phút làm bài thi. Tính thời gian kết thúc ca thi.
Yêu cầu sử dụng toán tử nhập >> và toán tử xuất << để nhập vào và đưa ra thời gian ở dạng h:mm,
sử dụng toán tử + để cộng thời gian với số phút,
thời gian được khởi tạo tự động với giờ và phút bằng 0 hoặc khởi tạo bằng giờ, phút cho trước.*/
#include <iostream>
#include <stdio.h>
using namespace std;
//khai bao lop doi tuong thoi gian
class ThoiGian
{
private:
int gio, phut;
public:
ThoiGian();
ThoiGian operator+(int n);
//ham ban
friend istream& operator>>(istream &cin , ThoiGian &tg);
friend ostream& operator<<(ostream &cout , ThoiGian &tg);
};
//===chuong trinh chinh===
int main()
{
//tao doi tuong thoi gian
ThoiGian bd, kt;
//khai bao bien;
int n;
cout<<"Chuong trinh tinh thoi gian ket thuc cua ca thi.\n\n";
cout<<"Nhap vao thoi gian bat dau "; cin>>bd;
cout<<"Nhap vao so phut: "; cin>>n;
//tinh thoi gian ket thuc
kt = bd + n;
//dua ra man hinh
printf("\nThoi gian ket thuc ca thi sau %d phut la: ", n);
cout<<kt;
cout<<endl;
return 0;
}
//===dinh nghia ham===
ThoiGian::ThoiGian():gio(0),phut(0)
{
}
ThoiGian ThoiGian::operator+(int n)
{
ThoiGian tg;
//cong thoi gian voi n phut
tg.gio = gio;
tg.phut = phut + n;
//hieu chinh gio, phut
tg.gio += tg.phut / 60;
tg.phut = tg.phut % 60;
tg.gio = tg.gio % 24;
return tg;
}
//ham ban
istream& operator>>(istream &cin , ThoiGian &tg)
{
char kt;
cout<<"(dang h:m): ";
cin>>tg.gio>>kt>>tg.phut;
return cin;
}
ostream& operator<<(ostream &cout , ThoiGian &tg)
{
printf("%d:%2d", tg.gio, tg.phut);
return cout;
}
Last updated