码迷,mamicode.com
首页 > 编程语言 > 详细

java生成四则运算

时间:2019-09-07 22:03:33      阅读:139      评论:0      收藏:0      [点我收藏+]

标签:ima   body   文件中   计时   math   strong   答案   develop   报告   

要求:使用C或Java语言完成一个自动生成四则运算试题的程序

软件基本功能如下。

  1. 自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内
  2. 剔除重复算式。2+3 和 2+3 是重复算式,2+3 和 3+2 不属于重复算式
  3. 题目数量可定制
  4. 相关参数可控制
    1. 是否包含乘法和除法
    2. 操作数数值范围可控
    3. 操作数是否含负数
  5. 生成的运算题存储到外部文件result.txt中

1. 需求分析

? 某小学里,老师让家长每天出30道加减法题目给孩子做。于是,想写一个小程序完成这件事。

2.功能设计

  • 基本功能
    • 题目数量可控
    • 乘除可控
    • 操作数范围可控
    • 操作数正负可控
    • 输出内容
  • 扩展功能
    • 输出答案可控

3. 设计实现

  • java语言
  • 导入java.util包、java.io包、java.lang包下的Math类
  • 定义变量
  • 循环num(题目数量)次,随机产生3个数,2个随机数用来计算,1个随机数通过switch-case决定sign(运算符号)。
  • 将所要求的内容通过FileWrite类下的write方法写到result.txt文件中
  • 随机负数的产生是通过随机数+1-随机数,是否有乘除是通过设置随机数范围来决定的。
  • 遇到除法中,除数不能为0的问题,如果为0,重新生成随机数

4. 测试运行

负数的产生

int a, b;
if (negNum == 1) {
    a = (1 + (int) (Math.random() * maxNum)) - ((int) (Math.random() * maxNum));
    b = (1 + (int) (Math.random() * maxNum)) - ((int) (Math.random() * maxNum));
    b = b == 0 ? (1 + (int) (Math.random() * maxNum)) : b;//若除数为0,重新生成随机数
} else {
    a = (1 + (int) (Math.random() * maxNum));
    b = (1 + (int) (Math.random() * maxNum));
}

运算符的判断

int j = 1 + (int) (Math.random() * (level == 1 ? 4 : 2));
switch (j) {
    case 1:sign = " + ";res = a + b;break;
    case 2:sign = " - ";res = (a) - (b);break;
    case 3:sign = " * ";res = a * b;break;
    case 4:sign = " / ";res = a / b;break;
}

运行结果

技术图片


扩展功能

技术图片


5. 总结

感觉写的程序比较复杂,所有的功能在一个循环里完成了。感觉好多地方还可以封装一下,这样代码也会比较美观。

还有我感觉自己变量用的太多了,有点冗余。

这个是第一版,之后慢慢改进。

还有一个不重复的功能没实现,还没有什么思路。如果最大操作数是1,输出10个的话,那肯定会重复了啊。

太难了。

6. PSP

PSP2.1 任务内容 计划完成需要时间(min) 实际完成需要时间(min)
Planning 计划 5 10
Estimate 估计时间,规划步骤 5 10
Development 开发 30 145
Analysis 需求分析 5 20
Coding 具体编码 20 120
Test 测试 5 5
Reporting 报告 20 40
Postmortem&Process Improvement Plan 总结改进 20 40

java生成四则运算

标签:ima   body   文件中   计时   math   strong   答案   develop   报告   

原文地址:https://www.cnblogs.com/meethigher/p/11483100.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!