1、学生成绩管理系统c 学生成绩管理系统(c ) 学生成绩管理系统(仅源代码) #includeiostream #includeiomanip #includefstream #includestring #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; s
2、tring sex; int age; int class_infor2; /分别存储年级和班级 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; i
3、nt 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 pupilMAX_NUM; MiddleSchoolStudent mid_stuMAX_NUM; UniversityStudent univ_stuMAX_NUM; class BaseOperate publi
4、c: 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); bo
5、ol 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 (n
6、o = pupili.no) cout 学生类型: 小学生 endl endl; cout 学号 姓名 性别 年龄 班级 语文 数学 英语 endl; cout setw(6) pupili.no setw(8) pupili.name setw(8) pupili.sex setw(6) pupili.age setw(3) (pupili.class_infor)0 0 setw(3) (pupili.class_infor)1 setw(7) pupili.chinese_grade setw(7) pupili.math_grade setw(7) pupili.english_gra
7、de endl endl; return true; for (int i = 0; i mid_stu_num; i+) if (no = mid_stui.no) cout 学生类型: 中学生 endl endl; cout 学号 姓名 性别 年龄 班级 语文 数学 英语 地理 历史 endl; cout setw(6) mid_stui.no setw(8) mid_stui.name setw(8) mid_stui.sex setw(6) mid_stui.age setw(3) (mid_stui.class_infor)0 0 setw(3) (mid_stui.class_in
8、for)1 setw(7) mid_stui.chinese_grade setw(7) mid_stui.math_grade setw(7) mid_stui.english_grade setw(7) mid_stui.geography_grade setw(7) mid_stui.history_grade endl endl; return true; for (int i = 0; i univ_stu_num; i+) if (no = univ_stui.no) cout 学生类型: 大学生 endl endl; cout 学号 姓名 性别 年龄 班级 专业 高数 英语 编程
9、 endl; cout setw(6) univ_stui.no setw(8) univ_stui.name setw(8) univ_stui.sex setw(6) univ_stui.age setw(3) (univ_stui.class_infor)0 0 setw(3) (univ_stui.class_infor)1 setw(7) univ_stui.major_grade setw(7) univ_stui.higher_math_grade setw(7) univ_stui.english_grade setw(7) univ_stui.programming_grad
10、e endl endl; return true; cout 没有找到该学生 endl; return false; bool BaseOperate:addRecordInPupil(string no) for (int i = 0; i pupil_num; i+) if (pupili.no = no) return false; pupilpupil_num.no = no; cout 姓名: ; cin pupilpupil_num.name; cout 性别: ; cin pupilpupil_num.sex; cout 年龄: ; cin pupilpupil_num.age;
11、 cout 年级: ; cin pupilpupil_num.class_infor0; cout 班级: ; cin pupilpupil_num.class_infor1; cout 语文成绩: ; cin pupilpupil_num.chinese_grade; cout 数学成绩: ; cin pupilpupil_num.math_grade; cout 英语成绩: ; cin pupilpupil_num.english_grade; pupilpupil_num.total_grade = pupilpupil_num.chinese_grade + pupilpupil_nu
12、m.math_grade + pupilpupil_num.english_grade; pupil_num+; return true; bool BaseOperate:addRecordInMid(string no) for (int i = 0; i mid_stu_num; i+) if (mid_stui.no = no) return false; mid_stumid_stu_num.no = no; cout 姓名: ; cin mid_stumid_stu_num.name; cout 性别: ; cin mid_stumid_stu_num.sex; cout 年龄:
13、; cin mid_stumid_stu_num.age; cout 年级: ; cin mid_stumid_stu_num.class_infor0; cout 班级: ; cin mid_stumid_stu_num.class_infor1; cout 语文成绩: ; cin mid_stumid_stu_num.chinese_grade; cout 数学成绩: ; cin mid_stumid_stu_num.math_grade; cout 英语成绩: ; cin mid_stumid_stu_num.english_grade; cout 地理成绩: ; cin mid_stu
14、mid_stu_num.geography_grade; cout 历史成绩: ; cin mid_stumid_stu_num.history_grade; mid_stumid_stu_num.total_grade = mid_stumid_stu_num.chinese_grade + mid_stumid_stu_num.math_grade + mid_stumid_stu_num.english_grade + mid_stumid_stu_num.geography_grade + mid_stumid_stu_num.history_grade; mid_stu_num+;
15、return true; bool BaseOperate:addRecordInUniv(string no) for (int i = 0; i univ_stu_num; i+) if (univ_stui.no = no) return false; univ_stuuniv_stu_num.no = no; cout 姓名: ; cin univ_stuuniv_stu_num.name; cout 性别: ; cin univ_stuuniv_stu_num.sex; cout 年龄: ; cin univ_stuuniv_stu_num.age; cout 年级: ; cin u
16、niv_stuuniv_stu_num.class_infor0; cout 班级: ; cin univ_stuuniv_stu_num.class_infor1; cout 专业成绩: ; cin univ_stuuniv_stu_num.major_grade; cout 英语成绩: ; cin univ_stuuniv_stu_num.english_grade; cout 高数成绩: ; cin univ_stuuniv_stu_num.higher_math_grade; cout 编程成绩: ; cin univ_stuuniv_stu_num.programming_grade
17、; univ_stuuniv_stu_num.total_grade = univ_stuuniv_stu_num.major_grade + univ_stuuniv_stu_num.english_grade + univ_stuuniv_stu_num.higher_math_grade + univ_stuuniv_stu_num.programming_grade; univ_stu_num+; return true; bool BaseOperate:deleteRecordInPupil(string no) int index = -1; for (int i = 0; i
18、pupil_num; i+) if (no = pupili.no) index = i; break; if (index = -1) return false; while (index pupil_num) if (index + 1 = pupil_num) break; pupilindex.no = pupilindex + 1.no; pupilindex.name = pupilindex + 1.name; pupilindex.age = pupilindex + 1.age; pupilindex.sex = pupilindex + 1.sex; (pupilindex
19、.class_infor)0 = (pupilindex + 1.class_infor)0; (pupilindex.class_infor)1 = (pupilindex + 1.class_infor)1; pupilindex.chinese_grade = pupilindex + 1.chinese_grade; pupilindex.math_grade = pupilindex + 1.math_grade; pupilindex.english_grade = pupilindex + 1.english_grade; index+; pupil_num-; return t
20、rue; bool BaseOperate:deleteRecordInMid(string no) int index = -1; for (int i = 0; i mid_stu_num; i+) if (no = mid_stui.no) index = i; break; if (index = -1) return false; while (index mid_stu_num) if (index + 1 = mid_stu_num) break; mid_stuindex.no = mid_stuindex + 1.no; mid_stuindex.name = mid_stu
21、index + 1.name; mid_stuindex.age = mid_stuindex + 1.age; mid_stuindex.sex = mid_stuindex + 1.sex; (mid_stuindex.class_infor)0 = (mid_stuindex + 1.class_infor)0; (mid_stuindex.class_infor)1 = (mid_stuindex + 1.class_infor)1; mid_stuindex.chinese_grade = mid_stuindex + 1.chinese_grade; mid_stuindex.ma
22、th_grade = mid_stuindex + 1.math_grade; mid_stuindex.english_grade = mid_stuindex + 1.english_grade; mid_stuindex.geography_grade = mid_stuindex + 1.geography_grade; mid_stuindex.history_grade = mid_stuindex + 1.history_grade; index+; mid_stu_num-; return true; bool BaseOperate:deleteRecordInUniv(st
23、ring no) int index = -1; for (int i = 0; i univ_stu_num; i+) if (no = univ_stui.no) index = i; break; if (index = -1) return false; while (index univ_stu_num) if (index + 1 = univ_stu_num) break; univ_stuindex.no = univ_stuindex + 1.no; univ_stuindex.name = univ_stuindex + 1.name; univ_stuindex.age
24、= univ_stuindex + 1.age; univ_stuindex.sex = univ_stuindex + 1.sex; (univ_stuindex.class_infor)0 = (univ_stuindex + 1.class_infor)0; (univ_stuindex.class_infor)1 = (univ_stuindex + 1.class_infor)1; univ_stuindex.major_grade = univ_stuindex + 1.major_grade; univ_stuindex.programming_grade = univ_stui
25、ndex + 1.programming_grade; univ_stuindex.higher_math_grade = univ_stuindex + 1.higher_math_grade; univ_stuindex.english_grade = univ_stuindex + 1.english_grade; index+; univ_stu_num-; return true; bool BaseOperate:modifyInforInPupil(string no) for (int i = 0; i pupil_num; i+) if (no = pupili.no) co
26、ut 年龄: ; cin pupili.age; cout 年级: ; cin pupili.class_infor0; cout 班级: ; cin pupili.class_infor1; cout 语文成绩: ; cin pupili.chinese_grade; cout 数学成绩: ; cin pupili.math_grade; cout 英语成绩: ; cin pupili.english_grade; pupili.total_grade = pupili.chinese_grade + pupili.math_grade + pupili.english_grade; ret
27、urn true; return false; bool BaseOperate:modifyInforInMid(string no) for (int i = 0; i mid_stu_num; i+) if (no = mid_stui.no) cout 年龄: ; cin mid_stui.age; cout 年级: ; cin mid_stui.class_infor0; cout 班级: ; cin mid_stui.class_infor1; cout 语文成绩: ; cin mid_stui.chinese_grade; cout 数学成绩: ; cin mid_stui.ma
28、th_grade; cout 英语成绩: ; cin mid_stui.english_grade; cout 地理成绩: ; cin mid_stui.geography_grade; cout 历史成绩: ; cin mid_stui.history_grade; mid_stui.total_grade = mid_stui.chinese_grade + mid_stui.math_grade + mid_stui.english_grade + mid_stui.geography_grade + mid_stui.history_grade; return true; return
29、 false; bool BaseOperate:modifyInforInUniv(string no) for (int i = 0; i univ_stu_num; i+) if (no = univ_stui.no) cout 年龄: ; cin univ_stui.age; cout 年级: ; cin univ_stui.class_infor0; cout 班级: ; cin univ_stui.class_infor1; cout 专业成绩: ; cin univ_stui.major_grade; cout 英语成绩: ; cin univ_stui.english_grad
30、e; cout 高数成绩: ; cin univ_stui.higher_math_grade; cout 编程成绩: ; cin univ_stui.programming_grade; univ_stui.total_grade = univ_stui.major_grade + univ_stui.english_grade + univ_stui.higher_math_grade + univ_stui.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) pupili.no setw(8) pupili.name setw(8) pupili.sex setw(6) pupili.age setw(3) (pupili.class_infor)0 0 setw(3) (pupili.class_infor)1 setw(7) pupi
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1