BÀI T P CH NG 7 ƯƠ
7.1.Thi tế kế l p Diem ( Đim trong không gian 2 chi u) gm 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 đim: void Gan (int hoanh , int tung) ;
+ Nh p t a đ cho 1 đim: 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 đim: int PutX();
+ Xu t ra giá tr tung đ c a đim: int PutY();
Vi tế hàm main() khai thác l p va đ 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 xng v i đim B qua g c t a đ . In t a đ đi m C ra
màn hình.
+ Tính kho ng cách t đim 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 Clock 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 va đ nh nghĩa.
+ T o 1 Clock có giá tr9: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 kim 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 va đ 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 1 phân s ế
5