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

Sử dụng danh sách liên kết Đơn viết chương trình tạo mt menu Để quản lý danh sách sinh viên

24 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 24
Dung lượng 2,61 MB

Nội dung

BỘ GIÁO DỤC VÀ ĐÀO TẠO BÀI TẬP LỚN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT Nhóm: 7 Sử dụng danh sách liên kết đơn iết chương trình tạo m v t Menu để quản lý danh sách sinh viên STT Sinh viên

Trang 1

BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC CÔNG NGHỆ ĐÔNG Á

BÀI TẬP LỚN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

Sử dụng danh sách liên kết đơn iết chương trình tạo m v t Menu

để quản lý danh sách sinh viên

Nguyễn Lâm Viết Huy K13 DCCNTT13.10.3 20220474

Bắc Ninh, tháng… năm 20…

Trang 2

BỘ GIÁO DỤC VÀ ĐÀO TẠO

BÀI TẬP LỚN CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

Nhóm: 7

Sử dụng danh sách liên kết đơn iết chương trình tạo m v t Menu

để quản lý danh sách sinh viên

STT Sinh viên thực

Mã sinh viên

Điểm bằng

số

Điểm bằng chữ

Ký tên

Trang 3

MỤC LỤC

DANH MỤC BẢNG BIỂU VÀ SƠ ĐỒ 4

Chương 1 Tổng quan về đề tài 5

1.1 Giới thiệu 5

Chương 1 Thuật toán (vẽ sơ đồ, các bước của thuật toán và ví dụ.) 7

2.1 Lưu đồ thuật toán 7

2.2 Bộ dữ liệu mẫu.(khoảng 10 bộ mẫu) 14

2.3 Thiết kế giao diện 15

Chương 3 Cài đặt 18

Module 1: Tạo danh sách sinh viên 18

Module 2 Hiển thị danh sách sinh viên 19

Module 3 Thêm 1 sinh viên vào danh sách, vị trí sinh viên thêm vào do ta chọn 19

Module 4 Liệt kê danh sách sinh viên trên màn hình theo thứ t giảm dn của tổng điểm 20

Module 5 Liệt kê tất cả sinh viên đoạt loại giỏi (có ĐTB >= 8.0) 20

Module 6 Nhập vào tên lớp, in ra màn hình danh sách sinh viên của lớp này 21

Module 7 In danh sách sinh viên có điểm trung bình từ [a,b] 21

Kết luận 22

Kết quả đạt được 22

Hướng phát triển 23

Danh mục sách tham khảo 24

Trang 4

DANH M C B NG BI Ụ Ả ỂU VÀ SƠ ĐỒ

Hình 2.3 Lưu đồ thuật toàn thêm 1 sinh viên vào vị trí trong danh sách

Hình 2.5 Lưu đồ thuật toán hiển thị danh sách sinh viên giỏi ( ĐTB >= 8.0) 11

Hình 2.6 Lưu đồ thuật toán hiển thị danh sách sinh viên của một lớp 12 Hình 2.7 Lưu đồ thuật toán hiển thị danh sách sinh viên có ĐTB từ

[a, b]

13

Lưu ý

- Các sơ đồ, hình vẽ, bảng biểu phải có tên và số thứ t được sắp xếp theo chương

- Đối với sơ đồ, hình vẽ, đồ thị thì tên được đặt ở dưới

- Đối với bảng số liệu thì tên đặt ở trên

Trang 5

Chương 1 Tổng quan về đề tài

1.1 Gi i thiớ ệu

Môn học cấu trúc dữ liệu và giải thuật là một môn học quan trọng và cơ bản trong chương trình đào tạo ngành công nghệ thông tin Môn học này giúp sinh viên nắm được các khái niệm, nguyên lý và phương pháp xây dng, sử dụng và tối ưu hóa các cấu trúc

dữ liệu và giải thuật phù hợp cho các bài toán thc tế Môn học này cũng đòi hỏi sinh viên phải có khả năng tư duy logic, phân tích và giải quyết vấn đề, cũng như kỹ năng lập trình bằng ngôn ngữ C/C++

Về đề tài của báo cáo của em là: Viết chương trình tạo mộ Menu để quản lý danh sách t sinh viên, mỗi sinh viên là một cấu trúc gồm:

- Mã số sinh viên

- Họ đệm, tên sinh viên

- Điểm trung bình

- Tên lớp

Chương trình gồm các công việc sau:

- Tạo danh sách sinh viên: Quá trình nhập danh sách sẽ dừng lại khi nhập mã số <= 0

- Thêm 1 sinh viên vào danh sách, vị trí sinh viên thêm vào do ta chọn

- Liệt kê danh sách sinh viên trên màn hình theo thứ t iảm d của tổng điểm g n

- Căn cứ và ĐTB của sinh viên, liệt kê tất cả sinh viên đoạt loại giỏi (có ĐTB >= 8.0)o

- Nhập vào tên lớp, in ra màn hình danh sách sinh viên của lớp này

- In ds sinh viên có điểm trung bình từ [a,b]

Ứng dụng danh sách liên kết đơn vào bài toán quản lý sinh viên

Đề tài này có ý nghĩa thc tiễn cao, vì việc quản lý danh sách sinh viên là một nhu cu thường xuyên của các cơ sở giáo dục Đề tài này cũng có tính thách thức, vì yêu cu sinh viên phải áp dụng các kiến thức về cấu trúc dữ liệu (danh sách liên kết), giải thuật (tìm kiếm, sắp xếp) và lập trình C++ để xây dng chương trình hoàn chỉnh

Trang 6

Mục tiêu của báo cáo này là:

- Trình bày lý thuyết về cấu trúc dữ liệu danh sách liên kết, các thuật toán tìm kiếm và sắp xếp phổ biến

- Giới thiệu thiết kế và cài đặt chương trình quản lý danh sách sinh viên bằng C++

- Rút ra kết luận và kiến nghị cải tiến

Trang 7

Chương 1 Thuật toán (vẽ sơ đồ, các bướ c của thuật toán và ví dụ.)

2.1 Lưu đồ thuật toán

Lưu đồ ật ậ ữ liệu

Trang 8

Lưu đồ ậ ấ ữ liệ

Trang 9

3 Lưu đồ ật toàn thêm 1 sinh viên vào v trí trong danh sách do ta ch n ị ọ

Trang 10

Hình 2.4 Lưu đồ thuật toán hi n th ể ị danh sách sinh viên theo ĐTB giảm dần

Trang 11

5 Lưu đồ ật toán hi n th danh sách sinh viên gi ể ị ỏi( ĐTB >= 8.0)

Trang 12

Hình 2.6 Lưu đồ thuật toán hi n th danh sách sinh viên c a m ể ị ủ ột l p ớ

Trang 13

Hình 2.7 Lưu đồ thuật toán hi n th ể ị danh sách sinh viên có ĐTB từ [a, b]

Trang 14

2.2 B d u m ữ liệ ẫu.(kho ng 10 b m u) ả  ẫ

B ng 1 B ng d ả ả ữ liệu m u ẫ

1 Nguyen Tien Dat 7 IT2

2 Ha Dinh Cuong 8 IT2

3 Nguyen Lam Viet Huy 7 IT3

4 Nguyen Tien Hoa 9 IT3

6 Hoang Tuan Anh 5 IT4

7 Hoang Duc Huy 6 IT4

8 Nguyen Tien An 7 IT4

9 Hoang Thu Trang 8 IT5

10 Nguyen Thuy Linh 9 IT5

11 Hoang Thao Ly 10 IT5

12 Phi Nhu Quynh 10 IT5

Trang 15

2.3 Thi t kế ế giao diện

Giao diện nhập sinh viên:

Giao diện hiển thị danh sách sinh viên:

Trang 16

Giao di n thêm sinh viên vào v trí trong danh sách: ệ ị

Giao di n hi n th ệ ể ị danh sách theo ĐTB giảm d n: 

Trang 17

Giao di n hi n th sinh viên giệ ể ị ỏi( ĐTB >= 8):

Giao di n hi n th danh sách sinh viên c a 1 lệ ể ị ủ ớp:

Trang 18

Giao di n hi n th ệ ể ị danh sách sinh viên có ĐTB từ [a, b]:

Chương 3 Cài đặt

Module 1: T o danh sách sinh viên

oid nhapSinhVien ( SinhVien sv ) {

Trang 19

( if sv maSV == ) return ;

cin ignore ();

cout << "Nhap ho ten sinh vien: " ;

getline ( cin , sv hoTen );

cout << "Nhap diem trung binh: " ;

cin >> sv diemTB ;

cin ignore ();

cout << "Nhap ten lop: " ;

getline ( cin , sv tenLop );

}

void xuatSinhVien ( SinhVien sv ) {

cout << " " << sv maSV << " \t\t " << sv hoTen << " \t\t\t "

<< sv diemTB << " \t\t " << sv tenLop << endl ;

Module 2 Hiển th danh sách sinh viên

Module 3 Thêm 1 sinh viên vào danh sách, v trí sinh viên thêm vào do ta ị chọn

void themSinhVien ( vector SinhVien < > & dssv ) {

SinhVien sv ;

cout << "Nhap thong tin sinh vien can them: \n " ;

nhapSinhVien ( sv );

( if sv maSV == ) return ;

Trang 20

cout << "Nhap vi tri can chen (tu 1 den " << dssv size () + 1 << "): " ; cin >> vt ;

bool soSanhDiemTB ( SinhVien , SinhVien ) { b

return a diemTB > b diemTB ;

Module Li5 ệt kê tất cả sinh viên đoạt lo i giạ ỏi (có ĐTB >= 8.0)

bool hocLucGioi ( SinhVien sv ) {

return sv diemTB >= 8 ;

}

void lietKeHocLucGioi ( vector < SinhVien > dssv ) {

cout << endl ;

bool coSinhVien = false ;

cout << "Danh sach sinh vien hoc luc gioi: \n " ;

for ( int = 0 ; i < dssv size (); i ++ ) {

Trang 21

Module 6 Nhập vào tên l p, in ra màn hình danh sách sinh viên c a l p này ớ ủ ớ

bool thuocLop ( SinhVien sv , string tenLop ) {

return sv tenLop == tenLop ;

}

void lietKeTheoLop ( vector SinhVien < > dssv ) {

cout << endl ;

string tenLop ;

cout << "Nhap ten lop can liet ke: " ;

getline ( cin , tenLop );

bool coSinhVien = false ;

cout << "Danh sach sinh vien thuoc lop " << tenLop << ": \n " ;

for ( int = 0 ; i < dssv size (); i ++ ) {

Module 7 In danh sách sinh viên có điểm trung bình từ [a,b]

bool diemTrongKhoang ( SinhVien sv , double , double b ) {

return sv diemTB >= a && sv diemTB <= ;

bool coSinhVien = false ;

cout << "Danh sach sinh vien co diem trung binh trong khoang [" << a << ", "

Trang 22

cout << "Khong co sinh vien nao co diem trung binh trong khoang [" << a

độ phức tạp của chương trình, và rút ra những kết luận và kiến nghị sau:

 Chương trình quản lý danh sách sinh viên có thể hoạt động ổn định và đáp ứng được các yêu cu của đề tài Chương trình có giao diện menu thân thiện với người dùng, cho phép nhập, xuất, tìm kiếm, sắp xếp và xóa danh sách sinh viên theo các tiêu chí khác nhau

 Chương trình sử dụng cấu trúc dữ liệu danh sách liên kết để lưu trữ danh sách sinh viên Cấu trúc dữ liệu này có ưu điểm là tiết kiệm bộ nhớ, linh hoạt trong việc thêm, xóa phn tử, không bị giới hạn kích thước Tuy nhiên, cấu trúc dữ liệu này cũng có nhược điểm là khó khăn trong việc truy xuất ngẫu nhiên các phn tử, và cn phải quản lý con trỏ một cách cẩn thận để tránh rò rỉ bộ nhớ

 Chương trình sử dụng các thuật toán tìm kiếm tun t và sắp xếp chèn trc tiếp để thc hiện các chức năng tìm kiếm và sắp xếp danh sách sinh viên Các thuật toán này có độ phức tạp thời gian là O(n) và O(n^2) trong trường hợp xấu nhất Các thuật toán này đơn giản và dễ hiểu, nhưng không hiệu quả khi số lượng sinh viên lớn

Trang 23

Hướng phát triển

Da trên những kết luận trên, em có một số kiến nghị để cải tiến chương trình quản lý danh sách sinh viên như sau:

 Nghiên cứu và áp dụng các cấu trúc dữ liệu khác để lưu trữ danh sách sinh viên, ví

dụ như danh sách liên kết kép, danh sách liên kết vòng, cây nhị phân tìm kiếm, bảng băm… Các cấu trúc dữ liệu này có thể giải quyết một số nhược điểm của danh sách liên kết đơn, như tăng tốc độ truy xuất ngẫu nhiên, giảm thiểu số ln duyệt danh sách…

 Nghiên cứu và áp dụng các thuật toán tìm kiếm và sắp xếp nâng cao để thc hiện các chức năng tìm kiếm và sắp xếp danh sách sinh viên, ví dụ như tìm kiếm nhị phân, sắp xếp nhanh, sắp xếp chèn nhị phân… Các thuật toán này có thể giảm độ phức tạp thời gian của các chức năng này, đặc biệt khi số lượng sinh viên lớn

 Thêm một số tính năng mới cho chương trình quản lý danh sách sinh viên, ví dụ như thống kê điểm theo các nhóm, xuất danh sách sinh viên ra file, nhập danh sách sinh viên từ file, tìm kiếm sinh viên theo nhiều tiêu chí cùng lúc… Các tính năng này có thể làm cho chương trình quản lý danh sách sinh viên trở nên đa dạng và phong phú hơn

Em xin chân thành cảm ơn thy giáo hướng dẫn đã tận tình chỉ bảo và giúp đỡ Em trong quá trình làm báo cáo Em cũng xin cảm ơn các bạn cùng lớp đã góp ý và đóng góp cho báo cáo của Em Em rất mong nhận được những nhận xét và đánh giá khách quan từ thy giáo và các bạn để Em có thể hoàn thiện báo cáo của mình hơn Xin cảm ơn!

Trang 24

Danh m ục sách tham kh ảo

1 Quả n lý sinh viên sử d ng danh sách liên kết đơn (freetuts.net) ụ

2 Bài 69 Chương trình quả n lý sinh viên sử d ng struct Luyện Code ụ –

(luyencode.net)

3 Donahoe, T., 1993 Finding the Way: Structure, Time, and Culture in School Improvement[pdf]Availableat:

<http://www.schoolsmovingup.net/cs/smu/view/rs/485 >

Ngày đăng: 19/12/2024, 14:46

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN