Struct Sinhvienmau
#include <iostream>
#include <iomanip>
#include <string>
#include <fstream>
using namespace std;
struct Quanly_sinhvien
{
string maSinhvien, tenSinhvien;
; int namSinh
; float dtb
; int hocBong
; bool gioiTinh
};
void nhapthongtin(Quanly_sinhvien ) &a
{
cout << "\nNhap ma sinh vien: ";
cin >> a.maSinhvien;
cout << "\nNhap ho ten: ";
cin.ignore();
getline(cin, a.tenSinhvien);
cout << "\nNhap nam sinh: ";
cin >> a.namSinh;
cout << "\nNhap dtb: ";
cin >> a.dtb;
cout << "\nNhap gioi tinh (1: NAM; 0: NU): ";
cin >> a.gioiTinh;
}
string getGioitinh(bool gioiTinh)
{
(if gioiTinh == true)
; return "Nam"
else
; return "Nu"
}
int tinhHocbong(Quanly_sinhvien ) &a
{
(if a.dtb ) >= 9.0
; return 8000000
( ) else if a.dtb >= 8.0
; return 5000000
( ) else if a.dtb >= 7.0
; return 3000000
else
; return 0
}
void xuatthongtin(Quanly_sinhvien ) &a
{
cout << setw << left <<(15) a.maSinhvien
<< setw(32) << left << a.tenSinhvien
<< setw(10) << left << a.namSinh
) << setw(10) << left << getGioitinh( .a gioiTinh
<< setw(10) << left << a.dtb
<< setw(15) << left << a.hocBong << ; endl
}
void int nhapDanhsachSV(Quanly_sinhvien danhsachSV[], ) n
{
(for int i = 0; i < n; i++)
{
cout << "\nNhap thong tin sinh vien thu " << i + 1 << " :" << endl;
nhapthongtin( [danhsachSV i]);
}
}
void int xuatDanhsachSV(Quanly_sinhvien danhsachSV[], ) n
{
cout << setw << left <<(15) "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" << endl
(for int i = 0; i < n; i++)
{
xuatthongtin( [danhsachSV i]);
}
}
void int sapxepDS(Quanly_sinhvien DanhsachSV[], ) n
{
(for int i = 0; i < n - 1; i++)
{
( for int j = < 0; j n - i - ) 1; i++
{
if (DanhsachSV[j].dtb < DanhsachSV j[ + ) 1].dtb
{
Quanly_sinhvien temp = DanhsachSV j[ ];
DanhsachSV[j] = DanhsachSV[j + 1];
DanhsachSV[j + 1] = ; temp
}
}
}
}
void xuatSVnu_dtb_caonhat(Quanly_sinhvien a[], int n)
{
float maxDiem = ; -1
; Quanly_sinhvien SVnu
(for int i = 0; i < n; i++)
{
(if a[i a i].gioiTinh == 0 && [ ].dtb > maxDiem)
{
maxDiem = a i[ ].dtb;
SVnu = a i[ ];
}
}
cout << " "\nSinh vien nu co diem cao nhat la: \n ;
cout << setw << left <<(15) "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" << endl
xuatthongtin(SVnu);
}
void int xoaSinhvien(Quanly_sinhvien a[], n, string msv)
{
(for int i = 0; i < n; i++)
{
(if a[i].maSinhvien == msv)
{
a i a[ ] = [i + 1];
cout << "\nDa xoa sinh vien co msv: " << msv << " khoi danh
sach!";
}
}
; n--
}
void tinhHocbong_danhsachSV(Quanly_sinhvien a n[], int )
{
(for int i = 0; i < n; i++)
{
a i[ ].hocBong = tinhHocbong( [a i]);
}
}
void chenthemdulieu(Quanly_sinhvien Quanly_sinhvien a[], int &n, &b)
{
sapxepDS(a, n);
int i = n - 1;
(while i a >= 0 && [ .i].dtb < b dtb)
{
a i[ + 1] = a[i];
; i--
}
a[i + 1] = ; b
; n++
}
void int infile(Quanly_sinhvien a[], ) n
{
// Cơ bản hơn
ofstream file("Sinhvien.dat");
(for int i = 0; i < n; i++)
{
file << a i[ ].maSinhvien
<< " " << a i[ ].tenSinhvien
<< " " << a i[ ].namSinh
<< " " << a i[ ].gioiTinh
<< " " << a i[ ].dtb
<< " " << a i[ ].hocBong << endl;
}
file.close();
}
void docfile()
{
ifstream file("Sinhvien.dat");
; Quanly_sinhvien a
(while file maSinhvien >> a. >> a tenSinhvien a. >> .namSinh >> a gioiTinh. >>
a a.dtb >> .hocBong)
{
cout << "Ma sinh vien: " << a maSinhvien.
<< "\nTen sinh vien: " << a tenSinhvien.
<< "\nNam sinh: " << a namSinh.
<< "\nGioi tinh: " << getGioitinh( .a gioiTinh)
<< "\nDiem trung binh: " << a.dtb
<< "\nHoc bong: " << a hocBong. ; << endl
}
file.close();
}
int main()
{
int n;
Quanly_sinhvien a[1000];
(while true)
{
cout << "\n------------------Menu------------------- "\n ;
; cout << "1. Nhap danh sach sinh vien\n"
; cout << "2. Tinh hoc bong sinh vien\n"
; cout << "3. In danh sach sinh vien\n"
; cout << "4. In thong tin sv nu co dtb cao nhat\n"
; cout << "5. Sap xep ds sinh vien giam dan dtb\n"
; cout << "6. Them sinh vien vao danh sach\n"
; cout << "7. Xoa sinh vien khoi danh sach\n"
; cout << "8. Luu danh sach sinh vien ra tep sinhvien.dat\n"
; cout << "9. Doc danh sach sinh vien tu tep sinhvien.dat\n"
; cout << "0. Thoat chuong trinh\n"
; cout << " "-----------------------------------------
cout << "\nMoi ban nhap lua chon: ";
; int luachon
; cin >> luachon
( ) switch luachon
{
: case 0
return ; 0
break;
: case 1
{
cout << "\nNhap vao so luong sinh vien: ";
cin >> ; n
nhapDanhsachSV(a, n);
}
; break
: case 2
{
tinhHocbong_danhsachSV(a, n);
cout << "\nHoc Bong da duoc tinh cho tat ca sinh vien!" ; << endl
}
; break
: case 3
{
cout << "\nDanh sach sin vien: \n";
xuatDanhsachSV(a, n);
}
; break
: case 4
xuatSVnu_dtb_caonhat(a, n);
break;
: case 5
{
sapxepDS(a, n);
cout << "\nDanh sach sinh vien da duoc sap xep theo chieu giam dan
cua dtb!";
}
; break
: case 6
{
Quanly_sinhvien ; b
nhapthongtin(b);
chenthemdulieu(a, n, b);
}
; break
: case 7
{
string msv;
cout << "\nNhap ma sinh vien can xoa: ";
cin msv >> ;
xoaSinhvien(a, n, msv);
}
; break
: case 8
{
infile(a, n);
cout << "\nDanh sach sinh vien da duoc luu vao file sinhvien.dat
!";
}
; break
: case 9
{
cout << "\nDanh sach sinh vien tu tep sinhvien.dat\n";
docfile();
}
; break
: default
{
cout << "\nLua chon khong hop le."
<< "\nVui long nhap lai ! ...";
}
; break
}
}
return 0;
}

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