SlideShare ist ein Scribd-Unternehmen logo
1 von 7
Downloaden Sie, um offline zu lesen
TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM
KHOA CÔNG NGHỆ THÔNG TIN
BỘ MÔN CÔNG NGHỆ PHẦN MỀM
HỆ CHÍNH QUI
MÔN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
GVLT: TS. ĐINH BÁ TIẾN
HƯỚNG DẪN THỰC HÀNH
TUẦN 08
THÀNH PHẦN TĨNH – CƠ CHẾ XỬ LÝ LỖI
TRẦN THANH HẢI
HỒ TUẤN THANH
TP.HCM, ngày 14 tháng 11 năm 2012
tthai/htthanh@fit.hcmus.edu.vn
Trang 2
MỤC LỤC
1 Thành phần tĩnh ............................................................................................................3
1.1 Giới thiệu ...............................................................................................................3
1.2 Lưu ý......................................................................................................................3
1.3 Bài tập ....................................................................................................................3
2 Cơ chế xử lý lỗi.............................................................................................................5
2.1 Bài tập ....................................................................................................................5
3 Kế thừa..........................................................................................................................6
tthai/htthanh@fit.hcmus.edu.vn
Trang 3
1 Thành phần tĩnh
1.1 Giới thiệu
Một lớp sẽ có 2 thành phần:
Các thuộc tính của lớp đó
Các phương thức của lớp đó
Khái niệm thuộc tính tĩnh (static attribute) dùng để thay thế khái niệm biến toàn cục
(global variable) trong lập trình thủ tục thông thường.
Dĩ nhiên, khi lập trình hướng đối tượng trong ngôn ngữ C++, ta vẫn có quyền khai báo
biến toàn cục. Tuy nhiên, xét trường hợp ta muốn khai báo một biến toàn cục, nhưng chỉ
có ý nghĩa trong class A. Nếu ta khai báo biến đó là biến toàn cục thì rõ ràng, bất kì hàm
nào trong class A cũng có thể thay đổi giá trị của biến đó. Không những thế, bất kì hàm
nào không thuộc class A cũng có thể thay đổi giá trị của biến toàn cục đó, làm cho biến
đó bị sai. Do đó, ta có thể khai báo biến đó là thuộc tính tĩnh của class A.
Ngoài thuộc tính tĩnh, trong một lớp ta cũng có thể khai báo thuộc tính tĩnh.
1.2 Lưu ý
Trong các ngôn ngữ lập trình thuần hướng đối tượng như C++, Java, tất cả các biến mà ta
muốn khai báo đều phải nằm trong một hàm nào đó (biến cục bộ) hoặc nằm trong một
class nào đó (thuộc tính). Do đó, nếu muốn khai báo biến toàn cục, hãy nghĩ đến việc
khai báo thuộc tính tĩnh trong class nào đó
Trong một class, nếu một phương thức không hề thao tác với thuộc tính không tĩnh nào
của class đó, ta có thể để phương thức đó là phương thức tĩnh của class
Trong phương thức tĩnh, ta không thể truy xuất đến các thuộc tính không tĩnh trong class
đó.
1.3 Bài tập
1. Hãy khai báo lớp Random cung cấp các hàm sau:
Phát sinh số nguyên ngẫu nhiên đoạn [0, n) với n là số nguyên
Phát sinh số nguyên ngẫu nhiên trong đoạn [a, b] với a, b là số nguyên và a<=b
Yêu cầu: sử dụng phương thức tĩnh
2. Hãy khai báo lớp Math cung cấp các hàm sau:
tthai/htthanh@fit.hcmus.edu.vn
Trang 4
Tính sin
Tính cos
Tính tan
Tính cotan
Tính trị tuyệt đối
Tính căn bậc 2
Tính căn bậc 3
Tính căn bậc n
Tính x^n
Yêu cầu: sử dụng phương thức tĩnh
3. Hãy khai báo lớp Utility cung cấp hàm sau:
Tìm ước chung lớn nhất 2 số nguyên dương
Tìm bội chung nhỏ nhất 2 số nguyên dương
Kiểm tra số nguyên dương x có phải là số nguyên tố không
Kiểm tra số nguyên dương x có phải là số chính phương không
Kiểm tra số nguyên dương x có phải là số hoàn thiện không
Đổi một số từ độ sang radian
Đổi một số từ radian sang độ
Đổi từ m sang mm
Đổi từ mm ra m
Đổi từ km ra m
Đổi từ m ra km
Đổi từ kg ra g
Đổi từ g ra kg
Đổi từ m ra foot
Đổi từ foot ra m
Đổi từ inch ra mm
Đổi từ mm ra inch
Đổi từ gallon ra lít
Đổi từ lít ra gallon
Đổi từ dặm ra km
Đổi từ km ra dặm
Đổi từ yard ra m
Đổi từ m ra yard
Đổi từ km/h ra m/s
Đổi từ m/s ra km/h
tthai/htthanh@fit.hcmus.edu.vn
Trang 5
4. Thông tin nhân viên gồm: số cmnd, họ tên, địa chỉ, năm sinh. Viết 2 hàm nhập và xuất
thông tin nhân viên. Biết rằng công ty chỉ nhận nhân viên từ 18 tuổi đến 35 tuổi. Hãy
sử dụng thuộc tính tĩnh lưu tuổi tối thiểu và tuổi tối đa.
5. Thông tin của một sinh viên gồm: mssv, họ tên, điểm thực hành, điểm lí thuyết. Viết 5
hàm: nhập, xuất, tính điểm môn học, xét đậu rớt và xếp loại sinh viên đó. Biết rằng:
Điểm môn học = 60% lí thuyết và 40% thực hành
Xếp loại sinh viên (xuất sắc, giỏi, khá, trung bình khá, trung bình, yếu): dựa vào
thang điểm mà trường ta đang áp dụng.
Yêu cầu: sử dụng thuộc tính tĩnh lưu tỉ lệ thang điểm (60%, 40%, …), lưu mức điểm ứng
với mức xếp loại (8.0 cho loại giỏi, …)
2 Cơ chế xử lý lỗi
2.1 Bài tập
Trong các bài tập 1, 2, 3, 4, với mỗi exception, sinh viên hãy xây dựng một class kế thừa
class exception trong thư viện chuẩn của C++
1. Trong lớp PhanSo có các hàm:
Nhập
Xuất
Cập nhật tử
Cập nhật mẫu
Chia 2 phân số
Đọc từ file
Ghi xuống file
Hãy áp dụng cơ chế xử lý lỗi vào các hàm này
2. Trong lớp Ngay có các hàm sau:
Nhập
Xuất
Cập nhật ngày
Cập nhật tháng
Cập nhật năm
Đọc từ file
Ghi xuống file
tthai/htthanh@fit.hcmus.edu.vn
Trang 6
Hãy áp dụng cơ chế xử lý lỗi vào các hàm này
3. Trong lớp mảng số nguyên có các hàm sau:
Nhập
Xuất
Thêm phần tử x vào vị trí k
Xóa phần tử tại k
Trả về phần tử vị trí k
Cập nhật phần tử vị trí k
Hãy áp dụng cơ chế xử lý lỗi vào các hàm này
4. Hãy áp dụng cơ chế xử lý lỗi vào bài tập đọc thông tin từ file svg và vẽ hình sử dụng
GDI+
5. Nếu trong constructor của một lớp xảy ra exception thì destructor của class đó có
được gọi hay không? Viết một đoạn code minh họa.
6. Cho biết cơ chế two-stage construction là gì? Viết một đoạn code minh họa.
7. Cho biết kết quả thực hiện đoạn chương trình sau:
3 Kế thừa
Thông tin của một giáo viên gồm: họ tên, địa chỉ, hệ số lương, số tiết dạy
Giáo viên chủ nhiệm làm công việc của một giáo viên và ngoài ra còn phải làm chủ
nhiệm một lớp.
Biết rằng:
tthai/htthanh@fit.hcmus.edu.vn
Trang 7
Lương giáo viên = hệ số lương * lương cơ bản + số tiết dạy * 60.000
Lương giáo viên chủ nhiệm = hệ số lương * lương cơ bản + số tiết dạy * 60.000 +
500.000 (tiền chủ nhiệm một lớp)
Hãy viết các hàm sau:
Lớp giáo viên:
o Hàm dựng mặc định
o Hàm dựng đầy đủ tham số
o Hàm dựng sao chép
o Toán tử gán bằng
o Hàm hủy
o Nhập
o Xuất
o Tính lương
Lớp giáo viên chủ nhiệm:
o Hàm dựng mặc định
o Hàm dựng đầy đủ tham số
o Hàm dựng sao chép
o Toán tử gán bằng
o Hàm hủy
o Nhập
o Xuất
o Tính lương
Yêu cầu:
Sử dụng kiểu dữ liệu char * để lưu chuỗi
Sử dụng thuộc tính tĩnh/phương thức tĩnh

Weitere ähnliche Inhalte

Ähnlich wie Cq lt hdt-th2011-01-tuan08

Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
Dũng Đinh
 
Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-
Dũng Đinh
 
Cq lt hdt-th2011-01-tuan01
Cq lt hdt-th2011-01-tuan01Cq lt hdt-th2011-01-tuan01
Cq lt hdt-th2011-01-tuan01
. .
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
vantai30
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
Hồ Lợi
 
Cq lt hdt-th2011-01-tuan05
Cq lt hdt-th2011-01-tuan05Cq lt hdt-th2011-01-tuan05
Cq lt hdt-th2011-01-tuan05
. .
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4
Kieu Tuyen
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4
Kieu Tuyen
 
Cq lt hdt-th2011-01-thck
Cq lt hdt-th2011-01-thckCq lt hdt-th2011-01-thck
Cq lt hdt-th2011-01-thck
. .
 

Ähnlich wie Cq lt hdt-th2011-01-tuan08 (20)

Hdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vbHdth01 ltudql2-lap tinhduongdoituong-vb
Hdth01 ltudql2-lap tinhduongdoituong-vb
 
Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-Hdth02 ltudql02--tuan02 tt-
Hdth02 ltudql02--tuan02 tt-
 
Luận văn: Tính toán khoảng giải các ràng buộc không tuyến tính
Luận văn: Tính toán khoảng giải các ràng buộc không tuyến tínhLuận văn: Tính toán khoảng giải các ràng buộc không tuyến tính
Luận văn: Tính toán khoảng giải các ràng buộc không tuyến tính
 
Cq lt hdt-th2011-01-tuan01
Cq lt hdt-th2011-01-tuan01Cq lt hdt-th2011-01-tuan01
Cq lt hdt-th2011-01-tuan01
 
Gt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanhGt ung dung tin hoc trong kinh doanh
Gt ung dung tin hoc trong kinh doanh
 
Luận văn: Phương pháp giải phương trình chứa ẩn dưới dấu căn
Luận văn: Phương pháp giải phương trình chứa ẩn dưới dấu cănLuận văn: Phương pháp giải phương trình chứa ẩn dưới dấu căn
Luận văn: Phương pháp giải phương trình chứa ẩn dưới dấu căn
 
Bài tập nhập môn lập trình
Bài tập nhập môn lập trìnhBài tập nhập môn lập trình
Bài tập nhập môn lập trình
 
Thiet ke co so du lieu
Thiet ke co so du lieuThiet ke co so du lieu
Thiet ke co so du lieu
 
Giaotrinhbaitapkythuatlaptrinh
GiaotrinhbaitapkythuatlaptrinhGiaotrinhbaitapkythuatlaptrinh
Giaotrinhbaitapkythuatlaptrinh
 
bai giang Matlab
bai giang Matlabbai giang Matlab
bai giang Matlab
 
Cq lt hdt-th2011-01-tuan05
Cq lt hdt-th2011-01-tuan05Cq lt hdt-th2011-01-tuan05
Cq lt hdt-th2011-01-tuan05
 
Làm thế nào để quản lí vi phạm của học sinh
Làm thế nào để quản lí vi phạm của học sinhLàm thế nào để quản lí vi phạm của học sinh
Làm thế nào để quản lí vi phạm của học sinh
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4
 
Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4 Kich ban day hoc tin hoc 7 bai 4
Kich ban day hoc tin hoc 7 bai 4
 
De kiem tra 1 tiet tin 7
De kiem tra 1 tiet tin 7De kiem tra 1 tiet tin 7
De kiem tra 1 tiet tin 7
 
Kỹ thuật lập trình - PGS.TS. Phạm Thế Bảo
Kỹ thuật lập trình - PGS.TS. Phạm Thế BảoKỹ thuật lập trình - PGS.TS. Phạm Thế Bảo
Kỹ thuật lập trình - PGS.TS. Phạm Thế Bảo
 
KHAI PHÁ DỮ LIỆU - C5.pptx
KHAI PHÁ DỮ LIỆU - C5.pptxKHAI PHÁ DỮ LIỆU - C5.pptx
KHAI PHÁ DỮ LIỆU - C5.pptx
 
Cq lt hdt-th2011-01-thck
Cq lt hdt-th2011-01-thckCq lt hdt-th2011-01-thck
Cq lt hdt-th2011-01-thck
 
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...Tiểu luận  cơ sở ngành kỹ thuật phần mềm. phần mềm  mô phỏng các thuật toán s...
Tiểu luận cơ sở ngành kỹ thuật phần mềm. phần mềm mô phỏng các thuật toán s...
 
HOINT_Case-Study-PTTK-HTTT-10_2022-cho-Sinh-viên.pdf
HOINT_Case-Study-PTTK-HTTT-10_2022-cho-Sinh-viên.pdfHOINT_Case-Study-PTTK-HTTT-10_2022-cho-Sinh-viên.pdf
HOINT_Case-Study-PTTK-HTTT-10_2022-cho-Sinh-viên.pdf
 

Mehr von . .

Exceptions ref
Exceptions refExceptions ref
Exceptions ref
. .
 
Cq lt hdt-th2011-01-tuan11
Cq lt hdt-th2011-01-tuan11Cq lt hdt-th2011-01-tuan11
Cq lt hdt-th2011-01-tuan11
. .
 
Cq lt hdt-th2011-01-tuan02
Cq lt hdt-th2011-01-tuan02Cq lt hdt-th2011-01-tuan02
Cq lt hdt-th2011-01-tuan02
. .
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
. .
 
Cautrucdulieu full
Cautrucdulieu fullCautrucdulieu full
Cautrucdulieu full
. .
 
Baitaprdbms
BaitaprdbmsBaitaprdbms
Baitaprdbms
. .
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
. .
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
. .
 
Core java 9
Core java 9Core java 9
Core java 9
. .
 
Core java 8
Core java 8Core java 8
Core java 8
. .
 
Core java 7
Core java 7Core java 7
Core java 7
. .
 
Core java 6
Core java 6Core java 6
Core java 6
. .
 
Core java 5
Core java 5Core java 5
Core java 5
. .
 
Core java 4
Core java 4Core java 4
Core java 4
. .
 
Core java 3
Core java 3Core java 3
Core java 3
. .
 
Core java 2
Core java 2Core java 2
Core java 2
. .
 
Core java 1
Core java 1Core java 1
Core java 1
. .
 
Core java 10
Core java 10Core java 10
Core java 10
. .
 
ToanRoirac
ToanRoiracToanRoirac
ToanRoirac
. .
 

Mehr von . . (19)

Exceptions ref
Exceptions refExceptions ref
Exceptions ref
 
Cq lt hdt-th2011-01-tuan11
Cq lt hdt-th2011-01-tuan11Cq lt hdt-th2011-01-tuan11
Cq lt hdt-th2011-01-tuan11
 
Cq lt hdt-th2011-01-tuan02
Cq lt hdt-th2011-01-tuan02Cq lt hdt-th2011-01-tuan02
Cq lt hdt-th2011-01-tuan02
 
Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04Cq lt hdt-th2011-02-tuan04
Cq lt hdt-th2011-02-tuan04
 
Cautrucdulieu full
Cautrucdulieu fullCautrucdulieu full
Cautrucdulieu full
 
Baitaprdbms
BaitaprdbmsBaitaprdbms
Baitaprdbms
 
Bai tap va loi giai sql
Bai tap va loi giai sqlBai tap va loi giai sql
Bai tap va loi giai sql
 
Cau lenh truy_van_sql
Cau lenh truy_van_sqlCau lenh truy_van_sql
Cau lenh truy_van_sql
 
Core java 9
Core java 9Core java 9
Core java 9
 
Core java 8
Core java 8Core java 8
Core java 8
 
Core java 7
Core java 7Core java 7
Core java 7
 
Core java 6
Core java 6Core java 6
Core java 6
 
Core java 5
Core java 5Core java 5
Core java 5
 
Core java 4
Core java 4Core java 4
Core java 4
 
Core java 3
Core java 3Core java 3
Core java 3
 
Core java 2
Core java 2Core java 2
Core java 2
 
Core java 1
Core java 1Core java 1
Core java 1
 
Core java 10
Core java 10Core java 10
Core java 10
 
ToanRoirac
ToanRoiracToanRoirac
ToanRoirac
 

Cq lt hdt-th2011-01-tuan08

  • 1. TRƯỜNG ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN CÔNG NGHỆ PHẦN MỀM HỆ CHÍNH QUI MÔN: LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG GVLT: TS. ĐINH BÁ TIẾN HƯỚNG DẪN THỰC HÀNH TUẦN 08 THÀNH PHẦN TĨNH – CƠ CHẾ XỬ LÝ LỖI TRẦN THANH HẢI HỒ TUẤN THANH TP.HCM, ngày 14 tháng 11 năm 2012
  • 2. tthai/htthanh@fit.hcmus.edu.vn Trang 2 MỤC LỤC 1 Thành phần tĩnh ............................................................................................................3 1.1 Giới thiệu ...............................................................................................................3 1.2 Lưu ý......................................................................................................................3 1.3 Bài tập ....................................................................................................................3 2 Cơ chế xử lý lỗi.............................................................................................................5 2.1 Bài tập ....................................................................................................................5 3 Kế thừa..........................................................................................................................6
  • 3. tthai/htthanh@fit.hcmus.edu.vn Trang 3 1 Thành phần tĩnh 1.1 Giới thiệu Một lớp sẽ có 2 thành phần: Các thuộc tính của lớp đó Các phương thức của lớp đó Khái niệm thuộc tính tĩnh (static attribute) dùng để thay thế khái niệm biến toàn cục (global variable) trong lập trình thủ tục thông thường. Dĩ nhiên, khi lập trình hướng đối tượng trong ngôn ngữ C++, ta vẫn có quyền khai báo biến toàn cục. Tuy nhiên, xét trường hợp ta muốn khai báo một biến toàn cục, nhưng chỉ có ý nghĩa trong class A. Nếu ta khai báo biến đó là biến toàn cục thì rõ ràng, bất kì hàm nào trong class A cũng có thể thay đổi giá trị của biến đó. Không những thế, bất kì hàm nào không thuộc class A cũng có thể thay đổi giá trị của biến toàn cục đó, làm cho biến đó bị sai. Do đó, ta có thể khai báo biến đó là thuộc tính tĩnh của class A. Ngoài thuộc tính tĩnh, trong một lớp ta cũng có thể khai báo thuộc tính tĩnh. 1.2 Lưu ý Trong các ngôn ngữ lập trình thuần hướng đối tượng như C++, Java, tất cả các biến mà ta muốn khai báo đều phải nằm trong một hàm nào đó (biến cục bộ) hoặc nằm trong một class nào đó (thuộc tính). Do đó, nếu muốn khai báo biến toàn cục, hãy nghĩ đến việc khai báo thuộc tính tĩnh trong class nào đó Trong một class, nếu một phương thức không hề thao tác với thuộc tính không tĩnh nào của class đó, ta có thể để phương thức đó là phương thức tĩnh của class Trong phương thức tĩnh, ta không thể truy xuất đến các thuộc tính không tĩnh trong class đó. 1.3 Bài tập 1. Hãy khai báo lớp Random cung cấp các hàm sau: Phát sinh số nguyên ngẫu nhiên đoạn [0, n) với n là số nguyên Phát sinh số nguyên ngẫu nhiên trong đoạn [a, b] với a, b là số nguyên và a<=b Yêu cầu: sử dụng phương thức tĩnh 2. Hãy khai báo lớp Math cung cấp các hàm sau:
  • 4. tthai/htthanh@fit.hcmus.edu.vn Trang 4 Tính sin Tính cos Tính tan Tính cotan Tính trị tuyệt đối Tính căn bậc 2 Tính căn bậc 3 Tính căn bậc n Tính x^n Yêu cầu: sử dụng phương thức tĩnh 3. Hãy khai báo lớp Utility cung cấp hàm sau: Tìm ước chung lớn nhất 2 số nguyên dương Tìm bội chung nhỏ nhất 2 số nguyên dương Kiểm tra số nguyên dương x có phải là số nguyên tố không Kiểm tra số nguyên dương x có phải là số chính phương không Kiểm tra số nguyên dương x có phải là số hoàn thiện không Đổi một số từ độ sang radian Đổi một số từ radian sang độ Đổi từ m sang mm Đổi từ mm ra m Đổi từ km ra m Đổi từ m ra km Đổi từ kg ra g Đổi từ g ra kg Đổi từ m ra foot Đổi từ foot ra m Đổi từ inch ra mm Đổi từ mm ra inch Đổi từ gallon ra lít Đổi từ lít ra gallon Đổi từ dặm ra km Đổi từ km ra dặm Đổi từ yard ra m Đổi từ m ra yard Đổi từ km/h ra m/s Đổi từ m/s ra km/h
  • 5. tthai/htthanh@fit.hcmus.edu.vn Trang 5 4. Thông tin nhân viên gồm: số cmnd, họ tên, địa chỉ, năm sinh. Viết 2 hàm nhập và xuất thông tin nhân viên. Biết rằng công ty chỉ nhận nhân viên từ 18 tuổi đến 35 tuổi. Hãy sử dụng thuộc tính tĩnh lưu tuổi tối thiểu và tuổi tối đa. 5. Thông tin của một sinh viên gồm: mssv, họ tên, điểm thực hành, điểm lí thuyết. Viết 5 hàm: nhập, xuất, tính điểm môn học, xét đậu rớt và xếp loại sinh viên đó. Biết rằng: Điểm môn học = 60% lí thuyết và 40% thực hành Xếp loại sinh viên (xuất sắc, giỏi, khá, trung bình khá, trung bình, yếu): dựa vào thang điểm mà trường ta đang áp dụng. Yêu cầu: sử dụng thuộc tính tĩnh lưu tỉ lệ thang điểm (60%, 40%, …), lưu mức điểm ứng với mức xếp loại (8.0 cho loại giỏi, …) 2 Cơ chế xử lý lỗi 2.1 Bài tập Trong các bài tập 1, 2, 3, 4, với mỗi exception, sinh viên hãy xây dựng một class kế thừa class exception trong thư viện chuẩn của C++ 1. Trong lớp PhanSo có các hàm: Nhập Xuất Cập nhật tử Cập nhật mẫu Chia 2 phân số Đọc từ file Ghi xuống file Hãy áp dụng cơ chế xử lý lỗi vào các hàm này 2. Trong lớp Ngay có các hàm sau: Nhập Xuất Cập nhật ngày Cập nhật tháng Cập nhật năm Đọc từ file Ghi xuống file
  • 6. tthai/htthanh@fit.hcmus.edu.vn Trang 6 Hãy áp dụng cơ chế xử lý lỗi vào các hàm này 3. Trong lớp mảng số nguyên có các hàm sau: Nhập Xuất Thêm phần tử x vào vị trí k Xóa phần tử tại k Trả về phần tử vị trí k Cập nhật phần tử vị trí k Hãy áp dụng cơ chế xử lý lỗi vào các hàm này 4. Hãy áp dụng cơ chế xử lý lỗi vào bài tập đọc thông tin từ file svg và vẽ hình sử dụng GDI+ 5. Nếu trong constructor của một lớp xảy ra exception thì destructor của class đó có được gọi hay không? Viết một đoạn code minh họa. 6. Cho biết cơ chế two-stage construction là gì? Viết một đoạn code minh họa. 7. Cho biết kết quả thực hiện đoạn chương trình sau: 3 Kế thừa Thông tin của một giáo viên gồm: họ tên, địa chỉ, hệ số lương, số tiết dạy Giáo viên chủ nhiệm làm công việc của một giáo viên và ngoài ra còn phải làm chủ nhiệm một lớp. Biết rằng:
  • 7. tthai/htthanh@fit.hcmus.edu.vn Trang 7 Lương giáo viên = hệ số lương * lương cơ bản + số tiết dạy * 60.000 Lương giáo viên chủ nhiệm = hệ số lương * lương cơ bản + số tiết dạy * 60.000 + 500.000 (tiền chủ nhiệm một lớp) Hãy viết các hàm sau: Lớp giáo viên: o Hàm dựng mặc định o Hàm dựng đầy đủ tham số o Hàm dựng sao chép o Toán tử gán bằng o Hàm hủy o Nhập o Xuất o Tính lương Lớp giáo viên chủ nhiệm: o Hàm dựng mặc định o Hàm dựng đầy đủ tham số o Hàm dựng sao chép o Toán tử gán bằng o Hàm hủy o Nhập o Xuất o Tính lương Yêu cầu: Sử dụng kiểu dữ liệu char * để lưu chuỗi Sử dụng thuộc tính tĩnh/phương thức tĩnh