Viết chương trình quản lý sinh viên bằng danh sách kề

Quản lý sinh viên [Bài tập C++] | Khiêm Lê

Xây dựng chương trình quản lý danh sách sinh viên với các tính năng sau:

  • Nhập và lưu danh sách sinh viên
    • Mô tả: Nhập thông tin sinh viên [MSSV, họ tên, điểm toán, văn, anh] từ file và hệ thống tự tính điểm trung bình
    • Mô tả tương tác:
      1. Nhập lệnh từ terminal: ./qlsv add
      2. Đọc file, tính điểm trung bình và lưu vào hệ thống
      3. Thông báo kết quả ra màn hình
  • Tìm kiếm sinh viên theo MSSV hoặc họ tên
    • Mô tả: Tìm kiếm sinh viên theo MSSV hoặc họ tên được nhập từ bàn phím
    • Mô tả tương tác:
      • Nhập lệnh từ Terminal: ./qlsv find
      • Đọc dữ liệu từ hệ thống, tìm kiếm và in kết quả ra màn hình theo format:
  • Xuất ra màn hình các sinh viên có điểm trung bình trên 5.0
    • Mô tả: Tìm kiếm và in tất cả sinh viên có điểm trung bình trên 5.0
    • Mô tả tương tác:
      • Nhập lệnh từ Terminal: ./qlsv passed
      • Đọc dữ liệu từ hệ thống và in ra tất cả sinh viên có DTB trên 5.0 theo format:

Source code

Trong video mình sử dụng mảng động và nó không hoạt động hiệu quả đối với dữ liệu quá lớn vậy nên mình chuyển sang dùng kiểu vector để linh hoạt hơn trong việc sử lý dữ liệu lớn. Bạn có thể tham khảo code bên dưới.

#include #include #include #include "SinhVien.hpp" using namespace std; #define DATABASE_PATH "data.txt" void saveDataToFile[vector sv] { ofstream fileStream; fileStream.open[DATABASE_PATH, ios::out | ios::app]; for [int i = 0; i < sv.size[]; i++] { sv[i].printToFile[fileStream]; fileStream info=min->info; min->info=temp; p=p->next; } } void menu[] { LIST L; NODE *p,*q,*moi; sv x; char chon; CreateList[L]; do { printf["\n\t\t\tMENU"]; printf["\n\t1. Nhap ds"]; printf["\n\t2. In ds"]; printf["\n\t3. Ds sv co dtb cao nhat"]; printf["\n\t4. Ds sv co dtb >=5"]; printf["\n\t5. Tim sv"]; printf["\n\t6. Xoa sv"]; printf["\n\t7. Sap xep ds"]; printf["\n\t8. Chen sv"]; printf["\n\tNhap 0 de thoat"]; chon=getch[]; switch[chon] { case '1': { nhap[L]; break;} case '2': { xuat[L]; break;} case '3': { maxdtb[L]; break;} case '4': { thongkedtb[L]; break;} case '5': { tim[L]; break;} case '6': { xoa[L]; printf["\nDs sau khi xoa: "]; xuat[L]; break;} case '7': { selectionsort[L];printf["\nDs sau khi sap xep: "]; xuat[L]; break;} case '8': { sv them; printf["\nNhap thong tin sv can them: "]; input[them]; NODE *t= CreateNode[them]; AddLast[L,t]; selectionsort[L]; printf["\nDs sau khi them :"]; xuat[L]; break; } case '0': exit[1]; default: printf["\nNhap lai."]; } } while [chon!='0']; } int main[] { while[1] { menu[]; getch[]; } }

Page 2

Video liên quan

Chủ Đề