




已阅读5页,还剩9页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级语言课程设计实验项目:学生成绩管理系统学 号: 姓 名: 王斌 专 业: 网络工程 班 级: 10-5 指导教师: 徐素锦 成 绩: 2011年 12月 22日目录1、系统分析32、系统设计42.1 数据结构设计42.2 各功能模块设计62.2.1 学生记录录入模块设计32.2.2 学生信息管理模块设计62.2.3 学生成绩管理模块设计63、系统实现73.1 学生记录录入模块的实现74、总结141、 系统分析1.1 系统分析结构图:学生成绩管理系统查询各种学生信息输出各种学生信息学生成绩管理学生信息修改学生信息删除学生信息添加学生信息显示学生信息管理从键盘录入学生信息文件导入学生信息学生成绩录入1.2 系统功能分析:学生成绩录入模块中:管理人员能通过手动输入学生信息,同时可以通过文档流导入大量学生信息。学生信息管理模块中:管理人员能查看、添加、删除、修改学生信息。学生成绩管理模块中:管理人员能查看所需要的各种学生信息,以及查询某个学生或某个班级的学生成绩。权限:全部可用2、 系统设计2.1 数据结构设计2.1.1定义课程分数类Scoreclass Score/课程成绩类private: char name40;/课程名 int credit;/学分 float score;/成绩public:void setInfo(char * courseName,int cre,float s);char * getName();int getCredit();float getScore();void print();2.1.2定义Person类class Person/Person类protected:char name20;int age;char sex;public:void setInfo(char * pName,int pAge,char pSex);void print()coutt姓名:namet性别:sexendl;2.1.3定义学生类型Studentclass Student :public Person/学生类Student继承自Person类private:char stuId10;/学号char className10;/班级float total;/总成绩float ave;/平均成绩int allCredi;/总学分int courseNum;/课程数bool isLess60;/60分以下课程public:vector score;/学生成绩void setInfo(char * sID,char * sName,int age,char sex,char *clas);/设置学生信息void addScore(Score & one); /添加课程成绩信息void print(); /输出学生信息void printLess60(); /输出60分以下的课程char * getStuId();char * getClassName();vector getScore();float getTotal();float getAve();int getAllCredi();int getCourseNum();bool getIsLess60();char * getName();2.1.4定义班级类Classclass Class/班级类private:char className10;/班级名int num;/班级人数public:vectorstu;/学生void addStu(Student & one); /向学生向量stu中添加学生void printAll(); /输出该班级的所有学生信息char * getClassName();int getNum();vector getStu();vector setStu();void setClassName(char * cName);bool delSut(char * id) ;/删除学生信息void sortById();/按学号排序void sortByScore(); /按分数查找;2.1.5定义全局变量int stuNum;/全局变量stuNum存放当前学生人数vector allClass;/全局向量allClass存放当前所有班级信息2.2 各功能模块设计2.2.1 学生记录录入模块设计1从键盘输入学生各种信息,学号,姓名,年龄,性别,班级,成绩:课程名称,学分,成绩。遍历全局变量,把学生对象添加到相应的班级中,不存在班级,新建班级对象,把该学生添加进去,2从文件中录入学生信息,运用文件流从文件读取相应信息2.2.2 学生信息管理功能模块设计1学生信息显示,遍历allClass,再遍历相应班级里的学生。输出学生信息,2学生信息添加,调用从键盘输入信息的方法。3删除学生信息,遍历全部学生信息,查找该学生,找到了则删除该学生对象,找不到返回“未找到该学生”4学生修改信息,遍历全部学生,查找指定,找到该学生,修改学生各种信息,然后重新赋值给该对象。2.2.3 学生成绩管理功能模块设计1按学号排大小:遍历allClass先确定班级,再遍历该班级的每个学生,根据每个学生的学号,用冒泡方法排序。2按总成绩高到低排列:遍历allClass,先确定班级,然后遍历该班级的每个学生,根据每个学生的总成绩,用冒泡方法排序。3输出所有60分一下的学生:遍历全部学生成绩。假如有低于60分的课程,则输出该学生信息。4输出所有80分以上的学生:遍历全部学生成绩。假如有高于80分的课程,则输出该学生信息。5查询指定学生的信息:遍历全部学生信息,根据学号查找该同学,存在,输出该学生信息,不存在,输出“不存在该学生”6查找指定姓名的学生信息:遍历全部学生信息,根据学生姓名查找该同学,存在,输出该学生信息,不存在,输出“不存在该学生”7查询指定班级的学生信息:遍历全部班级,输出每个班级全部学生信息,3、系统实现3.1 学生记录录入模块的实现3.1.1键盘录入学生信息void readFormKeyboard()/键入学生信息int n;cout请输入需要录入的学生人数:n;charstuId10;charname40;intage;charsex;charclassName10;charcourseName40;intcredit;floatscore;int c;system(cls);int i=0;int b=0;coutttt录入学生信息endl;while(n)i+;cout请依次输入第i个学生的学号,姓名,年龄,性别,班级stuIdnameagesexclassName;Student stu;stu.setInfo(stuId,name,age,sex,className);dob+;cout请依次输入第i个学生的第b个课程名,学分,成绩#号结束courseNamecreditscore;Score oneScore;oneScore.setInfo(courseName,credit,score);stu.addScore(oneScore);c=getchar();while(c!=#);if(getClass(className)=NULL)Class c1;c1.setClassName(className);c1.addStu(stu);allClass.push_back(c1);elseClass c2=*getClass(className);c2.addStu(stu);stuNum+;n-;system(pause);3.1.2 文件导入学生信息void readFromFile()/导入文件M:char stid10;char stuName40;float Age;char sex;char classname10;char kechen40;int credit;float soc;int num;int courceNum;char fileName40;float total;string str;coutfileName;ifstream fin(fileName);if(!fin)/文件不存在cout不存在文件!num) stuNum+=num;for(int i=0;istidstuNameAgesexclassname;stu.setInfo(stid,stuName,Age,sex,classname);getline(fin,str);istringstream sin2(str); /定义字符串流对象sin2sin2courceNum;/getline(fin,str);for(int j=0;jkechencreditsoc;Score oneScore1;oneScore1.setInfo(kechen,credit,soc);total+=soc;stu.addScore(oneScore1);/getline(fin,str);if(getClass(classname)=NULL)Class aClassname;aClassname.setclassname(classname);stu.settotal(total);total=0;aClassname.addStu(stu);allClass.push_back(aClassname);else Class oneclass =*getClass(classname); stu.settotal(total);total=0; oneclass.addStu(stu); *getClass(classname)=oneclass;-3.2学生信息管理功能模块的实现3.2.1 学生信息显示void printAll()/输出所有信息system(cls);for(int i=0;iallClass.size();i+)Class Cla=allClassi;Cla.printAll();system(pause);void Class:printAll()for(int i=0;istu.size();i+)Student st1=stui;st1.print();3.2.2 学生信息添加同键入学生信息3.2.3 学生信息删除void delStu()/删除指定学生信息char * c=0;cout请输入学号:c;bool isFind=false;for(int i=0;iallClass.size();i+)bool check=allClassi.delSut(c);if(check)isFind=true;break;elseisFind=false;if(isFind)cout删除信息成功!endl;elsecout未找到学生!endl;system(pause);bool Class:delSut(char * id)/删除学生信息bool isFind;isFind=false;for(int i=0;istu.size();i+)if(strcmp(stui.getStuId(),id)=0)stu.erase(&stui);return isFind=true;return isFind;3.2.4 学生信息修改bool Class:reviseStu(char * id)/修改信息char sid10;char name40;int age;char sex;char Classname10;string str;int num;char aid10;long nend;for(int t=0;tallClass.size();t+)/遍历各个班级Class ccls=allClasst;for(int y=0;yccls.stu.size();y+)Student cst=ccls.stuy;if(strcmp(cst.getStuId(),id)=0)/比较字符串是否相同cout请输入用户的新信息;coutsid;coutname;coutage;coutsex;coutClassname;Student ostu;ostu.setInfo(sid,name,age,sex,Classname);/重新设置对象属性;ccls.stuy=ostu;allClasst.stuy=ostu;/赋值return true;return false;3. 3.学生成绩管理功能模块实现3.3.1 按学号从小到大排序void sortById()/按学号排序cout按学号从小到大排序后结果:endl;for(int o=0;oallClass.size();o+)cout这是allClasso.getclassName()班endl;allClasso.sortById();void Class:sortById()/按学号排序char* s100=ABV;char * h=abcdfghi;Student astu;for(int i=0;istu.size();i+)si=stui.getStuId();for(int i=0;istu.size();i+)for(int j=0;jstu.size()-i-1;j+)if( stuj.getStuId()stuj+1.getStuId()h=sj;sj=sj+1;sj+1=h; couts0ns1endl;3.3.2 按成绩从高到低排序void sortByScore()/按成绩排序Class class2;class2.sortByScore();void Class:sortB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公交车火灾应急预案(3篇)
- 2025年软件水平技术员试题及答案深度分析
- 行政管理实际案例试题及答案
- 风险识别对公司战略修订的支持作用试题及答案
- 遗嘱与继承法的规定试题及答案
- 网络管理员考试多样化试题及答案
- 软件设计师考试灵活应变能力的提升与实践试题及答案
- 2025二级VB考试要点试题分析
- 软硬件协同设计试题及答案
- 《2025续签劳动合同 范文》
- 设备合同三方付款协议
- 《家禽的繁殖》课件
- 2025届浙江省六校联盟高三第五次模拟考试英语试卷含答案
- 乡镇禁毒专干培训课件
- 护理分级标准2023版(新旧标准对比详解)解读
- 建筑施工企业售后服务保障方案
- ××企业档案分类方案
- 《测绘生产成本费用定额》(2025版)
- 顺丰talentq测试题及答案
- 2025年科学实验小试题及答案
- 2025年思政考试试题及答案职高
评论
0/150
提交评论