
BÀI T P CH NG 7Ậ ƯƠ
7.1.Thi tế kế l pớ Diem ( Điểm trong không gian 2 chi u)ề gồm 2 thành ph nầ x,y ki uể
int.
Các hàm thành viên g ồm:
+ Gán t aọ độ cho 1 điểm: void Gan (int hoanh , int tung) ;
+ Nh p t aậ ọ độ cho 1 điểm: void Nhap();
+ In ra màn hình t aọ độ đi mể theo d ngạ (x,y) : void InDiem();
+ Xu t raấ giá tr hoànhị độ c aủ điểm: int PutX();
+ Xu tấ ra giá tr tungị độ c aủ điểm: int PutY();
Vi tế hàm main() khai thác l pớ vừa đ nhị nghĩa :
+ T oạ ra đi mể A t aọ độ (3,4). In t aọ độ đi mể A ra màn hình.
+ T oạ ra đi mể B v iớ giá trị nh p tậ ừ bàn phím. In t a ọ độ đi mể B ra màn hình.
+ T oạ ra đi mể C đ iố xứng v i ớ điểm B qua g cố t a ọ đ .ộ In t aọ độ đi mể C ra
màn hình.
+ Tính kho ngả cách từ điểm B đ nế tâm O.
//2.1 Lop diem
#include <iostream.h>
#include <conio.h>
#include <math.h>
//--------------------------
// Khai bao lop Diem
//--------------------------
class Diem
{
int x; //hoanh do
int y; //tung do
public:
void gan(int, int);
void nhap();
void xuat();
int hoanhdo();
int tungdo();
Diem doixung();
};
//---------------------------
//Dinh nghia lop Diem
//---------------------------
void Diem::gan(int h, int t)
{
x = h;
y = t;
}
void Diem::nhap()
{
cout << "Hoanh do: "; cin >> x;
cout <<"Tung do: "; cin >> y;
}
void Diem::xuat()
{
cout << "(" << x << ", " << y << ")";
}
1

int Diem::tungdo()
{
return y;
}
int Diem::hoanhdo()
{
return x;
}
Diem Diem::doixung()
{
Diem kq;
kq.gan(-x, -y);
return kq;
}
//----------------------------
//Dinh nghia ham main()
//----------------------------
void main()
{
//tao diem a, gan toa do va in ra man hinh
Diem a;
a.gan(3, 4);
cout << "a ";
a.xuat();
cout << endl;
//tao diem b, nhap toa do va in ra man hinh
Diem b;
b.nhap();
cout << "b ";
b.xuat();
cout << endl;
//tao diem c doi xung diem b, hien thi toa do ra mhinh
Diem c;
c = b.doixung();
cout << "Diem doi xung voi b: ";
c.xuat();
//tinh khoang cach tu b den O
float kc;
kc = sqrt(b.tungdo()*b.tungdo() + b.hoanhdo()*b.hoanhdo());
cout << "\nKhoang cach tu b den O la: " << kc;
getch();
}
7.2.Thi tế kế l p Cớlock g mồ 3 thành ph n:ầ gi ,ờ phút , giây .
Các hàm thành viên g mồ :
+ Hàm gán (dùng để kh iở t oạ 1 Clock )
+ Hàm nh pậ giá tr và hịàm in
+ Hàm làm tròn th iờ gian (VD: 13:67:150 s ẽ làm tròn thành 14:09:30).
Vi tế hàm main() khai thác l pớ vừa đ nhị nghĩa.
+ T oạ 1 Clock có giá trị là 9:15:38. In giá tr ị đó ra màn hình.
+ T oạ 1 Clock b t kỳ, nh pấ ậ giá tr choị nó. In ra màn hình.
+ Làm tròn Clock v ừa nh pậ ở trên (n uế được) và in ra màn hình.
//2.2: Lop Clock
#include <iostream.h>
#include <conio.h>
2

//--------------------------
//Khai bao lop Clock
//--------------------------
class Clock
{
int gio, phut, giay;
public:
void gan(int, int, int);
void nhap();
void xuat();
void lamtron();
};
//-----------------------------
//Dinh nghia lop Clock
//-----------------------------
void Clock::gan(int h, int m, int s)
{
gio = h;
phut = m;
giay = s;
}
void Clock::nhap()
{
cout << "Nhap gio: "; cin>> gio;
cout << "Nhap phut: "; cin >> phut;
cout << "Nhap giay: "; cin >> giay;
}
void Clock::xuat()
{
cout << gio << ":" << phut << ":" << giay;
}
void Clock::lamtron()
{
//lam tron giay
phut += (giay / 60);
giay %= 60;
//lam tron phut
gio += (phut / 60);
phut %= 60;
//lam tron gio
gio %= 24;
}
//-----------------------------
//Ham main su dung lop Clock
//-----------------------------
void main()
{
Clock c;
//Tao 1 clock voi gia tri la 9:15:38 va hien thi ra MH
c.gan(9, 15, 38);
cout << "Clock c: ";
c.xuat();
cout << endl;
//Tao mot Clock, nhap gtri, lam tron va hien thi ra MH
3

Clock d;
cout << "Nhap gia tri cho Clock d: \n";
d.nhap();
d.lamtron();
cout << "Clock d sau khi lam tron: ";
d.xuat();
getch();
}
7.3.Thi tế kế l p ớDate g mồ 3 thành ph n:ầ ngày, tháng, n ăm
Các hàm thành viên g mồ :
+ Hàm gán (dùng để kh iở t oạ 1 Date )
+ Hàm nh pậ ngày.
+ Hàm hi nệ thông tin ngày.
+ Hàm kiểm tra xem ngày có h pợ lệ hay không?
(VD: Ngày 31/6/2000 hay 29/2/1999 là không h pợ l ) ệ
Vi tế hàm main() khai thác l pớ vừa đ nhị nghĩa.
//2.3: Lop Date
#include <iostream.h>
#include <conio.h>
#include <math.h>
//-------------------------------
//Khai bao lop Date
//-------------------------------
class Date
{
int ngay, thang, nam;
public:
void gan(int, int, int);
void nhap();
void xuat();
int hople();
};
//-------------------------------------
//Dinh nghia lop Date
//-------------------------------------
void Date::gan(int d, int m, int y)
{
ngay = d;
thang = m;
nam = y;
}
void Date::nhap()
{
cout << "Ngay: "; cin >> ngay;
cout << "Thang: "; cin >> thang;
cout << "Nam: "; cin >> nam;
}
void Date::xuat()
{
cout << ngay << "/" << thang << "/" << nam;
}
int Date::hople()
{
switch (thang)
4

{
case 1: case 3: case 5: case 7: case 8: case 10: case 12:
if ((ngay <= 31) && (ngay > 0))
return 1;
else
return 0;
case 4: case 6: case 9: case 11:
if ((ngay <= 30) && (ngay > 0))
return 1;
else
return 0;
case 2:
if (nam % 4 = = 0)
if ((ngay <=29) && (ngay > 0))
return 1;
else return 0;
else if ((ngay <=28) && (ngay > 0))
return 1;
else
return 0;
default:
return 0;
} //switch
}
//-------------------------------
//Ham main khai thac lop Date
//-------------------------------
void main()
{
Date d1;
d1.gan(10, 10, 2003);
cout << "d1 = ";
d1.xuat();
cout << endl;
Date d2;
d2.nhap();
d2.xuat();
if (d2.hople())
cout << ": Ngay hop le";
else
cout << ": Ngay khong hop le";
getch();
}
7.4.Thi t k l p Phanso (phân s ), trong đó m i phân s bao g mế ế ớ ố ỗ ố ồ
- D li u: t s và m u sữ ệ ử ố ẫ ố
- Ph ng th c:ươ ứ
o Hàm xây d ng m c nhiên.ự ặ
o Hàm xây d ng v i hai đ i s là t s và m u s .ự ớ ố ố ử ố ẫ ố
o Hàm xây d ng sao chép.ự
o Hàm nh p, xu t phân s ra màn hìnhậ ấ ố
o Hàm ngh ch đ o phân sị ả ố
o Hàm tính giá tr th c c a phân sị ự ủ ố
o Hàm c ng, tr , nhân, chia hai phân s , k t qu là 1 phân sộ ừ ố ế ả ố
o Hàm c ng, tr , nhân, chia phân s v i m t s nguyên, k t qu là 1 phân sộ ừ ố ớ ộ ố ế ả ố
5

