C实现简单的学生信息标准管理系统控制台程序.doc
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 实现 简单 学生 信息 标准 管理 系统 控制台 程序
- 资源描述:
-
// StudentInformationSystem.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <cstring> #include <iostream> #include <conio.h> #include<vector> #include<algorithm> class Student { private: char idNumber[13]; //学号 char name[30]; //姓名 char address[50]; //地址 char telephone[14]; //电话号码 int gradeMath; //数学成绩 int gradePhysics; //物理成绩 int gradeEnglish; //英语成绩 double gradeMaPhEgAverage; //物数外平均 int rankGrade; //成绩排名 int gradeClassmate; //同学评分 int gradeTeacher; //老师评分 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 graEth); //更改学生其它成绩 void Student_DisplayInformation(); //显示学生信息 char *Student_ReadID(); double Student_ReadGrade(); double Student_ReadTotalGrade(); int Student_ReadGradeRank(); int Student_ReadTotalGradeRank(); void Student_WriteGradeRank(int ranGr); //更改学生成绩排名 void Student_WriteTotalGradeRank(int ranAl); //更改学生综合排名 char *Student_ReadName(); }; Student::Student() //默认结构函数 { strncpy_s(idNumber, "",12); strncpy_s(name,"空",30); strncpy_s(address, "空", 50); strncpy_s(telephone, "空", 14); //电话号码 gradeMath=0; //数学成绩 gradePhysics=0; //物理成绩 gradeEnglish=0; //英语成绩 gradeMaPhEgAverage=0; //物数外平均 rankGrade=0; //成绩排名 gradeClassmate=0; //同学评分 gradeTeacher=0; //老师评分 gradeEthic=0; //道德评分 gradeAll=0; //综合成绩 rankAll=0; //综合排名 } void Student::Student_WritePersonalInformation(char *iD, char *nam, char *add, char *tel) { strncpy_s(idNumber,iD,12); strncpy_s(name, nam, 30); strncpy_s(address, add,50); strncpy_s(telephone, tel, 14); } void Student::Student_WriteMaPhEgGrade(int graMa, int graPh, int graEg) { gradeMath = graMa; gradePhysics = graPh; gradeEnglish = graEg; 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 + gradeEthic*0.1 + gradeTeacher*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 << "电话:" << telephone << 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() { return idNumber; } double Student::Student_ReadGrade() { return gradeMaPhEgAverage; } double Student::Student_ReadTotalGrade() { return gradeAll; } int Student::Student_ReadGradeRank() { return rankGrade; } int Student::Student_ReadTotalGradeRank() { return rankAll; } namespace studentInformation { std::vector<Student> studentVector; int flagStudentChoose=0; int flagStudentFound=1; } char *Student::Student_ReadName() { return name; } //-----------------------以上是基础数据结构定义,同时定义了对数据基础操作。定义完成了,接下来是功效函数-------------------- void MainMenu(); void EditMenu(); void AddStudentPersonalInformation(int mode); void ModifyStudentInformation(); void SearchStudent(); void DeleteStudentInformation(); void DisplayStudentInformation(); 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() { int flagOperateInformation = 1; while (flagOperateInformation) { using namespace std; cout << "-----------------------------------------------------" << endl; cout << "欢迎进入学生信息管理系统V1.0." << endl << endl; cout << "按下1:进入学生信息管理系统." << endl; cout << "按下0:退出." << endl; cout << "-----------------------------------------------------" << endl<<endl<<endl; cin >> flagOperateInformation; cin.clear(); cout << endl; if (flagOperateInformation) EditMenu(); } } //------------------------主菜单界面函数定义完成-------------------------------------------------------------------------- //------------------------以下是编辑界面函数------------------------------------------------------------------------------ void EditMenu() { int flagContinueOperation = 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:显示系统内全部学生信息" << endl; cout << "按下0:返回上一级." << endl; cout << "--------------------------------------------" << endl << endl; cin >> 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(); break; case 6:cout << "功效暂未实现" << endl; break; case 7:cout << "功效暂未实现" << endl; break; case 8:DisplayAllStudentInformation(); break; case 0:break; } } } //----------------------------------------------------------------------------------------------------------------------- //-----------------------以下是添加信息界面---------------------------------------------------------------------- void AddStudentPersonalInformation(int mode) { using namespace std; int flagAddPersonalInformation; int flagAddGrade; int falgAddOtherGrade; Student student1; studentInformation::studentVector.push_back(student1); int currentObjectPosition; if (mode == 1) currentObjectPosition = studentInformation::studentVector.size() - 1; else currentObjectPosition = studentInformation::flagStudentChoose; //-------------------------------------------------------------------------- cout << "请依次添加基础信息、学习成绩和其它成绩,且不要使用空格" << endl; cout << "-------------------------------------" << endl; cout << " 基础信息 " << endl; cout << "按下1:录入学生基础信息;" << endl << "按下0:跳过基础信息。"<<endl <<"--------------------------------------"<<endl; cin >> flagAddPersonalInformation; cin.clear(); if (flagAddPersonalInformation) { char name[30]; char iD[13]; char address[50]; char phone[14]; cout << "请输入学生姓名:"; cin >> name; cin.clear(); cout << "请输入学生学号:"; cin >> iD; cin.clear(); cout << "请输入学生地址:"; cin >> address; cin.clear(); cout << "请输入学生电话:"; cin >> phone; cin.clear(); studentInformation::studentVector[currentObjectPosition].Student_WritePersonalInformation(iD,name,address,phone); cout << "基础信息输入成功!" << endl << "------------------------------" << endl; } //------------------------------------------------------------------------------------ cout << "-------------------------------------" << endl; cout << " 学习成绩 " << endl; cout << "按下1:录入学生学习成绩;" << endl << "按下0:跳过学习成绩信息。" << endl << "--------------------------------------" << endl; cin >> flagAddGrade; cin.clear(); if (flagAddGrade) { int mathGrade; int physicsGrade; int englishGrade; cout << "请输入数学成绩:"; cin >> mathGrade; cin.clear(); cout << "请输入物理成绩:"; cin >> physicsGrade; cin.clear(); cout << "请输入英语成绩:"; cin >> englishGrade; cin.clear(); studentInformation::studentVector[currentObjectPosition].Student_WriteMaPhEgGrade(mathGrade, physicsGrade, englishGrade); cout << "学习成绩输入成功!" << endl << "------------------------------" << endl; } //--------------------------------------------------------------- cout << "-------------------------------------" << endl; cout << " 其它成绩 " << endl; cout << "按下1:录入学生其它成绩;" << endl << "按下0:跳过其它成绩信息。" << endl << "--------------------------------------" << endl; cin >> flagAddGrade; cin.clear(); if (flagAddGrade) { int peerGrade; int teacherGrade; int ethicGrade; cout << "请输入同学评议成绩:"; cin >> peerGrade; cin.clear(); cout << "请输入老师评议成绩:"; cin >> teacherGrade; cin.clear(); cout << "请输入道德测评成绩成绩:"; cin >> ethicGrade; cin.clear(); studentInformation::studentVector[currentObjectPosition].Student_WriteOtherGrade(peerGrade, teacherGrade, ethicGrade); cout << "其它成绩输入成功!" << endl << "------------------------------" << endl; } RankByGrade(); RankByTotalGrade(); cout << "学生成绩录入成功!" << endl; cout << "-------------------------------------" << endl<<endl; } void SearchStudent() { using namespace std; using namespace studentInformation; char ID[13]; cout << "请输入学生学号:"<<endl; cin >> ID; cin.clear(); cout << "------------------------------"<<endl; int vectorSize = studentVector.size(); int i = 0; while ((i<vectorSize) & (flagStudentFound!=0)) { flagStudentFound = strcmp(ID, studentVector[i].Student_ReadID()); i = i + 1; } if (flagStudentFound == 0) { flagStudentChoose = i - 1; flagStudentFound = 1; cout << "您所查找学生信息以下:"<<endl; studentVector[flagStudentChoose].Student_DisplayInformation(); } else { cout << "未找到该学生" << endl; } } void ModifyStudentInformation() { using namespace std; using namespace studentInformation; int searchVectorSize = studentVector.size(); if (searchVectorSize == 0) { cout << "---------------------------------------" << endl; cout << "目前系统中没有学生信息,请先添加学生信息!" << endl; cout << "---------------------------------------" << endl; } else { SearchStudent(); cout << "您想对该学生信息进行修改吗?" << endl; cout << "按下1:是。" << endl; cout << "按下0:放弃修改。" << endl; cout << "---------------------------------------" << endl; int flagModify; cin >> flagModify; cin.clear(); if ((flagModify == 1)&(flagStudentFound == 0)) { AddStudentPersonalInformation(2); } } } void DeleteStudentInformation() { using namespace std; using namespace studentInformation; int deleteVectorSize = studentVector.size(); if (deleteVectorSize == 0) { cout << "---------------------------------------" << endl; cout << "目前系统中没有学生信息,请先添加学生信息!" << endl; cout << "---------------------------------------" << endl; } else { SearchStudent(); cout << "您想删除该学生信息吗?" << endl; cout << "按下1:删除。" << endl; cout << "按下0:取消。" << endl; cout << "---------------------------------------" << endl; int flagModify; cin >> flagModify; cin.clear(); if ((flagModify == 1)&(flagStudentFound == 0)) { std::vector<Student>::iterator iter = studentVector.begin() + flagStudentChoose; //这么就选中了一个查到元素 studentVector.erase(iter); } cout << "学生信息删除成功!" << endl << "----------------------------------" << endl; } } void DisplayStudentInformation() { using namespace std; using namespace studentInformation; int displayVectorSize = studentVector.size(); if (displayVectorSize == 0) { cout << "---------------------------------------" << endl; cout << "目前系统中没有学生信息,请先添加学生信息!" << endl; cout << "---------------------------------------" << endl; } else { SearchStudent(); if (flagStudentFound == 0) studentVector[flagStudentChoose].Student_DisplayInformation(); } } bool CmpGrade(Student student1, Student student2) { return student1.Student_ReadGrade() > student2.Student_ReadGrade(); //假如student1成绩大于student2,则返回1.这么能实现成绩降序排列 } void RankByGrade() { using namespace studentInformation; using namespace std; int rankVectorSize = studentVector.size(); if (rankVectorSize == 1) { studentVector[0].Student_WriteGradeRank(1); } else { sort(studentVector.begin(), studentVector.end(), CmpGrade); //使用sort必需加上#include algorithm和std。sort前两个参数是指针 int i = 0; for (i = 0; i <= rankVectorSize-1; i++) { if ((i>=1)&&(studentVector[i].Student_ReadGrade() == studentVector[i - 1].Student_ReadGrade())) studentVector[i].Student_WriteGradeRank(studentVector[i - 1].Student_ReadGradeRank()); else studentVector[i].Student_WriteGradeRank(i + 1); } } } bool CmpTotalGrade(Student student1, Student student2) { return student1.Student_ReadTotalGrade() > student2.Student_ReadTotalGrade(); //假如student1成绩大于student2,则返回1.这么能实现成绩降序排列 } void RankByTotalGrade() { using namespace studentInformation; using namespace std; int rankVectorSize = studentVector.size(); if (rankVectorSize == 1) { studentVector[0].Student_WriteTotalGradeRank(1); } else { sort(studentVector.begin(), studentVector.end(), CmpGrade); //使用sort必需加上#include algorithm和std。sort前两个参数是指针 int i = 0; for (i = 0; i <= rankVectorSize - 1; i++) { if ((i >= 1) && (studentVector[i].Student_ReadTotalGrade() == studentVector[i - 1].Student_ReadTotalGrade())) studentVector[i].Student_WriteTotalGradeRank(studentVector[i - 1].Student_ReadTotalGradeRank()); else studentVector[i].Student_WriteTotalGradeRank(i + 1); } } } bool CmpID(Student student1, Student student2) { int result; result = strcmp(student1.Student_ReadID(), student2.Student_ReadID()); if (result<0) return true; else return false; } void RankByID() { using namespace studentInformation; using namespace std; int rankVectorSize = studentVector.size(); sort(studentVector.begin(), studentVector.end(), CmpID); cout << "-----------------------------------" << endl; cout << "排序成功!" << endl; cout << "-----------------------------------" << endl; } void DisplayAllStudentInformation() { using namespace std; using namespace studentInformation; int displayVectorSize = studentVector.size(); int i; if (displayVectorSize == 0) { cout << "------------------------" << endl; cout << "目前系统中没有学生信息!" << endl; cout << "------------------------" << endl; } el展开阅读全文
咨信网温馨提示:1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。




C实现简单的学生信息标准管理系统控制台程序.doc



实名认证













自信AI助手
















微信客服
客服QQ
发送邮件
意见反馈



链接地址:https://www.zixin.com.cn/doc/3030801.html