C语言大作业小学生数学检测系统,小学数学测试系统C语言设计.doc

小学数学学习系统设计报告

目 录

一.设计要求 ……………………………2

二.设计目的 ……………………………2

三.设计的具体实现

1.系统概述:…………………………………………2

2.总体设计:…………………………………………3

3.详细设计: …………………………………………7

4.软件程序设计和调试 ……………………………14

四.结论与展望 ………………………15

五.心得体会及建议 …………………15

六.附录 ………………………………15

七.参考文献 …………………………15

设计要求

小学生数学学习系统

具有随机出题、自动评分、查看正确答案、错题重做等功能的测试系统

具体要求:

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"); //清屏}

登录完后进

  • 0
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值