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

nội dung quản lý danh sách sinh viên bằng danh sách kề

28 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

BẢNG PHÂN CÔNG NHIỆM VỤKết quả thực hiện1 Nguyễn Xuân Chức 22707218 - Hàm xuất bảng thông tin tất cả sinh viên - Hàm thêm sinh viên - Hàm sắp xếp sinh viên theo tên- Hàm xuất danh sách s

Trang 1

BỘ CÔNG THƯƠNG

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THÀNH PHỐ HỒ CHÍ MINHKHOA CÔNG NGHỆ THÔNG TIN

MÔN HỌC: CẤU TRÚC DỮ LIỆU VÀ GIẢI THUẬT

NỘI DUNG: QUẢN LÝ DANH SÁCH SINH VIÊN BẰNG DANH SÁCH KỀ

Giảng viên bộ môn: VÕ QUANG HOÀNG KHANGLớp học phần : DHKTPM18ATT – 422000161103

Tp Hồ Chí Minh, ngày 01 tháng 09 năm 2023

Nguyễn Xuân Chức 22707218 0389568496Đoàn Ngọc Bảo Uyên 22699971 0943648490

Trang 2

1 BẢNG PHÂN CÔNG NHIỆM VỤ

Kết quả thực hiện

1 Nguyễn Xuân Chức 22707218 - Hàm xuất bảng thông tin tất cả sinh viên

- Hàm thêm sinh viên

- Hàm sắp xếp sinh viên theo tên- Hàm xuất danh sách sinh viên rớt môn

- Hàm xuất danh sách sinh viên có điểm cao nhất - Hàm ghi / đọc thông tin từ file(txt và bin)

28/8-Tốt 10

2 Đoàn Ngọc

Bảo Uyên 22699971 - Menu - Hàm tìm kiếm theo giải thuật Linear Search- Hàm xóa sinh viênkhi biết mssv - Hàm sắp xếp sinh viên theo điểm trung bình - Hàm chỉnh sửa thông tin sinh viên (mssv / họ tên / tuổi /điểm trung bình )

Trang 3

2 MÔ TẢ BÀI TOÁN*THÔNG TIN LƯU TRỮ:

- Lưu trữ thông tin cơ bản của sinh viên(Struct):

+ Mã số sinh viên+ Họ tên sinh viên+ Tuổi sinh viên

+ Điểm trung bình của sinh viên

*CÁC CHỨC NĂNG CHÍNH CỦA CHƯƠNG TRÌNH:

1 Bảng thông tin tất cả sinh viên2 Thêm 1 hoặc nhiều sinh viên 3 Xóa 1 sinh viên

4 Chỉnh sửa thông tin của 1 sinh viên ( mssv / họ tên / tuổi / điểm trung bình )5 Sắp xếp sinh viên theo điểm trung bình (/ từ cao đến thấp )

a) Theo điểm trung bình ( Từ thấp đến cao )b) Theo điểm trung bình ( Từ cao đến thấp )c) Theo tên ( Từ A Z )

d) Theo tên ( Từ Z A )6 Truy vấn

a) Thông tin sinh viên theo MSSVb) Danh sách sinh viên rớt môn c) Sinh viên có điểm cao nhất 7 Sao lưu vào file QuanLiSinhVien.txt8 Lấy thông tin từ dữ liệu sẵn có 9 Thoát chương trình

Trang 4

3 KHAI BÁO DỮ LIỆU

void output(SinhVien sv[], int n);

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để xuất bảng thông tin sinh viên

int timMSSV(SinhVien sv[], int n, char mssv[]);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*char mssv[] : chuỗi dùng để tìm kiếm mssv dạng chuỗi thuộc sv[]

*Hàm tìm kiếm thông tin sinh viên theo MSSV ( Giải thuật tìm kiếm tuyến tính )*/

void xoa(SinhVien sv[], int &n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để xóa sinh viên trong danh sách

Too long to read onyour phone? Save

to read later onyour computer

Save to a Studylist

Trang 5

void xoaSV(SinhVien sv[], int &n, int k);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*int k : vị trí sinh viên cần xóa

*Dùng để xóa thông tin sinh viên khi biết mssv*/

void chinhSuaMSSV(SinhVien sv[], int n, int k);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*int k : vị trí sinh viên cần chỉnh sửa thông tin

* Dùng để chỉnh sửa thông tin về mssv của sinh viên ( MSSV là chuỗi gồm 8 chữ số )*/

void chinhSuaHoTen(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên* Dùng để chỉnh sửa thông tin về họ và tên của sinh viên */

void chinhSuaTuoi(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để chỉnh sửa thông tin về tuổi của sinh viên */

Trang 6

void chinhSuaDiemTB(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên* Dùng để chỉnh sửa thông tin về điểm trung bình của sinh viên*/

void sapXepTang(SinhVien sv[], int n); /*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên

*Dùng để sắp xếp bảng thông tin sinh viên theo điểm trung bình ( từ thấp đến cao )*/

void sapXepGiam(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên

*Dùng để sắp xếp bảng thông tin sinh viên theo điểm trung bình ( từ cao đến thấp )*/

void tach(SinhVien sv, char tmp[]); /*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVienChar tmp[] : Chuỗi tạm lưu từ cuối trong chuỗi SinhVien*Dùng để lưu tạm từ cuối của chuỗi

Trang 7

void timThongTin(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để tìm và xuất thông tin sinh viên theo mssv đã nhập*/

Trang 8

void timThongTinRotMon(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên

*Dùng để xuất bảng thông tin những sinh viên rớt môn ( có điểm trung bình nhỏ hơn 4 )*/

void timThongTinSinhVienDiemCaoNhat(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để in ra thông tin sinh viên có điểm trung bình cao nhất */

void luuFileBin(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để lưu trữ chính những thông tin sinh viên*/

void luuFileTxt(SinhVien sv[], int n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để lưu trữ phụ (để đọc) những thông tin sinh viên*/

Trang 9

void moFile(SinhVien sv[], int &n);/*

* SinhVien sv[] : Thao tác mảng sv kiểu SinhVien*int n : kiểu số nguyên dùng để quản lý số lượng sinh viên*Dùng để lấy dữ liệu có sẵn từ file đưa vào chương trình*/

Trang 10

4 CÁC HÀM CÀI ĐẶT1 Hàm xóa sinh viên khi biết MSSV

}}return -1;}

printf("(+) Da xoa.\n\n");}

Trang 11

printf("%d\n",temp); if(temp >= 0){

xoaSV(sv,n,temp);} else {

printf("(-) Ma so sinh vien khong ton tai!!\n\n");}

* Giải thuật :

* Nhập mssv cần xóa và cho chạy qua hàm timMSSV()

*- Nếu tìm thấy ( Giá trị trả về >=0): trả về vị trí cần xóa thứ i ( sử dụng hàm *

for(int j=i+1; j<n; j++){

if(sv[i].diemTB > sv[j].diemTB){SinhVien temp = sv[i];sv[i] = sv[j];sv[j] = temp;}

printf("(+) Da sap xep.\n");}

Trang 12

* - Xét phần tử tại vị trí i với các phần tử sau nó ( bắt đầu từ j = i+1 và lặp đến j < n ) * - Nếu phần tử tại vị trí i lớn hơn phần tử tại vị trí j thì đổi chỗ 2 phần tử đó cho nhau * - VD :

* a[5] = {3,2,4,1,5} * i = 0

* j = 1 => a[0] = 3 > a[1] = 2 => a[5] = {2,3,4,1,5} * j = 2 => a[0] = 2 > a[2] = 4 (X)

* j = 3 => a[0] = 2 > a[3] = 1 => a[5] = {1,3,4,2,5} * j = 4 => a[0] = 1 > a[4] = 5 (X)

sv[j + 1] = temp;}}}

printf("(+) Da sap xep.\n");

Trang 13

* Giải thuật :

* Sử dụng thuật toán Bubble Sort ( Sắp xếp nổi bọt ) để sắp xếp sinh viên theo điểm trung bình (từ cao đến thấp)

* Mô tả thuật toán :

* Xuất phát từ đầu dãy, đổi chỗ các cặp phần tử kế cận để đưa phần tử nhỏ hơn trong * cặp phần tử đó về vị trí đứng cuối dãy , sau đó sẽ không xét đến nó ở bước tiếp theo * Cụ thể :

* - Duyệt qua từng phần tử của mảng ( bắt đầu từ i = 0 và lặp đến i < n-1 ) * - Xét phần tử tại vị trí j với phần tử sau nó ( bắt đầu từ j = 0 và lặp đến j < n-i-1 ) * - Nếu phần tử tại vị trí j nhỏ hơn phần tử tại vị trí j+1 thì đổi chỗ 2 phần tử đó cho nhau

* VD :

* a[5] = {3,2,4,1,5} * i = 0

Trang 14

5 KẾT QUẢ CHẠY TRƯỜNG TRÌNH

Menu :

Chức năng 1 : Bảng thông tin tất cả sinh viên

Trang 15

Chức năng 2 : Thêm sinh viên

- Thêm một sinh viên

- Thêm nhiều sinh viên

Trang 16

- Trở lại :

- Lỗi

Nhập sai chức năng

Trang 17

Chức năng 3 : Xóa sinh viên ( khi biết mssv )

- Xóa thành công

- Lỗi :

Nhập sai mssv :

Trang 18

Chưa nhập mssv :

Chức năng 4 : Chỉnh sửa thông tin sinh viên

- Chỉnh sửa thành công

Chỉnh sửa mssv

Trang 19

Chỉnh sửa họ tên

Chỉnh sửa tuổi

Trang 20

Chỉnh sửa điểm trung bình

Trở lại

Trang 21

- Lỗi :

Nhập sai mssv

Chưa nhập mssv

Nhập sai chức năng

Trang 22

Chức năng 5 : Sắp xếp theo điểm trung bình

- Sắp xếp thành công :

Từ thấp đến cao

Trang 23

Từ cao đến thấp

Trở lại

Trang 24

- Lỗi

Nhập sai chức năng

Chức năng 6 : Truy vấn

- Tìm kiếm thông tin theo mssv

- Truy vấn những sinh viên rớt môn

- Truy vấn sinh viên có điểm trung bình cao nhất

- Trở lại

Trang 25

Chức năng 7 : Sao lưu

- Sao lưu thông tin sinh viên vào file QuanLiSinhVien.txt

Chức năng 8 : Mở dữ liệu sẵn có

- Lấy dữ liệu từ file QuanLiSinhVien.txt đã sao lưu

Trang 26

Chức năng 9 : Thoát chương trình

Ngày đăng: 24/05/2024, 10:18

Xem thêm:

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

TÀI LIỆU LIÊN QUAN

w