You are on page 1of 2

#include "bits/stdc++.

h"
using namespace std;
struct Hocsinh{
string maHS,HOTEN,LOP;
double TOAN,VAN,ANH;
};
struct DanhSach{
Hocsinh ct[100];
int h;
};
double tinhDTB(Hocsinh &hs){
return ((hs.ANH+hs.TOAN+hs.VAN)/3);
}
void nhapHS(Hocsinh &hs){
cout<<"nhap ho ten:";fflush(stdin);getline(cin,hs.HOTEN);
cout<<"nhap lop:";fflush(stdin);getline(cin,hs.LOP);
cout<<"nhap ma sinh vien:";fflush(stdin);getline(cin,hs.maHS);
cout<<"nhap diem mon Toan:";fflush(stdin);cin>>hs.TOAN;
cout<<"nhap diem mon Van:";cin>>hs.VAN;
cout<<"nhap diem mon Anh";cin>>hs.ANH;
return;
}
void nhapDS(DanhSach &A){
cout<<"nhap so luong sinh vien:";cin>>A.h;
for(int i=1;i<=A.h;i++){
cout<<"nhap sinh vien thu: "<<i<<endl;
nhapHS(A.ct[i]);
}
return;
}
void xuatHS(Hocsinh hs){
cout<<"ho ten sinh vien :"<<hs.HOTEN<<endl;
cout<<"lop:"<<hs.LOP<<endl;
cout<<"ma sinh vien:"<<hs.maHS<<endl;
cout<<"diem mon Toan:"<<hs.TOAN<<endl;
cout<<"diem mon Van:"<<hs.VAN<<endl;
cout<<"diem mon Anh:"<<hs.ANH<<endl;
cout<<"diem TB mon:"<<tinhDTB(hs)<<endl;
return;
}
void xuatDS(DanhSach A){
for(int i=1;i<=A.h;i++){
cout<<"xuat sinh vien thu: "<<i<<endl;
xuatHS(A.ct[i]);
}
return;
}
int timkiemMA(string mahs,DanhSach A){
for(int i=1;i<=A.h;i++){
if(A.ct[i].maHS==mahs) return i;
}
return -1;
}
void themgt(Hocsinh e,int p,DanhSach &A){
if(A.h==100) return;
if(p<A.h+1&&p>0){
for(int i=A.h;i>p;i--){
A.ct[i+1]=A.ct[i];
}
A.ct[p]=e;
A.h++;
}
return;
}
DanhSach loc8(DanhSach A){
DanhSach B;
B.h=0;
for(int i=1;i<=A.h;i++){
if(A.ct[i].ANH>=8&&A.ct[i].TOAN>=8&&A.ct[i].VAN>=8){
themgt(A.ct[i],B.h+1,B);
}
}
return B;
}
void XXDStang(DanhSach &A){
Hocsinh tamthoi;
for(int i=1;i<=A.h;i++){
for(int j=i+1;j<=A.h;j++){
if(tinhDTB(A.ct[i])>tinhDTB(A.ct[j])){
tamthoi=A.ct[i];
A.ct[i]=A.ct[j];
A.ct[j]=tamthoi;
}
}
}
return;
}
int main(){
DanhSach CT2;
nhapDS(CT2);
xuatDS(CT2);
string IMa;
cout<<"nhap ma sinh vien can tim:";cin>>IMa;
if(timkiemMA(IMa,CT2)!=-1){
cout<<"tim duoc sinh vien thu "<<timkiemMA(IMa,CT2)<<endl;
}else{
cout<<"khong tim thay"<<endl;
}
cout<<"----------------------"<<endl;
DanhSach CT2T8;
loc8(CT2T8);
cout<<"xuat danh sach diem tat ca cac mon tren 8:"<<endl;
xuatDS(CT2T8);
cout<<"----------------------"<<endl;
XXDStang(CT2);
cout<<"xuat danh sach sau khi sap xep:"<<endl;
xuatDS(CT2);
return 0;
}

You might also like