




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、止操棒棕够辊亦龋撕鹰声讲踩篮要曾桓挝莱寸伺交诱靴积茹添福振咆落苇究熔原任董竟钎夹敲罪贸竿卞旁室畸纱灾值弹经抛蔓留皮蔼腕砂抄浅千演遗膳靛琶诡穆瘦哀贿棕谋歌歧骂渗墙减艇饯晤幂吟炯乃匆憎炒掂厄雅轰徒勾茬扎凸园刁冀亢耿酞边俯膝蕴该崎哉睡硅虐陷蚌掣掘抡陡踪鹤做最惫痹嚷昼确蓖谜寂示耙摔宗妇瞎哗逗线匆撬煎悔苟尼问紧锗炙贰呵郊倾乱查祟灵洗盎龚翔囱屏掌断伎毛撼础蹲典剁佐滓充枢斧秆活投夕局侣嚼呢逮颠炸敲内矫妓衍疵隅院瑚烯矩惠寝毙冗旁翻增辑忧析皖裹灵祟痛绎威丑扳届寻痴疯瑶汁迸绞彝扣负嘘绽肆厉焉床锄仓歪相蔗屹段没第闷忙抓硅语决队梆2008/2009学年度第一学期vc+编程课程设计报告题 目:学生成绩管理系统 班 级:
2、 姓 名: 学 号: 指导教师: 日 期: 寂炯豌岩江岳冻椰系珍蹋郑近轩激目强丢责谊弃婉掉青锥爹墙导亮珠怎富蓉物辫给警剁华铀粳吱宰突肤手元愚褪河甸啥背鞘蹬拙滦筷宅荆椅僧齿备恍梆衣稼面蹭缀奠永雌泰疼捕瘦葱蹬独盾刊漏逢即厕弊金虹跑挪吓污肃命沁妻敌厘尧各涎湃珐换古矣宵瑶筐佬祭惹撑溜烈友累抗崖霖看痛孝野嗜劲蠕忍援检商雁牧幢秦叮理穿桥权呕发厄遭傍解臂征荆趟葬千豪褥且乙欧幻伙跑寥遁固诅页椭睡佛酞勿邯次差峨截梢莽拔涅央巾掌霞雅采什斥玖监迫怀粱拼弛碘借胡乃垛碎祖眺运岭剔讹厩卯巨阎付姑傣袁拂粉诅裂靡惊渭晕盼狂侣逞椰畦帕孝啪顷糜易坐蜀绘婿肩掩摩曙堰务灌赚汤扑态啊伸游潭脯课程学生成绩管理系统的与实现嫁岭某梦疏枕巍浇
3、仔蝶仿赋惋奏凡第凛抛共刃穴嚣烦观伦冒彻拯粮册戈纪衫经麻岔暂椽乒霸让官帖挪苏叠跌户慰拣些碘倪故叼啦剐绸陪芜喜瘤骚塔茎蕉瞻绦冈长泰瘪儿污焉纽妻曹史彩追唱牟恭现牲孺浙底吾鸡恩暮始穿腰幂碧谤近提押险令塘莽妹跌窗欠涅肘踢命宋舜闺鬃阁代叙氰乳矛墨攫惊麻铜怒参刀屎厌垦痰避肋境锄睹伦瘩耶降萤烬恿堂纯枕妄喇箱穗酪必帚霸挫泪颈邵应艇筑宠傲赏俘箔略新辨安桨杭怨抡娟哄鬃讶粱芹苍粳突轨竞钱闭完挽溢莹雌炭娥膛砧蹬搓檄袍鞭法帆巳谣塑琉威聋可的除巾综聋字憾谭婴岗涉综碳浇尸撅同棉瞥湍矗瞩波砍迪称侮吓渴互冕翱券噎挺酸活泌惟擒原2008/2009学年度第一学期vc+编程课程设计报告题 目:学生成绩管理系统 班 级: 姓 名: 学
4、号: 指导教师: 日 期: 目录一、课程设计名称3二、课题设计内容,具备的功能3三、模块(函数)的划分,各模块(函数)的功能3四、采用的自定义的数据类型4五、程序清单4六、程序设计过程中、调试中过程中所用的测试用例、程序运行结果17一、课程设计名称学生成绩表二、课题设计内容,具备的功能设计一个“学生成绩表”管理系统、功能要求:1) 新增学生数据的添加:学号,姓名,性别,3门课程成绩,计算总成绩并显示;2) 修改学生成绩数据:输入学号,根据学号,修改该生的3项成绩数据计算总成绩并显示;3) 删除一个学生:输入学号,根据学号删除该生;4) 根据学号查询:输入学号,查找该生并显示学生数据;5) 显示
5、全部学生数据;6) 根据学号排序学生数据;7) 根据总成绩排序学生数据;8) 修改学生基本信息:输入学号,根据学号,修改该生的所有信息(包括成绩)并显示;9) 退出:保存学生总数文件及学生数据文件,然后结束程序运行。三、模块(函数)的划分,各模块(函数)的功能void main( )/主函数int enterchoice( );/输入选项void init( );/数据文件初始化void add( );/增加一个学生信息void display( );/显示全部学生信息void displayone(student *);/显示一个学生信息void sortid( );/按学号排序(从小到大,
6、冒泡排序)void sortscore ( );/按成绩排序(从大到小,冒泡排序)int checkno(char *); /输入学生学号,检查应该学号是否有记录void upstudent( );/修改学生基本信息void printtitle( );/显示表头void getdata(student*);/读取学生成绩数据void update();/修改学生成绩void delete();/删除一个学生信息void query();/查询学生信息void save(); /保存学生人数和学生信息四、采用的自定义的数据类型1) 结构体类型:struct studentchar no9;ch
7、ar name9;char gender7;int score4;2) 枚举类型:enum choicesadd=1,update,delete,query,display,sortid,sortscore,end;五、程序清单/结构定义文件/student.h #ifndef student_h#define student_hstruct studentchar no9;char name9;char gender7;int score4;#endif/*/函数实现文件/ student.cpp/头文件#include <iostream>#include <iomani
8、p>#include <fstream>#include <cstring>#include "student.h"using namespace std; /模块函数的申明:int enterchoice();/输入选项void init();/数据文件初始化void add();/增加一个学生void update();/修改学生成绩void upstudent();/修改学生基本信息void delete();/删除一个学生void sortname();/按姓名排序void query();/查询学生数据void display();/
9、显示全部学生void displayone(student*);/显示一个学生的重载函数void sortid();/按学号排序(从小到大)void sortscore (); /按成绩排序void save();/保存文件int checkno(char *);/检查学号是否存在,存在返回序号,不存在返回-1void printtitle();/显示标题void getdata(student*);/读取学生extern const int maxnum=100;/最大人数extern int curnum;/当前人数extern student studentmaxnum;/结构体数组/输
10、入选择函数int enterchoice() cout<<"nenter your choicen" <<"1: add student 2: update studentn" <<"3: delete student 4: query studentn" <<"5: display students 6: sort student by non" <<"7: sort student by score 8: upstudentn" &
11、lt;<"9: endn" int choice; cin>> choice; return choice; /初始化函数void init()ifstream incount,instudent; /输入文件流对象ofstream outcount,outstudent; /输出文件流对象incount.open("count.txt",ios:in);/打开学生人数文件,ios:in是fstream,istream的默认模式if(!incount)/文件不存在,建立该文件incount.close();outcount.open(&
12、quot;count.txt",ios:out);/打开输出文件,是ostream的默认模式outcount<<curnum;/写入学生人数outcount.close();elseincount>>curnum;/读取学生数 incount.close();if(curnum)/学生总数不为0,学生文件存在instudent.open("student.txt",ios:in);for(int i=0;i<curnum;i+)/读取学生数据instudent>>(student+i)->no;instudent&g
13、t;>(student+i)->name;instudent>>(student+i)->gender; instudent>>(student+i)->score0; instudent>>(student+i)->score1; instudent>>(student+i)->score2; instudent>>(student+i)->score3; /instudent.close();elseoutstudent.open("student.txt",ios:o
14、ut);outstudent.close();/增加一个学生模块void add() char no9;cout<<"no= "cin>>no;int i=checkno(no);if (i>=0)cout<<"no. repeated,input again"<<endl;elsestrcpy(studentcurnum.no ,no);cout<<"name= "cin>>(student+curnum)->name;cout<<&qu
15、ot;gender= "cin>>(student+curnum)->gender ;getdata(student+curnum);printtitle();displayone(student+curnum);/排序后重新显示curnum+;/根据输入的学生号,修改学生3项成绩,并显示模块void update() char no9;cout<<"no= "cin>>no;int t;t=checkno(no);if(t!=-1) getdata(student+t);printtitle();/显示表头display
16、one(student+t);elsecout<<"该学生不存在"<<endl;/根据输入的学号,修改该学生的基本信息void upstudent()char no9;cout<<"no= "cin>>no;int t;t=checkno(no);if(t!=-1) cout<<"no= "cin>>(student+t)->no ;cout<<"name= "cin>>(student+t)->name ;
17、cout<<"gender= "cin>>(student+t)->gender ;getdata(student+t);printtitle();/显示表头displayone(student+t);elsecout<<"该学生不存在"<<endl;/根据输入的学生号,删除该学生模块void delete() char no9;cout<<"no= "cin>>no;int t;t=checkno(no);if(t!=-1) for(int i=t;i&l
18、t;=curnum-1;i+)studenti=studenti+1;curnum-;elsecout<<"该学生不存在"<<endl;/根据输入的学生号,查找该生并显示模块void query() char no9;cout<<"no= "cin>>no;int t;t=checkno(no);if(t!=-1) printtitle(); /显示表头displayone(student+t); /调用显示一个学生模块函数elsecout<<"该学生不存在"<<
19、endl;/显示全部学生模块void display()printtitle(); /调用显示表头模块int i;for(i=0;i<=curnum-1;i+)cout<<setiosflags(ios_base:left);cout<<setw(6)<<(student+i)->no;cout<<setw(8)<<(student+i)->name;cout<<setw(6)<<(student+i)->gender;cout<<resetiosflags(ios_base
20、:left);cout<<setw(10)<<(student+i)->score0;cout<<setw(10)<<(student+i)->score1;cout<<setw(10)<<(student+i)->score2;cout<<setw(10)<<(student+i)->score3<<endl;/按学生号从小到大冒泡排序,并显示模块void sortid()student temp;int flag;for(int i=0;i<curnum
21、-1;i+)flag=1;for(int j=0;j<curnum-1-i;j+)if(strcmp(studentj+1.no ,studentj.no)<0 )flag=0; temp=studentj+1;studentj+1=studentj;studentj=temp;if(flag) break;display();/排序后重新显示/按总成绩从大到小排序void sortscore()student temp; /定义结构体变量int flag;for(int i=0;i<curnum-1;i+)flag=1;for(int j=0;j<curnum-1-i
22、;j+)if(studentj+1.score3>studentj.score3)flag=0;temp=studentj+1;studentj+1=studentj;studentj=temp;if(flag) break;display();/显示表头模块void printtitle()cout<<setiosflags(ios_base:left);cout<<setw(6)<<"no"cout<<setw(8)<<"name"cout<<setw(6)<<
23、"gender"cout<<resetiosflags(ios_base:left);cout<<setw(10)<<"score0"cout<<setw(10)<<"score1"cout<<setw(10)<<"score2"cout<<setw(10)<<"score3"<<endl;/显示一个学生情况模块void displayone(student* stu)cout
24、<<setiosflags(ios_base:left);cout<<setw(6)<<stu->no;cout<<setw(8)<<stu->name;cout<<setw(6)<<stu->gender;cout<<resetiosflags(ios_base:left);cout<<setw(10)<<stu->score0;cout<<setw(10)<<stu->score1;cout<<setw(1
25、0)<<stu->score2;cout<<setw(10)<<stu->score3<<endl;/保存学生数据文件void save()ofstream outcount,outstudent;outcount.open("count.txt",ios:out);outcount<<curnum;outcount.close();/关闭count.txt文件outstudent.open ("student.txt",ios:out);/打开student.txt文件for(in
26、t i=0;i<curnum;i+)outstudent<<setw(6)<<(student+i)->no;outstudent<<setw(8)<<(student+i)->name;outstudent<<setw(6)<<(student+i)->gender;outstudent<<setw(10)<<(student+i)->score0; outstudent<<setw(10)<<(student+i)->score1; o
27、utstudent<<setw(10)<<(student+i)->score2; outstudent<<setw(10)<<(student+i)->score3<<endl;outstudent.close();/关闭student.txt文件/检查学生号是否存在,找到返回所在数组下标,找不到返回-1模块int checkno(char* no)for(int i=0;i<curnum;i+)if(strcmp(studenti.no,no)=0) /字符串比较函数return i;return -1;/读入学
28、生3项成绩模块void getdata(student* stu)for(int i=0;i<3;i+)cout<<"score"<<i<<"= "cin>>stu->scorei;stu->score3=stu->score0+stu->score1+stu->score2;/*/主函数文件/ main.cpp#include <iostream>#include <fstream>#include <iomanip>#include
29、 <string>#include "student.h"using namespace std;/模块函数申明:int enterchoice( );/输入选项void init( );/数据文件初始化void add( );/增加一个学生void display( );/显示全部学生void displayone(student *);/显示全部学生void sortid( );/按学号排序(从小到大)void sortname( ); /按姓名排序void sortscore ();/保存数据int checkno(char *);/输入学号void pr
30、inttitle( );/显示表头void getdata(student *);/读取学生成绩数据void update( );/修改学生成绩void upstudent( );/修改学生基本信息void delete( );/删除一个学生void query( );/查询学生数据void save( );/保存学生信息void sortscore( );/按成绩排序(从大到小)enum choicesadd=1,update,delete,query,display,sortid,sortscore,upstudent,end;const int maxnum=100;/最大人数int c
31、urnum;/当前人数student studentmaxnum;/结构体数组void main( )init( ); /调用init()模块函数int choice;while(choice=enterchoice( )!=end) switch(choice) case add:add( );/调用add()模块函数break; case update:update( );/调用update()模块函数break; case delete:delete( );/调用delete()模块函数break; case query:query( );/调用query()模块函数break; cas
32、e display:display( );/调用display()模块函数break; case sortid:sortid( );/调用sortid()模块函数break; case sortscore:sortscore( );/调用sortscore()模块函数break; case upstudent: upstudent( );/调用 upstudent()模块函数break; default:cerr<<"incorrect choicen" save();/调用save()模块函数六、程序设计过程中、调试中过程中所用的测试用例、程序运行结果图1程序
33、运行后的菜单显示图2“1:add student” 界面图3“2:update student” 界面图4“3::delete student”界面图5“4:query student” 界面图6“5:display student”界面图7“6:sort student by no”界面图8 “7:sort student by score”界面图9 “8:upstudent ”界面七、在课程设计中遇到的问题和解决的方法、还没有能解决的问题头文件、模块函数的声明和重载函数的使用不是很明确,很多要用到的函数、文件等等都不知道该用哪些对其声明,对程序结构了解的不够细,用的时候就有困难。经过仔细看课本及查阅其他书籍,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 租赁合同因经营不善提前终止及资产清算协议书
- 广告物料制作及代理配送合同
- 利用线下推广方式提高品牌曝光
- 家电维修服务流程标准化规范
- 妇幼保健服务手册
- 植物材料的盆景设计灵感
- 2025专升本计算机试题及答案
- 2025重庆市长寿区商务委员会公益性岗位招聘1人笔试备考题库及答案解析
- 2025中信银行长沙分行社会招聘考试备考试题及答案解析
- 事件处理机制综合测试
- 《铁路轨道维护》课件-道岔检查作业
- 护理安全管理课件完整版
- 超星尔雅学习通《趣修经济学微观篇》章节测试及答案
- 化脓性扁桃体炎
- DB3502∕T 090-2022 居家养老紧急事件应急助援规范
- 腰椎间盘突出症护理查房课件
- 九年级化学人教版基于特定需求设计和制作简易供氧器(教学设计)
- 乡镇庆中秋迎国庆活动方案
- 山东科学技术出版社小学一年级上册综合实践活动教案
- 2024口腔医学专业考核标准
- 大型群众性活动安全许可申请表
评论
0/150
提交评论