Tải bản đầy đủ (.doc) (9 trang)

BÀI TẬP CHƯƠNG 7 - THIẾT KẾ LỚP ĐIỂM ppsx

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (83.71 KB, 9 trang )

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 << ")";
}
int Diem::tungdo()
1
{
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 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
Clock d;
3
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ố
- Viết hàm main() thực hiện những yêu cầu sau:

5
+ Tạo phân số a=3/7, b=4/9. In giá trị hai phân số trên ra màn hình
+ Tạo 2 phân số x, y với giá trị nhập từ bàn phím và in giá trị ra màn hình
+ In giá trị nghịch đảo của x
+ Tính tổng x, y, và in ra màn hình
+ Tính tích x và 10 và in ra màn hình
+ Nhập một danh sách gồm n phân số (n nhập từ bàn phím)
+ Tính tống n phân số đó
//3.1. Lop Phanso
#include <iostream.h>
#include <conio.h>
class Phanso
{
int tu;
int mau;
int uscln(int, int);
void rutgon();
public:
Phanso() {tu=0; mau=1;} //ham xdung mac nhien
Phanso(int, int);
Phanso(const Phanso&);
void nhap();
void xuat();
void gan(int, int);
Phanso nghichdao();
float trithuc();
Phanso cong(Phanso);
Phanso tru(Phanso);
Phanso nhan(Phanso);
Phanso chia(Phanso);

Phanso cong(int);
Phanso tru(int);
Phanso nhan(int);
Phanso chia(int);
};
//
//cai dat cac ham thanh vien
//
int Phanso::uscln(int a, int b)
{
if ((a==0) || (b==0)) return 0;
a = abs(a);
b = abs(b);
while (a!=b)
(a>b)? (a-=b): (b-=a);
return a;
}
void Phanso::rutgon()
{
int t = uscln(tu, mau);
tu /= t;
mau /= t;
}
Phanso::Phanso(int t, int m)
{
6
tu = t;
mau = m;
}
Phanso::Phanso(const Phanso& ps)

{
tu = ps.tu;
mau = ps.mau;
}
void Phanso::nhap()
{
cout << "Tu so: "; cin >> tu;
cout << "Mau so: "; cin >> mau;
}
void Phanso::xuat()
{
cout << tu << "/" << mau;
}
Phanso Phanso::nghichdao()
{
Phanso kq;
kq.tu = mau;
kq.mau = tu;
return kq;
}
float Phanso::trithuc()
{
return float(tu)/mau;
}
Phanso Phanso::cong(Phanso ps)
{
Phanso kq;
kq.tu = tu*ps.mau + mau*ps.tu;
kq.mau = mau*ps.mau;
kq.rutgon();

return kq;
}
Phanso Phanso::tru(Phanso ps)
{
Phanso kq;
kq.tu = tu*ps.mau - mau*ps.tu;
kq.mau = mau*ps.mau;
kq.rutgon();
return kq;
}
void Phanso::gan(int t, int m)
{
tu = t;
mau = m;
}
Phanso Phanso::nhan(Phanso ps)
{
Phanso kq;
kq.tu = tu*ps.tu;
kq.mau = mau*ps.mau;
7
kq.rutgon();
return kq;
}
Phanso Phanso::chia(Phanso ps)
{
Phanso kq;
kq = this->nghichdao();
kq = ps.nhan(kq);
return kq;

}
Phanso Phanso::cong(int a)
{
Phanso kq(a, 1);
kq = kq.cong(*this);
return kq;
}
Phanso Phanso::tru(int a)
{
Phanso kq(a, 1);
kq = this->tru(kq);
return kq;
}
Phanso Phanso::nhan(int a)
{
Phanso kq(a*tu, mau);
return kq;
}
Phanso Phanso::chia(int a)
{
Phanso kq(tu, mau*a);
return kq;
}
void main()
{
//tao 2 phan so 3/7; 4/9 v a in ra man hinh
Phanso a(3,7), b(4,9);
cout << "a = ";
a.xuat();;
cout << "b = ";

b.xuat();
cout << endl << endl;
//tao 2 phan so x, y
Phanso x, y;
cout << "Nhap x:\n";
x.nhap();
cout << "Nhap y:\n";
y.nhap();
cout << endl;
cout << "x = ";
x.xuat();
cout << endl;
cout << "y = ";
y.xuat();
cout << endl;
8
cout << "Nghich dao cua x = ";
x.nghichdao().xuat();
cout << endl;
//tinh tong x, y va in ra man hinh
Phanso tong;
tong = x.cong(y);
cout << "x + y = " ;
tong.xuat();
cout << endl;
//tinh tich x va 10
Phanso tichx10;
tichx10 = x.nhan(10);
cout << "Tich cua x va 10 la: ";
tichx10.xuat();

cout << endl << endl;
//nhap danh sach n phan so
int n;
Phanso *ds;
cout << "Nhap vao so phan tu cua danh sach: ";
cin >> n;
ds = new Phanso[n];
for (int i=0; i < n; i++)
{
cout << "Nhap phan so thu " << i + 0 << endl;
ds[i].nhap();
}
//tinh tong
Phanso tongn;
for (i=0; i<n; i++)
tongn = tongn.cong(ds[i]);
cout << endl;
cout << "Tong n phan so: ";
tongn.xuat();
getch();
}
9

×