小学数学测试系统C课程设计报告材料及源程序代码

上传人:汽*** 文档编号:488219002 上传时间:2022-08-09 格式:DOC 页数:33 大小:682.50KB
返回 下载 相关 举报
小学数学测试系统C课程设计报告材料及源程序代码_第1页
第1页 / 共33页
小学数学测试系统C课程设计报告材料及源程序代码_第2页
第2页 / 共33页
小学数学测试系统C课程设计报告材料及源程序代码_第3页
第3页 / 共33页
小学数学测试系统C课程设计报告材料及源程序代码_第4页
第4页 / 共33页
小学数学测试系统C课程设计报告材料及源程序代码_第5页
第5页 / 共33页
点击查看更多>>
资源描述

《小学数学测试系统C课程设计报告材料及源程序代码》由会员分享,可在线阅读,更多相关《小学数学测试系统C课程设计报告材料及源程序代码(33页珍藏版)》请在金锄头文库上搜索。

1、word课 程 设 计 报 告课程名称 C语言课程设计 课题名称 小学数学测试系统 专 业班 级学 号姓 名指导教师2016年 01 月 06 日某某工程学院课 程 设 计 任 务 书课程名称 C语言课程设计 课 题 小学数学测试系统专业班级 学生某某 学 号 指导教师 审 批 任务书下达日期 2015 年 12 月 26 日任务完成日期 2016年 01 月 06 日一、设计内容与设计 课题九:小学数学测试系统。具体内容见附录。2设计要求:1设计正确,方案合理。2界面友好,使用方便。3程序精炼,结构清晰。4上机演示。3设计报告要求:课程设计报告格式如下:1正文的格式:一级标题用3号黑体,二级

2、标题用四号宋体加粗,正文用小四号宋体,行距为22。 2正文的内容:课题的主要功能、课题的功能模块的划分、主要功能的实现、程序调试、总结、附件所有程序的源代码,要求对程序写出必要的注释,课程设计报告需5000字左右不含附件。3课程设计报告装订顺序:封面、任务书、目录、正文、评分、程序清单附件。二、进度安排星期日17周星期一18周星期四18周星期五18周星期日18周14:00-17:0018:00-21:0018:00-21:0018:00-21:00交报告上课时间另外安排。附录:设计课题九:小学数学测试系统一、问题描述:本系统可以用来进展简单的数学测试,并累计成绩,包括用户注册、用户登录、用户删

3、除、题目测试、信息保存等功能。二、功能描述:1、本系统采用结构体数组,每个数据的结构应当包括:用户名、用户密码、共测试题目数、答对题目数。2、系统功能:a. 用户注册:即添加新的用户名、用户密码。b. 用户登录:在进展数学测试之前,需进展登录,假如没有该用户,需进展注册。c. 题目测试:系统自动生成题目(注意题目的合理性,题目结果不能是负数,除数不能是0等),用户给出答案,系统可以自动测试其正确性,同时统计成绩。d. 信息保存: 当注册成功、题目测试完毕后将用户信息与成绩保存到文件。e.退出系统。3、系统使用说明:执行一个具体的功能之后,程序将重新显示功能菜单。系统的功能并不限于上述,可以对其

4、进展扩大完善,如题目的自动生成,可以只是简单的加减乘除运算,也可以生成复杂的四如此混合运算。同时,用户界面友好也很重要,当输入错误答案,需给出提示信息。三、测试数据:用户=3,题目数=5目 录1 系统需求分析62 概要设计63 详细设计104 系统测试155课程设计总结181 系统需求分析 小学生数学测试系统具有随机出题,自动评分,查看答案,错题重做等功能的系统;其属性有:1. 主界面设计,选择各种功能。 2. 系统随机出题,显示算式,含加,减,乘,除四如此运算。 3. 练习时,系统随机出题,键入答案,可显示对错。 4. 测试时,系统自动出题,每题得分,再统计得分。 5. 题的对错信息,错误的

5、给出答案。2 概要设计系统功能模块图:小学数学测试系统学生成绩管理模块 测试模块注册登录模块查看结果模块 错题重做模块提示用户输入某某和学号,如果已经有记录如此将本次登录用户信息追加储存在文件中,如果没有记录,如此创建一个新文件储存:其模块图如如下图所示:注册登录模块提示输入某某学号创建文件记录学生信息判断是否有记录进入开始测试菜单后,开始计时,选择加减乘除四种运算类型,总体来说测试模块可以分为:加法运算、减法运算、乘法运算、除法运算四局部四局部功能相似选择类型后,在选择题数目为5,10,20,50,100,然后再选择难度,这时开始做题题目利用随机函数随机出题,然后判断正误并给出正确率,错误的

6、结果存入一个文件中以备错题重做,将所有做题的结果存入另个文件中以便查看结果;测试模块加法运算减法运算乘法运算除法运算2.3 学生成绩管理模块本模块首先将每次测试同学某某,学号,成绩存入一个文件中,每次测试同学的信息不覆盖之前同学的信息,然后将文件中的信息读取到结构体中进展排序,最后利用结构体将排好序的成绩显示到屏幕上,其模块如下所示图:学生成绩管理模块存入测试学生成绩信息查看排名榜创建学生成绩信息文件排列顺序2.4 查看结果模块利用测试模块存储的结果信息文件进展直接读取,期间用到fgetc函数将文件的信息读取出来,其图如如下图所示:查看结果模块打开存储结果的文件读取文件2.5 错题重做模块 测

7、试模块过程的已将错题和错题的答案分别出入到文件中,直接进展打开存储错题的文件逐个读取错题,这时利用scanf函数输入答题者的答案,最后再打开储存错题答案的文件进展核对正确答案,其模块如如下图所示:错题重做模块读取错题进展重做核对答案打开错题存储文件系统流程图:开始输入某某输入学号主菜单开始测试查看排名错题重做查看结果完毕测试加法减法乘法除法选择题数选择难度测试退出返回保存3 详细设计:用到两个函数Savemessage()和Judge()两个函数,其中 Savemessage()函数用来,保存学生输入信息,将输入学生信息保存到studentmessage.txt和TestResult.txt文

8、件中,保存过程中,先输入到结构体中,再利用fwrite(&s0,sizeof(struct Student),1,fp);语句向文件studentmessage.txt中写入一条记录,即刚刚输入的学生某某和学号;登录完后进入测试界面此时开始计时有语句printf( 请计时输入开始时间(点,分):); scanf(%d,%d,&hourA,&minA);进展输入计时。然后进入测试界面的菜单:3.2 测试功能得实现选测试类型:测试功能菜单分为5个,其中14为选择类型,5返回主菜单;具体实现选择功能有while(choose5) printf( 超出功能X围,请重新选择(1-5):);scanf(%

9、d,&choose);输入15之间的一个数,再用switch(choose) 进展选择对应的功能如上图选择1后进入选题数目:进展选择题目的数目,输入要测试的题目数被限制(5/10/20/50/100)五个数用句while(thnum5&thnum10&thnum20&thnum50&thnum100) printf(超出功能X围,请重新选择(5/10/20/50/100):);scanf(%d,&thnum); 由此语句实现对题目数的限制,但超出X围后如此提示重新输入。在begain()中调用Addition(int number)控制循环语句for(int i=0;inumber;i+) i

10、f(m=1)num1=rand()%n; num2=rand()%n; /产生一位随机数,num1,num2if(m=2)num1=10+rand()%(n-10); /产生两位随机数 num1,num2 num2=10+rand()%(n-10);if(m=3)num1=100+rand()%(n-100); /产生三位随机数 num1,num2 num2=100+rand()%(n-100);printf(%d + %d = ,num1,num2); scanf(%d,&num4);通过控制循环的次数来控制产生题的数目.选难度的实现:利用随机函数rand()%n;中n的不同值产生不同的位数

11、的随机书实现难度的控制,n=10时用语句num1=rand()%n产生一位数;n=100时用语句num1=10+rand()%(n-10)产生二位数;n=1000时用num1=100+rand()%(n-100)产生三位数;具体有语句printf(请选择难度: ); scanf(%d,&m);system(cls); /清屏if(m=1) n=10 ;if(m=2) n=100 ;else if(m=3) n=1000 ;for(int i=0;inumber;i+) if(m=1)num1=rand()%n; num2=rand()%n; if(m=2)num1=10+rand()%(n-1

12、0); num2=10+rand()%(n-10);if(m=3)num1=100+rand()%(n-100); num2=100+rand()%(n-100);实现控制难度,并有rand()%n产生随机数实现随机出题功能。自动评分的实现和数据的储存系统会将输入的答案与正确答案进展逐一比拟,如果正确如此将结果只记录到TestResult.txt中,以便查看结果;如果错误,如此将错误题正确结果记录到failedResult.txt中,以便错题重做,将错误题正确结果记录到rightResult.txt中,TestResult.txt中,以便核对错题答案,在此过程中系统会自动统计正确结果个数和错误

13、个数,从而利用average=float(count1)/float(number);自动得到分数。具体程序如下:if(num3=num4) fprintf(fp,%d + %d =%d%dn,num1,num2,num4,num3);count1+;else fprintf(fp,%d + %d =%d%dn,num1,num2,num4,num3);fprintf(fp2,%d + %d =n,num1,num2,num4,num3);fprintf(fp3,%d + %d = %d n,num1,num2,num3); average=float(count1)/float(number);fprintf(fp,正确 %d 道,错误 %d 道,正确率为:%fnn,count1,count2,average);A=A+average*100;/总分

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 医学/心理学 > 基础医学

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号