小学数学出题系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
三峡大学理学院2010级光信专业《高级语言程序设计》课程设计
说明书
设计题目:小学数学出题系统
班级:2班
学号:**********
*****
完成日期:2011/11/26
目录
一.设计任务-----------------------------------------------------3 二.正文-----------------------------------------------------------3 (1)需求分析----------------------------------------------3 (2)使用说明----------------------------------------------4 (3)模块划分和其功能----------------------------------4 (4)流程图-------------------------------------------------5 三.源程序--------------------------------------------------------7 四.设计小结-----------------------------------------------------21 五.参考文献-----------------------------------------------------22
一.设计任务
小学数学出题系统
概述:
为小学生教学服务,能够根据小学生的需要随机抽出两位数的数学运算题,可根据需要进行加减乘除运算。由学生在电脑上答题,并对其判断正误和记
分。另外可以根据需要随机抽出四则运算的混合运算题同样应对其判断正误和记分。
基本要求:
抽题选择功能
两位数四则与算的出题功能
四则混合运算的抽题功能
答案判断正误功能
分数累积功能
出题存储功能等
二.正文
(1)需求分析
1.主界面设计,选择各种功能,按5键退出进行其他功能。
2. 系统随机出题,显示算式,含加,减,乘,除四则运算。
3. 练习时,系统随机出题,键入答案,可显示对错。
4. 测试时,系统自动出10道题,每题10分,统计得分。显示各
题的对错信息,错误的给出答案。
(2)使用说明
该程序可以实现练习和测试基本功能,在初始画面中可以进行任意选择。在练习结束后,该系统可以给出总答题数和总得分。
在测试中,系统任意出10道试题进行测试,最后系统给出每道题的应答情况和相应的得分。
该系统从main()开始运行,用ChooseFunc1()函数先调用主菜单,然后根据菜单的提示调用函数ChooseFunc2(),再根据菜单分别选择加、减、乘、除函数,进入选题数阶段,利用while 循环选择要做的题目.
(3)模块划分及功能
1.选择界面:在进入该系统后,须选择练习或者测试。
2.练习界面:在选择了练习后,系统自动进入练习界面,使用者开始做练习。
(1).注册模块。
(2).开始测试模块。
注册后,显示主菜单ChooseFunc1(),如图:
选择1进入开始测试模块,此时引入时间,定义全局变量hour1和min1,scanf("%d,%d",&hour1,&min1);手动输入这两个数。如图:
之后出现ChooseFunc2()菜单功能选择函数,如图:
(4)流程图
三.源程序
#include
#include
#include
#include
int hour1=0,min1=0,hour2=0,min2=0,c=0;
float A=0;
struct Student
{
char name[21]; //姓名
char num[10]; //学号
float avscore;
}student[30000];//结构体数组,存储学生的信息,在此初定为30000,可改
/********************************************************/
void Savemessage() //保存学生输入信息的函数
{
FILE *fp,*fp1,*fp2; //定义文件指针,//以下判断文件打开与否 ,"a"方式打开则可向文件尾写数据
if((fp=fopen("studentmessage.txt","a"))==NULL)//打开文件studentmessage.txt
{ printf("打开文件失败\n");
exit(0);
}
if((fp1=fopen("TestResult.txt","a"))==NULL) //打开文件TestResult.txt { printf("打开文件失败\n");
exit(0);
}
if((fp2=fopen("failedResult.txt","a"))==NULL)//打开文件failedResult.txt { printf("打开文件失败\n");
exit(0);
}
fclose(fp2);
printf("输入姓名:"); //以下要学生输入个人信息
scanf("%s",student[0].name);
printf("输入学号:");
scanf("%s",&student[0].num);
fwrite(&student[0],sizeof(struct Student),1,fp); //向文件studentmessage.txt中写入一条记录,即刚刚输入的学生信息
fprintf(fp,"\n");//向文件studentmessage.txt中写入换行符号,换行符不可见
fprintf(fp1,"姓名:%s\n",student[0].name);
fclose(fp); //关闭文件studentmessage.txt//以下为向文件TestResult.txt中写入刚刚输入的学生信息