




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上学生成绩管理系统(仅源代码)#include<iostream>#include<iomanip>#include<fstream>#include<string>#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
2、 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 histor
3、y_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();/查询 boo
4、l 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)
5、;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
6、+) if (no = pupili.no) cout << "学生类型:小学生" << endl << endl;cout << "学号 姓名 性别 年龄 班级 语文 数学 英语" << endl;cout << setw(6) << pupili.no << setw(8) << << setw(8) << pupili.sex << setw(6) << pupili.a
7、ge << 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
8、; 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) <
9、;< 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) <<
10、; 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 <
11、;< "学号 姓名 性别 年龄 班级 专业 高数 英语 编程" << 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" &l
12、t;< 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
13、<< "没有找到该学生" << 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_;cout << "性别:" cin >>
14、; pupilpupil_num.sex;cout << "年龄:" cin >> pupilpupil_num.age;cout << "年级:" cin >> pupilpupil_num.class_infor0;cout << "班级:" cin >> pupilpupil_num.class_infor1; cout << "语文成绩:" cin >> pupilpupil_num.chinese_grade;
15、cout << "数学成绩:" cin >> pupilpupil_num.math_grade;cout << "英语成绩:" cin >> 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 BaseOpera
16、te: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_;cout << "性别:" cin >> mid_stumid_stu_num.sex;cout << "年龄:" cin &g
17、t;> 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 >&
18、gt; mid_stumid_stu_num.math_grade;cout << "英语成绩:" cin >> mid_stumid_stu_num.english_grade;cout << "地理成绩:" cin >> mid_stumid_stu_num.geography_grade;cout << "历史成绩:" cin >> mid_stumid_stu_num.history_grade;mid_stumid_stu_num.total_grade
19、 = 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
20、.no = no) return false;univ_stuuniv_stu_num.no = no;cout << "姓名:" cin >> univ_stuuniv_stu_;cout << "性别:" cin >> univ_stuuniv_stu_num.sex;cout << "年龄:" cin >> univ_stuuniv_stu_num.age;cout << "年级:" cin >>
21、univ_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 << "高数成绩:"
22、; cin >> univ_stuuniv_stu_num.higher_math_grade;cout << "编程成绩:" cin >> 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_s
23、tu_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) if (index + 1 >= pupil_num) break;pupilindex.no =
24、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;
25、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 fal
26、se; while (index < mid_stu_num) if (index + 1 >= 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
27、_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_
28、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) if (index
29、 + 1 >= 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_
30、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_s
31、tu_num-;return true;bool BaseOperate:modifyInforInPupil(string no) for (int i = 0; i < pupil_num; i+) if (no = pupili.no) cout << "年龄:" cin >> pupili.age;cout << "年级:" cin >> pupili.class_infor0;cout << "班级:" cin >> pupili.class_in
32、for1; 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;return true; r
33、eturn 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_in
34、for1; cout << "语文成绩:" cin >> mid_stui.chinese_grade;cout << "数学成绩:" cin >> mid_stui.math_grade;cout << "英语成绩:" cin >> mid_stui.english_grade;cout << "地理成绩:" cin >> mid_stui.geography_grade;cout << "历史成
35、绩:" 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 false;bool BaseOperate:modifyInforInUniv(string no) for (int i = 0; i < univ_stu_num; i
36、+) 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 << &qu
37、ot;英语成绩:" cin >> univ_stui.english_grade;cout << "高数成绩:" cin >> univ_stui.higher_math_grade;cout << "编程成绩:" cin >> univ_gramming_grade; univ_stui.total_grade = univ_stui.major_grade + univ_stui.english_grade + univ_stui.higher_math_grade
38、 + 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:i
39、os: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) << (pu
40、pili.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 << "无" <<
41、; 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 &l
42、t;< 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.
43、geography_grade << setw(7) << mid_stui.history_grade << endl << endl;cout << "大学生:" << endl << endl;if (univ_stu_num = 0) cout << "无" << endl << endl; else cout << "学号 姓名 性别 年龄 班级 专业 高数 英语 编程" << en
44、dl;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)
45、<< (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
46、_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 << "人数:" <<
47、; 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 &
48、lt;< 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 << "数学平均分:" <<
49、; (double)sum_math / pupil_num << endl;cout << "英语平均分:" << (double)sum_english / pupil_num << endl;cout << "-" << endl;/中学生cout << endl << "中学生:" << endl << endl;cout << "-" << endl;cout &
50、lt;< "人数:" << 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_ <&
51、lt; 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.geogra
52、phy_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
53、 << endl;cout << "地理平均分:" << (double)sum_geography / mid_stu_num << endl;cout << "历史平均分:" << (double)sum_history / mid_stu_num << endl;cout << "-" << endl;/大学生:cout << endl << "大学生:" << en
54、dl << 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
55、) << 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
56、 += 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 << "英语平均分:" << (do
57、uble)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_nu
58、m - 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 =
59、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;sho
60、w();void BaseOperate:save() /小学生 ofstream out("PupilInfor.txt", ios_base:binary);for (int i = 0; i < pupil_num; i+) out << pupili.no << " " << << " " << pupili.sex << " " << pupili.age << " &qu
61、ot; << (pupili.class_infor)0 << " " << (pupili.class_infor)1 << " " << pupili.chinese_grade << " " << pupili.math_grade << " " << pupili.english_grade << " "out.close();/中学生out.open("MidStuInfor.txt", ios_base:binary);for (int i = 0; i < mid_stu_num; i+) out << mid_stui.no <
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 广州科技职业技术大学《建筑学》2023-2024学年第二学期期末试卷
- 温州肯恩大学《中学物理专题训练与研究》2023-2024学年第二学期期末试卷
- 2025河北省安全员考试题库及答案
- 德宏职业学院《新媒体概论》2023-2024学年第二学期期末试卷
- 2024-2025学年湖南省五市十校教研教改共同体高一上学期12月月考历史试卷
- 山东石油化工学院《工程结构反分析理论》2023-2024学年第二学期期末试卷
- 德宏职业学院《国际法与当代中国》2023-2024学年第二学期期末试卷
- 广东茂名农林科技职业学院《互联网+大学生创新创业设计与实践》2023-2024学年第二学期期末试卷
- 2025年山西省建筑安全员《A证》考试题库
- 桂林山水职业学院《幼儿教师职业道德与专业发展》2023-2024学年第二学期期末试卷
- 领子的分类课件
- 农产品的互联网营销课件
- 三年级下册数学课件 两位数除两、三位数 沪教版 (共15张PPT)
- 《六大茶类》讲义
- Unit 2 Listening and speaking 课件-高中英语人教版(2019)选择性必修第二册
- X会计师事务所的J城投公司发债审计项目研究
- 中国传媒大学全媒体新闻编辑:案例教学-课件-全媒体新闻编辑:案例教学-第7讲
- 生理学泌尿系统6学时课件
- 数据结构英文教学课件:chapter1 Introduction
- 人教三年级数学下册表格式全册
- 优秀教研组评比制度及实施细则
评论
0/150
提交评论