小学生计算能力测试系统设计

面向小学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;
}

小学生计算能力测试系统设计相关推荐

  1. 第十二周 小学生计算能力测试

    /* *程序的版权和版本声明部分: *Copyright(c)2013,烟台大学计算机学院学生 *All rights reserved. *文件名称: *作者:张立锋 *完成日期:2013年11月1 ...

  2. Python实例:小学生计算能力测试系统

    小学生计算能力测试系统 设计一个程序,用来实现帮助小学生进行算术运算练习, 它具有以下功能: 提供基本算术运算(加减乘)的题目,每道题中的操作数是随机产生的, 练习者根据显示的题目输入自己的答案,程序 ...

  3. 小学生数学测试软件c语言流程图,小学生数学测试软件-C语言课程设计

    小学生数学测试软件-C语言课程设计 C语言课程设计 设计期限 2013 年 6 月 17 开始 至 2013 年 6 月 20 结束 系 别 信息管理与信息系统 专 业 班级 学生姓名 学号 指导教师 ...

  4. 简单振动测试系统软件,位标器振动测试系统设计.pdf

    位标器振动测试系统设计 赵自文:位标器振动测试系统设讦 目 位标器振动测试系统设计 VibrationTest Seeker Designof Systemfor 赵自文 (中国空空导弹研究院,河南洛 ...

  5. 耦合天线测试软件,天线间耦合度自动测试系统设计.PDF

    天线间耦合度自动测试系统设计.PDF 一. -¨lEM ●●_--_I●-I--●-●--III_l_--II-_-____●_-●●●-c专题o孓魈 . --兰幽型盐翌生兰l卫---------一 ...

  6. 小学生数学测试软件编写分析,通过c语言编写小学生数学测试软件c语言课程设计.pdf...

    C 语言课程设计 设计期限 20XX年 6 月 17 开始 至 2013 年 6 月 21 结束 系 别 信息管理与信息系统 专 业 36 班级 112030601 学生姓名 邓茂华 学号 11203 ...

  7. 小学生数学测试软件编写分析,小学生数学测试软件C语言课程设计

    <小学生数学测试软件C语言课程设计>由会员分享,可在线阅读,更多相关<小学生数学测试软件C语言课程设计(26页珍藏版)>请在人人文库网上搜索. 1.C语言课程设计设计期限 20 ...

  8. 小学生数学测试软件编写分析,通过C语言编写小学生数学测试软件C语言课程设计...

    <通过C语言编写小学生数学测试软件C语言课程设计>由会员分享,可在线阅读,更多相关<通过C语言编写小学生数学测试软件C语言课程设计(14页珍藏版)>请在人人文库网上搜索. 1. ...

  9. 基于 FPGA+DSP 的冲击波超压测试系统设计与实现-系统测试(二)

    5 系统功能测试及仿真 在完成系统硬件电路板的设计和软件程序的开发后,本章分别对 A/D 采集模块. DDR3 SDRAM 存储模块的读写波形进行了测试,并对千兆网卡传输模块通过 Wireshark ...

最新文章

  1. python的自带数据集_解决Keras自带数据集与预训练model下载太慢问题
  2. Oracle数据库创建表空间及用户授权
  3. python批量上传 服务器_Python Tornado批量上传图片并显示功能
  4. php做一个计算日期之间天数,PHP计算任意两个日期之间的天数
  5. linux plc编程软件,基于Linux平台的可编程控制器软PLC设计
  6. 计算机组网配置,计算机组网技术与配置教案..doc
  7. mybatis plus当月数据查询_Springboot+mybatis(plus)+druid多数据源
  8. Java数据类型BooleanDemo
  9. groovy语言 累加_使用Groovy管理数据:查找和累加器
  10. 图解欧洲足球五大联赛 | R爬虫可视化第五季
  11. 如何卸载mingw_minGW在windows安装 | 学步园
  12. 多变量微积分笔记10——二重积分的应用
  13. Linux 软件工程师 从面试小白到面霸
  14. 变电站无线测温系统的特点与应用
  15. Hadoop HDFS启动报异常:We expected txid 130043, but got txid 229381
  16. moment-timezone
  17. POT超阈值模型和极值理论EVT分析
  18. Matlab中的linspace()函数
  19. 比尔总动员比尔座驾获取攻略
  20. CellphoneDB-细胞通讯软件

热门文章

  1. python(Django之组合搜索、JSONP、XSS过滤 )
  2. 在论文中加入(制作)目录方法
  3. 深扒“亚稳态”的底裤,从MOS管到CMOS门电路,再到亚稳态分析
  4. 四色原型的学习心得分享
  5. sqlite3错误原因
  6. 嵌入式Linux驱动学习【9】—— Nor Flash
  7. iPhone苹果手机语音备忘录M4A文件损坏显示时长无法播放修复方法
  8. 电脑开机直接进BIOS界面怎么办
  9. win10中sql plus中文乱码
  10. 博途v15模拟量转换_TIA博途模拟量测量与工程量转换