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.

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

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