Giáo trình Lập trình hướng đối tượng - Chương 7: Toán tử số học

 Bài toán: Viết chương trình nhập

vào hai phân số. Tính tổng giữa

chúng và xuất kết quả băng

phương pháp lập trình hướng đối

tương.

 Chương trình

#include <stdio.h>

#include <conio.h>

class CPhanSo

{

private:

int tu;

int mau;

public:

void Nhap();

void Xuat();

CPhanSo Tong(CPhanSo);

};

pdf12 trang | Chuyên mục: Lập Trình Hướng Đối Tượng | Chia sẻ: dkS00TYs | Lượt xem: 1592 | Lượt tải: 3download
Tóm tắt nội dung Giáo trình Lập trình hướng đối tượng - Chương 7: Toán tử số học, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
LTHĐTKhoa CNTT
Chương 07 - 1
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
Chương 7
TOÁN TỬ SỐ HỌC
LTHĐTKhoa CNTT
Chương 07 - 2
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
0. MỤC TIÊU
 Hiểu được các toán tử số học là
gì?
 Hiểu được vai trò của toán tử số
học trong C++
Click to see Figure 1-2
LTHĐTKhoa CNTT
Chương 07 - 3
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
 Bài toán: Viết chương trình nhập
vào hai phân số. Tính tổng giữa
chúng và xuất kết quả băng
phương pháp lập trình hướng đối
tương.
 Chương trình
#include 
#include 
class CPhanSo
{
private:
int tu;
int mau;
public:
void Nhap();
void Xuat();
CPhanSo Tong(CPhanSo);
};
LTHĐTKhoa CNTT
Chương 07 - 4
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
void main()
{
CPhanSo a,b,kq;
a.Nhap();
b.Nhap();
kq = a.Tong(b);
printf(“Tong la:”);
kq.Xuat();
}
LTHĐTKhoa CNTT
Chương 07 - 5
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
void CPhanSo::Nhap()
{
printf(“Nhap tu:”);
scanf(“%d”,&tu);
printf(“Nhap mau:”);
scanf(“%d”,&mau);
}
void CPhanSo::Xuat()
{
printf(“%d/%d”,tu,mau);
}
LTHĐTKhoa CNTT
Chương 07 - 6
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
1. BÀI TOÁN DẪN NHẬP
CPhanSo CPhanSo::Tong(CPhanSo x)
{
CPhanSo temp;
temp.tu= tu*x.mau + mau*x.tu;
temp.mau= mau*x.mau;
return temp;
}
a c ad bc
b d bd

 
x y temp
kq = a.Tong(b);
LTHĐTKhoa CNTT
Chương 07 - 7
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
2. KHÁI NIỆM
 Trong ngôn ngữ lập trình C có các
toán tử số học như sau:
 Toán tử cộng (operator +)
 Toán tử trừ (operator -)
 Toán tử nhân (operator *)
 Toán tử chia (operator /)
 Toán tử mod (operator %)
 Toán tử cộng bằng (operator +=) 
 Toán tử trừ bằng (operator -=)
 Toán tử nhân bằng (operator *=)
 Toán tử chia bằng (operator /=)
 Toán tử mod bằng (operator %=)
 Toán tử tăng một (operator ++)
 Toán tử giảm một (operator --)
LTHĐTKhoa CNTT
Chương 07 - 8
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
3. ĐẶT VẤN ĐỀ
 Hãy khai báo và định nghĩa các
phương thức và toán tử cần thiết để
các câu lệnh sau có thể thực hiện.
 Các câu lệnh
11.CPhanSo a,b,kq;
12.cin>>a>>b;
13.kq = a + b;
14.cout<<“Tong:”<<kq;
15.kq = a – b;
16.cout<<“Hieu:”<<kq;
17.kq = a * b;
18.cout<<“Tich:”<<kq;
19.kq = a / b;
20.cout<<“Thuong:”<<kq;
LTHĐTKhoa CNTT
Chương 07 - 9
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. GIẢI QUYẾT VẤN ĐỀ
 Để giải quyết vấn đề trên ta phải khai báo
và định nghĩa các toán tử số học cho lớp
đối tượng CPhanSo.
 Khai báo lớp
class CPhanSo
{
private:
int tu;
int mau;
public:
CPhanSo Tong(CPhanSo);
CPhanSo operator+(CPhanSo);
CPhanSo operator-(CPhanSo);
CPhanSo operator*(CPhanSo);
CPhanSo operator/(CPhanSo);
};
LTHĐTKhoa CNTT
Chương 07 - 10
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. GIẢI QUYẾT VẤN ĐỀ
CPhanSo CPhanSo::operator+
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau+mau*x.tu;
temp.mau = mau*x.mau;
return temp;
}
CPhanSo CPhanSo::operator-
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau-mau*x.tu;
temp.mau = mau*x.mau;
return temp;
}
LTHĐTKhoa CNTT
Chương 07 - 11
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
4. GIẢI QUYẾT VẤN ĐỀ
CPhanSo CPhanSo::operator*
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.tu;
temp.mau = mau*x.mau;
return temp;
}
CPhanSo CPhanSo::operator/
(CPhanSo x)
{
CPhanSo temp;
temp.tu = tu*x.mau;
temp.mau = mau*x.tu;
return temp;
}
LTHĐTKhoa CNTT
Chương 07 - 12
GV. Nguyễn Sơn Hoàng Quốc
ThS. Nguyễn Tấn Trần Minh Khang
5. BÀI TẬP VỀ NHÀ
 Bài 01: Hãy định nghĩa các toán 
tử +,-,*,/,+=,-=,*=,/=,++,-- cho lớp 
đối tượng CPhanSo
 Bài 02: Hãy định nghĩa các toán 
tử +,-,*,/,+=,-=,*=,/= cho lớp đối 
tượng CSoPhuc.
 Bài 03: Hãy định nghĩa các toán 
tử *,/,*=,/= cho lớp đối tượng 
CDonThuc.
 Bài 04: Hãy định nghĩa các toán 
tử +,-,*,/,+=,-=,*=,/= cho lớp đối 
tượng CDaThuc.

File đính kèm:

  • pdfGiáo trình Lập trình hướng đối tượng - Chương 7 Toán tử số học.pdf