#include #define MAX_NUM 10 //对象数组最大容纳人数 using namespace std; int pupil_num = 0; int mid_stu_num = 0; int univ_stu_num = 0; class Student { public: friend class BaseOperate; protected: string no; string name; string sex; int age; int class_infor[2]; //分别存储年级和班级 int total_grade; }; class Pupil:public Student { public: friend class BaseOperate; protected: int english_grade; int math_grade; int chinese_grade; }; class MiddleSchoolStudent:public Pupil { public: friend class BaseOperate; private: int geography_grade; int history_grade; }; class UniversityStudent:public Student { public: friend class BaseOperate; private: int major_grade; int english_grade; int higher_math_grade; int programming_grade; }; Pupil pupil[MAX_NUM]; MiddleSchoolStudent mid_stu[MAX_NUM]; UniversityStudent univ_stu[MAX_NUM]; class BaseOperate { public: bool query(); //查询 bool addRecordInPupil(string no); bool addRecordInMid(string no); bool addRecordInUniv(string no); bool deleteRecordInPupil(string no); bool deleteRecordInMid(string no); bool deleteRecordInUniv(string no); bool modifyInforInPupil(string no); bool modifyInforInMid(string no); bool modifyInforInUniv(string no); void show(); //输出所有学生信息 void tally(); //统计 (能统计学生人数、总分、单科的平均分等) void sort(); //排序 (可按总分和单科成绩排名次) void save(); void read(); }; bool BaseOperate::query() { string no; cout << \"请输入学号:\" << endl; cin >> no; cout << endl; cout.setf(std::ios::left); //在小学生中查找 for (int i = 0; i < pupil_num; i++) { if (no == pupil[i].no) { cout << \"学生类型:小学生\" << endl << endl; cout << \"学号 姓名 性别 年龄 班级 语文 数学 英语\" << endl; cout << setw(6) << pupil[i].no << setw(8) << pupil[i].name << setw(8) << pupil[i].sex << setw(6) << pupil[i].age << setw(3) << (pupil[i].class_infor)[0] << \"0\" << setw(3) << (pupil[i].class_infor)[1] << setw(7) << pupil[i].chinese_grade << setw(7) << pupil[i].math_grade << setw(7) << pupil[i].english_grade << endl << endl; return true; } } for (int i = 0; i < mid_stu_num; i++) { if (no == mid_stu[i].no) { cout << \"学生类型:中学生\" << endl << endl; cout << \"学号 姓名 性别 年龄 班级 语文 数学 英语 地理 历史\" << endl; cout << setw(6) << mid_stu[i].no << setw(8) << mid_stu[i].name << setw(8) << mid_stu[i].sex << setw(6) << mid_stu[i].age << setw(3) << (mid_stu[i].class_infor)[0] << \"0\" << setw(3) << (mid_stu[i].class_infor)[1] << setw(7) << mid_stu[i].chinese_grade << setw(7) << mid_stu[i].math_grade << setw(7) << mid_stu[i].english_grade << setw(7) << mid_stu[i].geography_grade << setw(7) << mid_stu[i].history_grade << endl << endl; return true; } } for (int i = 0; i < univ_stu_num; i++) { if (no == univ_stu[i].no) { cout << \"学生类型:大学生\" << endl << endl; cout << \"学号 姓名 性别 年龄 班级 专业 高数 英语 编程\" << endl; cout << setw(6) << univ_stu[i].no << setw(8) << univ_stu[i].name << setw(8) << univ_stu[i].sex << setw(6) << univ_stu[i].age << setw(3) << (univ_stu[i].class_infor)[0] << \"0\" << setw(3) << (univ_stu[i].class_infor)[1] << setw(7) << univ_stu[i].major_grade << setw(7) << univ_stu[i].higher_math_grade << setw(7) << univ_stu[i].english_grade << setw(7) << univ_stu[i].programming_grade << endl << endl; return true; } } cout << \"没有找到该学生\" << endl; return false; } bool BaseOperate::addRecordInPupil(string no) { for (int i = 0; i < pupil_num; i++) { if (pupil[i].no == no) { return false; } } pupil[pupil_num].no = no; cout << \"姓名:\"; cin >> pupil[pupil_num].name; cout << \"性别:\"; cin >> pupil[pupil_num].sex; cout << \"年龄:\"; cin >> pupil[pupil_num].age; cout << \"年级:\"; cin >> pupil[pupil_num].class_infor[0]; cout << \"班级:\"; cin >> pupil[pupil_num].class_infor[1]; cout << \"语文成绩:\"; cin >> pupil[pupil_num].chinese_grade; cout << \"数学成绩:\"; cin >> pupil[pupil_num].math_grade; cout << \"英语成绩:\"; cin >> pupil[pupil_num].english_grade; pupil[pupil_num].total_grade = pupil[pupil_num].chinese_grade + pupil[pupil_num].math_grade + pupil[pupil_num].english_grade; pupil_num++; return true; } bool BaseOperate::addRecordInMid(string no) { for (int i = 0; i < mid_stu_num; i++) { if (mid_stu[i].no == no) { return false; } } mid_stu[mid_stu_num].no = no; cout << \"姓名:\"; cin >> mid_stu[mid_stu_num].name; cout << \"性别:\"; cin >> mid_stu[mid_stu_num].sex; cout << \"年龄:\"; cin >> mid_stu[mid_stu_num].age; cout << \"年级:\"; cin >> mid_stu[mid_stu_num].class_infor[0]; cout << \"班级:\"; cin >> mid_stu[mid_stu_num].class_infor[1]; cout << \"语文成绩:\"; cin >> mid_stu[mid_stu_num].chinese_grade; cout << \"数学成绩:\"; cin >> mid_stu[mid_stu_num].math_grade; cout << \"英语成绩:\"; cin >> mid_stu[mid_stu_num].english_grade; cout << \"地理成绩:\"; cin >> mid_stu[mid_stu_num].geography_grade; cout << \"历史成绩:\"; cin >> mid_stu[mid_stu_num].history_grade; mid_stu[mid_stu_num].total_grade = mid_stu[mid_stu_num].chinese_grade + mid_stu[mid_stu_num].math_grade + mid_stu[mid_stu_num].english_grade + mid_stu[mid_stu_num].geography_grade + mid_stu[mid_stu_num].history_grade; mid_stu_num++; return true; } bool BaseOperate::addRecordInUniv(string no) { for (int i = 0; i < univ_stu_num; i++) { if (univ_stu[i].no == no) { return false; } } univ_stu[univ_stu_num].no = no; cout << \"姓名:\"; cin >> univ_stu[univ_stu_num].name; cout << \"性别:\"; cin >> univ_stu[univ_stu_num].sex; cout << \"年龄:\"; cin >> univ_stu[univ_stu_num].age; cout << \"年级:\"; cin >> univ_stu[univ_stu_num].class_infor[0]; cout << \"班级:\"; cin >> univ_stu[univ_stu_num].class_infor[1]; cout << \"专业成绩:\"; cin >> univ_stu[univ_stu_num].major_grade; cout << \"英语成绩:\"; cin >> univ_stu[univ_stu_num].english_grade; cout << \"高数成绩:\"; cin >> univ_stu[univ_stu_num].higher_math_grade; cout << \"编程成绩:\"; cin >> univ_stu[univ_stu_num].programming_grade; univ_stu[univ_stu_num].total_grade = univ_stu[univ_stu_num].major_grade + univ_stu[univ_stu_num].english_grade + univ_stu[univ_stu_num].higher_math_grade + univ_stu[univ_stu_num].programming_grade; univ_stu_num++; return true; } bool BaseOperate::deleteRecordInPupil(string no) { int index = -1; for (int i = 0; i < pupil_num; i++) { if (no == pupil[i].no) { index = i; break; } } if (index == -1){ return false; } while (index < pupil_num) { if (index + 1 >= pupil_num) { break; } pupil[index].no = pupil[index + 1].no; pupil[index].name = pupil[index + 1].name; pupil[index].age = pupil[index + 1].age; pupil[index].sex = pupil[index + 1].sex; (pupil[index].class_infor)[0] = (pupil[index + 1].class_infor)[0]; (pupil[index].class_infor)[1] = (pupil[index + 1].class_infor)[1]; pupil[index].chinese_grade = pupil[index + 1].chinese_grade; pupil[index].math_grade = pupil[index + 1].math_grade; pupil[index].english_grade = pupil[index + 1].english_grade; index++; } pupil_num--; return true; } bool BaseOperate::deleteRecordInMid(string no) { int index = -1; for (int i = 0; i < mid_stu_num; i++) { if (no == mid_stu[i].no) { index = i; break; } } if (index == -1){ return false; } while (index < mid_stu_num) { if (index + 1 >= mid_stu_num) { break; } mid_stu[index].no = mid_stu[index + 1].no; mid_stu[index].name = mid_stu[index + 1].name; mid_stu[index].age = mid_stu[index + 1].age; mid_stu[index].sex = mid_stu[index + 1].sex; (mid_stu[index].class_infor)[0] = (mid_stu[index + 1].class_infor)[0]; (mid_stu[index].class_infor)[1] = (mid_stu[index + 1].class_infor)[1]; mid_stu[index].chinese_grade = mid_stu[index + 1].chinese_grade; mid_stu[index].math_grade = mid_stu[index + 1].math_grade; mid_stu[index].english_grade = mid_stu[index + 1].english_grade; mid_stu[index].geography_grade = mid_stu[index + 1].geography_grade; mid_stu[index].history_grade = mid_stu[index + 1].history_grade; index++; } mid_stu_num--; return true; } bool BaseOperate::deleteRecordInUniv(string no) { int index = -1; for (int i = 0; i < univ_stu_num; i++) { if (no == univ_stu[i].no) { index = i; break; } } if (index == -1){ return false; } while (index < univ_stu_num) { if (index + 1 >= univ_stu_num) { break; } univ_stu[index].no = univ_stu[index + 1].no; univ_stu[index].name = univ_stu[index + 1].name; univ_stu[index].age = univ_stu[index + 1].age; univ_stu[index].sex = univ_stu[index + 1].sex; (univ_stu[index].class_infor)[0] = (univ_stu[index + 1].class_infor)[0]; (univ_stu[index].class_infor)[1] = (univ_stu[index + 1].class_infor)[1]; univ_stu[index].major_grade = univ_stu[index + 1].major_grade; univ_stu[index].programming_grade = univ_stu[index + 1].programming_grade; univ_stu[index].higher_math_grade = univ_stu[index + 1].higher_math_grade; univ_stu[index].english_grade = univ_stu[index + 1].english_grade; index++; } univ_stu_num--; return true; } bool BaseOperate::modifyInforInPupil(string no) { for (int i = 0; i < pupil_num; i++) { if (no == pupil[i].no) { cout << \"年龄:\"; cin >> pupil[i].age; cout << \"年级:\"; cin >> pupil[i].class_infor[0]; cout << \"班级:\"; cin >> pupil[i].class_infor[1]; cout << \"语文成绩:\"; cin >> pupil[i].chinese_grade; cout << \"数学成绩:\"; cin >> pupil[i].math_grade; cout << \"英语成绩:\"; cin >> pupil[i].english_grade; pupil[i].total_grade = pupil[i].chinese_grade + pupil[i].math_grade + pupil[i].english_grade; return true; } } return false; } bool BaseOperate::modifyInforInMid(string no) { for (int i = 0; i < mid_stu_num; i++) { if (no == mid_stu[i].no) { cout << \"年龄:\"; cin >> mid_stu[i].age; cout << \"年级:\"; cin >> mid_stu[i].class_infor[0]; cout << \"班级:\"; cin >> mid_stu[i].class_infor[1]; cout << \"语文成绩:\"; cin >> mid_stu[i].chinese_grade; cout << \"数学成绩:\"; cin >> mid_stu[i].math_grade; cout << \"英语成绩:\"; cin >> mid_stu[i].english_grade; cout << \"地理成绩:\"; cin >> mid_stu[i].geography_grade; cout << \"历史成绩:\"; cin >> mid_stu[i].history_grade; mid_stu[i].total_grade = mid_stu[i].chinese_grade + mid_stu[i].math_grade + mid_stu[i].english_grade + mid_stu[i].geography_grade + mid_stu[i].history_grade; return true; } } return false; } bool BaseOperate::modifyInforInUniv(string no) { for (int i = 0; i < univ_stu_num; i++) { if (no == univ_stu[i].no) { cout << \"年龄:\"; cin >> univ_stu[i].age; cout << \"年级:\"; cin >> univ_stu[i].class_infor[0]; cout << \"班级:\"; cin >> univ_stu[i].class_infor[1]; cout << \"专业成绩:\"; cin >> univ_stu[i].major_grade; cout << \"英语成绩:\"; cin >> univ_stu[i].english_grade; cout << \"高数成绩:\"; cin >> univ_stu[i].higher_math_grade; cout << \"编程成绩:\"; cin >> univ_stu[i].programming_grade; univ_stu[i].total_grade = univ_stu[i].major_grade + univ_stu[i].english_grade + univ_stu[i].higher_math_grade + univ_stu[i].programming_grade; return true; } } return false; } void BaseOperate::show() { cout << \"小学生:\" << endl << endl; if (pupil_num == 0) { cout << \"无\" << endl << endl; } else { cout << \"学号 姓名 性别 年龄 班级 语文 数学 英语\" << endl; } cout.setf(std::ios::left); for (int i = 0; i < pupil_num; i++) { cout << setw(6) << pupil[i].no << setw(8) << pupil[i].name << setw(8) << pupil[i].sex << setw(6) << pupil[i].age << setw(3) << (pupil[i].class_infor)[0] << \"0\" << setw(3) << (pupil[i].class_infor)[1] << setw(7) << pupil[i].chinese_grade << setw(7) << pupil[i].math_grade << setw(7) << pupil[i].english_grade << endl << endl; } cout << \"中学生:\" << endl << endl; if (mid_stu_num == 0) { cout << \"无\" << endl << endl; } else { cout << \"学号 姓名 性别 年龄 班级 语文 数学 英语 地理 历史\" << endl; } for (int i = 0; i < mid_stu_num; i++) { cout << setw(6) << mid_stu[i].no << setw(8) << mid_stu[i].name << setw(8) << mid_stu[i].sex << setw(6) << mid_stu[i].age << setw(3) << (mid_stu[i].class_infor)[0] << \"0\" << setw(3) << (mid_stu[i].class_infor)[1] << setw(7) << mid_stu[i].chinese_grade << setw(7) << mid_stu[i].math_grade << setw(7) << mid_stu[i].english_grade << setw(7) << mid_stu[i].geography_grade << setw(7) << mid_stu[i].history_grade << endl << endl; } cout << \"大学生:\" << endl << endl; if (univ_stu_num == 0) { cout << \"无\" << endl << endl; } else { cout << \"学号 姓名 性别 年龄 班级 专业 高数 英语 编程\" << endl; } for (int i = 0; i < univ_stu_num; i++) { cout << setw(6) << univ_stu[i].no << setw(8) << univ_stu[i].name << setw(8) << univ_stu[i].sex << setw(6) << univ_stu[i].age << setw(3) << (univ_stu[i].class_infor)[0] << \"0\" << setw(3) << (univ_stu[i].class_infor)[1] << setw(7) << univ_stu[i].major_grade univ_stu[i].higher_math_grade << setw(7) << univ_stu[i].english_grade univ_stu[i].programming_grade << endl << endl; } } void BaseOperate::tally() { int sum_chinese = 0; int sum_math = 0; int sum_english = 0; int sum_geography = 0; int sum_history = 0; int sum_higher_math = 0; int sum_major = 0; int sum_programming = 0; //小学生 cout << \"小学生:\" << endl << endl; cout << \"---------------------------------\" << endl; cout << \"人数:\" << pupil_num << endl; cout << \"---------------------------------\" << endl; if (pupil_num != 0) { cout << \"学号 姓名 总分\" << endl; for (int i = 0; i < pupil_num; i++) { cout << setw(6) << pupil[i].no << setw(8) << pupil[i].name << setw(4) << pupil[i].total_grade << endl; } cout << endl; for (int i = 0; i < pupil_num; i++) { sum_chinese += pupil[i].chinese_grade; << setw(7) << setw(7) << << sum_math += pupil[i].math_grade; sum_english += pupil[i].english_grade; } cout << \"语文平均分:\" << (double)sum_chinese / pupil_num << endl; cout << \"数学平均分:\" << (double)sum_math / pupil_num << endl; cout << \"英语平均分:\" << (double)sum_english / pupil_num << endl; } cout << \"-------------------------------------\" << endl; //中学生 cout << endl << \"中学生:\" << endl << endl; cout << \"---------------------------------\" << endl; cout << \"人数:\" << mid_stu_num << endl; cout << \"---------------------------------\" << endl; if (mid_stu_num != 0) { cout << \"学号 姓名 总分\" << endl; for (int i = 0; i < mid_stu_num; i++) { cout << setw(6) << mid_stu[i].no << setw(8) << mid_stu[i].name << setw(4) << mid_stu[i].total_grade << endl; } cout << endl; sum_chinese = 0; sum_math = 0; sum_english = 0; for (int i = 0; i < mid_stu_num; i++) { sum_chinese += mid_stu[i].chinese_grade; sum_math += mid_stu[i].math_grade; sum_english += mid_stu[i].english_grade; sum_geography += mid_stu[i].geography_grade; sum_history += mid_stu[i].history_grade; } cout << \"语文平均分:\" << (double)sum_chinese / mid_stu_num << endl; cout << \"数学平均分:\" << (double)sum_math / mid_stu_num << endl; cout << \"英语平均分:\" << (double)sum_english / mid_stu_num << endl; cout << \"地理平均分:\" << (double)sum_geography / mid_stu_num << endl; cout << \"历史平均分:\" << (double)sum_history / mid_stu_num << endl; } cout << \"-------------------------------------\" << endl; //大学生: cout << endl << \"大学生:\" << endl << endl; cout << \"---------------------------------\" << endl; cout << \"人数:\" << univ_stu_num << endl; cout << \"---------------------------------\" << endl; if (univ_stu_num != 0) { cout << \"学号 姓名 总分\" << endl; for (int i = 0; i < univ_stu_num; i++) { cout << setw(6) << univ_stu[i].no << setw(8) << univ_stu[i].name << setw(4) << univ_stu[i].total_grade << endl; } cout << endl; sum_english = 0; for (int i = 0; i < univ_stu_num; i++) { sum_higher_math += univ_stu[i].higher_math_grade; sum_major += univ_stu[i].major_grade; sum_programming += univ_stu[i].programming_grade; sum_english += univ_stu[i].english_grade; } cout << \"专业平均分:\" << (double)sum_major / univ_stu_num << endl; cout << \"高数平均分:\" << (double)sum_higher_math / univ_stu_num << endl; cout << \"英语平均分:\" << (double)sum_english / univ_stu_num << endl; cout << \"编程平均分:\" << (double)sum_programming / univ_stu_num << endl; } cout << \"-------------------------------------\" << endl; } void BaseOperate::sort() { //小学生(按总分排序) Pupil temp_p; for (int i = 0; i < pupil_num; i++) { for (int j = 1; j < pupil_num - i; j++) { if (pupil[j - 1].total_grade < pupil[j].total_grade) { temp_p = pupil[j - 1]; pupil[j - 1] = pupil[j]; pupil[j] = temp_p; } } } //中学生 MiddleSchoolStudent temp_m; for (int i = 0; i < mid_stu_num; i++) { for (int j = 1; j < mid_stu_num - i; j++) { if (mid_stu[j - 1].total_grade < mid_stu[j].total_grade) { temp_m = mid_stu[j - 1]; } } } mid_stu[j - 1] = mid_stu[j]; mid_stu[j] = temp_m; //大学生 UniversityStudent temp_u; for (int i = 0; i < univ_stu_num; i++) { for (int j = 1; j < univ_stu_num - i; j++) { if (univ_stu[j - 1].total_grade < univ_stu[j].total_grade) { temp_u = univ_stu[j - 1]; univ_stu[j - 1] = univ_stu[j]; univ_stu[j] = temp_u; } } } show(); } void BaseOperate::save() { //小学生 ofstream out(\"PupilInfor.txt\ for (int i = 0; i < pupil_num; i++) { out << pupil[i].no << \" \" << pupil[i].name<< \" \" << pupil[i].sex << \" \" << pupil[i].age << \" \" << (pupil[i].class_infor)[0] << \" \" << (pupil[i].class_infor)[1] << \" \" << pupil[i].chinese_grade << \" \" << pupil[i].math_grade << \" \" << pupil[i].english_grade << \" \"; } out.close(); //中学生 out.open(\"MidStuInfor.txt\ for (int i = 0; i < mid_stu_num; i++) { out << mid_stu[i].no << \" \" << mid_stu[i].name<< \" \" << mid_stu[i].sex << \" \" << mid_stu[i].age << \" \" << (mid_stu[i].class_infor)[0] << \" \" << (mid_stu[i].class_infor)[1] << \" \" << mid_stu[i].chinese_grade << \" \" << mid_stu[i].math_grade << \" \" << mid_stu[i].english_grade << \" \" << mid_stu[i].geography_grade << \" \" << mid_stu[i].history_grade << \" \"; } out.close(); //大学生 out.open(\"UnivStuInfor.txt\ for (int i = 0; i < univ_stu_num; i++) { out << univ_stu[i].no << \" \" << univ_stu[i].name<< \" \" << univ_stu[i].sex << \" \" << univ_stu[i].age << \" \" << (univ_stu[i].class_infor)[0] << \" \" << (univ_stu[i].class_infor)[1] << \" \" << univ_stu[i].major_grade << \" \" << univ_stu[i].higher_math_grade << \" \" << univ_stu[i].english_grade << \" \" << univ_stu[i].programming_grade << \" \"; } out.close(); } void BaseOperate::read() { ifstream in(\"PupilInfor.txt\"); int i = 0; if(!in) { cout << \"没有小学生信息\" << endl; } else { while (!in.eof()) { in >> pupil[i].no >> pupil[i].name >> pupil[i].sex >> pupil[i].age >> (pupil[i].class_infor)[0] >> (pupil[i].class_infor)[1] >> pupil[i].chinese_grade >> pupil[i].math_grade >> pupil[i].english_grade; pupil[i].total_grade = pupil[i].chinese_grade + pupil[i].math_grade + pupil[i].english_grade; i++; pupil_num++; } pupil_num--; } in.close(); //中学生 in.open(\"MidStuInfor.txt\"); i = 0; if(!in) { cout << \"没有中学生信息\" << endl; } else { while (!in.eof()) { in >> mid_stu[i].no >> mid_stu[i].name >> mid_stu[i].sex >> mid_stu[i].age >> (mid_stu[i].class_infor)[0] >> (mid_stu[i].class_infor)[1] >> mid_stu[i].chinese_grade >> mid_stu[i].math_grade >> mid_stu[i].english_grade >> mid_stu[i].geography_grade >> mid_stu[i].history_grade; mid_stu[i].total_grade = mid_stu[i].chinese_grade + mid_stu[i].math_grade + mid_stu[i].english_grade + mid_stu[i].geography_grade + mid_stu[i].history_grade; i++; mid_stu_num++; } mid_stu_num--; } in.close(); //大学生 in.open(\"UnivStuInfor.txt\"); i = 0; if(!in) { cout << \"没有大学生信息\" << endl; } else { while (!in.eof()) { in >> univ_stu[i].no >> univ_stu[i].name >> univ_stu[i].sex >> univ_stu[i].age >> (univ_stu[i].class_infor)[0] >> (univ_stu[i].class_infor)[1] >> univ_stu[i].major_grade >> univ_stu[i].higher_math_grade >> univ_stu[i].english_grade >> univ_stu[i].programming_grade; univ_stu[i].total_grade = univ_stu[i].major_grade + univ_stu[i].higher_math_grade + univ_stu[i].english_grade + univ_stu[i].programming_grade; i++; univ_stu_num++; } univ_stu_num--; } in.close(); } //普通函数(选择用) void addRecord(BaseOperate &a) { cout << \"请选择录入学生类型: \" << endl << endl; cout << \"1. 小学生\" << endl << endl; cout << \"2. 中学生\" << endl << endl; cout << \"3. 大学生\" << endl << endl; int type; cin >> type; cout << endl; string no; cout << \"学号:\"; cin >> no; switch(type) { case 1: if (a.addRecordInPupil(no)) { cout << \"添加成功!\" << endl; } else { cout << \"学号重复!\" << endl; } break; case 2: if (a.addRecordInMid(no)) { cout << \"添加成功!\" << endl; } else { cout << \"学号重复!\" << endl; } break; case 3: if (a.addRecordInUniv(no)) { cout << \"添加成功!\" << endl; } else { cout << \"学号重复!\" << endl; } break; } } void deleteRecord(BaseOperate &a) { cout << \"请选择删除学生类型: \" << endl << endl; cout << \"1. 小学生\" << endl << endl; cout << \"2. 中学生\" << endl << endl; cout << \"3. 大学生\" << endl << endl; int type; cin >> type; cout << endl; string no; cout << \"请输入待删除学生学号\" << endl; cin >> no; cout << endl; switch(type) { case 1: if (a.deleteRecordInPupil(no)) { cout << \"删除成功!\" << endl; } else { cout << \"未找到该学号!\" << endl; } break; case 2: if (a.deleteRecordInMid(no)) { cout << \"删除成功!\" << endl; } else { cout << \"未找到该学号!\" << endl; } break; case 3: if (a.deleteRecordInUniv(no)) { cout << \"删除成功!\" << endl; } else { cout << \"未找到该学号!\" << endl; } break; } } void modifyInfor(BaseOperate &a) { cout << \"请选择修改学生类型: \" << endl << endl; cout << \"1. 小学生\" << endl << endl; cout << \"2. 中学生\" << endl << endl; cout << \"3. 大学生\" << endl << endl; int type; cin >> type; cout << endl; string no; cout << \"请输入待修改学生学号\" << endl; cin >> no; cout << endl; switch(type) { case 1: if (a.modifyInforInPupil(no)) { cout << \"修改成功\" << endl; } else { cout << \"未找到该学号\" << endl; } break; case 2: if (a.modifyInforInMid(no)) { cout << \"修改成功\" << endl; } else { cout << \"未找到该学号\" << endl; } break; case 3: if (a.modifyInforInUniv(no)) { cout << \"修改成功\" << endl; } else { cout << \"未找到该学号\" << endl; } break; } } int main() { BaseOperate a; while(1) { cout << \"----------------------------------------------------------------\" << endl; cout << \"1. 添加\" << endl << endl; cout << \"2. 查询\" << endl << endl; cout << \"3. 显示当前所有学生信息\" << endl << endl; cout << \"4. 编辑\" << endl << endl; cout << \"5. 删除\" << endl << endl; cout << \"6. 统计\" << endl << endl; cout << \"7. 保存\" << endl << endl; cout << \"8. 读取\" << endl << endl; cout << \"9. 排序\" << endl << endl; cout <<\"10. 退出\" << endl; cout <<\"----------------------------------------------------------------\" << endl; int m; cin >> m; cout << endl; switch(m) { } } } case 1: addRecord(a); break; case 2: a.query(); break; case 3: a.show(); break; case 4: modifyInfor(a); break; case 5: deleteRecord(a); break; case 6: a.tally(); break; case 7: a.save(); break; case 8: a.read(); break; case 9: a.sort(); break; case 10: exit(0); 因篇幅问题不能全部显示,请点此查看更多更全内容