// Bai2.cpp : This file contains the 'main' function. Program execution begins and ends there.//#include <iostream>#include <iomanip>#include <fstream>using namespace std;class HOCSINH {private: char maso[10], hotendem[30], ten[15]; int tuoi; float toan, van, anh;public: HOCSINH(); HOCSINH(string maso, string hotendem, string ten, int tuoi, float toan, float van, float anh); void NHAP(); float DTB(); void INRA(); string getTen() { return this->ten; }};HOCSINH::HOCSINH() { strcpy_s(this->maso, ""); strcpy_s(this->hotendem, ""); strcpy_s(this->ten, ""); this->tuoi = 0; this->toan = 0; this->van = 0; this->anh = 0;}HOCSINH::HOCSINH(string maso, string hotendem, string ten, int tuoi, float toan, float van, float anh) { strcpy_s(this->maso, maso.c_str()); strcpy_s(this->hotendem, hotendem.c_str()); strcpy_s(this->ten, ten.c_str()); this->tuoi = tuoi; this->toan = toan; this->van = van; this->anh = anh;}void HOCSINH::NHAP() { cout << "Ma so: "; cin.getline(this->maso, 10); //cin.ignore(); cout << "Ho va ten dem: "; cin.getline(this->hotendem, 30);// cin.ignore(); cout << "Ten: "; cin.getline(this->ten, 15); //cin.ignore(); cout << "Tuoi: "; cin >> tuoi; cout << "Diem toan: "; cin >> this->toan; //cin.ignore(); cout << "Diem van: "; cin >> this->van; //cin.ignore(); cout << "Diem T. Anh: "; cin >> this->anh; //cin.ignore(); }float HOCSINH::DTB() { float tb = 0; tb = this->toan + this->van + this->anh; tb = tb / 3.0; return tb;}void HOCSINH::INRA() { cout << "Hoc sinh: " << setw(10) << this->maso << setw(30) << this->hotendem << setw(15) << this->ten << setw(5) << this->tuoi << setw(8) << setprecision(2) << fixed << this->toan << setw(8) << setprecision(2) << fixed << this->van << setw(8) << setprecision(2) << fixed << this->anh << setw(8) << setprecision(2) << fixed << this->DTB() << endl;}class DSHOCSINH {private: void SAPXEP(HOCSINH* ds, int soluonghocsinh, bool sapxepgiamdan); void XEPLOAI(int gioi, int kha, int tb, int kdat) { cout << "Gioi: " << gioi << setw(20) << "Kha: " << kha << setw(20) << "Tb: " << tb << setw(20) << "Khong dat: " << kdat; }public: void NHAP(); void INRA();};void DSHOCSINH::NHAP() { ofstream fout; HOCSINH hs=HOCSINH(); fout.open("HOCSINH.DAT", ios::out); char ok; while (1) { hs.NHAP(); fout.write((char*)&hs, sizeof(hs)); if (fout.good()) { cout << "Da ghi thanh cong! "; } cout << "Co nhap tiep khong (C/K)?"; cin >> ok; cin.ignore(); if ((ok == 'k') || (ok == 'K')) { break; } } fout.close();}void DSHOCSINH::SAPXEP(HOCSINH* ds, int soluonghocsinh, bool sapxepgiamdan) { int i = soluonghocsinh; int j1 = 0; HOCSINH temp; int j2 = 0; for (j1 = 0; j1 < i; j1++) { for (j2 = 0; j2 < i; j2++) { if (sapxepgiamdan) { if (ds[j1].getTen() < ds[j2].getTen()) { temp = ds[j1]; ds[j1] = ds[j2]; ds[j2] = temp; } } else { if (ds[j1].getTen() > ds[j2].getTen()) { temp = ds[j1]; ds[j1] = ds[j2]; ds[j2] = temp; } } } } }void DSHOCSINH::INRA() { ifstream fin; int i = 0; HOCSINH *ds = new HOCSINH[100]; fin.open("HOCSINH.DAT", ios::in); if (fin.fail()) { cout << "Mo tep bi loi!"; return; } int gioi = 0, kha = 0, tb = 0, khongdat = 0; HOCSINH hs; while (fin.read((char*)&hs, sizeof(hs))) { ds[i] = hs; i++; } fin.close(); this->SAPXEP(ds,i, true);//Tang dan int j1 = 0; for (j1 = 0; j1 < i; j1++) { //bat dau xep loai if (ds[j1].DTB() >= 8.5) { gioi++; } else if ((ds[j1].DTB() >= 7.0) && (ds[j1].DTB() < 8.5)) { kha++; } else if ((ds[j1].DTB() >= 5.0) && (ds[j1].DTB() < 7.0)) { tb++; } else { khongdat++; } //Ket thuc xep loai ds[j1].INRA(); } this->XEPLOAI(gioi, kha, tb, khongdat);}int main(){ DSHOCSINH hs = DSHOCSINH(); hs.NHAP(); hs.INRA();}
* Có kiểm tra điểm nhập vào (0 <= điểm <= 10)// Bai2.cpp : This file contains the 'main' function. Program execution begins and ends there.//#include <iostream>#include <iomanip>#include <fstream>using namespace std;class HOCSINH {private: char maso[10], hotendem[30], ten[15]; int tuoi; float toan, van, anh; bool Kiemtranhapdiem(float diem) { if ((diem >= 0) && (diem <= 10)) { return true; } else { cout << "Thong bao loi, chi duoc nhap gia tri: 0 <= " << "Gia tri nhap vao phai" << " <= 10" << endl; return false; } }public: HOCSINH(); HOCSINH(string maso, string hotendem, string ten, int tuoi, float toan, float van, float anh); void NHAP(); float DTB(); void INRA(); string getTen() { return this->ten; }};HOCSINH::HOCSINH() { strcpy_s(this->maso, ""); strcpy_s(this->hotendem, ""); strcpy_s(this->ten, ""); this->tuoi = 0; this->toan = 0; this->van = 0; this->anh = 0;}HOCSINH::HOCSINH(string maso, string hotendem, string ten, int tuoi, float toan, float van, float anh) { strcpy_s(this->maso, maso.c_str()); strcpy_s(this->hotendem, hotendem.c_str()); strcpy_s(this->ten, ten.c_str()); this->tuoi = tuoi; this->toan = toan; this->van = van; this->anh = anh;}void HOCSINH::NHAP() { cout << "Ma so: "; cin.getline(this->maso, 10); //cin.ignore(); cout << "Ho va ten dem: "; cin.getline(this->hotendem, 30);// cin.ignore(); cout << "Ten: "; cin.getline(this->ten, 15); //cin.ignore(); cout << "Tuoi: "; cin >> tuoi; do { cout << "Diem toan: "; cin >> this->toan; //cin.ignore(); } while (!this->Kiemtranhapdiem(this->toan)); do { cout << "Diem van: "; cin >> this->van; //cin.ignore(); } while (!this->Kiemtranhapdiem(this->van)); do { cout << "Diem T. Anh: "; cin >> this->anh; //cin.ignore(); } while (!this->Kiemtranhapdiem(this->anh));}float HOCSINH::DTB() { float tb = 0; tb = this->toan + this->van + this->anh; tb = tb / 3.0; return tb;}void HOCSINH::INRA() { cout << "Hoc sinh: " << setw(10) << this->maso << setw(30) << this->hotendem << setw(15) << this->ten << setw(5) << this->tuoi << setw(8) << setprecision(2) << fixed << this->toan << setw(8) << setprecision(2) << fixed << this->van << setw(8) << setprecision(2) << fixed << this->anh << setw(8) << setprecision(2) << fixed << this->DTB() << endl;}class DSHOCSINH {private: void SAPXEP(HOCSINH* ds, int soluonghocsinh, bool sapxepgiamdan); void XEPLOAI(int gioi, int kha, int tb, int kdat) { cout << "Gioi: " << gioi << setw(20) << "Kha: " << kha << setw(20) << "Tb: " << tb << setw(20) << "Khong dat: " << kdat; }public: void NHAP(); void INRA();};void DSHOCSINH::NHAP() { ofstream fout; HOCSINH hs=HOCSINH(); fout.open("HOCSINH.DAT", ios::out); char ok; while (1) { hs.NHAP(); fout.write((char*)&hs, sizeof(hs)); if (fout.good()) { cout << "Da ghi thanh cong! "; } cout << "Co nhap tiep khong (C/K)?"; cin >> ok; cin.ignore(); if ((ok == 'k') || (ok == 'K')) { break; } } fout.close();}void DSHOCSINH::SAPXEP(HOCSINH* ds, int soluonghocsinh, bool sapxepgiamdan) { int i = soluonghocsinh; int j1 = 0; HOCSINH temp; int j2 = 0; for (j1 = 0; j1 < i; j1++) { for (j2 = 0; j2 < i; j2++) { if (sapxepgiamdan) { if (ds[j1].getTen() < ds[j2].getTen()) { temp = ds[j1]; ds[j1] = ds[j2]; ds[j2] = temp; } } else { if (ds[j1].getTen() > ds[j2].getTen()) { temp = ds[j1]; ds[j1] = ds[j2]; ds[j2] = temp; } } } } }void DSHOCSINH::INRA() { ifstream fin; int i = 0; HOCSINH *ds = new HOCSINH[100]; fin.open("HOCSINH.DAT", ios::in); if (!fin.good()) { cout << "Mo tep bi loi!"; return; } int gioi = 0, kha = 0, tb = 0, khongdat = 0; HOCSINH hs; while (fin.read((char*)&hs, sizeof(hs))) { ds[i] = hs; i++; } fin.close(); this->SAPXEP(ds,i, true);//Tang dan int j1 = 0; for (j1 = 0; j1 < i; j1++) { //bat dau xep loai if (ds[j1].DTB() >= 8.5) { gioi++; } else if ((ds[j1].DTB() >= 7.0) && (ds[j1].DTB() < 8.5)) { kha++; } else if ((ds[j1].DTB() >= 5.0) && (ds[j1].DTB() < 7.0)) { tb++; } else { khongdat++; } //Ket thuc xep loai ds[j1].INRA(); } this->XEPLOAI(gioi, kha, tb, khongdat);}int main(){ DSHOCSINH hs = DSHOCSINH(); hs.NHAP(); hs.INRA();}
Tác giả: Vàng Văn Quyn
Những tin mới hơn
Những tin cũ hơn
- Click vào nút hiển thị ngày trong tuần hoặc tháng âm lịch để xem chi tiết
- Màu đỏ: Ngày tốt
- Xanh lá: Đầu tháng âm lịch
- Màu vàng: Ngày hiện tại