- 1、本文档共20页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
小学数学测试系统C语言设计精选
目 录
一.设计要求 …………………2
二.设计目的 …………………2
三.设计的具体实现
1.系统概述:……………………………3
2.总体设计:……………………………3
3.详细设计: ……………………………8
4.软件程序设计和调试 ………………17
四.结论与展望 ………………18
五.心得体会及建议 …………18
六.附录 ………………………19
七.参考文献 …………………19
小学数学学习系统设计报告
设计要求
小学生数学学习系统
具有随机出题、自动评分、查看正确答案、错题重做等功能的测试系统
具体要求:
1、可选择:加、减、乘、除四种测试,
2、可设置测试题数,10,20,50,100;
3、可设置随机出题难度:即数据大小范围,比如:1位,2位,3位
4、可以记录测试者的姓名,时间,难度及测试类型,成绩,题数,运算时间
用菜单选择
1、开始测试:-选测试类型-选题数-选难度-开始测试
2、:、查看错题:
、退出具有随机出题、自动评分、错题重做、查看等功能出题评分、错题重做Microsoft Visual C++ 6.0环境下进行开发。
(二)系统模块结构图
依据功能得不同,小学学习系统可以分为五个模块:注册登录模块、测试模块、学生成绩管理模块、查看结果,错题重做模块。系统模块结构图如下图所示:
(三)模块设计
1. 注册登录模块
提示用户输入姓名和学号,如果已经有记录则将本次登录用户信息追加储存在文件中,如果没有记录,则创建一个新文件储存:其模块图如下图所示:
2.测试模块
进入开始测试菜单后,开始计时,选择加减乘除四种运算类型,总体来说测试模块可以分为:加法运算、减法运算、乘法运算、除法运算四部分
四部分功能相似选择类型后,在选择题数目为(5,10,20,50,100
3.学生成绩管理模块
本模块首先将每次测试同学姓名,学号,成绩存入一个文件中,每次测试同学的信息不覆盖之前同学的信息,然后将文件中的信息读取到结构体中进行排序,最后利用结构体将排好序的成绩显示到屏幕上,其模块如下所示图:
4.查看结果模块
利用测试模块存储的结果信息文件进行直接读取,期间用到fgetc函数将文件的信息读取出来,其图如下图所示:
5.错题重做模块
测试模块过程的已将错题和错题的答案分别出入到文件中,直接进行打开存储错题的文件逐个读取错题,这时利用scanf函数输入答题者的答案,最后再打开储存错题答案的文件进行核对正确答案,其模块如下图所示:
(四)系统流程图:
3.详细设计
1.登录功能得具体实现:
此界面为登录界面,用到两个函数Savemessage()和Judge()两个函数,其中 Savemessage()函数用来,保存学生输入信息,将输入学生信息保存到studentmessage.txt和TestResult.txt文件中,保存过程中,先输入到结构体中,再利用fwrite(s[0],sizeof(struct Student),1,fp);语句向文件studentmessage.txt中写入一条记录,即刚刚输入的学生姓名和学号;
利用fprintf(fp1,姓名:%s\n,s[0].name);fprintf(fp1, 学号:%s\n,s[0].num); 向文件TestResult.txt中写入刚刚输入的学生信息
具体源程序为:
void Savemessage() //保存学生输入信息的函数
{ FILE *fp,*fp1;//定义文件指针,//以下判断文件打开与否 ,a方式打开则可向文件尾写数据
if((fp=fopen(studentmessage.txt,wb+))==NULL);
{ printf(打开文件失败\n);
exit(0);}
if((fp1=fopen(TestResult.txt,a))==NULL)
{ printf(打开文件失败\n);
exit(0);}
printf( 输入姓名:); //以下为要学生输入个人信息
scanf(%s,s[0].name);
printf( 输入学号:);
scanf(%s,s[0].num);
fwrite(s[0],sizeof(struct Student),1,fp);
fprintf(fp1, 姓名:%s\n,s[0].name);
fprintf(fp1, 学号:%s\n,s[0].num);
fclose(fp);
fclose(fp1);
system(cls); //清屏}
登录完后进入测试界面此时开始计时
有语句{printf( 请计时输入开始时间(点,分):); scanf(%d,%d,hourA,minA);}进行输入
文档评论(0)