小学数学出题系统

上传人:鲁** 文档编号:507680570 上传时间:2023-07-05 格式:DOC 页数:22 大小:241.50KB
返回 下载 相关 举报
小学数学出题系统_第1页
第1页 / 共22页
小学数学出题系统_第2页
第2页 / 共22页
小学数学出题系统_第3页
第3页 / 共22页
小学数学出题系统_第4页
第4页 / 共22页
小学数学出题系统_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《小学数学出题系统》由会员分享,可在线阅读,更多相关《小学数学出题系统(22页珍藏版)》请在金锄头文库上搜索。

1、三峡大学理学院2010级光信专业高级语言程序设计课程设计说明书设计题目:小学数学出题系统班 级:2班学 号:2010146101姓 名:张锐完成日期:2011/11/26目录一 设计任务-3二 正文-3(1) 需求分析-3(2) 使用说明-4(3) 模块划分和其功能-4 (4) 流程图-5三 源程序-7四 设计小结-21五 参考文献-22一 设计任务小学数学出题系统概述:为小学生教学服务,能够根据小学生的需要随机抽出两位数的数学运算题,可根据需要进行加减乘除运算。由学生在电脑上答题,并对其判断正误和记分。另外可以根据需要随机抽出四则运算的混合运算题同样应对其判断正误和记分。基本要求: 抽题选择

2、功能 两位数四则与算的出题功能 四则混合运算的抽题功能 答案判断正误功能 分数累积功能 出题存储功能等二正文 (1)需求分析1.主界面设计,选择各种功能,按5键退出进行其他功能。2. 系统随机出题,显示算式,含加,减,乘,除四则运算。3. 练习时,系统随机出题,键入答案,可显示对错。4. 测试时,系统自动出10道题,每题10分,统计得分。显示各题的对错信息,错误的给出答案。(2)使用说明该程序可以实现练习和测试基本功能,在初始画面中可以进行任意选择。在练习结束后,该系统可以给出总答题数和总得分。在测试中,系统任意出10道试题进行测试,最后系统给出每道题的应答情况和相应的得分。该系统从main(

3、)开始运行,用ChooseFunc1()函数先调用主菜单,然后根据菜单的提示调用函数ChooseFunc2(),再根据菜单分别选择加、减、乘、除函数,进入选题数阶段,利用while循环选择要做的题目.(3)模块划分及功能 1选择界面:在进入该系统后,须选择练习或者测试。 2练习界面:在选择了练习后,系统自动进入练习界面,使用者开始做练习。(1).注册模块。(2).开始测试模块。 注册后,显示主菜单ChooseFunc1(),如图:选择1进入开始测试模块,此时引入时间,定义全局变量hour1和min1,scanf(%d,%d,&hour1,&min1);手动输入这两个数。如图:之后出现Choos

4、eFunc2()菜单功能选择函数,如图: (4)流程图开始输入学号输入姓名主菜单开始测试查看排名错题重做查看结果结束测试子菜单加法减法乘法除法选择题数选择难度测试保存退出三源程序#include /C语言标准输入输出头文件#include /字符串操作需要用到的头文件#include /文件操作需要用到的头文件#include /产生随机数需要用到的头文件int hour1=0,min1=0,hour2=0,min2=0,c=0;float A=0;struct Student char name21; /姓名 char num10; /学号 float avscore;student3000

5、0;/结构体数组,存储学生的信息,在此初定为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=

6、fopen(failedResult.txt,a)=NULL)/打开文件failedResult.txt printf(打开文件失败n); exit(0); fclose(fp2); printf(输入姓名:); /以下要学生输入个人信息 scanf(%s,student0.name); printf(输入学号:); scanf(%s,&student0.num); fwrite(&student0,sizeof(struct Student),1,fp); /向文件studentmessage.txt中写入一条记录,即刚刚输入的学生信息 fprintf(fp,n);/向文件studentme

7、ssage.txt中写入换行符号,换行符不可见 fprintf(fp1,姓名:%sn,student0.name); fclose(fp); /关闭文件studentmessage.txt/以下为向文件TestResult.txt中写入刚刚输入的学生信息 fprintf(fp1,学号:%sn,student0.num); fclose(fp1); /关闭文件TestResult.txt system(cls); /清屏/*/void sortbychengji() FILE *fp5; int i,j,m,n,N=1; student0.avscore=A/c; fp5=fopen(nreco

8、rd.txt,a+); fprintf(fp5,%s %s %fn,student0.name,student0.num,student0.avscore);/将数据写入文件nrecord.txt中 fclose(fp5); fp5=fopen(nrecord.txt,rb);for(i=0;!feof(fp5);i+) fscanf(fp5,%s %s %fn,studenti.name,studenti.num,&studenti.avscore); fclose(fp5); m=i;struct Student temp; for(i=0;im;i+)n=0;for(j=0;jm-1;j

9、+)if(studentj.avscorestudentj+1.avscore)n=1;strcpy(temp.name,studentj.name); /利用结构变量temp实现数组元素的交换 strcpy(temp.num,studentj.num); temp.avscore=studentj.avscore; strcpy(studentj.name,studentj+1.name); strcpy(studentj.num,studentj+1.num);studentj.avscore=studentj+1.avscore; strcpy(studentj+1.name,temp.

10、name); strcpy(studentj+1.num,temp.num);studentj+1.avscore=temp.avscore;if(n=0) break; /若n=0,意味着没有交换了,排序已经完成printf(排序结果由高到低:n);printf( sort name number avscoren);for(i=0;im;i+)printf(第%d名:%s %s %.1fn,N+,studenti.name,studenti.num,studenti.avscore); /*/void Judge() /判断函数 FILE *fp;/文件指针/以下判断文件打开与否 ,r为只读打开方式 if(fp=fopen(studentmessage.txt,r)=NULL) /以下判断文件打开与否 /打开文件studentmessage.txt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 资格认证/考试 > 自考

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