学生成绩管理系统c.docx
《学生成绩管理系统c.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统c.docx(6页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统c
学生成绩管理系统(c)
学生成绩管理系统(仅源代码)#includeiostream#includeiomanip#includefstream#includestring#defineMAX_NUM10//对象数组最大容纳人数usingnamespacestd;intpupil_num=0;intmid_stu_num=0;intuniv_stu_num=0;classStudent{public:
friendclassBaseOperate;protected:
stringno;stringname;stringsex;intage;intclass_infor[2];//分别存储年级和班级inttotal_grade;};classPupil:
publicStudent{public:
friendclassBaseOperate;protected:
intenglish_grade;intmath_grade;intchinese_grade;};classMiddleSchoolStudent:
publicPupil{public:
friendclassBaseOperate;private:
intgeography_grade;inthistory_grade;};classUniversityStudent:
publicStudent{public:
friendclassBaseOperate;private:
intmajor_grade;intenglish_grade;inthigher_math_grade;intprogramming_grade;};Pupilpupil[MAX_NUM];MiddleSchoolStudentmid_stu[MAX_NUM];UniversityStudentuniv_stu[MAX_NUM];classBaseOperate{public:
boolquery();//查询booladdRecordInPupil(stringno);booladdRecordInMid(stringno);booladdRecordInUniv(stringno);booldeleteRecordInPupil(stringno);booldeleteRecordInMid(stringno);booldeleteRecordInUniv(stringno);boolmodifyInforInPupil(stringno);boolmodifyInforInMid(stringno);boolmodifyInforInUniv(stringno);voidshow();//输出所有学生信息voidtally();//统计(能统计学生人数、总分、单科的平均分等)voidsort();//排序(可按总分和单科成绩排名次)voidsave();voidread();};boolBaseOperate:
:
query(){stringno;cout请输入学号:
endl;cinno;coutendl;cout.setf(std:
:
ios:
:
left);//在小学生中查找for(inti=0;ipupil_num;i++){if(no==pupil[i].no){cout学生类型:
小学生endlendl;cout学号姓名性别年龄班级语文数学英语endl;coutsetw(6)pupil[i].nosetw(8)pupil[i].namesetw(8)pupil[i].sexsetw(6)pupil[i].agesetw(3)(pupil[i].class_infor)[0]0setw(3)(pupil[i].class_infor)[1]setw(7)pupil[i].chinese_gradesetw(7)pupil[i].math_gradesetw(7)pupil[i].english_gradeendlendl;returntrue;}}for(inti=0;imid_stu_num;i++){if(no==mid_stu[i].no){cout学生类型:
中学生endlendl;cout学号姓名性别年龄班级语文数学英语地理历史endl;coutsetw(6)mid_stu[i].nosetw(8)mid_stu[i].namesetw(8)mid_stu[i].sexsetw(6)mid_stu[i].agesetw(3)(mid_stu[i].class_infor)[0]0setw(3)(mid_stu[i].class_infor)[1]setw(7)mid_stu[i].chinese_gradesetw(7)mid_stu[i].math_gradesetw(7)mid_stu[i].english_gradesetw(7)mid_stu[i].geography_gradesetw(7)mid_stu[i].history_gradeendlendl;returntrue;}}for(inti=0;iuniv_stu_num;i++){if(no==univ_stu[i].no){cout学生类型:
大学生endlendl;cout学号姓名性别年龄班级专业高数英语编程endl;coutsetw(6)univ_stu[i].nosetw(8)univ_stu[i].namesetw(8)univ_stu[i].sexsetw(6)univ_stu[i].agesetw(3)(univ_stu[i].class_infor)[0]0setw(3)(univ_stu[i].class_infor)[1]setw(7)univ_stu[i].major_gradesetw(7)univ_stu[i].higher_math_gradesetw(7)univ_stu[i].english_gradesetw(7)univ_stu[i].programming_gradeendlendl;returntrue;}}cout没有找到该学生endl;returnfalse;}boolBaseOperate:
:
addRecordInPupil(stringno){for(inti=0;ipupil_num;i++){if(pupil[i].no==no){returnfalse;}}pupil[pupil_num].no=no;cout姓名:
;cinpupil[pupil_num].name;cout性别:
;cinpupil[pupil_num].sex;cout年龄:
;cinpupil[pupil_num].age;cout年级:
;cinpupil[pupil_num].class_infor[0];cout班级:
;cinpupil[pupil_num].class_infor[1];cout语文成绩:
;cinpupil[pupil_num].chinese_grade;cout数学成绩:
;cinpupil[pupil_num].math_grade;cout英语成绩:
;cinpupil[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++;returntrue;}boolBaseOperate:
:
addRecordInMid(stringno){for(inti=0;imid_stu_num;i++){if(mid_stu[i].no==no){returnfalse;}}mid_stu[mid_stu_num].no=no;cout姓名:
;cinmid_stu[mid_stu_num].name;cout性别:
;cinmid_stu[mid_stu_num].sex;cout年龄:
;cinmid_stu[mid_stu_num].age;cout年级:
;cinmid_stu[mid_stu_num].class_infor[0];cout班级:
;cinmid_stu[mid_stu_num].class_infor[1];cout语文成绩:
;cinmid_stu[mid_stu_num].chinese_grade;cout数学成绩:
;cinmid_stu[mid_stu_num].math_grade;cout英语成绩:
;cinmid_stu[mid_stu_num].english_grade;cout地理成绩:
;cinmid_stu[mid_stu_num].geography_grade;cout历史成绩:
;cinmid_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++;returntrue;}boolBaseOperate:
:
addRecordInUniv(stringno){for(inti=0;iuniv_stu_num;i++){if(univ_stu[i].no==no){returnfalse;}}univ_stu[univ_stu_num].no=no;cout姓名:
;cinuniv_stu[univ_stu_num].name;cout性别:
;cinuniv_stu[univ_stu_num].sex;cout年龄:
;cinuniv_stu[univ_stu_num].age;cout年级:
;cinuniv_stu[univ_stu_num].class_infor[0];cout班级:
;cinuniv_stu[univ_stu_num].class_infor[1];cout专业成绩:
;cinuniv_stu[univ_stu_num].major_grade;cout英语成绩:
;cinuniv_stu[univ_stu_num].english_grade;cout高数成绩:
;cinuniv_stu[univ_stu_num].higher_math_grade;cout编程成绩:
;cinuniv_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++;returntrue;}boolBaseOperate:
:
deleteRecordInPupil(stringno){intindex=-1;for(inti=0;ipupil_num;i++){if(no==pupil[i].no){index=i;break;}}if(index==-1){returnfalse;}while(indexpupil_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--;returntrue;}boolBaseOperate:
:
deleteRecordInMid(stringno){intindex=-1;for(inti=0;imid_stu_num;i++){if(no==mid_stu[i].no){index=i;break;}}if(index==-1){returnfalse;}while(indexmid_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--;returntrue;}boolBaseOperate:
:
deleteRecordInUniv(stringno){intindex=-1;for(inti=0;iuniv_stu_num;i++){if(no==univ_stu[i].no){index=i;break;}}if(index==-1){returnfalse;}while(indexuniv_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--;returntrue;}boolBaseOperate:
:
modifyInforInPupil(stringno){for(inti=0;ipupil_num;i++){if(no==pupil[i].no){cout年龄:
;cinpupil[i].age;cout年级:
;cinpupil[i].class_infor[0];cout班级:
;cinpupil[i].class_infor[1];cout语文成绩:
;cinpupil[i].chinese_grade;cout数学成绩:
;cinpupil[i].math_grade;cout英语成绩:
;cinpupil[i].english_grade;pupil[i].total_grade=pupil[i].chinese_grade+pupil[i].math_grade+pupil[i].english_grade;returntrue;}}returnfalse;}boolBaseOperate:
:
modifyInforInMid(stringno){for(inti=0;imid_stu_num;i++){if(no==mid_stu[i].no){cout年龄:
;cinmid_stu[i].age;cout年级:
;cinmid_stu[i].class_infor[0];cout班级:
;cinmid_stu[i].class_infor[1];cout语文成绩:
;cinmid_stu[i].chinese_grade;cout数学成绩:
;cinmid_stu[i].math_grade;cout英语成绩:
;cinmid_stu[i].english_grade;cout地理成绩:
;cinmid_stu[i].geography_grade;cout历史成绩:
;cinmid_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;returntrue;}}returnfalse;}boolBaseOperate:
:
modifyInforInUniv(stringno){for(inti=0;iuniv_stu_num;i++){if(no==univ_stu[i].no){cout年龄:
;cinuniv_stu[i].age;cout年级:
;cinuniv_stu[i].class_infor[0];cout班级:
;cinuniv_stu[i].class_infor[1];cout专业成绩:
;cinuniv_stu[i].major_grade;cout英语成绩:
;cinuniv_stu[i].english_grade;cout高数成绩:
;cinuniv_stu[i].higher_math_grade;cout编程成绩:
;cinuniv_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;returntrue;}}returnfalse;}voidBaseOperate:
:
show(){cout小学生:
endlendl;if(pupil_num==0){cout无endlendl;}else{cout学号姓名性别年龄班级语文数学英语endl;}cout.setf(std:
:
ios:
:
left);for(inti=0;ipupil_num;i++){coutsetw(6)pupil[i].nosetw(8)pupil[i].namesetw(8)pupil[i].sexsetw(6)pupil[i].agesetw(3)(pupil[i].class_infor)[0]0setw(3)(pupil[i].class_infor)[1]setw(7)pupi