程序函数关系图

函数功能及全局变量介绍

代码中已有详细注释的地方不再进行解释。

全局变量

Cut( )函数

此函数用于分割界面,使界面更为美观。

Start( )函数

此函数集成了开始菜单,年级的输入,为了营造一个快乐而刺激的刷题体验,程序与用户有很多互动。

Number( )函数

由于出题时要非常注重题目的难度,因此控制随机数的位数极其重要,因此单独封装成一个函数处理。

myRand( )函数

同上,很多时候生成的随机数需要控制范围,为了提高准确性,简化判断机制,单独封装函数来达成生成随机数的目的。

correctMessage( )函数

incorrectMessage( )函数

Questions( )函数

此函数是出题的中枢函数,集成了我设置的所有题型,并且出口对接着其他函数共同完成出题。

出题注意:

所有的题目中不能出现答案的得数是负数;

三年级之前的小学生还没有学习交换律、结合律和分配律,命题的时候不能考查这些,及运算过程不能存在负数中间量;

涉及除法运算时,除数不能为0;

除法运算的得数不能出现小数,三年级前的普通学生并不能很好地进行这种运算;

出题时需要注意控制得数的位数,不能将题目搞得太难;

出含有乘法、除法运算的题目时,必须显示数学符号“×”和“÷”,否则小学生看不懂。

Game( )函数

此函数集成了题目量控制、判断答案正误及超时作答、中途退出的功能。

judgment( )函数

此函数用于分析用户的作答情况,并给出一些提示和建议,并确认是否开启下一轮练习。

Timer( )函数

此函数用于获取现在的时间。

outTime( )函数

Prepare( )函数

此函数用于确认用户的习题量,并给出温馨提示,做好答题准备。

Ending( )函数

Addition( )函数

Subtraction( )函数

Multiplication( )函数

Division( )函数

Remainder( )函数

fourOperations( )函数

主函数

集成了菜单函数、准备函数、题量控制及裁判函数、结算函数和结束函数。

运行效果,测试用例

开始页面

一年级题目

出题时由系统随机出题,我并没有完全按照作业要求出题,例如整十数减整十数的减法这类题,本质上是一位数加一位数,因此我对一些题型做了归并处理。

一年级的题型有:

1/2位数 + 1位数;

1/2位数 - 1位数;

3个1位数的加减法运算。

二年级题目

出题时由系统随机出题,我并没有完全按照作业要求出题,例如尾数是0三位数加法(和在一千以内的)这类题,本质上是二位数加二位数,因此我对一些题型做了归并处理。

二年级的题型有:

九九乘法表及其逆运算;

2位数与2位数的加减运算;

求余运算;

简易的四则运算。

三年级题目

出题时由系统随机出题,我并没有完全按照作业要求出题,例如一位数乘一位这类题,本质上是九九乘法表,因此我对一些题型做了归并处理。

三年级的题型有:

3位数与两位数加减法运算(含连续进/退位);

两位数乘一位数;

被除数是三位数求余运算;

考虑优先级的四则运算。

非法输入

随机给出习题量

生成习题量的方式是生成一个两位的随机数。

超时作答

超时作答的判定方式为单题答题结束时间减去开始时间超过15秒。

结算并开启下一轮练习

系统将会根据正确率100%、80%、60%、60%以下四种情况进行判定,同时对超时率30%以上也有判定。

调试碰到问题及解决办法

Q1:有时候出题时会同时打出两道题目。

A1:出题时,主要使用了switch多分支结构,由于该结构的特性,在缺少break语句时会继续执行下一个case,就会出现同时出了两道题的情况,补上break即可。

Q2:四则运算题时,会出现题目的中间量为负数的情况。

A2:利用循环生成题目,如果遇到会出现这种情况的数据,则重新生成。

Q3:出除法题时,会出现得数含有小数的情况,然而三年级之前的学生较难处理这类题。

A3:所有的除法题改为用乘法的逆运算出题。

Q4:出除法题时,会出出除零运算的题。

A4:利用我自己写的随机数函数,就不会出现数字0。

Q5:出题时,最后一种题型的题目不出现。

A5:我忘记了我自己的随机数函数的生成范围是开区间,修改上即可。

Q6:非法数据作答时,系统会直接跑完所有循环。

A6:由于这种情况系统不会崩溃,并且也可以实现强行退出,再加上实力问题,所以暂时没有处理。

Q7:如何实现计时功能?

A7:原计划是判断作答时间如果超过15秒就直接判错,但是由于实力问题暂时不能实现,只能做到用户作答之后判断是否超时。

Q8:如何做到重开一轮练习?

A8:原计划是想使用“goto”语句,但是后来想一想,只需要在主函数套个循环即可,因此重构了菜单函数,重新定义一个准备函数将原本的题量输入的部分放进去。

Q9:在不利用bug的情况下如何实现强退?

A9:原计划是想使用“goto”语句,但是后来想一想,只需要操作习题量,如果输入负数,就直接让题号加到习题量的上限,让系统误以为题目出完了即可。

Q10:为了避免猝不及防的开始,想要在开始练习之前设置倒计时。

A10:与舍友讨论之后,学习了Sleep函数实现这个功能。

Q11:出题函数被老师指出代码重复率很高。

A11:将不同的题型分别用函数封装,通过控制传入的参数达到控制难度的效果。

c语言程序设计平时作业代刷,C语言程序设计——小学生口算刷题系统相关推荐

  1. 西工大18秋《C语言程序设计》平时作业,西工大18秋C语言程序设计平时作业答案...

    西工大18秋C语言程序设计平时作业答案 西工大 18 秋<C 语言程序设计>平时作业答案 (单选题) 1: 1 A: 19 B: 18 C: 23 D: 24 正确答案: B (单选题) ...

  2. c语言形考作业1答案,c语言程序设计形考任务二答案.doc

    c语言程序设计形考任务二答案.doc 下载提示(请认真阅读)1.请仔细阅读文档,确保文档完整性,对于不预览.不比对内容而直接下载带来的问题本站不予受理. 2.下载的文档,不会出现我们的网址水印. 3. ...

  3. C语言2020年作业,2020年c语言上机报告范文【四篇】

    <2020年c语言上机报告范文[四篇]>由会员分享,可在线阅读,更多相关<2020年c语言上机报告范文[四篇](7页珍藏版)>请在人人文库网上搜索. 1.2020 年 c 语言 ...

  4. 中油C语言第一次在线作业,中石油华东《程序设计(C语言)》2020年春季学期在线作业(二)...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 <程序设计(C语言)>2020年春季学期在线作业(二) 试卷总分:100 得分:100 一.单选题 (共 20 道试题,共 100 分) 1. ...

  5. 华工高级语言c 平时作业,华工高级语言程序设计平时作业

    <高级语言程序设计(http://doc.wendoc.com)>作业 2018.3 教学中心:百海教育专业层次: 学号:姓名: 注意事项:1. 本作业共五大题,满分100分: 2. 请将 ...

  6. 14秋《c语言程序设计》作业2,《C语言程序设计》 作业参考答案.doc

    作业参考答案 一.单项选择 1. B 2. D 3. B 4. D 5. B 6. B 7. C 8. D 9. D 10.C 11.B 12.C 13.B 14.B 15.D 16.B 17.C 1 ...

  7. 高级程序语言c 平时作业,东北大学20秋学期《高级语言程序设计基础X》在线平时作业3...

    该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 一.单选题 共25题,100分 1 4分 设有一段程序: int *var,a: a=100:var=&a:a=*var+10: 执行上面程序段后 ...

  8. 计算机程序设计 大作业 vb,成人《VB程序设计》标准化大作业(答案)1

    作业1 一.单项选择题 1.Visual Basic是一种面向对象的可视化程序设计语言,采取了 A 的编程机制. (A)事件驱动 (B)按过程顺序执行 (C)从主程序开始执行 (D)按模块顺序执行 2 ...

  9. c语言综合设计作业医院管理系统,C语言之医院管理系统

    这个是C语言学完后的一个程序实践的内用.编写一个医院病人管理系统.这个程序有一些BUG,要操作得当,否则可能结果有问题.不过作为作业应付一下还是有模有样的,哈哈.至少当时答辩时弄的还可以. #incl ...

最新文章

  1. java中d怎样转换D,Java中的一些基本转换
  2. r语言 plot_R和Python的特点对比,这样你就知道该怎么选择了
  3. 【pmcaff】苏杰:产品经理对技术做这些,就完蛋了
  4. Python爬虫介绍及实战入门
  5. docker容器的重启策略:通过--restart来指定
  6. 睡眠 应该用 a加权 c加权_在神经网络中提取知识:学习用较小的模型学得更好...
  7. 单片机串口通信电平不匹配的解决电路,5V 3.3V串口通讯
  8. learning rate 学习速率
  9. DBGrid 应用全书
  10. 如何对物联网数据进行大数据分析
  11. 蓝桥杯 算法训练 数的潜能 正整数分解使得乘积最大问题
  12. cef注入js_CefSharp JavaScript注入
  13. STK入门级模拟卫星轨道
  14. 【科普常识:常用音频参数解析】
  15. 大人物只认得大人物……
  16. 消金主流市场外的灰色地带:vivo应用商店聚集大量“伪现金贷平台”
  17. LeetCode1419. 数青蛙
  18. 安装postgis,使用postgis导入shapefile的步骤总结
  19. [Windows系统]win7如何清理电脑C盘空间
  20. 北京宣武区一个居民区停电三个月

热门文章

  1. linux内核笔记-内核同步
  2. mysql查询各类课程的总学分_基于jsp+mysql的JSP学生选课信息管理系统
  3. Zookeeper基础常用操作以及ACL权限
  4. win10解决java多版本java -version问题
  5. 自旋锁和互斥锁实例_多线程编程之自旋锁
  6. c语言 nan 常量_NaN32常量(Julia)
  7. as_hash ruby_Ruby中带有示例的Hash.each_pair方法
  8. java hasset 顺序_java集合排序问题
  9. c语言遍历文件内容_C语言学习第28篇---动态内存分配剖析
  10. python爬虫哪个选择器好用_Python网络爬虫四大选择器用法原理总结