






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; }