Bài giảng Phương pháp lập trình hướng đối tượng - Tuần 7: Ôn tập giữa kỳ - Nguyễn Lê Hoàng Dũng
• TÍNH ĐÓNG GÓI
• TẬP TIN TRONG LẬP TRÌNH
HƯỚNG ĐỐI TƯỢNG
NỘI DUNG
• BÀI TẬP
2
ꢀ Phương pháp lập trình hướng đối tượng
TÍNH ĐÓNG GÓI
3
TÍNH ĐÓNG GÓI
Đặt vấn đề:
Thuộc tính của đối tượng có tầm vực private.
Có nhu cầu truy xuất để xử lý công việc.
Phải làm sao?
Làm sao họ truy xuất
m_fDiemVan, m_fDiemToan
.cpp
class HocSinh
{
private:
để tính ĐTB cho mình?
char* m_strHoTen;
float m_fDiemVan;
float m_fDiemToan;
};
4
ꢀ Phương pháp lập trình hướng đối tượng
TÍNH ĐÓNG GÓI
Cách giải quyết:
Tiêu cực: private => public.
Tích cực: phương thức truy xuất.
Cách nào giữ được thông tin riêng
tư?
.cpp
class HocSinh
{
.cpp
class HocSinh
private:
char* m_strHoTen;
float m_fDiemVan;
float m_fDiemToan;
public:
{
public:
char* m_strHoTen;
float m_fDiemVan;
float m_fDiemToan;
float layDiemVan();
float layDiemToan();
};
};
5
ꢀ Phương pháp lập trình hướng đối tượng
TÍNH ĐÓNG GÓI
Cách triệt để hơn:
Cung cấp luôn xử lý
.cpp
class HocSinh
{
private:
char* m_strHoTen;
float m_fDiemVan;
float m_fDiemToan;
public:
float tinhDTB();
};
6
ꢀ Phương pháp lập trình hướng đối tượng
TÍNH ĐÓNG GÓI
Tính chất:
Thông tin đối tượng (thuộc tính)
Không thể truy xuất từ bên ngoài.
Đối tượng nắm giữ thông tin
Chịu trách nhiệm xử lý thông tin.
Đừng hỏi tôi thông tin để thực hiện công việc
Hãy nhờ tôi làm giùm!!
Đã giao thông tin giao luôn xử lý trên thông tin.
Hạn chế:
Không thể biết trước tất cả mọi xử lý.
Một số trường hợp vẫn cần cung cấp thông tin.
7
ꢀ Phương pháp lập trình hướng đối tượng
TẬP TIN TRONG LẬP TRÌNH
HƯỚNG ĐỐI TƯỢNG
8
FREOPEN
• Hàm này có chức năng đóng và gán con trỏ tệp fp vào tệp
filename đã cung cấp.
• Đọc ghi thông qua con trỏ tệp fp.
• Đặc biệt có ích khi ta muốn gán các con trỏ tệp chuẩn (stdin,
stdout…) vào 1 tệp của ta.
• Hàm trả về NULL nếu gặp lỗi .
• Thư viện:
• cstdio (C++)
• stdio.h (C)
• Cú pháp
freopen("/DuongDanKhac/input.txt", "r", stdin);
freopen("/DuongDanKhac/output.txt", "w", stdout);
freopen("/DuongDanKhac/input.txt", "r", cin);
freopen("/DuongDanKhac/output.txt", "w", cout);
9
ꢀ Phương pháp lập trình hướng đối tượng
FREOPEN
VÍ DỤ 1
• Sử dụng:
• scanf/printf; cin/cout
• getline(cin,string);
• gets(char*);
#include <stdio.h>
.cpp
int main ()
{
FILE *fp;
printf("Dong text nay hien thi tren stdout\n");
fp = freopen("baitapc.txt", "w+", stdout);
printf("Dong text nay duoc ghi vao baitapc.txt\n");
fclose(fp);
return(0);
}
ꢀ Phương
FREOPEN
VÍ DỤ 2
#include <stdio.h>
.cpp
int main ()
{
FILE *fp;
int c;
fp = freopen("baitapc.txt", ”r", stdin);
while(1)
{
c = fgetc(fp);
if( feof(fp) )
{
break ;
}
printf("%c", c);
}
fclose(fp);
ꢀ Phươn
FSTREAM
• Thư viện nhập xuất với tập tin trong C++
• ifstream : đọc từ tập tin
• ofstream : xuất ra tập tin
12
ꢀ Phương pháp lập trình hướng đối tượng
DEMO
FSTREAM
13
BÀI TẬP 7.1
• Có 2 loại sổ tiết kiệm có kỳ hạn và không kỳ hạn, thông tin cơ bản
của mỗi loại gồm:
• CMND
.cpp
//“time.h”
time_t t;
time(&t);
• Họ tên khách hàng
• Số tiền gửi (triệu đồng)
• Ngày lập sổ
tm *now = localtime(&t);
cout<<now->tm_mday;
cout<<now->tm_mon+1;
cout<<now->tm_year+1900;
• Lãi suất (%) của 1 tháng.
• Đối với sổ có kỳ hạn, cần lưu lại thêm thông tin Kỳ hạn (gửi bao
nhiêu tháng).
• Công thức tính số tiền lãi (n: là số tháng gửi)
• Đối với sổ không kỳ hạn: Tiền lãi = Tiền gửi * Lãi suất * n.
• Đối với sổ có kỳ hạn:
o Tiền lãi = Tiền gửi * Lãi suất * n, nếu n lớn hơn bằng kỳ hạn.
o Ngược lại, tiền lãi của sổ đó bằng 0.
14
ꢀ Phương pháp lập trình hướng đối tượng
BÀI TẬP 7.1
Yêu cầu:
• Cài đặt các lớp để thể hiện các loại sổ tiết kiệm
trên để:
• Quản lý thông tin sổ tiết kiệm.
• Tính số tiền lãi của sổ cho đến ngày hiện tại (l
ấy từ hệ thống).
• Hãy cài đặt thêm lớp CNganHang, quản lý danh
sách các sổ tiết kiệm (dùng 2 vector để lưu 2
danh sách của 2 loại sổ) để thực hiện các chức
năng sau:
+ Nhập, xuất danh sách các sổ tiết kiệm.
+ Tính tổng tiền lãi ngân hàng phải trả.
15
ꢀ Phương pháp lập trình hướng đối tượng
BÀI TẬP 7.2
Thực hiện 7.1 với tập tin
16
ꢀ Phương pháp lập trình hướng đối tượng
TÀI LIỆU THAM KHẢO
1. PGS.TS. Trần Đan Thư, TS. Đinh Bá Tiến, ThS. Nguyễn Tấn Trầ
n Minh Khang, Lập trình hướng đối tượng, NXB KHKT, 2010
2. ThS. Đặng Bình Phương, Bài giảng PPLTHĐT
3. ThS. Nguyễn Minh Huy, Bài giảng PPLTHĐT
4. Stephen Prata, C++ Primer Plus 6th Edition
5. Bjarne Stroustrup, The C++ Programming Language 4th Edition
lite/”
7.Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides,
Design Patterns: Elements of Reusable Objected-Oriented
Software, Addison-Wesley, 1995
8. Apple, Object-Oriented Programming with Objective-C,
nceptual/OOP_ObjC/Articles/ooOOP.html” (August 15 2015)
17
ꢀ Phương pháp lập trình hướng đối tượng
Bạn đang xem tài liệu "Bài giảng Phương pháp lập trình hướng đối tượng - Tuần 7: Ôn tập giữa kỳ - Nguyễn Lê Hoàng Dũng", để tải tài liệu gốc về máy hãy click vào nút Download ở trên
File đính kèm:
bai_giang_phuong_phap_lap_trinh_huong_doi_tuong_tuan_7_on_ta.pdf
OOP-W7-Reviews-Code.zip

