java自动计算金额的_java自动生成四则运算

一、需求分析

在我们上小学时大家都免不了要学习数学并会四则运算,那学会四则运算就要大量做练习题,那么问题来了,如果是在课堂上老师要出十道题给学生,需要现场编题并自己计算出答案以便判断学生做的对错,这时候就需要时间以及答案的准确性,本程序正好解决了时间问题以及答案的准确性。

二、功能设计

1、基本功能

自动生成10道100以内的2个操作数的四则运算算式(+ - * /),要求运算结果也在100以内。

2、扩展功能

(1)剔除重复算式,2 + 3 = 和 2 + 3 = 是重复算式,2 + 3 = 和 3 + 2 = 不属于重复算式

(2)题目数量可定制

(3)相关参数可控制:

是否包含乘法和除法

操作数数值范围可控(如操作数在100以内还是1000以内)

操作数是否含负数

(4)生成的运算题存储到外部文件result.txt中

三、设计实现

定义静态变量以便函数调用,主函数中调用其他函数,生成文件、随机数、随机符号分别写在不同函数内。键盘输入控制题目数量、是否含有乘除运算、操作数范围、是否含有负数。

四、测试运行

运行结果

83361fdcdee09bd71c7e03b90271ea31.png

00f2f30a78159af0f1d3d55f48bfc023.png

五、代码片段

1、将生成题目存储到.txt文件中

static void create(HashSet hashSet) throws IOException {

PrintWriter pw = new PrintWriter(new FileWriter("D:\\result.txt"));

int sum = 1;

for (Iterator it = hashSet.iterator(); it.hasNext();) {

pw.println(it.next());

sum++;

}

pw.close();

PrintWriter pw2 = new PrintWriter(new FileWriter("D:\\无答案题.txt"));

int sum1 = 1;

for (Iterator it = hashSet.iterator(); it.hasNext();) {

String next = (String) it.next();

String[] split = next.split("= ");

pw2.println(split[0] + "=");

sum1++;

}

pw2.close();

}

2、生成随机数和随机符号

static int number() { // 返回一个随机数

return (int) (1 + Math.random() * (range - 1 + 1));

}

static char sign() {// 返回一个符号

char symbol[] = { '+', '-', '*', '/' };

int a = (int) (Math.random() * (4));

int b = (int) (Math.random() * (2));

if (embody == 1) {

return symbol[a];

} else {

return symbol[b];

}

}

3、计算结果

static String summation(int a, char b, int c) { // 获取 a b c 计算出結果

if (b == '+') {

return (a + c) + "";

}

if (b == '-') {

return (a - c) + "";

}

if (b == '*') {

return (a * c) + "";

}

if (b == '/') {

DecimalFormat df = new DecimalFormat("0.00");

double sum = (double) a / c;

String e = df.format(sum);

return e;

}

return c + "";

}

六、总结

想要每个函数都能调用而不用传参用静态变量比较好,先做出整体,然后在逐一细化每个部分,这样效率比较高,键盘输入最好在主函数内进行。

七、PSP

PSP2.1

任务内容

计划共完成需要的时间(min)

实际完成需要的时间(min)

Planning

计划

150

120

Estimate

估计这个任务需要多少时间,并规划大致工作步骤

150

120

Development

开发

10

12

Analysis

需求分析 (包括学习新技术)

8

8

Design Spec

生成设计文档

7

6

Design Review

设计复审 (和同事审核设计文档)

10

11

Coding Standard

代码规范 (为目前的开发制定合适的规范)

6

8

Design

具体设计

20

22

Coding

具体编码

50

55

Code Review

代码复审

10

9

Test

测试(自我测试,修改代码,提交修改)

7

6

Reporting

报告

10

10

Test Report

测试报告

6

6

Size Measurement

计算工作量

7

7

Postmortem & Process Improvement Plan

事后总结 ,并提出过程改进计划

5

3

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值