小学生计算能力测试系统设计
小学生计算能力测试系统设计
面向小学1~3年级学生,随机选择两个整数,通过选择加、减、乘、除四种运算符中的其中一个连接形成算式,对学生基本运算能力进行测试。功能要求:
(1)电脑随机出10道题,每题10分,程序结束时显示学生得分和所用的时间;
(2)各运算对应的题目数可进行人为设置,对应一个设置参数文件,默认值为:加减各三道,乘除各两道,出题时根据从该文件读取的参数值确定各种运算的出题数目;
(3)确保算式中的两个运算对象均在0-50以内;
(4)每道题学生有三次机会输入答案,当学生输入错误答案时,提醒学生重新输入,如果三次机会结束则输出正确答案;
(5)对于每道题,学生第一次输入正确答案得10分,第二次输入正确答案得7分,第三次输入正确答案得5分,否则不得分;
(6)总成绩90以上显示“SMART”,80-90显示“GOOD”,70-80显示“OK”,60-70显示“PASS”,60以下显示“TRY AGAIN”
(7)每次测试的结果生成一个对应的数据文件,记录测试过程中的所有题目和完成情况。
建议:一人完成参数文件读取、修改、写入和生成测试结果文件的功能;一人负责完成出题功能;一人负责完成检查答案、计分功能、菜单功能及主函数。
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include <conio.h>int test();
int checknum(int a, int b);
int checkresult(int x);int a =-1,b,c,d,x;
static int k=0, grade;
int main()
{printf("***************欢迎使用小学生运算测试系统***************\n");printf("\t|\t1.\t随机运算\t\t|\n");printf("\t-----------------------------------------\n");printf("\t|\t2.\t默认运算\t\t|\n");printf("\t-----------------------------------------\n");printf("***********请作答下列十道题,输入1或2开始作答***********\n");scanf("%d",&d);getchar();do {int i=test();if (i==-1) {break;}else if (checkresult(i)==0) {a = -1;}} while (k);getchar();getchar();getchar();return 0;
}int test()
{srand((unsigned int)time(NULL));while (checknum(a, b) == 0){a=rand()%51;b=rand()%51;c=rand()%4;}k++;if (k==11) {if(grade>=90)printf("\nSMART\n");else if(grade>=80)printf("\nGOOD\n");else if(grade>=70)printf("\nOK\n");else if(grade>=60)printf("\nPASS\n"); else printf("\nTRY AGAIN\n"); return -1;}if(d==1&&c==0) {printf("第%d题: %d+%d=", k, a, b);return a + b;}else if (d==1&&c==1) {printf("第%d题: %d-%d=", k, a, b);return a - b;}else if (d==1&&c==2) {printf("第%d题: %d*%d=", k, a, b);return a * b;}else if (d==1&&c==3) {if (b==0)b=rand()%51;printf("第%d题: %d/%d=", k, a, b);return a / b;}else if(k<=3) {printf("第%d题: %d+%d=", k, a, b);return a + b;}else if (k<=6) {printf("第%d题: %d-%d=", k, a, b);return a - b;}else if (k<=8) {printf("第%d题: %d*%d=", k, a, b);return a * b;}else if (k<=10) {printf("第%d题: %d/%d=", k, a, b);if (b==0)b=rand()%51;return a / b;}return -1;
}
int checknum(int a, int b)
{if ((a+b)>50||(a-b)<0||a>50||b>50||a<0||b<0) {return 0;}return 1;
}
int checkresult(int result)
{int i;for (i=1;i++;i<=3) {scanf("%d", &x);if (x!=result) {if (i==4) {if (c==0) {printf("三次回答错误,正确答案是%d,请回答下一题\n", a + b);}else if (c==1){printf("三次回答错误,正确答案是%d,请回答下一题\n", a - b);}else if (c==2){printf("三次回答错误,正确答案是%d,请回答下一题\n", a * b);}else {printf("三次回答错误,正确答案是%d,请回答下一题\n", a / b);}return 0;}printf("回答错误,请重新计算并输入结`在这里插入代码片`果:");}else {switch (i) {case 2:grade += 10;break;case 3:grade += 7;break;case 4:grade += 5;break;default:grade += 0;break;}return 0;}}return 0;
}
小学生计算能力测试系统设计相关推荐
- 第十二周 小学生计算能力测试
/* *程序的版权和版本声明部分: *Copyright(c)2013,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:张立锋 *完成日期:2013年11月1 ...
- Python实例:小学生计算能力测试系统
小学生计算能力测试系统 设计一个程序,用来实现帮助小学生进行算术运算练习, 它具有以下功能: 提供基本算术运算(加减乘)的题目,每道题中的操作数是随机产生的, 练习者根据显示的题目输入自己的答案,程序 ...
- 小学生数学测试软件c语言流程图,小学生数学测试软件-C语言课程设计
小学生数学测试软件-C语言课程设计 C语言课程设计 设计期限 2013 年 6 月 17 开始 至 2013 年 6 月 20 结束 系 别 信息管理与信息系统 专 业 班级 学生姓名 学号 指导教师 ...
- 简单振动测试系统软件,位标器振动测试系统设计.pdf
位标器振动测试系统设计 赵自文:位标器振动测试系统设讦 目 位标器振动测试系统设计 VibrationTest Seeker Designof Systemfor 赵自文 (中国空空导弹研究院,河南洛 ...
- 耦合天线测试软件,天线间耦合度自动测试系统设计.PDF
天线间耦合度自动测试系统设计.PDF 一. -¨lEM ●●_--_I●-I--●-●--III_l_--II-_-____●_-●●●-c专题o孓魈 . --兰幽型盐翌生兰l卫---------一 ...
- 小学生数学测试软件编写分析,通过c语言编写小学生数学测试软件c语言课程设计.pdf...
C 语言课程设计 设计期限 20XX年 6 月 17 开始 至 2013 年 6 月 21 结束 系 别 信息管理与信息系统 专 业 36 班级 112030601 学生姓名 邓茂华 学号 11203 ...
- 小学生数学测试软件编写分析,小学生数学测试软件C语言课程设计
<小学生数学测试软件C语言课程设计>由会员分享,可在线阅读,更多相关<小学生数学测试软件C语言课程设计(26页珍藏版)>请在人人文库网上搜索. 1.C语言课程设计设计期限 20 ...
- 小学生数学测试软件编写分析,通过C语言编写小学生数学测试软件C语言课程设计...
<通过C语言编写小学生数学测试软件C语言课程设计>由会员分享,可在线阅读,更多相关<通过C语言编写小学生数学测试软件C语言课程设计(14页珍藏版)>请在人人文库网上搜索. 1. ...
- 基于 FPGA+DSP 的冲击波超压测试系统设计与实现-系统测试(二)
5 系统功能测试及仿真 在完成系统硬件电路板的设计和软件程序的开发后,本章分别对 A/D 采集模块. DDR3 SDRAM 存储模块的读写波形进行了测试,并对千兆网卡传输模块通过 Wireshark ...
最新文章
- python的自带数据集_解决Keras自带数据集与预训练model下载太慢问题
- Oracle数据库创建表空间及用户授权
- python批量上传 服务器_Python Tornado批量上传图片并显示功能
- php做一个计算日期之间天数,PHP计算任意两个日期之间的天数
- linux plc编程软件,基于Linux平台的可编程控制器软PLC设计
- 计算机组网配置,计算机组网技术与配置教案..doc
- mybatis plus当月数据查询_Springboot+mybatis(plus)+druid多数据源
- Java数据类型BooleanDemo
- groovy语言 累加_使用Groovy管理数据:查找和累加器
- 图解欧洲足球五大联赛 | R爬虫可视化第五季
- 如何卸载mingw_minGW在windows安装 | 学步园
- 多变量微积分笔记10——二重积分的应用
- Linux 软件工程师 从面试小白到面霸
- 变电站无线测温系统的特点与应用
- Hadoop HDFS启动报异常:We expected txid 130043, but got txid 229381
- moment-timezone
- POT超阈值模型和极值理论EVT分析
- Matlab中的linspace()函数
- 比尔总动员比尔座驾获取攻略
- CellphoneDB-细胞通讯软件