小学数学测试系统C语言设计精选.doc

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 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)

bodkd + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档