《C+实现简单的学生信息管理系统控制台程序.pdf》由会员分享,可在线阅读,更多相关《C+实现简单的学生信息管理系统控制台程序.pdf(28页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、/#include stdafx.h#include#include#include#include#includeclass Studentprivate:char idNumber13;/学号char name30;/姓名char address50;/地址char telephone14;/电话号码int gradeMath;/数学成绩int gradePhysics;/物理成绩int gradeEnglish;/英语成绩double gradeMaPhEgAverage;/物数外平均int rankGrade;/成绩排名int gradeClassmate;/同学评分int grade
2、Teacher;/老师评分int gradeEthic;/道德评分double gradeAll;/综合成绩int rankAll;/综合排名public:Student();/默认构造函数void Student_WritePersonalInformation(char*iD,char*nam,char*add,char*tel);/更改学生信息void Student_WriteMaPhEgGrade(int graMa,int graPh,int graEg);/更改学生考试成绩void Student_WriteOtherGrade(int graCl,int graTe,int g
3、raEth);/更改学生其他成绩;Student:Student()/默认构造函数strncpy_s(idNumber,000000000000,12);strncpy_s(name,空,30);strncpy_s(address,空,50);strncpy_s(telephone,空,14);/电话号码void Student_DisplayInformation();/显示学生信息char*Student_ReadID();double Student_ReadGrade();double Student_ReadTotalGrade();int Student_ReadGradeRank
4、();int Student_ReadTotalGradeRank();void Student_WriteGradeRank(int ranGr);/更改学生成绩排名void Student_WriteTotalGradeRank(int ranAl);/更改学生综合排名char*Student_ReadName();gradeMath=0;/数学成绩gradePhysics=0;/物理成绩gradeEnglish=0;/英语成绩gradeMaPhEgAverage=0;/物数外平均rankGrade=0;/成绩排名gradeClassmate=0;/同学评分gradeTeacher=0;/
5、老师评分gradeEthic=0;/道德评分 gradeAll=0;/综合成绩rankAll=0;/综合排名void Student:Student_WritePersonalInformation(char*iD,char*nam,char*add,char*tel)void Student:Student_WriteMaPhEgGrade(int graMa,int graPh,int graEg)gradeMath=graMa;gradePhysics=graPh;gradeEnglish=graEg;strncpy_s(idNumber,iD,12);strncpy_s(name,na
6、m,30);strncpy_s(address,add,50);strncpy_s(telephone,tel,14);gradeMaPhEgAverage=(gradeMath+gradePhysics+gradeEnglish)/3;void Student:Student_WriteOtherGrade(int graCl,int graTe,int graEth)gradeClassmate=graCl;gradeTeacher=graTe;gradeEthic=graEth;gradeAll=gradeMaPhEgAverage*0.6+gradeClassmate*0.1+grad
7、eEthic*0.1gradeTeacher*0.2;void Student:Student_WriteGradeRank(int ranGr)rankGrade=ranGr;void Student:Student_WriteTotalGradeRank(int ranAl)rankAll=ranAl;void Student:Student_DisplayInformation()using namespace std;cout -endl;cout 学生信息 endl;cout 姓名:name endl+学号:idNumber endl 地址:address endl 电话:telep
8、hone endl 数学成绩:gradeMath endl 物理成绩:gradePhysics endl 英语成绩:gradeEnglish endl 三科平均成绩:gradeMaPhEgAverage endl 学习成绩排名:rankGrade endl 同学评价得分:gradeClassmate endl 教师评价得分:gradeTeacher endl 道德修养评分:gradeEthic endl 综合成绩:gradeAll endl 综合成绩排名:rankAll endl;cout -endl;char*Student:Student_ReadID()double Student:St
9、udent_ReadGrade()double Student:Student_ReadTotalGrade()return gradeMaPhEgAverage;return idNumber;return gradeAll;int Student:Student_ReadGradeRank()return rankGrade;int Student:Student_ReadTotalGradeRank()return rankAll;namespace studentInformationstd:vector studentVector;int flagStudentChoose=0;in
10、t flagStudentFound=1;char*Student:Student_ReadName()return name;/-以上是基本数据结构的定义,同时定义了对数据的基本操作。定义完毕了,接下来是功能函数-void MainMenu();void EditMenu();void AddStudentPersonalInformation(int mode);void ModifyStudentInformation();void SearchStudent();void DeleteStudentInformation();void DisplayStudentInformation
11、();void RankByGrade();void RankByTotalGrade();void RankByID();bool CmpGrade(Student student1,Student student2);/这个函数的参数是两个Student 类的对象bool CmpTotalGrade(Student student1,Student student2);bool CmpID(Student student1,Student student2);void DisplayAllStudentInformation();/-以下是主菜单界面函数-void MainMenu()in
12、t flagOperateInformation=1;while(flagOperateInformation)using namespace std;cout -endl;cout 欢迎进入学生信息管理系统 V1.0.endl endl;cout 按下 1:进入学生信息管理系统.endl;cout 按下 0:退出.endl;cout-endlendl flagOperateInformation;cin.clear();cout endl;if(flagOperateInformation)EditMenu();-/-以下是编辑界面函数-void EditMenu()int flagCont
13、inueOperation=1;while(flagContinueOperation)flagContinueOperation=0;using namespace std;cout -endl;cout 主菜单 endl;cout 按下 1:添加学生信息.endl;cout 按下 2:修改学生信息.endl;cout 按下 3:删除学生信息.endl;cout 按下 4:显示学生信息.endl;cout 按下 5:按学号升序排序 endl;cout 按下 6:读入已有信息(暂时没实现)endl;cout 按下 7:将信息输出(暂时没实现)endl;cout 按下 8:显示系统内所有学生的信
14、息 endl;cout 按下 0:返回上一级.endl;cout -endl flagContinueOperation;cin.clear();cout endl;switch(flagContinueOperation)case 1:AddStudentPersonalInformation(1);break;case 2:ModifyStudentInformation();break;case 3:DeleteStudentInformation();break;case 4:DisplayStudentInformation();break;case 5:RankByID();bre
15、ak;case 6:cout 功能暂未实现 endl;break;case 7:cout 功能暂未实现 endl;break;case 8:DisplayAllStudentInformation();break;case 0:break;/-/-以下是添加信息的界面-void AddStudentPersonalInformation(int mode)-cout 请依次添加基本信息、学习成绩和其他成绩,且不要使用空格 endl;using namespace std;int flagAddPersonalInformation;int flagAddGrade;int falgAddOth
16、erGrade;Student student1;studentInformation:studentVector.push_back(student1);int currentObjectPosition;if(mode=1)currentObjectPosition=studentInformation:studentVector.size()-1;elsecurrentObjectPosition=studentInformation:flagStudentChoose;/-cout -endl;cout 基本信息 endl;cout 按下 1:录入学生基本信息;endl 按下 0:跳过
17、基本信息。endl-flagAddPersonalInformation;cin.clear();if(flagAddPersonalInformation)char name30;char iD13;char address50;char phone14;cout name;cin.clear();cout iD;cin.clear();cout address;cin.clear();cout phone;cin.clear();studentInformation:studentVectorcurrentObjectPosition.Student_WritePersonalInform
18、ation(iD,name,address,phone);/-cout 基本信息输入成功!endl-endl;-cout -endl;cout 学习成绩 endl;cout 按下 1:录入学生学习成绩;endl 按下 0:跳过学习成绩信息。endl-flagAddGrade;cin.clear();if(flagAddGrade)int mathGrade;int physicsGrade;int englishGrade;cout mathGrade;cin.clear();cout physicsGrade;cin.clear();cout englishGrade;cin.clear()
19、;studentInformation:studentVectorcurrentObjectPosition.Student_WriteMaPhEgGrade(mathGrade,physicsGrade,englishGrade);/-cout -endl;cout 其他成绩 endl;cout 按下 1:录入学生其他成绩;endl 按下 0:跳过其他成绩信息。endl-endl;cout 学习成绩输入成功!endl-flagAddGrade;cin.clear();if(flagAddGrade)int peerGrade;int teacherGrade;int ethicGrade;c
20、out peerGrade;cin.clear();cout teacherGrade;cin.clear();cout ethicGrade;cin.clear();studentInformation:studentVectorcurrentObjectPosition.Student_WriteOtherGrade(peerGrade,teacherGrade,ethicGrade);void SearchStudent()using namespace std;RankByGrade();RankByTotalGrade();cout 学生成绩录入成功!endl;cout -endle
21、ndl;cout 其他成绩输入成功!endl-endl;using namespace studentInformation;char ID13;cout 请输入学生的学号:ID;cin.clear();cout -endl;int vectorSize=studentVector.size();int i=0;while(ivectorSize)&(flagStudentFound!=0)if(flagStudentFound=0)elsecout 未找到该学生 endl;flagStudentChoose=i-1;flagStudentFound=1;cout 您所查找的学生信息如下:en
22、dl;studentVectorflagStudentChoose.Student_DisplayInformation();flagStudentFound=strcmp(ID,studentVectori.Student_ReadID();i=i+1;void ModifyStudentInformation()using namespace std;using namespace studentInformation;int searchVectorSize=studentVector.size();if(searchVectorSize=0)elseSearchStudent();co
23、ut 您想对该学生的信息进行修改吗?endl;cout 按下 1:是的。endl;cout 按下 0:放弃修改。endl;cout -flagModify;cin.clear();if(flagModify=1)&(flagStudentFound=0)cout -endl;cout 当前系统中没有学生信息,请先添加学生信息!endl;cout -endl;AddStudentPersonalInformation(2);void DeleteStudentInformation()using namespace std;using namespace studentInformation;i
24、nt deleteVectorSize=studentVector.size();if(deleteVectorSize=0)elseSearchStudent();cout 您想删除该学生的信息吗?endl;cout 按下 1:删除。endl;cout 按下 0:取消。endl;cout -flagModify;cout -endl;cout 当前系统中没有学生信息,请先添加学生信息!endl;cout -endl;cin.clear();if(flagModify=1)&(flagStudentFound=0)std:vector:iteratoriter=studentVector.be
25、gin()+flagStudentChoose;/这样就选中了一个查到的元素void DisplayStudentInformation()using namespace std;using namespace studentInformation;int displayVectorSize=studentVector.size();if(displayVectorSize=0)elsecout -endl;cout 当前系统中没有学生信息,请先添加学生信息!endl;cout -endl;cout 学生信息删除成功!endl-student2.Student_ReadGrade();/如果s
26、tudent1 成绩大于 student2,则返回 1.这样能实现成绩的降序排列void RankByGrade()using namespace studentInformation;using namespace std;int rankVectorSize=studentVector.size();if(rankVectorSize=1)elsesort(studentVector.begin(),studentVector.end(),CmpGrade);/使用 sortstudentVector0.Student_WriteGradeRank(1);必须加上#include algo
27、rithm 和 std。sort 的前两个参数是指针int i=0;for(i=0;i=1)&(studentVectori.Student_ReadGrade()=studentVectori-1.Student_ReadGrade()studentVectori.Student_WriteGradeRank(studentVectori-1.Student_ReadGradeRank();bool CmpTotalGrade(Student student1,Student student2)return student1.Student_ReadTotalGrade()student2.
28、Student_ReadTotalGrade();/如果 student1 成绩大于 student2,则返回 1.这样能实现成绩的降序排列void RankByTotalGrade()using namespace studentInformation;using namespace std;int rankVectorSize=studentVector.size();if(rankVectorSize=1)studentVector0.Student_WriteTotalGradeRank(1);elsestudentVectori.Student_WriteGradeRank(i+1)
29、;elsesort(studentVector.begin(),studentVector.end(),CmpGrade);/使用 sort必须加上#include algorithm 和 std。sort 的前两个参数是指针int i=0;for(i=0;i=1)&(studentVectori.Student_ReadTotalGrade()studentVectori-1.Student_ReadTotalGrade()studentVectori.Student_WriteTotalGradeRank(studentVectori1.Student_ReadTotalGradeRank
30、();elsestudentVectori.Student_WriteTotalGradeRank(i+1);bool CmpID(Student student1,Student student2)int result;result=strcmp(student1.Student_ReadID(),student2.Student_ReadID();if(result0)return true;else=-return false;void RankByID()void DisplayAllStudentInformation()using namespace std;using names
31、pace studentInformation;int displayVectorSize=studentVector.size();int i;if(displayVectorSize=0)cout -endl;cout 当前系统中没有学生信息!endl;cout -endl;using namespace studentInformation;using namespace std;int rankVectorSize=studentVector.size();sort(studentVector.begin(),studentVector.end(),CmpID);cout -endl;
32、cout 排序成功!endl;cout -endl;elsecout-endl;cout-studentVectori.Student_ReadTotalGradeRank()endl;cout 姓名学号综合成绩综合排名 endl;for(i=0;i displayVectorSize;i+)cout studentVectori.Student_ReadName()studentVectori.Student_ReadID()studentVectori.Student_ReadTotalGrade()endl;/-以下是主函数-void main()MainMenu();/*-下面的这是一
33、个排序函数,用到了冒泡排序法,但是程序没用到。上面的排序用了 sort()函数来实现,功能是一样的。*/*void RankByGrade()using namespace studentInformation;using namespace std;int flagCompareOut=0;int flagCompareIn=0;int rankVectorSize;rankVectorSize=studentVector.size();if(rankVectorSize=0)cout -endl 系统当前没有学生信息!endl-endl;else if(rankVectorSize=1)s
34、tudentVectorflagCompareOut.Student_WriteGradeRank(flagCompareOut+1);elseint flagCompareOut=0;int flagCompareIn=0;for(flagCompareOut=0;flagCompareOut rankVectorSize-1;flagCompareOut+)for(flagCompareIn=0;flagCompareIn rankVectorSize-flagCompareOut-1;flagCompareIn+)if(studentVectorflagCompareIn.Student
35、_ReadGrade()studentVectorflagCompareIn+1.Student_ReadGrade()Student studentTemp;studentTemp=studentVectorflagCompareIn;studentVectorflagCompareIn=studentVectorflagCompareIn+1;studentVectorflagCompareIn+1=studentTemp;int i=0;for(i=0;i 0)&(studentVectori.Student_ReadGrade()=studentVectori1.Student_Rea
36、dGrade()studentVectori.Student_WriteGradeRank(studentVectori1.Student_ReadGradeRank();-elsestudentVectori.Student_WriteGradeRank(i+1);void RankByTotalGrade()using namespace studentInformation;using namespace std;int flagCompareOut=0;int flagCompareIn=0;int rankVectorSize;rankVectorSize=studentVector
37、.size();if(rankVectorSize=0)cout -endl 系统当前没有学生信息!endl-endl;else if(rankVectorSize=1)studentVectorflagCompareOut.Student_WriteTotalGradeRank(flagCompareOut+1);elseint flagCompareOut=0;int flagCompareIn=0;for(flagCompareOut=0;flagCompareOut rankVectorSize-1;flagCompareOut+)for(flagCompareIn=0;flagCom
38、pareIn rankVectorSize-flagCompareOut-1;flagCompareIn+)Student studentTemp;if(studentVectorflagCompareIn.Student_ReadTotalGrade()studentVectorflagCompareIn+1.Student_ReadTotalGrade()studentTemp=studentVectorflagCompareIn;studentVectorflagCompareIn=studentVectorflagCompareIn+1;studentVectorflagCompareIn+1=studentTemp;int i=0;for(i=0;i 0)&(studentVectori.Student_ReadTotalGrade()=studentVectori-1.Student_ReadTotalGrade()studentVectori.Student_WriteTotalGradeRank(studentVectori-1.Student_ReadTotalGradeRank();elsestudentVectori.Student_WriteTotalGradeRank(i+1);void RankByID()*/