Mẫu cấu trúc đối tượng sinh viên | Đại học Kinh tế Kỹ thuật Công nghiệp
Bạn có thể mở rộng lớp Student với các phương thức và thuộc tính khác như địa chỉ, số điện thoại, hoặc phương thức để tính toán các khoản học phí hoặc điểm số. Mẫu này có thể được áp dụng cho nhiều ngôn ngữ lập trình khác nhau, chỉ cần điều chỉnh cú pháp cho phù hợp với ngôn ngữ đó. Phương thức để kiểm tra xem sinh viên có GPA cao hay không, giúp xác định xem sinh viên có thuộc diện sinh viên giỏi hay không.
Môn: Lập trình hướng đối tượng (KTKTCN)
Trường: Đại học Kinh tế kỹ thuật công nghiệp
Thông tin:
Tác giả:
Preview text:
Struct Sinhvienmau #include #include #include #include using namespace std; struct Quanly_sinhvien { strin g maSinhvien, tenSinhvien; in t namSin ; h floa t dt ; b in t hocBon ; g boo l gioiTin ; h };
void nhapthongtin(Quanly_sinhvien &a) { cou t < < "\nNhap ma sinh vien: "; ci n > > a.maSinhvien; cou t < < "\nNhap ho ten: "; cin.ignore() ; getline(cin, a.tenSinhvien); cou t < < "\nNhap nam sinh: "; ci n > > a.namSinh; cou t < < "\nNhap dtb: "; ci n > > a.dtb; cou t <
< "\nNhap gioi tinh (1: NAM; 0: NU): "; ci n > > a.gioiTinh; }
string getGioitinh(bool gioiTinh) { i f (gioiTinh == true) retur n "Nam ; " els e retur n "Nu ; " }
int tinhHocbong(Quanly_sinhvien &a) { i f (a.dtb > = 9. ) 0 retur n 800000 ; 0 els e i f (a.dt b > = 8. ) 0 retur n 500000 ; 0 els e i f (a.dt b > = 7. ) 0 retur n 300000 ; 0 els e retur n 0; }
void xuatthongtin(Quanly_sinhvien &a) { cou t < < setw(15) <
< left << a.maSinhvien < < setw(32) < < left < < a.tenSinhvien < < setw(10) < < left < < a.namSinh < < setw(10) < < left < < getGioitinh(a.gioiTin ) h < < setw(10) < < left < < a.dtb < < setw(15) < < left < < a.hocBong << end ; l }
void nhapDanhsachSV(Quanly_sinhvien danhsachSV[], i nt n) { fo r (int i = 0; i < n; i++) { cou t <
< "\nNhap thong tin sinh vien thu " << i + 1 < < " : " < < endl; nhapthongtin(danhsachS [ V i]); } }
void xuatDanhsachSV(Quanly_sinhvien danhsachSV[], i nt n) { cou t < < setw(15) <
< left << "Ma sinh vien " < < setw(32) < < left < < "Ho ten " < < setw(10) < < left < < "Nam sinh " < < setw(10) < < left < < "Gioi tinh " < < setw(10) < < left < < "Diem TB " < < setw(15) < < left < < "Hoc bong " < < end ; l fo r (int i = 0; i < n; i++) { xuatthongtin(danhsachS [ V i]); } }
void sapxepDS(Quanly_sinhvien DanhsachSV[], int n) { fo
r (int i = 0; i < n - 1; i++) { fo r (in
t j = 0; j < n - i - 1; i+ ) + {
if (DanhsachSV[j].dtb < DanhsachSV[j + 1].dt ) b { Quanly_sinhvie n tem p = DanhsachSV[j];
DanhsachSV[j] = DanhsachSV[j + 1]; DanhsachSV[j + 1] = tem ; p } } } }
void xuatSVnu_dtb_caonhat(Quanly_sinhvien a[], int n) { floa t maxDie m = -1; Quanly_sinhvie n SVn ; u fo r (int i = 0; i < n; i++) { i f (a[i].gioiTinh == 0 & & a[i].dtb > maxDiem) { maxDiem = a[i].dtb; SVnu = a[i]; } } cou t <
< "\nSinh vien nu co diem cao nhat la: \n"; cou t < < setw(15) <
< left << "Ma sinh vien " < < setw(32) < < left < < "Ho ten " < < setw(10) < < left < < "Nam sinh " < < setw(10) < < left < < "Gioi tinh " < < setw(10) < < left < < "Diem TB " < < setw(15) < < left < < "Hoc bong " < < end ; l xuatthongtin(SVnu) ; }
void xoaSinhvien(Quanly_sinhvien a[], i nt n, string msv) { fo r (int i = 0; i < n; i++) { i f (a[i].maSinhvien == msv) { a[i] = a[i + 1];
cout << "\nDa xoa sinh vien co msv: " < < ms v < < " khoi danh sach!"; } } n- ; - }
void tinhHocbong_danhsachSV(Quanly_sinhvien a[], int n) { fo r (int i = 0; i < n; i++) { a[i].hocBon g = tinhHocbong(a[i]); } }
void chenthemdulieu(Quanly_sinhvien a[], int &n, Q uanly_sinhvien &b) { sapxepDS(a, n); in t i = n - 1; whil e (i > = 0 & & a[i].dtb < b.dtb) { a[i + 1] = a[i]; i- ; - } a[i + 1] = b; n+ ; + }
void infile(Quanly_sinhvien a[], i nt n) { // Cơ bản hơn ofstrea m file("Sinhvien.dat"); fo r (int i = 0; i < n; i++) { fil e < < a[i].maSinhvien < < " " < < a[i].tenSinhvien < < " " < < a[i].namSinh < < " " < < a[i].gioiTinh < < " " < < a[i].dtb < < " " < < a[i].hocBong < < endl; } file.close() ; } void docfile() { ifstrea m file("Sinhvien.dat"); Quanly_sinhvie n a; whil
e (file >> a.maSinhvien >> a.tenSinhvien > > a.namSinh > > a.gioiTinh > > a.dtb > > a.hocBong) { cou t < < "Ma sinh vien: " < < a.maSinhvien < < "\nTen sinh vien: " < < a.tenSinhvien < < "\nNam sinh: " < < a.namSinh < < "\nGioi tinh: " < < getGioitinh(a.gioiTinh) < < "\nDiem trung binh: " < < a.dt b < < "\nHoc bong: " < < a.hocBong < < end ; l } file.close() ; } int main() { in t n; Quanly_sinhvie n a[1000]; whil e (true) { cou t <
< "\n------------------Menu-------------------\n"; cou t <
< "1. Nhap danh sach sinh vien\n"; cou t <
< "2. Tinh hoc bong sinh vien\n"; cou t <
< "3. In danh sach sinh vien\n"; cou t <
< "4. In thong tin sv nu co dtb cao nhat\n"; cou t <
< "5. Sap xep ds sinh vien giam dan dtb\n"; cou t <
< "6. Them sinh vien vao danh sach\n"; cou t <
< "7. Xoa sinh vien khoi danh sach\n"; cou t <
< "8. Luu danh sach sinh vien ra tep sinhvien.dat\n"; cou t <
< "9. Doc danh sach sinh vien tu tep sinhvien.dat\n"; cou t <
< "0. Thoat chuong trinh\n"; cou t <
< "---------------------------------------- " - ; cou t <
< "\nMoi ban nhap lua chon: "; in t luacho ; n ci n > > luacho ; n switc h (luacho ) n { cas e 0: return 0; break; cas e 1: {
cout << "\nNhap vao so luong sinh vien: "; cin >> n; nhapDanhsachSV(a, n); } brea ; k cas e 2: {
tinhHocbong_danhsachSV(a, n);
cout << "\nHoc Bong da duoc tinh cho tat ca sinh vien!" << end ; l } brea ; k cas e 3: {
cout << "\nDanh sach sin vien: \n"; xuatDanhsachSV(a, n); } brea ; k cas e 4: xuatSVnu_dtb_caonhat(a, n); break; cas e 5: { sapxepDS(a, n);
cout << "\nDanh sach sinh vien da duoc sap xep theo chieu giam dan cua dtb!"; } brea ; k cas e 6: { Quanly_sinhvien b; nhapthongtin(b); chenthemdulieu(a, n, b); } brea ; k cas e 7: { string msv;
cout << "\nNhap ma sinh vien can xoa: "; cin >> msv; xoaSinhvien(a, n, msv); } brea ; k cas e 8: { infile(a, n);
cout << "\nDanh sach sinh vien da duoc luu vao file sinhvien.dat !"; } brea ; k cas e 9: {
cout << "\nDanh sach sinh vien tu tep sinhvien.dat\n"; docfile(); } brea ; k defaul : t {
cout << "\nLua chon khong hop le." <
< "\nVui long nhap lai ! ..."; } brea ; k } } retur n 0; }