QUẢN LÝ GIẢNG VIÊN & SINH VIÊN | Đại học Kinh tế Kỹ thuật Công nghiệp
Đề tài này tập trung vào việc xây dựng hệ thống quản lý giảng viên và sinh viên, từ phân tích nhu cầu đến thiết kế hệ thống và công nghệ sử dụng, nhằm nâng cao hiệu quả công tác quản lý giáo dục tại các cơ sở đào tạo. Hệ thống quản lý giảng viên và sinh viên sẽ giúp tối ưu hóa quy trình giáo dục và cải thiện sự tương tác giữa giảng viên và sinh viên. Sự đầu tư vào hệ thống này sẽ mang lại nhiều lợi ích cho cả nhà trường và người học
Preview text:
lOMoAR cPSD| 46884348 BỘ CÔNG THƯƠNG
TRƯỜNG ĐẠI HỌC KINH TẾ - KỸ THUẬT CÔNG NGHIỆP HÀ NỘI --------------- ---------------
BÁO CÁO THỰC HÀNH LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG ĐỀ BÀI
: QUẢN LÝ GIẢNG VIÊN & SINH VIÊN NHÓM 10
SINH VIÊN THỰC HIỆN :NGUYỄN BẢO TRUNG
NGUYỄN TRẦN CAO SƠN KHỔNG QUANG VŨ PHẠM ĐỨC TRUNG LỚP : DHTI15A2HN 1 lOMoAR cPSD| 46884348 LỜI NÓI ĐẦU
Ý TƯỞNG CỦA NHÓM :
Quản lý danh sách Giảng viên và Sinh viên bao gồm lương và học
bổng của sinh viên, xuất danh sách GV quê ở Hà Nội và lương 5 triệu
và tìm SV nam được thưởng từ 1 triệu trở lên.
PHƯƠNG ÁN THỰC HIỆN:
Sử dụng lập trình hướng đối tượng, tạo ra class Person với các dữ liệu
của Người(Họ tên, quê quán, giới tính). Liên kết các lớp GiangVien và
SinhVien kế thừa từ lớp Person.
Các thao tác người dùng sẽ được thiết kế dưới dạng menu.
CÁC KIẾN THỨC ĐƯỢC SỬ DỤNG:
Kiến thức về đối tượng(Dữ liệu, hàm, chế độ bảo mật, định nghĩa lại toán tử,…)
Các thuật toán tìm kiếm. 2 lOMoAR cPSD| 46884348 MỤC LỤC
I.LỜI NÓI ĐẦU …………………………………………………………………..2
II.MỤC LỤC ……………………………………………………………………...3
III.PHÂN TÍCH BÀI LÀM…………………........................................................4
Mô Tả …………....................................................................................................4
Lớp Person …………………………………………………………………4
Lớp Giảng Viên…………………………………………………………….4
Lớp Sinh Viên………………………………………………………………4
IV.THUỘC TÍNH CỦA CHƯƠNG TRÌNH .............................................................................. 5
Khai Báo …………………....................................................................................5
- Class Person………………………………………………………………..5
- Class GiangVien …………………………………………………………..5
- Class SinhVien……………………………………………………………..5
III.THIẾT KẾ ……….............................................................................................6
- Thiết kế Menu ..................................................................................................................................... 6
- Lựa chọn 1:Nhập xuất giảng viên ......................................................................................... 6
- Lựa chọn 2: Danh sách Giảng Viên quê Hà Nội và lương 5 triệu ................ 7
- Lựa chọn 3: Nhập Sinh Viên……………………...…………………….. ..7
- Lựa chọn 4: Danh sách Sinh Viên thưởng 1 triệu trở lên……………......7
- Lựa chọn 5:Thoát chương trình……………………...................................7
IV.LẬP TRÌNH ................................................................................................................................................ 8
Bài Code Hoàn Chỉnh ............................................................................................................................... 8 3 lOMoAR cPSD| 46884348
PHÂN TÍCH CHỨC NĂNG 1.Mô tả hệ thống a.Giới thiệu
Trong bài này,chúng tôi đã xây dựng một chương trình quản lý sinh viên bằng ngôn ngữ lập trình C++
b.Các lớp đối tượng * Lớp Person
-Mô tả: các thuộc tính họ tên, quê quán, giới tính. -Phương thức: + Hàm khởi tạo + Hàm hủy
+ Hàm định nghĩa toán tử nhập
+ Hàm định nghĩa toán tử xuất *Lớp GiangVien
-Mô tả:Lớp GiangVien kế thừa từ lớp Person và bổ sung thêm các thuộc tính bằng cấp, lương. -Phương thức: + Hàm khởi tạo + Hàm hủy + Hàm toán tử nhập
+ Hàm định nghĩa toán tử xuất + Hàm tính tiền lương *Lớp SinhVien
-Mô tả:Lớp SinhVien kế thừa từ lớp Person và bổ sung thêm các thuộc tính xếp loại, khen thưởng -Phương thức: + Hàm khởi tạo 4 lOMoAR cPSD| 46884348 + Hàm huỷ
+ Hàm định nghĩa toán tử nhập
+ Hàm định nghĩa toán tử xuất + Hàm tính học bổng + Hàm nhập Giảng Viên
+ Hàm tìm Giảng Viên có quê quán ở Hà Nội và lương >= 5 triệu + Hàm nhập Sinh Viên + Hàm xuất ra học bổng
THUỘC TÍNH CỦA CHƯƠNG TRÌNH 1.KHAI BÁO -class Person Thuộc tính Kiểu dữ liệu Họ tên Char Quê quán Char Giới tính Int -class GiangVien Thuộc tính Kiểu dữ liệu Bằng cấp Char Lương Float -class SinhVien Thuộc tính Kiểu dữ liệu 5 lOMoAR cPSD| 46884348 Xếp loại Char Thưởng Float THIẾT KẾ -MENU 1.Nhập Giảng Viên
2.Danh sách Giảng Viên quê Hà Nội và lương 5 triệu 3.Nhập Sinh Viên
4.Danh sách Sinh Viên thưởng 1 triệu trở lên 5.Thoát chương trình
--Lựa chọn 1:Nhập xuất thông tinh sinh viên
void nGiangVien(GiangVien a[], int &n){ //Hàm nhập GiangVien
cout<<"Nhap so luong GV: "; cin>>n; //Nhập số lượng 6 lOMoAR cPSD| 46884348
for (int i = 0; i//Vòng lặp cin>>a[i]; //Nhập GiangVien thứ a[i] } }
--Lựa chọn 2: Danh sách Giảng Viên quê Hà Nội và lương 5
triệu void xGiangVien(GiangVien a[], int n){ for (int i = 0; i
if((strcmp(a[i].get_qq(),"Ha Noi") == 0) && (a[i].luongGV() >= 5))
//Tìm giảng viên có quê quán ở Ha Noi và lương >= 5 triệu cout< } }
--Lựa chọn 3: Nhập Sinh Viên
void nSinhVien(SinhVien a[], int &n){
cout<<"Nhap so luong SV: "; cin>>n; for (int i = 0; i cin>>a[i]; } }
--Lựa chọn 4: Danh sách Sinh Viên thưởng 1 triệu trở
lên void xSinhVien(SinhVien a[], int n){ 7 lOMoAR cPSD| 46884348 for (int i = 0; i if(a[i].hocbong()>=1) cout< } } LẬP TRÌNH
Sau Đây Là Bài Code Hoàn Chỉnh
class Person{ //Lớp người protected: char hoten[30]; char qq[30]; int gender; public: Person(){ }
Person(char hoten[],char qq[], int gender){ //Hàm khởi tạo có tham số strcpy(this->hoten,hoten); strcpy(this->qq,qq); this -> gender = gender; } ~Person(){ //Hàm hủy }
friend istream& operator >> (istream &is, Person &a){ //Nạp chồng toán tử nhập
cin.ignore(); //Xóa ký tự đầu trong bộ nhớ đệm 8 lOMoAR cPSD| 46884348
cout<<"\nNhap ho ten: "; is.getline(a.hoten,30);
cout<<"\nNhap que quan: "; is.getline(a.qq,30);
cout<<"\nGioi tinh: (1: nam, 0: nu): "; is >> a.gender; return is; }
friend ostream& operator << (ostream &os, Person &a){ //hàm nạp chồng toán tử xuất os<<"\n\tHo ten: "<
os<<"\n\tQue quan: "<
if(a.gender == 1) os <<"\n\tGioi tinh: Nam" << endl;
else os<<"\n\tGioi tinh: Nu"< return os; } };
class GiangVien : public Person{ //Lớp GiangVien kế thừa từ lớp Person protected: char bc[30]; float luong; public: GiangVien() { }
GiangVien(char hoten[30],char qq[30], int gender, char bc[30], float luong): Person(hoten, qq, gender){ strcpy(this->bc,bc); this->luong=luong; 9 lOMoAR cPSD| 46884348 } ~GiangVien(){ }
friend istream& operator >> (istream &is, GiangVien
&a){ is>>(Person&)a; cin.ignore();
cout<<"\n\t\tNhap bang cap: ";
is.getline(a.bc,30); return is; }
friend ostream& operator << (ostream &os, GiangVien a){ os<<(Person&)a;
os<<"\n\t\tBang cap: "<os<<"\n\t\tLuong Giang Vien: "< } char* get_bc(){ return bc; } char* get_qq(){ return qq; } float luongGV(){
if (strcmp(get_bc(),"Cu Nhan")==0) return 3; else
if (strcmp(get_bc(),"Thac Si")==0) return 5; else if
(strcmp(get_bc(),"Tien Si")==0) return 10; } 10 lOMoAR cPSD| 46884348 };
class SinhVien : public Person{ //Lop SinhVien kế thừa từ lớp Person protected: char xl[30]; float thuong; public: SinhVien() { }
SinhVien(char hoten[30],char qq[30], int gender, char xl[30], float thuong): Person(hoten, qq, gender){ strcpy(this->xl,xl); this->thuong=thuong; } ~SinhVien(){ }
friend istream& operator >> (istream &is, SinhVien
&a){ is>>(Person&)a; cin.ignore();
cout<<"\n\t\tNhap xep loai: ";
is.getline(a.xl,30); return is; }
friend ostream& operator << (ostream &os, SinhVien a){ os<<(Person&)a;
os<<"\n\t\tXep loai: "<os<<"\n\t\tThuong hoc bong: "< 11 } char* get_xl(){ return xl; } float hocbong(){
if (strcmp(get_xl(),"Xuat sac")==0) return 3;
else if (strcmp(get_xl(),"Gioi")==0) return 1;
else if (strcmp(get_xl(),"Kha")==0) return
0.5; else cout<<"Khong co hoc bong!"; } int get_gender(){ return gender; } };
void nGiangVien(GiangVien a[], int &n){ //Hàm nhập GiangVien
cout<<"Nhap so luong GV: "; cin>>n; //Nhập số lượng
for (int i = 0; i//Vòng lặp cin>>a[i]; //Nhập GiangVien thứ a[i] } }
void xGiangVien(GiangVien a[], int n){ for (int i = 0; i
if((strcmp(a[i].get_qq(),"Ha Noi") == 0) && (a[i].luongGV() >= 5))
//Tìm giảng viên có quê quán ở Ha Noi và lương >= 5 triệu cout< } 12 lOMoAR cPSD| 46884348 }
void nSinhVien(SinhVien a[], int &n){
cout<<"Nhap so luong SV: "; cin>>n; for (int i = 0; i cin>>a[i]; } }
void xSinhVien(SinhVien a[], int n){ for (int i = 0; i if(a[i].hocbong()>=1) cout< } } int main(){ GiangVien a[100]; SinhVien b[100]; int n; int chon; //Menu while(true){ cout<<"\n\tLua chon: ";
cout<<"\n\t\t(1)=>Nhap Giang Vien.";
cout<<"\n\t\t(2)=>Danh sach Giang Vien que quan Ha Noi va luong 5 trieu.";
cout<<"\n\t\t(3)=>Nhap Sinh Vien.";
cout<<"\n\t\t(4)=>Danh sach Sinh Vien thuong 1 trieu tro len."; 13 lOMoAR cPSD| 46884348
cout << "\nMoi ban nhap lua chon: "; cin>>chon; switch (chon){ case 1: cout<<"Lua chon 1: \n"; nGiangVien(a,n); break; case 2: cout<<"Lua chon 2: \n"; xGiangVien(a,n); break; case 3: cout<<"Lua chon 3: \n"; nSinhVien(b, n); break; case 4: cout<<"Lua chon 4: \n"; xSinhVien(b,n); break; case 5: exit(0);//Thoat chuong trinh default:
cout<<"Khong ton tai lua chon!!"; break; } 14 lOMoAR cPSD| 46884348 } return 0; }