Giáo trình Lập trình hướng đối tượng C++ - Cao đẳng Công nghiệp Huế

GIỚI THIỆU .7

MÔI TRƯỜNG PHÁT TRIỂN TÍCH HỢP IDE.10

CHƯƠNG 1. NGÔN NGỮ LẬP TRÌNH C++.22

1.1. Cấu trúc của một chương trình C++ . 22

1.2. Biến và các kiểu dữ liệu. 25

1.2.1.Từ khóa . 25

1.2.2. Kiểu dữ liệu nguyên thủy. 26

1.2.3. Khai báo biến . 26

1.2.4. Phạm vi tác dụng của biến . 27

1.2.5. Khởi tạo giá trị cho biến . 29

1.2.6. Khởi tạo giá trị cho biến tĩnh static. 29

1.2.7. Giới thiệu về xâu kí tự . 30

1.3. Hằng . 31

1.3.1. Hằng số nguyên. 31

1.3.2. Hằng số thực có dấu chấm động. 31

1.3.3. Hằng kí tự và hằng xâu kí tự. 32

1.3.4. Hằng logic. 33

1.3.5. Định nghĩa một hằng #define. 33

1.3.6. Khai báo hằng const. 34

1.4. Toán tử . 34

1.4.1. Toán tử gán . 34

1.4.2. Toán tử thực hiện phép toán số học. 35

1.4.3. Toán tử gán hợp nhất . 36

1.4.4. Toán tử tăng và giảm . 36

1.4.5. Toán tử so sánh . 37

1.4.6. Toán tử logic . 38

1.4.7. Toán tử điều kiện . 39

1.4.8. Toán tử phân tách. 40

1.4.9. Toán tử dịch bit. 41

1.4.10. Toán tử chuyển đổi kiểu dữ liệu . 43

1.4.11. Các toán tử khác. 43

1.4.12. Thứ tự ưu tiên của các toán tử . 43

1.5. Xuất – nhập cơ bản. 45

1.5.1. Xuất dữ liệu chuẩn cout . 45

1.5.2. Nhập dữ liệu chuẩn cin . 46

1.5.3. Nhập dữ liệu nhờ lớp stringstream . 48

1.6. Các cấu trúc lệnh điều khiển . 49

1.6.1. Cấu trúc lệnh có điều kiện: if và else. 50

1.6.2. Cấu trúc lặp. 52

1.6.3. Cấu trúc lựa chọn: switch . 57

1.7. Hàm . 61

1.7.1. Khai báo và sử dụng hàm. 62

1.7.2. Phạm vi tác dụng của biến . 65

1.7.3. Hàm không trả về giá trị - Hàm void. 66

1.7.4. Tham biến và tham trị. 67

1.7.5. Giá trị mặc định của tham số hình thức. 70

1.7.6. Chồng chất hàm . 71

1.7.6. Hàm nội tuyến. 72

1.7.7. Hàm đệ quy. 72

1.8. Các kiểu dữ liệu có cấu trúc. 74

1.8.1. Mảng . 74

1.8.2. Xâu kí tự. 78

1.9. Con trỏ. 78

1.9.1. Toán tử tham chiếu & . 79

1.9.2. Toán tử tham chiếu ngược * . 80

1.9.3. Khai báo biến con trỏ. 81

1.9.4. Con trỏ, mảng và xâu kí tự . 83

1.9.5. Các phép toán số học trên con trỏ. 85

1.9.6. Con trỏ trỏ vào con trỏ. 87

1.9.7. Con trỏ void . 88

1.9.8. Con trỏ null . 89

1.9.9. Con trỏ hàm. 89

1.10. Bộ nhớ động . 91

1.10.1. Toán tử new và new[] . 91

1.10.2. Toán tử delete và delete[] . 92

1.11. Kiểu dữ liệu struct và Con trỏ struct . 93

1.11.1. Struct . 93

1.11.2. Con trỏ struct. 97

1.11.3. Struct lồng nhau . 98

1.11.4. Kích thước bộ nhớ của struct. 98

1.12. Các kiểu dữ liệu khác. 99

1.12.1. Kiểu dữ liệu tự định nghĩa . 99

1.12.2. Kiểu dữ liệu union thường. 100

1.12.3. Kiểu dữ liệu union ẩn danh. 100

1.12.4. Kiểu dữ liệu enum. 101

CHƯƠNG 2. LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG .102

2.1. Lịch sử hình thành. 102

2.2. Lớp và đối tượng. 107

2.3. Hàm tạo và hàm hủy . 110

2.4. Chồng chất hàm tạo. 112

2.5. Hàm tạo sao chép . 114

2.6. Tính đóng gói – Encapsulation . 119

2.7. Con trỏ đối tượng . 120

2.8. Lớp được khai báo nhờ từ khóa struct và union . 121

2.9. Con trỏ this. 121

2.10. Thành viên tĩnh – Từ khóa static. 123

2.11. Hàm bạn và lớp bạn . 124

2.12. Chồng chất toán tử . 126

2.13. Tính kế thừa - Inheritance. 132

2.14. Các mức truy cập. 135

2.15. Tính đa kế thừa – Multiple Inheritance. 137

2.16. Tính đa hình – Polymorphism. 138

2.17. Tính trừu tượng hóa - Abstraction . 149

2.18. Hàm mẫu – Template Function. 149

2.19. Lớp mẫu – Template class . 150

CHƯƠNG 3. NAMESPACE .154

3.1. Từ khóa namespace. 154

3.2. Từ khóa using. 154

3.3. Phạm vi của namespace . 156

3.4. Tái định danh cho namespace . 156

3.5. Namespace std. 157

CHƯƠNG 4. NGOẠI LỆ.158

4.1. Câu lệnh try catch. 158

4.2. Câu lệnh throw . 158

4.3. Thư viện chuẩn exception . 158

CHƯƠNG 5. LÀM VIỆC VỚI FILE .161

5.1. Mở file. 161

5.2. Đóng file. 163

5.3. File văn bản . 163

5.4. Kiểm tra trạng thái của các cờ hiệu. 164

5.5. Con trỏ get và put. 164

5.6. File nhị phân. 166

5.7. Bộ đệm và Đồng bộ hóa. 167

CHƯƠNG 6. CÁC LỚP THƯ VIỆN.168

6.1. Lớp số phức complex. 168

6.2. Lớp ngăn xếp stack . 169

6.3. Lớp hàng đợi queue. 170

6.3. Lớp vector . 171

6.4. Lớp string . 174

6.5. Lớp list . 176

6.6. Lớp map . 176

6.7. Lớp set. 177T r a n g | 6

C++

6.8. Các lớp thư viện nhập xuất . 177

HƯỚNG DẪN THỰC HÀNH.184

BÀI THỰC HÀNH SỐ 1 . 184

BÀI THỰC HÀNH SỐ 2 . 184

BÀI THỰC HÀNH SỐ 3 . 185

BÀI THỰC HÀNH SỐ 4 . 186

BÀI THỰC HÀNH SỐ 5 . 186

BÀI THỰC HÀNH SỐ 6 . 187

BÀI TẬP NÂNG CAO .188

BÀI TẬP LỚN .194

DANH SÁCH HÌNH .196

TRA CỨU TỪ KHÓA .197

TÀI LIỆU THAM KHẢO .198

pdf197 trang | Chuyên mục: C/C++ | Chia sẻ: tuando | Lượt xem: 743 | Lượt tải: 1download
Tóm tắt nội dung Giáo trình Lập trình hướng đối tượng C++ - Cao đẳng Công nghiệp Huế, để xem tài liệu hoàn chỉnh bạn click vào nút "TẢI VỀ" ở trên
 công ty. 
 T r a n g | 192 
C
+
+
Một công ty sẽ tuyên bố phá sản nếu vốn điều lệ của họ bị âm. Vốn điều lệ là 
tổng ngân sách hiện có cộng với mức đóng góp của mỗi nhân viên trừ cho nguồn 
chi theo tháng và trừ tiếp cho tổng lương chi trả cho toàn bộ nhân viên. Hãy xây 
dựng chương trình để thực thi mô tả này. 
Bài 7. 
Hãy xây dựng chương trình ứng dụng theo mô tả sau. 
- Lớp đối tượng người dùng gồm các thuộc tính: username, password, câu hỏi 
bảo mật và câu trả lời. Bổ sung các phương thức tương ứng cho phù hợp. Khi 
chạy chương trình, người dùng nhập vào username và password. Nếu trùng khớp 
với username và password đã tạo trong hệ thống thì thông báo đăng nhập thành 
công. 
- Sau khi đăng nhập thành công, người dùng có quyền triệu gọi các phương thức 
tính toán của lớp số phức và phân số (cần xây dựng thêm hai lớp này). 
- Nếu người dùng đăng nhập không thành công, yêu cầu họ xác minh rằng có 
phải họ đã quên mật khẩu hay không bằng một câu hỏi bảo mật. Nếu trả lời 
đúng, thì cho phép họ thay đổi mật khẩu. 
- Nếu đăng nhập không thành công và trả lời sai câu hỏi bảo mật, hãy in ra thông 
báo “Bạn chưa phải là thành viên”, hãy chọn “y” để đăng kí và chọn “n” để 
thoát. 
Bài 8. 
Mỗi đối tượng Shape trong Microsoft Word đều có có các thuộc tính: màu viền, 
màu nền, nội dung văn bản bên trong, thứ bậc, tình trạng đang được chọn hay 
không và các phương thức khởi tạo, thay đổi giá trị cho mỗi thuộc tính (phương 
thức setter). 
Hãy tạo ra một mảng 10 phần tử Shape. Các giá trị thứ bậc không được trùng 
nhau (và phân bố từ 0-9). Trong 10 đối tượng này, tại mỗi thời điểm, chỉ có 
đúng một đối tượng đang ở tình trạng chọn. Nếu đối tượng ở tình trạng chọn, thì 
ta mới có quyền thay đổi giá trị cho nó. 
Hãy bổ sung thêm các phương thức cần thiết để thực hiện các yêu cầu trên. 
Bài 9. 
Hãy phân tích mô hình quản lý sinh viên trong trường đại học. Từ mô hình phân 
tích được, hãy xây dựng chương trình quản lý sinh viên. Trong mô hình này, yêu 
cầu quản lý không dưới 10 lớp đối tượng. 
Gợi ý: Các lớp đối tượng trong mô hình này bao gồm – Sinh viên, Giáo viên chủ 
nhiệm, Phòng Công tác học sinh sinh viên, Phòng Đào tạo, Phòng Tài chính, 
Khoa chuyên môn, Đoàn TN, Lớp, Phòng học, Môn học 
 T r a n g | 193 
C
+
+
Bài 10. 
Hãy phân tích theo hướng đối tượng mô hình quản lý Nhà nước thu nhỏ được 
cho bên dưới đây. Từ mô hình phân tích đó, hãy xây dựng chương trình để quản 
lý Nhà nước thu nhỏ. Biết rằng, tương tác giữa các đối tượng có tính bắc cầu. 
Hình 17 – Mô hình tương tác quản lý Nhà nước. 
Bộ GD 
Bộ Y tế 
Bộ Công Thương 
Bộ Quốc Phòng 
Bộ Nông Nghiệp 
Sở GD 
Sở Y tế 
Cơ sở 
Kế thừa Tương tác 
T r a n g | 194 
C
+
+
BÀI TẬP LỚN 
Dự án 1. Phân tích, thiết kế và xây dựng chương trình quản lý thư viện. Trong 
chương trình này, cần đảm bảo các chức năng sau đây: 
- Trong mô hình quản lý này cần đảm bảo các thông tin: mã sách, tên sách, tên 
tác giả, năm xuất bản, nhà xuất bản, số trang, giá và số lượng. 
- Cho phép bổ sung thêm một hoặc nhiều quyển sách. 
- Cập nhập lại số lượng sách khi có người mượn/trả sách. 
- Tìm kiếm sách theo tên tác giả hoặc tên sách. 
- Kiểm tra tình trạng sách còn hay không. 
- Chương trình thực thi trên màn hình Console. Có menu tùy chọn. Dữ liệu được 
lưu trữ vào tập tin data.dat dưới dạng mã hóa nhị phân. 
Dự án 2. Phân tích, thiết kế và xây dựng chương trình quản lý website bán máy 
tính. Trong chương trình trình này, cần đảm bảo các chức năng sau đây: 
- Trong mô hình quản lý này, cần đảm bảo các thông tin: mã hàng, màu sắc, 
nước sản xuất, hãng, giá tiền, số lượng, thời gian bảo hành, có cài đặt hệ điều 
hành hay không, địa chỉ khác hàng, số điện thoại khách hàng. 
- Tìm kiếm mặt hàng theo tên hãng, giá tiền và nước sản xuất. 
- Kiểm tra tình trạng còn hàng hay không. 
- Bổ sung (nhập thêm hàng) hoặc xóa bỏ (bán hàng). 
- Chương trình thực thi trên màn hình Console. Có menu tùy chọn. Dữ liệu được 
lưu trữ vào tập tin data.dat dưới dạng mã hóa nhị phân. 
Dự án 3. Phân tích, thiết kế và xây dựng chương trình quản lý nhân viên trong 
công ty. Trong chương trình trình này, cần đảm bảo các chức năng sau đây: 
- Trong mô hình quản lý này, cần đảm bảo các thông tin: mã nhân viên, họ tên 
nhân viên, ngày tháng năm sinh, hệ số lương, năm bắt đầu công tác, tình trạng 
hôn nhân, bộ phận làm việc. 
- Tìm kiếm nhân viên theo họ tên. 
- Thống kê số lượng nhân viên theo bộ phận làm việc 
T r a n g | 195 
C
+
+
- Bổ sung (tuyển dụng) hoặc xóa bỏ (kết thúc hợp đồng). 
- Chương trình thực thi trên màn hình Console. Có menu tùy chọn. Dữ liệu được 
lưu trữ vào tập tin data.dat dưới dạng mã hóa nhị phân. 
Dự án 4. Phân tích, thiết kế và xây dựng game FarmVille (một game nổi tiếng 
trên Facebook). Trong game này, cần đảm bảo các chức năng sau đây: 
- Trong mô hình quản lý này, cần đảm bảo các thông tin: người chơi – email, 
tên người chơi, tổng số tiền. Các đối tượng trong game: tên đối tượng, trị giá, 
thời gian khởi tạo, thời gian thu hoạch. 
- Tìm kiếm người chơi theo họ tên. 
- Thống kê số tiền thu được của một người chơi. 
- Bổ sung người chơi hoặc đối tượng trong game. 
- Khi thu hoạch một đối tượng, thì trị giá của đối tượng sẽ được cập nhập vào 
cho tổng tiền của người chơi, đồng thời đối tượng cũng sẽ bị hủy. Đối tượng chỉ 
có thể được thu hoạch nếu: thời gian hiện tại – thời gian khởi tạo >= thời gian 
thu hoạch. 
- Chương trình có menu điều khiển, không yêu cầu tạo giao diện đồ họa. 
Ghi chú: Các sinh viên nộp đủ bài thực hành vào trước buổi thứ 5 sẽ có cơ hội 
nhận được bài tập lớn. Khi nhận được bài tập lớn, ngoài yêu cầu bổ sung của 
giảng viên, sinh viên cần thực thi thên các yêu cầu sau: 
- Phân tích mô hình lên giấy (nộp bản in). 
- Nộp chương trình hoàn chỉnh. Trong đó, chương trình hoàn chỉnh và tập tin 
word (*.doc; *.docx) phải được ghi lên đĩa CD, bên ngoài đĩa có ghi: tên sinh 
viên, lớp và “Bài tập lớn: Lập trình hướng đối tượng C++. Giảng viên hướng 
dẫn: .”. 
 T r a n g | 196 
DANH SÁCH HÌNH 
Hình 1 – Tạo mới dự án trong CodeBlocks .................................................................... 10 
Hình 2 – Khởi tạo thân phương thức ............................................................................ 11 
Hình 3 – Cấu hình MinGW trong Eclipse Helios ......................................................... 12 
Hình 4 – Chọn đường dẫn đến thư mục bin của MinGW .......................................... 12 
Hình 5 - Tạo mới dự án ....................................................................................................... 13 
Hình 6 - Cấu trúc thư mục của một dự án ................................................................... 13 
Hình 7 - Biên dịch một dự án .............................................................................................. 14 
Hình 8 - Hộp thoại tạo mới class........................................................................................ 14 
Hình 9 - Giao diện tổng thể của Visual Studio 2010 ................................................... 16 
Hình 10 - Tạo dự án Win32 Console ................................................................................ 17 
Hình 11 - Win32 Application Wizard ............................................................................ 17 
Hình 12 - Bổ sung thêm một tập tin .................................................................................. 18 
Hình 13 - Bổ sung thêm lớp đối tượng ............................................................................ 19 
Hình 14 - Tạo lớp bằng Class Wizard .............................................................................. 19 
Hình 15 - Xem biểu đồ lớp .................................................................................................. 21 
Hình 16.2 – Tham chiếu trong con trỏ ............................................................................. 79 
Hình 17 – Mô hình tương tác quản lý Nhà nước. ...................................................... 193 
 T r a n g | 197 
TRA CỨU TỪ KHÓA 
MỘT SỐ THUẬT NGỮ ANH-VIỆT ĐƯỢC SỬ DỤNG TRONG GIÁO TRÌNH 
Nguyên bản tiếng Anh Dịch sang tiếng Việt 
Abstract base class Lớp cơ sở trừu tượng 
Abstraction Tính trừu tượng 
Arithmetic operators Toán tử số học 
Assignment operators Toán tử gán 
Base class Lớp cơ sở/ Lớp cha 
Bitwise operators Toán tử dịch bit 
Child class/SubClass Lớp con 
Class Lớp 
Comma operators Toán tử phân tách 
Compound assignment operator Toán tử gán hợp nhất 
Conditional operators Toán tử điều kiện 
Encapsulation Tính đóng gói 
Exception Ngoại lệ 
Explicit type casting operators Toán tử chuyển đổi kiểu dữ liệu 
Increase and decrease operators Toán tử tăng giảm 
Information hiding Che dấu/ẩn dấu thông tin 
Inheritance Tính thừa kế/ Tính kế thừa 
Instance Sự thể hiện 
Logical operators Toán tử logic 
Multiple inheritance Tính đa thừa kết/Tính đa kế thừa 
Object Đối tượng 
Operator Toán tử 
Operator overloading Chồng chất toán tử 
Overload Chồng chất 
Override Quá tải 
Polymorphism Tính đa hình 
Prototype Nguyên mẫu 
Pure virtual function Hàm ảo thuần túy 
Reference Tham chiếu 
Relational and equality operators Toán tử quan hệ và so sánh 
 T r a n g | 198 
TÀI LIỆU THAM KHẢO 
[1]. Đoàn Xuân Ban. Phân tích, thiết kế và lập trình hướng đối tượng với 
C++, NXB Thống kê, 1997. 
[2]. Nguyễn Đình Tê. Hoàng Đức Hải, Giáo trình lý thuyết và bài tập ngôn 
ngữ C++, NXB Giáo dục, 2006 
[3]. Phạm Văn Ất. C++ và lập trình hướng đối tượng, NXB Thống kê. 
[4]. Sir M. Vasanji Road. Object Oriented Programming with C++, Printed in 
India, 1st Edition – June 1999. 
[5]. [6] Sharam Hekmat. “C++ Programming”, Pragmatix Software Pt, 2004. 
[6].  
Mục: XL C/C++ V8.0 for AIX. Language Reference. 
[7].  
[8]. Ivor Horton. Beginning Visual C++ 2010. Wrox pub. 
[9]. Edward Scheinerman. C++ for Mathematicians. An introduction for 
Student and Professional. Chapman & Hall/CRC. 
[10].  

File đính kèm:

  • pdfgiao_trinh_lap_trinh_huong_doi_tuong_c_cao_dang_cong_nghiep.pdf