1. Trang chủ
  2. » Tất cả

Phát triển phần mềm quản lý sinh viên

33 15 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Tiêu đề Phát triển phần mềm quản lý sinh viên
Người hướng dẫn Thầy Tạ Chí Hiếu
Trường học Học viện Công nghệ Bưu chính Viễn thông
Chuyên ngành Lập trình hướng đối tượng với C++
Thể loại Báo cáo cuối kỳ
Định dạng
Số trang 33
Dung lượng 1,44 MB
File đính kèm Quanlisinhvien.rar (376 KB)

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG KHOA CÔNG NGHỆ ĐA PHƯƠNG TIỆN BÁO CÁO CUỐI KỲ MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++ Đề tài Phát triển phần mềm quản lý sinh viên 2 LỜI CẢM ƠN Đầu tiên, em xin gửi l.

Trang 1

HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG

KHOA CÔNG NGHỆ ĐA PHƯƠNG TIỆN

BÁO CÁO CUỐI KỲ MÔN LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG C++

Đề tài: Phát triển phần mềm quản lý sinh viên

Trang 2

2

LỜI CẢM ƠN

Đầu tiên, em xin gửi lời cảm ơn sâu sắc đến Học viện Công nghệ Bưu chính

Viễn thông đã đưa học phần “Lập trình hướng đối tượng với C++” vào trong

chương trình giảng dạy Đặc biệt, em xin gửi lời cảm ơn sâu sắc đến giảng viên

bộ môn thầy Tạ Chí Hiếu đã dạy dỗ, rèn luyện và truyền đạt những kiến thức quý báu cho em trong suốt học kỳ vừa qua Trong thời gian được tham dự lớp học của thầy, em đã được tiếp thu học hỏi thêm nhiều kiến thức bổ ích, học tập được tinh thần làm việc hiệu quả, nghiêm túc Đây thực sự là những điều rất cần thiết và hữu ích cho quá trình học tập và công tác sau này của em

Bộ môn “Lập trình hướng đối tượng với C++” thực sự là một môn học thú

vị và bổ ích Tuy nhiên, hiện nay tình hình dịch bệnh Covid-19 đang diễn biến rất căng thẳng, do đó thời gian học tập, trao đổi và thực hành thực tế trên giảng đường không nhiều Em đã cố gắng hoàn thiện Báo cáo cuối kỳ tuy nhiên những hiểu biết và kỹ năng về môn học này của em vẫn còn nhiều hạn chế Do đó, sản phẩm cuối cùng của đề tài mà em đã lựa chọn còn có những thiếu sót và những khía cạnh chưa chuẩn xác, kính mong giảng viên bộ môn xem xét và góp ý cho em để bài Báo cáo cuối kỳ của em được hoàn thiện hơn

Em xin chân thành cảm ơn!

Trang 3

3

Contents

LỜI CẢM ƠN 2

A GIỚI THIỆU 7

I Giới thiệu đề tài: 7

II Các chức năng có trong project 7

1 Thêm sinh viên 7

2 Xóa sinh viên 8

3 Sửa thông tin sinh viên 9

4 In danh sách sinh viên 9

B MÔ HÌNH LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG 13

I Giới thiệu về lập trình hướng đối tượng 13

II Đặc điểm của lập trình hướng đối tượng 13

III Một số khái niệm cơ bản của Lập trình hướng đối tượng 13

1 Đối tượng (Object) 13

2 Lớp (Class) 13

3 Đóng gói dữ liệu (Encapsulation) 13

4 Kế thừa (Inheritance) 14

5 Đa hình (Polymorphism) 14

6 Lập trình hướng đối tượng trong C++ 14

C PHÂN TÍCH DỰ ÁN 15

1 Class ngayThangNam 15

1.1 Thuộc tính 15

1.2 Các phương thức: 15

2 Class ThongTinCaNhan 18

2.1 Thuộc tính 18

2.2 Các phương thức 19

3 Class sinhvien: public ThongTinCaNhan (Kế thừa từ class ThongTinCaNhan ) 20

3.1 Thuộc tính 20

3.2 Các phương thức 20

4 Class sinhvienketoan : public sinhvien 22

4.1 Thuộc tính 22

4.2 Các phương thức 22

Trang 4

4

5 Class sinhviencongnghe : public sinhvien 23

5.1 Thuộc tính 23

5.2 Các phương thức 23

6 Class quanLyDanhSachSinhvien 24

6.1 Thuộc tính 24

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

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 29

7.1 Tính chất của Hàm bạn ( friend function) 29

7.2 Tính 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 ngoài và ẩn chi tiết cơ sở của chúng 29 7.3 Tính đóng gói 30

7.4 Tính kế thừa 31

7.5 Tính đa hình 31

D KẾT LUẬN 33

Trang 5

5

DANH MỤC HÌNH ẢNH

Hình 1 Giao diện chức năng thêm sinh viên 8

Hình 2 Giao diện xóa sinh viên 8

Hình 3 Giao diện sửa thông tin sinh viên 9

Hình 4 Giao diện in danh sách sinh viên 10

Hình 5 Giao diện in danh sách sinh viên kế toán 10

Hình 6 Giao diện in danh sách sinh viên công nghệ thông tin 11

Hình 7 Giao diện in danh sách sinh viên theo GPA 11

Hình 8 Giao diện in danh sách sinh viên đạt được phần thưởng từ nhà trường 12 Hình 9 Miêu tả thuộc tính class ngày tháng năm 15

Hình 10 Miêu tả hàm khởi tạo tham số mặc định 15

Hình 11 Hàm khởi tạo có tham số 15

Hình 12 Hàm hủy 15

Hình 13 Hàn setter bảo đảm tính trừu tượng của lập trình hướng đối tượng 16

Hình 14 Hàm setter các thuộc tính 16

Hình 15 Hàm lấy đối tượng ngày tháng năm 16

Hình 16 Các hàm bạn 16

Hình 17 Kiểm tra năm nhuận 17

Hình 18 Kiểm tra ngày tháng năm 17

Hình 19 Kiểm tra ngày nhập có hợp lệ hay không 18

Hình 20 Nhập các giá trị cho đối tượng 18

Hình 21 In ra màn hình thông tin dưới dạnh dd/mm/yyyy 18

Hình 22 Các thuộc tính Class Hoten, quequan, ngaysinh 18

Hình 23 Hàm khởi tạo có tham số 19

Hình 24 Khởi tạo không tham số mặc định 19

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

Hình 26 Thiết lập các giá trị thuộc tính cho đối tượng 19

Hình 27 Các hàm getter 19

Hình 28 In thông tin cá nhân 20

Hình 29 Các thuộc tính 20

Hình 30 Hàm khởi tạo mặc định không tham số 20

Hình 31 Hàm khởi tạo có tham số 20

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

Hình 33 Các hàm getter 21

Hình 34 Các hàm getter 21

Hình 35 Hàm in thông tin ra màn hình 21

Hình 36 Hàm ảo 22

Hình 37 Hàm ảo 22

Hình 38 Hàm khởi tạo tham số 22

Hình 39 Hàm xét danh hiệu được đa hình nạp chồng 23

Hình 40 Hàm phần thưởng được đa hình nạp chồng 23

Hình 41 Hàm khởi tạo đối tượng sinh viên công nghệ 23

Trang 6

6

Hình 42 Hàm danh hiệu được đa hình nạp chồng 24

Hình 43 Hàm phần thường được đa hình nạp chồng 24

Hình 44 Các thuộc tính 24

Hình 45 Hàm khởi tạo danh sách 25

Hình 46 Hàm tăng đếm số 25

Hình 47 Hàm tạo một sinh viên mới 25

Hình 48 Tìm sinh viên theo mã 26

Hình 49 Xóa sinh viên theo mã sinh viên 26

Hình 50 Sửa thông tin sinh viên 27

Hình 51 Các sinh viên thuộc khoa CNTT thì xuất ra màn hình 27

Hình 52 Các sinh viên thuộc khoa kế toán xuất ra màn hình 28

Hình 53 In toàn bộ sinh viên ra màn hình 28

Hình 54 Xuất danh sách sinh viên kèm phần thưởng 28

Hình 55 Xuất danh sách sinh viên theo GPA 28

Hình 56 Sắp xếp danh sách sinh viên theo GPA 29

Hình 57 Hàm friend 29

Hình 58 Trường Private 29

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

Hình 60 Tính đóng gói 30

Hình 61 Tính kế thừa 31

Hình 62 Class sinhvienketoan đa hình từ Class sinhvien 31

Hình 63 Class sinhviencongnghe đa hình từ Class sinhvien 32

Trang 7

7

A GIỚI THIỆU

I Giới thiệu đề tài:

Với số lượng sinh viên lớn và nhiều thông tin như hiện nay, thì việc bổ sung các chương trình quản lí sinh viên là điều hoàn toàn cần thiết, không chỉ giúp cán

bộ nhân viên cũng như giáo viên nhà trường cập nhật thông tin sinh viên, mà chương trình còn giúp nhà trường đánh giá,xếp hạng, cũng như trao thưởng cho sinh viên có điểm GPA cao

Có một số phương pháp lập trình truyền thống như lập trình tuyến tính, lập trình cấu trúc… Với lập trình tuyến tính thì một số ứng dụng phức tạp không thể thực hiện được Trong đó với lập trình cấu trúc, chúng ta không quản lí được sự thay đổi dữ liệu khi có nhiều chương trình cùng sử dụng một biến chung, không tiết kiệm được tài nguyên… Để khắc phục một số hạn chế trên, người ta xây dựng một số mô hình lập trình tiên tiến hơn trong đó có lập trình hướng đối tượng Với thời lượng quy định của một báo cáo môn học cũng như dự án Nội dung được nêu trong báo cáo sẽ tập trung vào hình lập trình hướng đối tượng

II Các chức năng có trong project

1 Thêm sinh viên

Cán bộ nhân viên sẽ thêm thông tin sinh viên vào danh sách như tên sinh viên, ngày tháng năm sinh, quê quán, điểm số, mã lớp, mã sinh viên

Trang 8

8

Hình 1 Giao diện chức năng thêm sinh viên

2 Xóa sinh viên

Với những sinh viên sai thông tin, cán bộ nhân viên có thể xóa các sinh viên

có thông tin sai

Hình 2 Giao diện xóa sinh viên

Trang 9

9

3 Sửa thông tin sinh viên

Cán bộ nhân viên bên cạnh việc xóa toàn bộ dữ liệu thông tin của sinh viên ra khỏi danh sách, thì cán bộ nhân viên cũng có thể sửa từng thông tin của sinh viên

Hình 3 Giao diện sửa thông tin sinh viên

4 In danh sách sinh viên

Chương trình có thể in danh sách sinh viên đã thêm, thậm chí chương trình có thể lọc ra danh sách sinh viên theo ngành, theo GPA tăng dần, danh sách sinh viên đủ điều kiện nhận phần thưởng của nhà trường

Trang 10

10

Hình 4 Giao diện in danh sách sinh viên

Hình 5 Giao diện in danh sách sinh viên kế toán

Trang 11

11

Hình 6 Giao diện in danh sách sinh viên công nghệ thông tin

Hình 7 Giao diện in danh sách sinh viên theo GPA

Trang 12

12

Hình 8 Giao diện in danh sách sinh viên đạt được phần thưởng từ nhà trường

Trang 13

13

B MÔ HÌNH LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG

I Giới thiệu về lập trình hướng đối tượng

Trong lập trình hướng đối tượng: Người ta coi các thực thể trong chương trình

là các đối tượng và sau đó, người ta trừu tượng hoá đối tượng thành lớp đối tượng

Dữ liệu được tổ chức thành các thuộc tính của lớp

Người ta ngăn chặn việc thay đổi tuỳ tiện dữ liệu trong chương trình bằng các cách giới hạn truy nhập, chỉ cho phép truy nhập dữ liệu thông qua đối tượng, thông qua các phương thức mà đối tượng được cung cấp

Quan hệ giữa các đối tượng là quan hệ ngang hàng hoặc quan hệ kế thừa: Nếu lớp B kế thừa từ lớp A thì A được gọi là lớp cơ sở và B được gọi là lớp dẫn xuất Ngôn ngữ lập trình hướng đối tượng phổ biến hiện nay là Java và C++ Tuy nhiên, C++ mặc dù cũng có những đặc trưng cơ bản của lập trình hướng đối tượng nhưng vẫn không phải là ngôn ngữ lập trình thuần hướng đối tượng

II Đặc điểm của lập trình hướng đối tượng

Đóng gói dữ liệu: dữ liệu luôn được tổ chức thành các thuộc tính của lớp đối tượng Việc truy nhập đến dữ liệu phải thông qua các phương thức của đối tượng lớp

Sử dụng lại mã nguồn: việc sử dụng lại mã nguồn được thể hiện thông qua cơ chế kế thừa Cơ chế này cho phép các lớp đối tượng có thể kế thừa từ các lớp đối tượng khác Khi đó, trong các lớp dẫn xuất, có thể sử dụng các phương thức (mã nguồn) của các lớp cơ sở mà không cần phải định nghĩa lại

III Một số khái niệm cơ bản của Lập trình hướng đối tượng

1 Đối tượng (Object)

Trong lập trình hướng đối tượng, đối tượng được coi là đơn vị cơ bản nhỏ nhất Các dữ liệu và cách xử lí chỉ là thành phần của đối tượng mà không được coi là thực thể Một đối tượng chứa các dữ liệu của riêng nó, đồng thời có các phương thức (hành động) thao tác trên các dữ liệu đó:

Đối tượng = Dữ liệu + Phương thức

2 Lớp (Class)

Khi có nhiều đối tượng giống nhau về mặt dữ liệu và phương thức, chúng được nhóm lại với nhau và gọi chung là lớp: Lớp là sự trừu tượng hoá của đối tượng Đối tượng là một thể hiện của lớp

3 Đóng gói dữ liệu (Encapsulation)

Các dữ liệu được đóng gói vào trong đối tượng Mỗi dữ liệu có một phạm vi truy nhập riêng Không thể truy nhập đến dữ liệu một cách tự do như lập trình

Trang 14

14

cấu trúc Muốn truy nhập đến dữ liệu, phải thông qua các đối tượng, nghĩa là phải

sử dụng các phương thức mà đối tượng cung cấp mới có thể truy nhập đến dữ liệu của đối tượng đó Tuy nhiên, vì C++ chỉ là ngôn ngữ lập trình nửa đối tượng, cho nên C++ vẫn cho phép định nghĩa các biến dữ liệu và các hàm tự do, đây là kết quả kế thừa từ ngôn ngữ C, một ngôn ngữ lập trình thuần cấu trúc

4 Kế thừa (Inheritance)

Tính kế thừa của lập trình hướng đối tượng cho phép một lớp có thể kế thừa

từ một số lớp đã tồn tại Khi đó, lớp mới có thể sử dụng dữ liệu và phương thức của các lớp cơ sở như là của mình Ngoài ra, lớp dẫn xuất còn có thể bổ sung thêm một số dữ liệu và phương thức Ưu điểm của kế thừa là khi thay đổi dữ liệu của một lớp, chỉ cần thay đổi các phương thức trong phạm vi lớp cơ sở, mà không cần thay đổi trong các lớp dẫn xuất

5 Đa hình (Polymorphism)

Đa hình là khái niệm luôn đi kèm với kế thừa Do tính kế thừa, một lớp có thể

sử dụng lại các phương thức của lớp khác Tuy nhiên, nếu cần thiết, lớp dẫn xuất cũng có thể định nghĩa lại một số phương thức của lớp cơ sở Đó là sự nạp chồng phương thức trong kế thừa Nhờ sự nạp chồng phương thức này, ta chỉ cần gọi tên phương thức bị nạp chồng từ đối tượng mà không cần quan tâm đó là đối tượng của lớp nào Chương trình sẽ tự động kiểm tra xem đối tượng là thuộc kiểu lớp cơ sở hay thuộc lớp dẫn xuất, sau đó sẽ gọi phương thức tương ứng với lớp

đó Đó là tính đa hình

6 Lập trình hướng đối tượng trong C++

Vì C++ là một ngôn ngữ lập trình được mở rộng từ một ngôn ngữ lập trình cấu trúc C Cho nên, C++ được xem là ngôn ngữ lập trình nửa hướng đối tượng, nửa hướng cấu trúc

Những đặc trưng hướng đối tượng của C++ Cho phép định nghĩa lớp đối tượng Cho phép đóng gói dữ liệu vào các lớp đối tượng Cho phép định nghĩa phạm vi truy nhập dữ liệu của lớp bằng các từ khóa phạm vi: public, protected, private Cho phép kế thừa lớp với các kiểu kế thừa khác nhau tùy vào từ khoá dẫn xuất Cho phép lớp dẫn xuất sử dụng các phương thức của lớp cơ sở (trong phạm

vi quy định) Cho phép định nghĩa chồng phương thức trong lớp dẫn xuất Những hạn chế hướng đối tượng của C++

Những hạn chế này là do C++ được phát triển từ một ngôn ngữ lập trình thuần cấu trúc C Cho phép định nghĩa và sử dụng các biến dữ liệu tự do Cho phép định nghĩa và sử dụng các hàm tự do Ngay cả khi dữ liệu được đóng gói vào lớp, dữ liệu vẫn có thể truy nhập trực tiếp như dữ liệu tự do bởi các hàm bạn, lớp bạn (friend) trong C++

Trang 15

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

Hình 10 Miêu tả hàm khởi tạo 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 cách nhập vào các tham số ngày, thang, nam

Hình 11 Hàm khởi tạo có tham số

Trang 16

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 giá trị hiện tại

Hình 15 Hàm lấy đối tượng ngày tháng năm

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

Hình 16 Các hàm bạn

1.2.7.1 Kiểm tra năm nhuận

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

Trang 17

17

Hình 17 Kiểm tra năm nhuận

1.2.7.2 Kiểm tra ngày trong tháng

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

Hình 18 Kiểm tra ngày tháng năm

1.2.7.3 Kiểm tra ngày nhập vào có hợp lệ hay không

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

Trang 18

18

Hình 19 Kiểm tra ngày nhập có hợp lệ hay không

1.2.8 Hàm nhập data cho đối tượng từ bàn phím

Hình 20 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

Hình 21 In ra màn hình thông tin dưới dạnh dd/mm/yyyy

2 Class ThongTinCaNhan

2.1 Thuộc tính

Hình 22 Các thuộc tính Class Hoten, quequan, ngaysinh

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

Trang 19

19

2.2 Các phương thức

2.2.1 Hàm khởi tạo có tham số

Hình 23 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 yêu cầu

2.2.2 Hàm khởi tạo không có tham số

Hình 24 Khởi tạo không tham số mặc định

Trang 20

20

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

Hình 28 In thông tin cá nhân

3 Class sinhvien: public ThongTinCaNhan (Kế thừa từ class

3.2.1 Hàm khởi tạo không tham số

Hình 30 Hàm 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 thông tin cá nhân mà lớp sinh viên kế thừa

Hình 31 Hàm khởi tạo có tham số

.3.2.3 Hàm hủy

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

Ngày đăng: 26/11/2022, 11:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w