Bài Tập 2 - Lập Trình Hướng Đối Tượng
Code Kham Khảo Cách 1
#include<iostream> #include<string.h> using namespace std; class ThiSinh{ private: char Maso[32], Hoten[32], Ketqua[9]; float DiemTB, DiemLT, DiemTH; public: ThiSinh(); char* getMaso(){ return Maso; } char* getHoten(){ return Hoten; } char* getKetqua(){ return Ketqua; } float getDiemTB(){ return DiemTB; } float getDiemLT(){ return DiemLT; } float getDiemTH(){ return DiemTH; } void Nhap(); void Xuat(); }; class MangThiSinh{ private: ThiSinh mang[100]; int n; public: void NhapMang(); void XuatMang(); void LietKe_ThiSinh_DiemTH_Va_LT_Tren7(); float TrungBinhCong_DiemThiSinh_List(); void Search_with_code(); void XapXep_TheoTen(); }; int main(){ // Mang Thi Sinh MangThiSinh mang_ts; //Bat dau nhap mang thi sinh cout<<"\n============== NHAP MANG ===============\n"<<endl; mang_ts.NhapMang(); //Xuat Mang Da Nhap cout<<"\n============== XUAT MANG ===============\n"<<endl; mang_ts.XuatMang(); //Liet Ke Thi sinh co diem LT & TH tren 7 cout<<"\n============== Tren 7 ===============\n"<<endl; mang_ts.LietKe_ThiSinh_DiemTH_Va_LT_Tren7(); //Tinh Tong Diem Trong List cout<<"\n============== TONG MANG ===============\n"<<endl; cout<<"Tong Mang = "<<mang_ts.TrungBinhCong_DiemThiSinh_List()<<endl; // Tim Kiem bang ho ten hoac bang ma so cout<<"\n============== Search MANG ===============\n"<<endl; mang_ts.Search_with_code(); //xap xiep theo ten cout<<"\n============== XAP XEP MANG ==============="<<endl; mang_ts.XapXep_TheoTen(); mang_ts.XuatMang(); return 0; } ThiSinh::ThiSinh(){ DiemLT = DiemTB = DiemTH = 0.0; strcpy(Hoten," "); strcpy(Maso," "); strcpy(Ketqua," "); } void ThiSinh::Nhap(){ cin.ignore(); cout<<"Nhap Ten Thi Sinh: "; gets(Hoten); cout<<"Nhap Ma So Thi Sinh: "; gets(Maso); cout<<"Nhap Diem Ly Thuyet: "; cin>>DiemLT; while(DiemLT > 10 || DiemLT < 0){ cout<<"Diem Phai > 0 Va < 10"<<endl; cout<<"Nhap Diem Ly Thuyet: "; cin>>DiemLT; } cout<<"Nhap Diem Thuc Hanh: "; cin>>DiemTH; while(DiemTH > 10 || DiemTH < 0){ cout<<"Diem Phai > 0 Va < 10"<<endl; cout<<"Nhap Diem Thuc Hanh: "; cin>>DiemTH; } if(((getDiemLT() + getDiemTH()*2)/3) >= 5) strcpy(Ketqua,"DAT"); else strcpy(Ketqua,"KHONG DAT"); DiemTB = (DiemLT + (DiemTH*2))/3; } void ThiSinh::Xuat(){ cout<<"Ten Thi Sinh: \t\t"<<getHoten()<<endl; cout<<"Ma So Thi Sinh: \t"<<getMaso()<<endl; cout<<"Diem Ly Thuyet: \t"<<getDiemLT()<<endl; cout<<"Diem Thuc Hanh: \t"<<getDiemTH()<<endl; cout<<"Diem TB: \t\t"<<getDiemTB()<<endl; cout<<"Ket Qua: \t\t"<<getKetqua()<<endl; } //---------------------------------------------------- void MangThiSinh::NhapMang(){ cout<<"Nhap So Luong Thi Sinh: "; cin>>n; for(int i=0; i<n; i++){ cout<<"Nhap Thi Sinh Thu [" << i+1<<"] / ["<<n<<"]"<<endl; mang[i].Nhap(); cout<<endl; } } void MangThiSinh::XuatMang(){ for(int i=0; i<n; i++){ cout<<"Thi Sinh Thu [" << i+1<<"] / ["<<n<<"]"<<endl; mang[i].Xuat(); cout<<endl; } } void MangThiSinh::LietKe_ThiSinh_DiemTH_Va_LT_Tren7(){ int a = 0; for(int i=0; i<n; i++) if(mang[i].getDiemLT()>7 && mang[i].getDiemTH()>7){ mang[i].Xuat(); cout<<endl; a+= 1; } if(a == 0) cout<<"Khong co thi sinh LT & TH > 7"<<endl; } float MangThiSinh::TrungBinhCong_DiemThiSinh_List(){ float result = 0; for(int i=0; i<n; i++) result+= mang[i].getDiemTB(); return result; } void MangThiSinh::Search_with_code(){ // int b; // do{ // // cout<<"==== MENU ===="<<endl; // cout<<"0. Exit\t1. Tim Tiep"<<endl; // cout<<"Ban Muon Chon: "; cin>>b; // // char x[32]; bool a = true; // cout<<"Nhap Ma So Hoac Ten Thi Sinh Can Tim: "; fflush(stdin); gets(x); // // for(int i=0; i<n; i++){ // if((strcmp(mang[i].getMaso(),x) == 0) || (strcmp(mang[i].getHoten(),x) == 0)){ // cout<<"Da Tim Thay Thi Sinh ["<<x<<"]"<<endl; // mang[i].Xuat(); // } // else a = false; // } // if(a == false) cout<<"Khong tim thay ["<<x<<"]"<<endl; // }while(b!=0); char x[32]; bool a = true; cout<<"Nhap Ma So Hoac Ten Thi Sinh Can Tim: "; fflush(stdin); gets(x); for(int i=0; i<n; i++){ if((strcmp(mang[i].getMaso(),x) == 0) || (strcmp(mang[i].getHoten(),x) == 0)){ cout<<"Da Tim Thay Thi Sinh ["<<x<<"]"<<endl; mang[i].Xuat(); } else a = false; } if(a == false) cout<<"Khong tim thay ["<<x<<"]"<<endl; } void MangThiSinh::XapXep_TheoTen(){ ThiSinh temp; for(int i=0; i<n-1; i++) for(int j=i+1; j<n; j++){ if(strcmp(mang[i].getHoten(),mang[j].getHoten()) > 0){ temp = mang[i]; mang[i] = mang[j]; mang[j] = temp; } } }
Kham Khảo Cách 2
Share This:
-
PrevoiusBài Tập 1 - Lập Trình Hướng Đối Tượng
-
NextBai 1 + Bai 2 C++
No Comment to " Bài Tập 2 - Lập Trình Hướng Đối Tượng "