Tải bản đầy đủ (.pdf) (31 trang)

LẬP TRÌNH HƯỚNG đối TƯỢNG đề tài QUẢN lý SINH VIÊN

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 (749.57 KB, 31 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
Khoa Đa Phương Tiện
----🙣🕮🙡----

BÁO CÁO MƠN
LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG
ĐỀ TÀI:

QUẢN LÝ SINH VIÊN


MỤC LỤC
Table of Contents
1. Class ngayThangNam
4
1.1 Thuộc tính
4
1.2. Các phương thức:
4
1.2.1. Hàm khởi tạo không tham số
4
1.2.2. Hàm khởi tạo có tham số
4
1.2.3. Hàm hủy
4
1.2.4. Các hàm getter các thuộc tính
5
1.2.5. Các hàm setter các thuộc tính
5
1.2.7. Các hàm bạn ( hàm Friend)
5


2. class ThongTinCaNhan
8
2.1. Thuộc tính
8
2.2. Phương thức
9
2.2.1. Hàm khởi tạo có tham số
9
2.2.2. Hàm khởi tạo khơng có tham số
9
2.2.3. Hàm hủy
9
2.2.4. Các hàm setter
9
2.2.5. Các hàm getter
9
3. Class sinhvien : publicThongTinCaNhan (Kế thừa từ class ThongTinCaNhan
)
10
3.1. Các thuộc tính
10
3.2. Các phương thức
10
3.2.1. Hàm khởi tạo khơng tham số
10
3.2.2. Hàm khởi tạo có tham số
10
3.2.3. Hàm hủy
10
3.2.4. Các hàm getter

11
3.2.5. Các hàm setter
11
4. Class sinhvienketoan : public sinhvien
12
4.1. Các thuộc tính
12
4.2. Các phương thức
12
4.2.1. Hàm khởi tạo có tham số
12
4.2.2 Hàm xét danh hiệu được đa hình nạp chồng lại từ hàm xetdanhhieu ở
lớp cơ sở sinhvien
12
4.2.3. Hàm phần thưởng được đa hình nạp chồng lại từ hàm phanthuong ở lớp
cơ sở sinhvien
13
5. Class sinhviencongnghe : public sinhvien
13
5.1. Các thuộc tính
13
5.2. Các phương thức
13
5.2.1. Hàm khởi tạo có tham số
13
2


5.2.2 Hàm xét danh hiệu được đa hình nạp chồng lại từ hàm xetdanhhieu ở
lớp cơ sở sinhvien

13
5.2.3. Hàm phần thưởng được đa hình nạp chồng lại từ hàm phanthuong ở lớp
cơ sở sinhvien
14
6. Class quanLyDanhSachSinhvien
14
6.1. Các thuộc tính
14
6.2. Các phương thức
14
6.2.1.Hàm khơi tạo danh sách
14
6.2.2.Hàm tăng đếm số lượng sinh viên có trong danh sách
14
6.2.3.Hàm tạo một sinh viên mới khi có u cầu từ người dùng
15
6.2.4. Tìm sinh viên theo mã sinh viên được người dùng nhập vào.
16
6.2.5. Xóa sinh viên theo mã sinh viên
16
6.2.6. Sửa thơng tin sinh viên dựa vào MSSV mà người dùng nhập vào 17
6.2.7. Xuất danh sách sinh viên khoa công nghệ thông tin
18
7. Các tính chất hướng đối tượng được thể hiện thơng qua chương trình quản lý
sinh viên
19
7.1. Tính chất của Hàm bạn ( friend function)
19
7.2. Tính trừu tượng
20

7.3. Tính đóng gói
21
7.4. Tính kế thừa
21
7.5. Tính đa hình
22
8. Demo chương trình
24
8.1. Màn hình chức năng chính
24
8.2. Thêm sinh viên
24
8.3. Xóa sinh viên
25
8.4. Sửa sinh viên
25
8.5. In danh sách sinh viên
27
8.6. In danh sách sinh viên kế toán
28
8.7. In danh sách sinh viên công nghệ
28
8.8. In danh sách kèm theo danh hieu va phần thưởng
29
8.9. In danh sách sinh viên theo điểm gpa
30

3



1. Class ngayThangNam
1.1 Thuộc tính

- Các thuộc tính của class này là ngay, thang, nam có kiểu int biểu thị cho ngày ,
tháng , năm của người dùng nhập vào.
1.2. Các phương thức:
1.2.1. Hàm khởi tạo không tham số

Hàm khởi tạo khơng tham số mặc định
1.2.2. Hàm khởi tạo có tham số

Khi tạo một đối tượng ngayThangNam mới ta có thể khởi tạo theo giá trị mà
người dùng mong muốn bằng cach nhập vào các tham số ngay, thang, nam
1.2.3. Hàm hủy

Hủy đối tượng, trả lại bộ nhớ cho máy tính
4


1.2.4. Các hàm getter các thuộc tính

- Các hàm setter dùng để lấy ra các thuộc tính của class để đảm bảo tính trừu
tượng của lập trình hướng đối tượng.
1.2.5. Các hàm setter các thuộc tính

- Thơng qua các hàm setter ta có thể thay đổi giá trị bằng các phương thức được
lập trình để đảm bảo tính trừu tượng của lập trình hướng đối tượng
1.2.6. Hàm lấy đối tượng ngayThangNam

- Hàm lấy ra đối tượng hiện ngayThangNam với các gái trị hiện tại

1.2.7. Các hàm bạn ( hàm Friend)

Các hàm bạn này được khai báo cho các hàm ngoài phạm vi class có thể sử
dụng trực tiếp các trường dữ liệu mà không cần tới các phương thức trừu tượng
1.2.7.1. Kiểm tra năm nhuận

5


- Năm nhuận là năm chia hết cho 4 và không chia hết cho 100 hoặc là năm chia
hết cho 400
1.2.7.2. kiểm tra ngày trong tháng

6


- Hàm trả về số ngày thuộc tháng được đưa vào nhằm hỗ trợ kiểm tra tính hợp lệ
của ngayThangNam nhập vào.
1.2.7.3. Kiểm tra ngày nhập vào có hợp lệ hay không.

7


Nếu ngày hợp lệ thì trả về true cịn sai thì trả về false năm >0, tháng >=1, tháng
<=12, ngày phải đúng theo tháng
1.2.8. Hàm nhập data cho đối tượng từ bàn phím

Nhập các giá trị cho đối tượng
1.2.9. In ngày tháng năm ra màn hình dưới dạng dd/mm/yyyy


- In ra màn hình thơng tin dưới dạng dd/mm/yyyy
2. class ThongTinCaNhan
2.1. Thuộc tính

Các thuộc tính thuộc class là hoTen, queQuan, ngaysinh biểu thị cho thông tin
cơ bản của một cá nhân.
8


2.2. Phương thức
2.2.1. Hàm khởi tạo có tham số

Khởi tạo một đối tượng ThongTinCaNhan với các thông tin được người dùng
u cầu
2.2.2. Hàm khởi tạo khơng có tham số

Khỏi tạo không tham số mặc định
2.2.3. Hàm hủy

Hủy đối tượng trả lại bộ nhớ cho máy tính
2.2.4. Các hàm setter

Thiết lập các giá trị thuộc tính cho đối tượng
2.2.5. Các hàm getter

Các hàm getter dùng để lấy ra các thuộc tính của class để đảm bảo tính trừu
tượng của lập trình hướng đối tượng.
9



2.2.6. In thơng tin cá nhân ra màn hình.

3. Class sinhvien : publicThongTinCaNhan (Kế thừa từ class ThongTinCaNhan )
3.1. Các thuộc tính

Các thuộc tính biểu diễn thơng tin cơ bản của một sinh viên bao gồm tên khoa,
lớp, mã số sinh viên và điểm GPA.
3.2. Các phương thức
3.2.1. Hàm khởi tạo không tham số

Khởi tạo mặc định không tham số.
3.2.2. Hàm khởi tạo có tham số

Khởi tạo đối tượng với các tham số người dùng yêu cầu. Ở đây có gọi lại hàm
khởi tạo của lớp thong tin cá nhân mà lớp sinh viên kế thừa.
3.2.3. Hàm hủy

Hủy đối tượng trả bộ nhớ về cho máy tính

10


3.2.4. Các hàm getter

- Các hàm getter dùng để lấy ra các thuộc tính của class để đảm bảo tính trừu
tượng của lập trình hướng đối tượng.
3.2.5. Các hàm setter

- Thơng qua các hàm setter ta có thể thay đổi giá trị bằng các phương thức được
lập trình để đảm bảo tính trừu tượng của lập trình hướng đối tượng

3.2.6. Hàm in thơng tin ra màn hình

- In ra màn hình thơng tin cơ bản của sinh viên trong đó có sử dụng gọi lại
phương thức in thơng tin ở lớp cha
3.2.7. Hàm ảo (Virtual function) xét danh hiệu cho sinh viên dành cho các
lớp đa hình của lớp sinhvien ở phía sau.
11


- Hàm ảo này tạo cơ sở cho nạp chồng đa hình cho các lớp kế thừa đa hình ở
phía sau
3.2.8. Hàm ảo (Virtual function) xét phần thưởng cho sinh viên dành cho các
lớp đa hình của lớp sinhvien ở phía sau.

- Hàm ảo này tạo cơ sở cho nạp chồng đa hình cho các lớp kế thừa đa hình ở
phía sau
4. Class sinhvienketoan : public sinhvien
4.1. Các thuộc tính

Các thuộc tính ở đây được kế thừa từ class sinhvien.
4.2. Các phương thức

Các phương thức getter/ setter được kế thừa từ lớp cơ sở class sinhvien
4.2.1. Hàm khởi tạo có tham số

Khởi tạo đối tượng sinh viên kế tốn có sử dụng gọi lại phương thức khởi tạo ở
lớp cha.
4.2.2 Hàm xét danh hiệu được đa hình nạp chồng lại từ hàm xetdanhhieu ở lớp
cơ sở sinhvien


12


Tính chất đa hình được thể hiện qua hàm này. Nó nạp chồng lại hàm này ở lớp
cha. Nó có chung tên chung kiểu và dữ liệu đầu vào nhưng sẽ trả về kết quả
khác nhau tùy đối tượng mà nó phụ thuộc
4.2.3. Hàm phần thưởng được đa hình nạp chồng lại từ hàm phanthuong ở lớp
cơ sở sinhvien

Tính chất đa hình được thể hiện qua hàm này. Nó nạp chồng lại hàm này ở lớp
cha. Nó có chung tên chung kiểu và dữ liệu đầu vào nhưng sẽ trả về kết quả
khác nhau tùy đối tượng mà nó phụ thuộc
5. Class sinhviencongnghe : public sinhvien
5.1. Các thuộc tính

Các thuộc tính ở đây được kế thừa từ class sinhvien.
5.2. Các phương thức

Các phương thức được kế thừa từ lớp cơ sở class sinhvien
5.2.1. Hàm khởi tạo có tham số

Khởi tạo đối tượng sinh viên cơng nghệ có sử dụng gọi lại phương thức khởi tạo
ở lớp cha.
5.2.2 Hàm xét danh hiệu được đa hình nạp chồng lại từ hàm xetdanhhieu ở lớp
cơ sở sinhvien

13


Tính chất đa hình được thể hiện qua hàm này. Nó nạp chồng lại hàm này ở lớp

cha. Nó có chung tên chung kiểu và dữ liệu đầu vào nhưng sẽ trả về kết quả
khác nhau tùy đối tượng mà nó phụ thuộc
5.2.3. Hàm phần thưởng được đa hình nạp chồng lại từ hàm phanthuong ở lớp
cơ sở sinhvien

Tính chất đa hình được thể hiện qua hàm này. Nó nạp chồng lại hàm này ở lớp
cha. Nó có chung tên chung kiểu và dữ liệu đầu vào nhưng sẽ trả về kết quả
khác nhau tùy đối tượng mà nó phụ thuộc
6. Class quanLyDanhSachSinhvien
6.1. Các thuộc tính

Các thuộc tính bao gồm mảng100 con trỏ sinhvien được khai báo và số
lượng sinh viên có trong danh sách

6.2. Các phương thức

Ở trong class này ta xây dung các phương thức để quản lý danh sách các
con trỏ sinh viên . Bao gồm các phương thức tạo mới sinh viên, thêm ,sửa ,xóa,
thống kê ….
6.2.1.Hàm khơi tạo danh sách

6.2.2.Hàm tăng đếm số lượng sinh viên có trong danh sách

-khởi tạo quản lý với số lượng sinhvien có trong danh sách =0
14


6.2.3.Hàm tạo một sinh viên mới khi có yêu cầu từ người dùng

- Hàm này thực hiện chức năng tạo một sinh viên từ dữ liệu mà người

dùng nhập vào từ bàn phím.
15


- Ở đây có sử dụng con trỏ đa hình tức là cùng là con trỏ sinhvien nhưng
có thể biểu hiện cho sinhvienketoan hoặc là sinhviencongnghe.
- khi nhập các thông tin của sinh viên vào nếu là sinh viên thuộc các
ngành quy định thì sẽ thêm sinh viên vào ngành tương ứng nếu khơng thì trả về
NULL
6.2.4. Tìm sinh viên theo mã sinh viên được người dùng nhập vào.

- Duyệt lần lượt danh sách sinh viên kiểm tả nếu trùng mã thì trả về đối tượng
sịnh viên đó nếu khơng thì trả vể NULL
6.2.5. Xóa sinh viên theo mã sinh viên

- Kiểm tra tồn tại của sinh viên có mã nhập vào nếu mà trùng thì ta tiến
hành dịch chuyển các phần tử phía sau của mảng đè lên phần tử ở phía
trước đó. Đồng thời giảm số lượng sinh viên xuống 1 đơn vị.
16


6.2.6. Sửa thông tin sinh viên dựa vào MSSV mà người dùng nhập vào

- Hàm này kiểm tra sự tồn tại của sinh viên có mã được nhập vào nếu mà
có tồn tại sinh viên đó thì ta tiến hành lựa chọn sửa các thông tin của sinh
viên .

17



6.2.7. Xuất danh sách sinh viên khoa công nghệ thông tin

- Nếu các sinh viên thuộc khoa cntt thì xuất ra màn hình
6.2.8. Xuất danh sách sinh viên khóa kế tốn

- Nếu các sinh viên thuộc khoa ketoan thì xuất ra màn hình
6.2.9. Xuất tồn bộ danh sách sinh viên

- In tồn bộ sinh viên ra màn hình.
6.2.10. xuất danh sách sinh viên kèm theo danh hiệu và phần thưởng

Xuất thông tin cá nhân của sinh viên và phần thưởng cộng với danh hiệu sinh
viên đạt được dựa trên điểm gpa.
6.2.11. Xuất sinh viên theo thứ tự điểm GPA và theo danh sách khoa

18


Sắp xếp sinh viên theo điểm và in ra thông tin cá nhân của từng sinhvien
6.2.11. Sắp xếp danh sách sinh viên theo GPA

Ta duyệt lần lượt tất cả các sinh viên và di chuyển sinhvien về vị trí thích hợp
7. Các tính chất hướng đối tượng được thể hiện thơng qua chương trình quản lý sinh
viên
7.1. Tính chất của Hàm bạn ( friend function)
Hàm bạn trong c++ là hàm tự do, không thuộc lớp. Tuy nhiên hàm bạn trong c++ có

quyền truy cập các thành viên private của lớp.
Một lớp trong c++ có thể có nhiều hàm bạn, và chúng phải nằm bên ngồi class.
Nó cho phép kiểm sốt các truy nhập ở cấp độ lớp. Nghĩa là không thể áp đặt hàm bạn

cho một lớp, nếu như chưa khai báo hàm bạn trong lớp.
Hàm bạn giải quyết được vấn đề cần truy cập dữ liệu của lớp như trên.
Các hàm bạn khai báo với cú pháp Đặt từ khố friend phía trước, sau đó khai báo
như một hàm thơng thường

19


ở đây các trường thuộc ngayThangNam là các trường private ta dùng hàm bạn có thể
truy cập trực tiếp để lấy dữ liệu nhằm dùng cho xử lý của người dùng thay vì phải sử
dụng các phương thức trừu tượng để có thể tác động lên dữ liệu.

7.2. Tính trừu tượng
Trừu tượng hóa dữ liệu (Data abstraction) liên quan tới việc chỉ cung cấp thơng
tin cần thiết tới bên ngồi và ẩn chi tiết cơ sở của chúng.
Ở trong chương trình này tính trừu tượng được thể hiện ở tất cả các class. Ở
mỗi class này chúng ta khơng có truy cập hay là biết đến các cách thức xử lý dữ liệu
chúng ta chỉ cẩn quan tâm ở đầu vào và đầu ra. Ví dụ như hàm sắp xếp sinh viên ở
trong class quanlydanhsachsinhvien là một hàm private chỉ gọi trong nội bộ class
chúng ta không cần quan tâm nó triển khai như thế nào mà chỉ cần gọi ra để sử dụng.
Hàm này nó chạy nội booj ở trong class nên người dùng khơng thể biết được có hàm
này.

Hàm sắp xếp được gọi ở các hàm khác thuộc lớp quanlydanhsachsinhvien

20


7.3. Tính đóng gói
Tính đóng gói (Encapsulation) là cơ chế của che giấu dữ liệu (Data Hiding) bởi

chúng được lớp (class) che giấu đi (ở dạng private) một số dữ liệu, hàm và phương
thức để đảm bảo rằng các dữ liệu đó sẽ được truy cập và sử dụng đúng mục đích, đúng
cách thơng qua các hàm và phương thức ở dạng public mà class cung cấp. Đó là lý do
bạn khơng thể truy cập đến các thuộc tính private hoặc gọi đến phương thức private
của class từ bên ngoài class đó.Ví dụ như trong Class ngayThangNam các thuộc tính
ngay tháng năm và các phương thức xử lý thuốc đối tượng ngayThangNam được đóng
gói vào trong class NgayThangNam

21


7.4. Tính kế thừa
Tính kế thừa là một trong những đặc tính quan trọng nhất của lập trình hướng
đối tượng.
Nó là khả năng lấy một thuộc tính, đặc tính của một lớp cha để áp dụng lên lớp
con.Lớp kế thừa các thuộc tính từ một lớp khác được gọi là Lớp con hoặc Lớp dẫn
xuất.
Lớp có các thuộc tính được kế thừa bởi lớp con được gọi là Lớp cha hoặc Lớp cơ sở.
Trong chương trình này tính kế thừa được thể hiện qua các class sinhvien kế thừa từ
class thongtincanhan. Class sinhvienketoan và class sinhviencongnghe cũng kế thừa từ
class sinhvien.

7.5. Tính đa hình
Đa hình (polymorphism) nghĩa là có nhiều hình thái khác nhau. Tiêu biểu là, đa
hình xuất hiện khi có một cấu trúc cấp bậc của các lớp và chúng liên quan với nhau
bởi tính kế thừa.
Trong chương trình này tính đa hình được biểu thị qua hoạt động xét thưởng và xét
danh hiệu ở class sinhvien, class sinhvienketoan, class sinhviencongnghe. Class
sinhvienketoan va sinhviencongnghe là 2 đa hình thuộc class sinhvien
Ở class sinhvien chúng ta có hàm xetdanhhieu và phanthuong như sau


22


Cịn ở class sinhvienketoan đa hình từ class sinhvien

Class sinhviencongnghe đa hình từ class sinhvien

23


8. Demo chương trình
8.1. Màn hình chức năng chính

24


8.2. Thêm sinh viên

25


×