




免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
学生成绩管理系统(仅源代码)#include#include#include#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_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;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 pupilMAX_NUM;MiddleSchoolStudent mid_stuMAX_NUM;UniversityStudent univ_stuMAX_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 请输入学号: no;cout endl;cout.setf(std:ios:left);/在小学生中查找 for (int i = 0; i pupil_num; i+) if (no = pupili.no) cout 学生类型:小学生 endl endl;cout 学号 姓名 性别 年龄 班级 语文 数学 英语 endl;cout setw(6) pupili.no setw(8) 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_grade 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_ setw(8) mid_stui.sex setw(6) mid_stui.age setw(3) (mid_stui.class_infor)0 0 setw(3) (mid_stui.class_infor)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 学号 姓名 性别 年龄 班级 专业 高数 英语 编程 endl;cout setw(6) univ_stui.no setw(8) univ_ 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_gramming_grade 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 pupilpupil_;cout pupilpupil_num.sex;cout pupilpupil_num.age;cout pupilpupil_num.class_infor0;cout pupilpupil_num.class_infor1; cout pupilpupil_num.chinese_grade;cout pupilpupil_num.math_grade;cout pupilpupil_num.english_grade;pupilpupil_num.total_grade = pupilpupil_num.chinese_grade + pupilpupil_num.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 mid_stumid_stu_;cout mid_stumid_stu_num.sex;cout mid_stumid_stu_num.age;cout mid_stumid_stu_num.class_infor0;cout mid_stumid_stu_num.class_infor1; cout mid_stumid_stu_num.chinese_grade;cout mid_stumid_stu_num.math_grade;cout mid_stumid_stu_num.english_grade;cout mid_stumid_stu_num.geography_grade;cout 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+; 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 univ_stuuniv_stu_;cout univ_stuuniv_stu_num.sex;cout univ_stuuniv_stu_num.age;cout univ_stuuniv_stu_num.class_infor0;cout univ_stuuniv_stu_num.class_infor1; cout univ_stuuniv_stu_num.major_grade;cout univ_stuuniv_stu_num.english_grade;cout univ_stuuniv_stu_num.higher_math_grade;cout univ_stuuniv_stu_gramming_grade;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_gramming_grade;univ_stu_num+;return true; bool BaseOperate:deleteRecordInPupil(string no) int index = -1;for (int i = 0; i pupil_num; i+) if (no = pupili.no) index = i;break;if (index = -1)return false; while (index = pupil_num) break;pupilindex.no = pupilindex + 1.no; = pupilindex + 1.name;pupilindex.age = pupilindex + 1.age;pupilindex.sex = pupilindex + 1.sex;(pupilindex.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 true;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) break;mid_stuindex.no = mid_stuindex + 1.no;mid_ = mid_stuindex + 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.math_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(string 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) break;univ_stuindex.no = univ_stuindex + 1.no;univ_ = univ_stuindex + 1.name;univ_stuindex.age = 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_gramming_grade = univ_stuindex + 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) cout pupili.age;cout pupili.class_infor0;cout pupili.class_infor1; cout pupili.chinese_grade;cout pupili.math_grade;cout pupili.english_grade;pupili.total_grade = pupili.chinese_grade + pupili.math_grade + pupili.english_grade;return true; return false;bool BaseOperate:modifyInforInMid(string no) for (int i = 0; i mid_stu_num; i+) if (no = mid_stui.no) cout mid_stui.age;cout mid_stui.class_infor0;cout mid_stui.class_infor1; cout mid_stui.chinese_grade;cout mid_stui.math_grade;cout mid_stui.english_grade;cout mid_stui.geography_grade;cout 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 false;bool BaseOperate:modifyInforInUniv(string no) for (int i = 0; i univ_stu_num; i+) if (no = univ_stui.no) cout univ_stui.age;cout univ_stui.class_infor0;cout univ_stui.class_infor1; cout univ_stui.major_grade;cout univ_stui.english_grade;cout univ_stui.higher_math_grade;cout univ_gramming_grade; univ_stui.total_grade = univ_stui.major_grade + univ_stui.english_grade + univ_stui.higher_math_grade + univ_gramming_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) 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_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_stui.no setw(8) mid_ setw(8) mid_stui.sex setw(6) mid_stui.age setw(3) (mid_stui.class_infor)0 0 setw(3) (mid_stui.class_infor)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;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_stui.no setw(8) univ_ 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_gramming_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) pupili.no setw(8) setw(4) pupili.total_grade endl;cout endl;for (int i = 0; i pupil_num; i+) sum_chinese += pupili.chinese_grade;sum_math += pupili.math_grade;sum_english += pupili.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_stui.no setw(8) mid_ setw(4) mid_stui.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_stui.chinese_grade;sum_math += mid_stui.math_grade;sum_english += mid_stui.english_grade;sum_geography += mid_stui.geography_grade;sum_history += mid_stui.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_stui.no setw(8) univ_ setw(4) univ_stui.total_grade endl;cout endl;sum_english = 0;for (int i = 0; i univ_stu_num; i+) sum_higher_math += univ_stui.higher_math_grade;sum_major += univ_stui.major_grade;sum_programming += univ_gramming_grade;sum_english += univ_stui.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 (pupilj - 1.total_grade pupilj.total_grade) temp_p = pupilj - 1;pupilj - 1 = pupilj;pupilj = 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_stuj - 1.total_grade mid_stuj.total_grade) temp_m = mid_stuj - 1;mid_stuj - 1 = mid_stuj;mid_stuj = 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_stuj - 1.total_grade univ_stuj.total_grade) temp_u = univ_stuj - 1;univ_stuj - 1 = univ_stuj;univ_stuj = temp_u;show();void BaseOperate:save() /小学生 ofstream out(PupilInfor.txt, ios_base:binary);for (int
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 活动押金合同协议书范本
- 2025年家用水表项目合作计划书
- 2025年超高压复合胶管项目发展计划
- 有趣游戏活动策划与执行
- 细胞生物学实验室细胞冻存盒租赁与维护服务协议
- 环保企业应急预案编制与实施协议
- 微信社群运营及转化效果跟踪与反馈协议
- 知识产权侵权纠纷赔偿金额评估协议
- 北美保健品分销及市场推广合同
- 工业机器人维护保养与备件库存管理合同
- 2024年广东高校毕业生“三支一扶”计划招募笔试真题
- 5年级语文下册看拼音写词语汉字生字扩词日积月累专项练习电子版
- 中级审计师考试精彩瞬间试题及答案
- 霍乱的预防和控制
- 2025年“六一”少先队新队员入队仪式主持词
- 2025年第六届(中小学组)国家版图知识竞赛测试题库及答案
- 新时代劳动教育教程(高校劳动教育课程)全套教学课件
- GA/T 2012-2023窃照专用器材鉴定技术规范
- 优先使用国家基本药物培训-20220914
- 施工现场事故应急预案处理程序
- 学生家长满意度测评表.doc
评论
0/150
提交评论