1. Trang chủ
  2. » Luận Văn - Báo Cáo

báo cáo thực hành nghề nghiệp chương trình quản lý danh sách các lớp học trong phạm vi nhà trường

34 0 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

Định dạng
Số trang 34
Dung lượng 5,15 MB

Nội dung

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346LỜI CẢM ƠN Lời đầu tiên em xin gửi lời cảm ơn thầy Nguyễn Huy Khang – giảng viên bộ môn Cấu Trúc Dữ Liệu & Giải Thuật – khoa Công ngh

Trang 1

BỘ TÀI CHÍNH TRƯỜNG ĐẠI HỌC TÀI CHÍNH – MARKETING KHOA CÔNG NGHỆ THÔNG TIN

BÁO CÁO THỰC HÀNH NGHỀ NGHIỆP

Đề Tài:

CHƯƠNG TRÌNH QUẢN LÝ DANH SÁCH CÁC LỚP HỌC TRONG

PHẠM VI NHÀ TRƯỜNG

Tp HCM, ngày 12 tháng 03 năm 2023

Trang 2

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

LỜI CẢM ƠN

Lời đầu tiên em xin gửi lời cảm ơn thầy Nguyễn Huy Khang – giảng viên bộ

môn Cấu Trúc Dữ Liệu & Giải Thuật – khoa Công nghệ thông tin - trường Đại Học Tài Chính – Marketing đã tận tình giảng dạy, hướng dẫn, vẽ nên những bài

thuật toán cơ bản từ đó giúp sinh viên chúng em có những tư duy sáng tạo hơn để

có thể áp dụng và tạo ra những chương trình thực thế, mang tính ứng dụng

Tuy nhiên, với vốn hiểu biết còn ít ỏi, kĩ năng tư duy còn hạn chế nên sẽ không thể tránh khỏi những thiếu sót cũng như sai lầm trong bài đồ án này Em rất mong được sự góp ý chỉnh sửa từ phía thầy để bài đồ án này sớm được hoàn thiện nhất Xin chân thành cảm ơn những đóng góp của thầy!

Trang 3

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

NHẬN XÉT VÀ ĐÁNH GIÁ CỦA GIÁO VIÊN

- Điểm số:

- Điểm chữ:

Thành phố Hồ Chí Minh, ngày…tháng… năm 2023

Giảng viên

Trang 4

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

MỤC LỤC

CHƯƠNG 1: GIỚI THIỆU 7

1.1 Gi i thi u đềề tàiớ ệ 7

1.2 Lý do hình thành đềề tài 7

1.3 M c tều đềề tàiụ 7

1.4 Cấấu trúc (mô t cấấu trúc đả ược yều cấều, ch n CTDL đ th hi n, khai báo/đ nh nghĩa cấấu ọ ể ể ệ ị trúc) 7 1.5 D li u mấẫu(>=10 thông tn đôấi tữ ệ ượng cấền qu n lý)ả 8

1.6 Các ch c năng( li t kề các ch c năng xấy d ng trong chứ ệ ứ ự ương trình) 8

CHƯƠNG 2: TÌM KIẾM VÀ SẮP XẾP TRÊN MẢNG CẤU TRÚC 10

2.1 Khai báo th vi nư ệ 10

2.2 Khai báo cấấu trúc 10

2.3 Nh p danh sách l p h cậ ớ ọ 10

2.3.1 Chương trình con 10

2.3.2 Ki mể tra 12

2.3.3 Kềất qu ch yả ạ 12

2.4 Xuấất danh sách l pớ 12

2.4.1 Chương trình con 12

2.4.2 Ki m traể 13

2.4.3 Kềất qu ch yả ạ 14

2.5 Tìm kiềấm theo MaLop( s d ng thu t toán Linearysearch)ử ụ ậ 14

2.5.1 Chương trình con 14

2.5.2 Ki m traể 15

2.5.3 Kềất qu ch yả ạ 15

2.6 Tìm kiềấm theo MaLop( s d ng thu t toán Binarysearch)ử ụ ậ 15

2.6.1 Chươ trình con 15ng 2.6.2 Ki mể tra 16

16

2.6.3 Kềất qu ch yả ạ 16

2.7 Săấp xềấp danh sách l p theo MaLopớ 17

2.7.1 Chương trình con( s d ng thu t toán Selectonsort)ử ụ ậ 17

2.7.2 Ki m traể 17

2.7.3 Kềất qu ch yả ạ 18

2.8 Săấp xềấp danh sách l p theo MaLop( shakersort)ớ 18

2.8.1 Chươ trình con 18ng 2.8.2 Ki mể tra 19

2.8.3 Kềất qu ch yả ạ 19

Trang 5

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

2.9 Săấp xềấp hi u qu Quicksortệ ả 20

2.9.1 Chươ trình con 20ng 2.9.2 Ki mể tra 21

2.9.3 Kềất qu ch yả ạ 21

2.10 T o danh sách ch c năngạ ứ 21

2.10.1 Chương trình con 21

2.10.2 Ki m traể 22

2.10.3 Kềất qu ch yả ạ 22

2.11 Trình thông báo hoàn thành chương trình 23

2.11.1 Chươ trình con 23ng 2.11.2 Kềất qu ch yả ạ 23

CHƯƠNG 3: KẾT HỢP QUẢN LÝ BẰNG DANH SÁCH LIÊN KẾT 24 3.1 Khai báo th vi nư ệ 24

3.2 Khai báo cấấu trúc qu n lýả 24

3.3 Cấấu trúc xấy d ng node và listự 24

3.4 Xấy d ng hàm t o node và listự ạ 25

3.4.1 Hàm t o nodeạ 25

3.4.2 Hàm t o listạ 26

3.5 Hàm nh p thông tnậ 26

3.5.1 Chươ trình con 26ng 3.5.2 Ki m tra hàmể 28

3.5.3 Kềất qu ch yả ạ 28

3.6 Hàm xuấất danh sách 29

3.6.1 Chương trình con 29

3.6.2 Ki m traể 30

3.6.3 Kềất qu ch yả ạ 30

3.7 Xấy d ng đ n ch n ch c năngự ơ ọ ứ 30

3.7.1 Chươ trình con 30ng 3.7.2 Ki mể tra 31

3.7.3 Kềất qu ch yả ạ 32

32

Trang 6

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

MỤC LỤC HÌNH ẢNH

1) Khai báo thư viện 10

2) Hàm nhập thông tin một lớp 11

3) Hàm nhập thông tin một danh sách lớp 11

4) Hàm nhập sẵn 11

5) Kiểm tra hàm nhập 12

6) Kết quả chạy cho hàm nhập 12

7) Hàm xuất một lớp 13

8) Hàm xuất một danh sách lớp 13

9) Kiểm tra hàm xuất ở thân chương trình 13

10) Kết quả chạy cho hàm xuất 14

11) Hàm tìm kiếm Linearysearch(Ln) 14

12) Kiểm tra hàm Ln ở hàm main 15

13) Kết quả chạy cho hàm tìm kiếm 15

14) Hàm tìm kiếm Binarysearch(Bn) 15

15) Hàm Bn ở main 16

16) Hàm Bn khi chưa được sắp xếp 16

17) Kết quả chạy của hàm Bn sau khi áp dụng thuật săp xếp 17

18) Hàmm sắp xếp Selectionsort(Slt) 17

19) Đưa Slt vào main 17

20) Thuật toán sắp xếp hàm shakersort 19

21) Hàm shakersort ở main 19

22) Thuật toán sắp xếp hàm Quicksort 20

23) Kết quả chạy hàm quicksort 21

24) Đưa Quicksort vào main 21

25) Hàm menu 22

26) Đưa hàm menu vào main 22

27) Kết quả chạy hàm menu 22

28)Hàm Finish 23

Trang 7

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

1.1 Giới thiệu đề tài

DSLOP(MaLop, CVHT, SiSo, LopTruong, NhomHT) Cấu trúc quản

lý danh sách các lớp bao gồm các thông tin: Mã lớp (MaLop); Tên

giảng viên làm cố vấn học tập; Sỉ số lớp; Tên lớp trưởng; Số nhóm học tập (NhomHT) được tổ chức trong lớp đó.

1.2 Lý do hình thành đề tài

Xuất phát từ nhu cầu quản lý lớp học của Nhà trường được chặt chẽ,

dễ kiểm soát hơn Chương trình QUẢN LÝ LỚP HỌC ra đời để đáp ứng được nhu cầu quản lý, nắm bắt kịp thời thông tin của từng lớp học,

hỗ trợ cho công tác quản lý của Nhà trường diễn ra thuận tiện hơn.

Nắm bắt được nhu cầu và vốn kiến thức của mình tôi lựa chọn đề tài QUẢN LÝ DANH SÁCH LỚP HỌC TRONG NHÀ TRƯỜNG trong bài tập đồ án môn Cơ sở dữ liệu và Giải thuật nhằm giúp tôi nâng cao

kĩ năng tạo lập chương trình cũng như đem lại một chương trình hữu dụng cho người dùng.

1.3 Mục tiêu đề tài

Nhằm hỗ trợ Nhà trường quản lý được thông tin của từng lớp học, dễ dàng nắm bắt tình hình từng lớp học bằng ngôn ngữ lập trình C++ chạy trên màn hình consle.

1.4 Cấu trúc (mô tả cấu trúc được yêu cầu, chọn CTDL để thể

hiện, khai báo/định nghĩa cấu trúc)

Thông tin các lớp học bao gồm:

- MaLop: Mã của lớp học, gồm 1 chuỗi kiểu ký tự(char)

- CVHT: Tên cố vấn học tập, gồm 1 chuỗi kiểu ký tự

- SiSo: Sỉ số của lớp, là kiểu số nguyên

Trang 8

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

- NhomHT: Số nhóm có trong lớp, kiểu số nguyên

- LopTruong: Tên Lớp Trưởng, gồm 1 chuỗi kiểu ký tự

1.5 Dữ liệu mẫu(>=10 thông tin đối tượng cần quản lý)

Table 1: D li u mẫẫu ữ ệ

1.6 Các chức năng( liệt kê các chức năng xây dựng trong chương trình)

Các chức năng trên mảng cấu trúc

- Tạo cấu trúc quản lý danh sách lớp học

- Nhập/xuất danh sách lớp học

Trang 9

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

- Tìm kiếm lớp học dựa trên mã lớp( sử dụng LinearySearch và

BinarySearch).

- Sắp xếp theo mã lớp(selectionsort, bubblesort, interchangesort, )

- Sắp xếp theo mã lớp hiệu quả(quicksort).

- Chèn, thêm, xóa lớp từ danh sách.

- Tạo dựng chương trình lựa chọn chức năng.

Trang 10

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

CHƯƠNG 2: TÌM KIẾM VÀ SẮP XẾP TRÊN MẢNG CẤU

TRÚC

2.1 Khai báo thư viện

- Iostream: cung cấp các tiê Šn ích có

sẵn để làm viê Šc với bàn phím và màn hình.

- Iomanip: định nghĩa một số hàm giúp lập trình viên có thể định dạng output.

2.2 Khai báo cấu trúc

- MaLop: Mã của lớp học, gồm 1 chuỗi kiểu ký tự(char)

- CVHT: Tên cố vấn học tập, gồm 1 chuỗi kiểu ký tự

- SiSo: Sỉ số của lớp, là kiểu số nguyên

- NhomHT: Số nhóm có trong lớp, kiểu số nguyên

- LopTruong: Tên Lớp Trưởng, gồm 1 chuỗi kiểu ký tự

2.3 Nhập danh sách lớp học

2.3.1 Chương trình con

Để nhập danh sách sinh viên, cần xây dựng ba chương trình con gồm:

- void Nhap_1_o(DSLOP& ds): hỗ trợ nhập thông tin một lớp học

gồm: MaLop, CVHT, SiSo, NhomHT, LopTruong

1) Khai báo thư viện

Trang 13

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

2.4 Xuất danh sách lớp

2.4.1 Chương trình con

Để xuất danh sách lớp cần xây dựng ba chương trình con gồm:

- Void xuat_1_lop(DSLOP& ds): Hàm được khởi tạo nhằm mục

đích xuất thông tin cho 1 đối tượng lớp học

- Void xuat_1_ds(DSLOP ds[], int& n): Hàm xuất danh sách n lớp

Trang 14

- int Linearysearch(DSLOP ds[], int n, char x[]): Chương trình

tìm kiếm MaLop tuyến tính

9) Ki m tra hàm xuẫết thẫn ch ể ở ươ ng trình

10) Kếết qu ch y cho hàm xuẫết ả ạ

11) Hàm tìm kiếếm Linearysearch(Ln)

Trang 15

Để tìm kiếm danh sách theo MaLop sử dụng thuật toán

Binarysearch ta cần tạo một chương trình con như sau:

- Void Binarysearch(DSLOP ds[], int n, char x[]): Chương trình

con với thuật toán hỗ trợ tìm kiếm đối tượng.

12) Ki m tra hàm Ln hàm main ể ở

13) Kếết qu ch y cho hàm tìm kiếếm ả ạ

14) Hàm tìm kiếếm Binarysearch(Bn)

Trang 16

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

2.6.2 Kiểm tra

- Vì hàm sắp xếp Binarysearch chỉ thực hiện được chức năng tìm

kiếm của mình khi thông tin đã được sắp xếp tăng dần nên ta cần dùng hàm if để trả về không tìm thấy thông tin nếu đối tượng cần tìm chưa được sắp xếp.

Trang 17

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

- Sau khi được sắp xếp:

2.7 Sắp xếp danh sách lớp theo MaLop

2.7.1 Chương trình con( sử dụng thuật toán Selectionsort)

Để sắp xếp danh sách lớp theo MaLop cần tạo một chương trình con gồm:

- Void SelectionSort(DSLOP ds[], int n): Hỗ trợ chương trình sắp

xếp danh sách lớp theo MaLop theo hệ số từ cao – thấp

17) Kếết qu ch y c a hàm Bn sau khi áp d ng thu t sẵp xếếp ả ạ ủ ụ ậ

Trang 19

- Void Shakersort(DSLOP ds[], int n, char x[]): Chương trình con

với thuật toán sắp xếp đối tượng theo trình tự thừ thấp – cao.

2.8.2 Kiểm tra

20) Thu t toán sẵếp xếếp hàm shakersort ậ

Trang 21

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

- Void Quicksort(DSLOP, int left, int right): Chương trình

với thuật toán sắp xếp hiệu quả.

2.9.2 Kiểm tra

22) Thu t toán sẵếp xếếp hàm Quicksort ậ

Trang 22

- Void menu(int& num): Chương trình này giúp tạo ra một danh

sách các chức năng có trong chương trình nhằm giúp người dùng dễ dàng lựa chọn thao tác muốn thực hiện

24) Kếết qu ch y hàm quicksort ả ạ

23) Đ a Quicksort vào main ư

Trang 23

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

2.10.2 Kiểm tra

2.10.3 Kết quả chạy

27) Kếết qu ch y hàm menu ả ạ

25) Hàm menu

26) Đ a hàm menu vào main ư

Trang 24

và đưa về trang menu:

- Void Finish(int& key): Chương trình với mục đích thông báo

đã hoàn thành nhiệm vụ được chọn và đưa người dùng về

trang menu.

2.11.2 Kết quả chạy

28)Hàm Finish

Trang 25

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

CHƯƠNG 3: KẾT HỢP QUẢN LÝ BẰNG DANH SÁCH LIÊN KẾT

3.1 Khai báo thư viện

- Iostream: cung cấp các tiê Šn ích có sẵn để làm viê Šc với bàn phím và màn hình.

- Iomanip: Thư viện hỗ trợ xuất các lệnh xuất trên console

3.2 Khai báo cấu trúc quản lý

- MaLop: Kiểu kí tự (tối đa 20 kí tự)

- CVHT: Kiểu kí tự (tối đa 50 kí tự)

- SiSo, NhomHT: Kiểu số nguyên (int)

- LopTruong: Kểu kí tự (tối đa 50 kí tự)

- Tydef: định nghĩa cấu trúc

3.3 Cấu trúc xây dựng node và list

Xây dựng node và list trong danh sách liên kết C++ nhằm mục đích tạo ra một cấu trúc dữ liệu linh hoạt và hiệu quả để lưu trữ và quản lý

Trang 26

Với cấu trúc này, chúng ta có thể thêm, xóa phần tử hoặc duyệt danh sách một cách dễ dàng và hiệu quả Ngoài ra, danh sách liên kết còn cho phép tối ưu hóa việc sử dụng bộ nhớ, đặc biệt là khi chúng ta cần thêm hoặc xóa phần tử ở giữa danh sách.

3.4 Xây dựng hàm tạo node và list

Trang 27

Hàm tạo list được sử dụng để tạo ra một danh sách liên kết mới Nó

có thể được thực hiện bằng cách sử dụng cấp phát động, hoặc bằng cách khởi tạo một đối tượng trong C++.

hàm tạo của danh sách mới khởi tạo con trỏ “pHead” và “pTail” là NULL, đại diện cho danh sách liên kết rỗng ban đầu.

Trang 28

- void AddTail(LIST& l, NODE* p) : Dùng để tạo thông tin

mới được nhập vào thành một node và thêm vào cuối danh sách.

- void InputList(LIST& l) : Dùng để nhập thông tin cho nhiều

lớp học và thêm từng lớp học vào danh sách.

Trang 32

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

3.7 Xây dựng đơn chọn chức năng

Xây dựng menu chọn trong chương trình C++ có mục đích là để giúp người dùng tương tác với chương trình dễ dàng hơn Menu chọn cho phép người dùng lựa chọn các tùy chọn khác nhau trong chương trình,

từ đó giúp tối ưu hóa trải nghiệm người dùng và giúp người dùng tiết kiệm thời gian và công sức khi sử dụng chương trình.

3.7.1 Chương trình con

Để sử chương trình được trực quan ta cần 2 hàm menu và Finish để giúp người dùng chọn các chức năng cũng như hàm finish để thông báo chức năng và gọi lại menu tùy chọn.

- Void menu(int& num) : tạo menu các chức năng tùy chọn

- Void Finish(int& key) : thông báo kết thúc hàm chức năng và gọi lại menu để người dùng tiếp tục hoặc thoát tùy nhu cầu.

Trang 33

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

3.7.2 Kiểm tra

Trang 34

Trịnh Thị Cẩm Tú Quản lý danh sách lớp học 2221004346

3.7.3 Kết quả chạy

Ngày đăng: 02/07/2024, 16:27