资源预览内容
第1页 / 共30页
第2页 / 共30页
第3页 / 共30页
第4页 / 共30页
第5页 / 共30页
第6页 / 共30页
第7页 / 共30页
第8页 / 共30页
第9页 / 共30页
第10页 / 共30页
亲,该文档总共30页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述
学校代码: 学 号: Hefei University 计算机实训报告 BACHELOR DISSERTATION 实训题目: 学生成绩管理系统 学位类别: 工学学士 摘要利用c+语言编写学习成绩管理系统,通过一个学期的学习,了解c+的用处几前景,并能做出一个小型系统,通过指针,数组,字符串,结构体,文件之间的联系与运用,建立一个学生成绩管理系统,了解并运用c+语法,算法,结构编程的思想,与c+面向对象与面向过程的思想与算法方式,通过这个系统可以做个总体概述。关键字:结构体,数组,指针,循环学生成绩管理系统一、 系统功能1. 成绩录入:借助循环输入结构体中各个成员。2. 成绩显示:借助循环输出所有录入的数据后面几个功能都可以调用。3. 数据删除:通过结构体成员的推移实现数据的删除。4. 分数排序:通过选择法对分数进行排序,可以让使用者清晰的看到成绩的优劣。5. 数据保存:通过文件读写函数建立txt文件,用以保存数据,备用,位后面的调用做准备。6. 数据调用:通过txt文件的保存,利用读写函数进行调用,为使用者节省了大量时间。7. 成绩查询:通过输入学号或者考生姓名进行对所有成绩的检索,方便查询。8. 成绩修改:借助文件指针对以保存的数据进行修改,修改姓名或分数。9. 数据增加:可能有学生补考或者缺考进行补录。成绩管理系统排序录入显示删除增加调用保存查询修改二、 界面的设计1.主界面如下图一。图一2.分数显示界面如图二图二3.分数排序界面如图三图三4.分数查询界面如图四图四5.查询界面如图五图五本系统的基本界面如上,本着简单明了的思想设计界面,清晰条理性强,没有用太多花哨的东西。三、模型设计利用专业绘图软件Microsoft Office Visio 2003制作如下图六,小组分工如图七。图六人物角色模块提供时间周建建制作int1.cpp,主模块,协同做报告(模型图)int1.cpp,intmain.cpp6-11左博伟制作int1.cpp,协同做报告(表格)int1.cpp,int1.h6-11杨柳制作int2.cpp,协同做报告(格式)int2.cpp6-11毛文云制作in1.cpp,协同做报告(文本)int2.h6-11图七四、系统实现模块一:(一)选择功能号的实现1. 模块功能:通过输入序号来进行功能的实现利用swtich循环。2. 输入输出:choicechoicechoice 形式:int choice()归属:int1.cpp3. 解决思路:通过输入choice返回choice,利用switch对于choice函数的功能的实现。4. 算法步骤:第一步:输入choice;第二步:功能号的列些;第三步:返回choice;5. 模块代码:int chioce()int chioce;cout + 欢迎进入本系统 +endl;cout1.数据录入 tt2.数据显示 endl; cout3.数据删除 tt4.数据排序 endl;cout5.数据保存 tt6.数据调用 endl;cout7.分数查询 tt8.信息修改 endl;cout9.数据添加 tt0.退出系统 endl;cout请输入序号(1.2.3.4.5.6.7.8.9)chioce;return chioce;(2) 录入数据的实现1. 模块功能:通过本函数实现输入数据。2. 输入输出:shuru &scorenall &num 40形式:void shuru(score*scoreall,int n,int *num)归属:int1.cpp3. 解决思路:通过指针实现地址的传递,利用while循环进行数据的输入。4. 算法步骤:第一步:输入一个字符;第二步:利用while循环判断字符是否正确;第三步:输入数据,返回选择;5. 模块代码:void shuru(score*scoreall,int n,int *num)/数据的录入if(*num=n)cout对不起人数已满endl;elsecoutchoice;while(choice=y)cout请输入数据(先学号,姓名再分数)scoreall*num.noscoreall*num.namescoreall*num.fscore;*num=*num+1;coutchoice;(3) 显示数据1. 模块功能:显示已经录入的数据。2. 输入输出:xianshi&scoreall&num40形式:void xianshi(score*scoreall,int n,int *num)归属:int1.cpp3. 解决思路:利用for循环输出。4. 算法步骤:利用for循环,结构体输出。5. 模块代码:void xianshi(score*scoreall,int n,int *num)/显示代码cout*学生分数显示如下*endl;coutt序号t学号t姓名t成绩endl;for(int i=0;i*num;i+) coutti+1tscorealli.notscorealli.nametscorealli.fscoreendl;cout*学生分数显示结束*endl;(4) 删除数据1. 模块功能:输入要删除的学号,将这条记录删除。2. 输入输出: &scoreallshanchu &num 40形式:void shanchu(score*scoreall,int n,int*num)归属:int1.cpp3. 解决思路:利用for循环查找,利用for循环进行删除。4. 算法步骤:第一步:输入要删除的序号;第二步:利用for循环查找该序号;第三步:利用for循环把整个记录前移一条记录删除该条记录;5. 模块代码:void shanchu(score*scoreall,int n,int*num)/删除代码cout请输入要删除的序号a;for(int b=0;b*num;b+)/找到删除的序号if(a=scoreallb.no)break;for(;b*num;b+)scoreallb=scoreallb+1;/利用循环整体向前挪一位*num=*num-1;/注意局部变量减一(5) 分数排序1. 模块功能:对于输入的数据进行排序。2. 输入输出: &scoreallpaixu &num40形式:void paixu(score*scoreall,int n,int*num)归属:int1.cpp3. 解决思路:利用冒泡法进行数据的排序。4. 算法步骤:第一步:利用二重循环第一重控制轮数,第二轮控制次数;第二步:定义一个结构体临时变量;第三步:利用for循环显示。5. 模块代码:void paixu(score*scoreall,int n,int*num)/排序代码for(int i=0;i=*num-2;i+)/利用选择法控制轮数,控制次数for(int j=i+1;j=*num-1;j+)if(scorealli.fscorescoreallj.fscore) score t;t=scorealli;scorealli=scoreallj;scoreallj=t;cout*学生分数排序如下*endl;coutt序号t学号t姓名t成绩endl;for(int k=0;k*num;k+) couttk+1tscoreallk.notscoreallk.nametscoreallk.fscoreendl;cout*学生分数显示结束*endl;(6) 保存数据1. 模块功能:保存已输入的数据到txt文档中。2. 输入输出:savescoretxt&scoreall&num40形式:void savescoretxt(score*scoreall,int n,int*num)归属:int1.cpp3. 解决思路:利用文件指针while判断循环进行保存。4. 算法步骤:第一步:定义文件指针;第二步:利用while循环;第三步:利用fprintf函数保存数据。5. 模块代码:void savescoretxt(score*scoreall,int n,int*n
网站客服QQ:2055934822
金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号