# 一、需求分析
自动生成 10 道 100 以内的 2 个操作数的四则运算算式(+ - * /),要求运算结果也在 100 以内,把运算式存入“result.txt”文件中。题目数量、数字范围、操作数和运算规则是可控的。
# 二、功能设计
- 使用-n 参数控制生成题目的个数(实现)
- 使用-r 参数控制题目中数值(自然数、真分数和真分数分母)的范围(实现)
- 生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如 e1e2 的子表达式,那么 e1≥e2(实现)
- 生成的题目中如果存在形如 e1÷e2 的子表达式,那么其结果应是真分数(未实现)
- 每道题目中出现的运算符个数不超过 3 个。(实现)
- 程序一次运行生成的题目不能重复(未实现)
- 在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的 Answers.txt 文件(未实现)
- 程序应能支持一万道题目的生成。(实现)
- 程序支持对给定的题目文件和答案文件(未实现),判定答案中的对错并进行数量统计(实现)
# 三、测试运行
![](https://www.writebug.com/myres/static/uploads/2022/1/29/4ddab0e746cb64a658268efd1052d29d.writebug)
# 四、核心代码
```
if(c==0){ //加法
Z=x1*m2+x2*m1;
M=m1*m2;
d=simplification(Z,M);
System.out.print(x1+"/"+m1+"+"+x2+"/"+m2+"=");
}
if(c==1){ //减法
Z=x1*m2-x2*m1;
M=m1*m2;
d=simplification(Z,M);
System.out.print(x1+"/"+m1+"-"+x2+"/"+m2+"=");
}
if(c==2){ //乘法
Z=x1*x2;
M=m1*m2;
d=simplification(Z,M);
System.out.print(x1+"/"+m1+"*"+x2+"/"+m2+"=");
}
if(c==3){ //除法
Z=m1*x2;
M=m2*x1;
d=simplification(Z,M);
System.out.print(x1+"/"+m1+"/"+x2+"/"+m2+"=");
}
```
```c++
public static String simplification(int a,int b) { //把分数结果化简
int y = 1;
for(int i=a; i>=1; i--) {
if(a%i==0&&b%i==0) {
y = i; //求得最小公约数
break;
}
}
int z = a/y;
int m = b/y;
if(z==0) {
return "0";
}
if(z==m) { //分子分母相同情况直接输出整数
return ""+z;
}
return ""+z+"/"+m;//若分子分母不同,则输出分数形式
}
}
```
# 五、总结
这次任务有很多功能没有实现,只是实现了一些基本的功能,但这些功能都没有很完善。
在做这个任务的过程中,也是在慢慢捡起学过的 Java 知识,虽然还是没有很大的进步,但还是有一些收获。以后还是会继续努力。
# 六、PSP 表
```c++
PSP2.1
Personal Software Process Stages
```
预估耗时(分钟)
实际耗时(分钟)
```c++
Planning
```
计划
```c++
60
40
```
· Estimate
· 估计这个任务需要多少时间
```c++
1440
1520
Development
```
开发
```c++
1250
1330
```
· Analysis
· 需求分析(包括学习新技术)
```c++
90
60
```
· Design Spec
· 生成设计文档
```c++
100
```
· Design Review
· 设计复审(和同事审核设计文档)
```c++
60
40
```
· Coding Standard
· 代码规范(为目前的开发制定合适的规范)
```c++
30
20
```
· Design
· 具体设计
```c++
60
60
```
· Coding
· 具体编码
```c++
50
500
```
· Code Review
· 代码复审
```c++
30
30
```
· Test
· 测试(自我测试,修改代码,提交修改)
```c++
250
300
Reporting
```
报告
```c++
90
90
```
· Test Report
· 测试报告
```c++
50
50
```
· Size Measurement
· 计算工作量
```c++
30
20
```
· Postmortem & Process Improvement Plan
· 事后总结, 并提出过程改进计划
```c++
90
90
```
合计
```c++
1400
1460
```
没有合适的资源?快使用搜索试试~ 我知道了~
温馨提示
自动生成 10 道 100 以内的 2 个操作数的四则运算算式(+ - * /),要求运算结果也在 100 以内,把运算式存入“result.txt”文件中。题目数量、数字范围、操作数和运算规则是可控的。 使用-n 参数控制生成题目的个数(实现) 使用-r 参数控制题目中数值(自然数、真分数和真分数分母)的范围(实现) 生成的题目中计算过程不能产生负数,也就是说算术表达式中如果存在形如 e1e2 的子表达式,那么 e1≥e2(实现) 生成的题目中如果存在形如 e1÷e2 的子表达式,那么其结果应是真分数(未实现) 每道题目中出现的运算符个数不超过 3 个。(实现) 程序一次运行生成的题目不能重复(未实现) 在生成题目的同时,计算出所有题目的答案,并存入执行程序的当前目录下的 Answers.txt 文件(未实现) 程序应能支持一万道题目的生成。(实现) 程序支持对给定的题目文件和答案文件(未实现),判定答案中的对错并进行数量统计(实现)
资源推荐
资源详情
资源评论
收起资源包目录
100012409-基于Java实现自动生成四则运算.zip (8个子文件)
arith
LICENSE 1KB
Arith
.classpath 295B
.settings
org.eclipse.jdt.core.prefs 587B
src
Fouroperation.java 5KB
bin
Fouroperation.class 4KB
.project 372B
Fouroperation-master.iml 423B
README.md 4KB
共 8 条
- 1
资源评论
- m0_750372332023-10-15支持这个资源,内容详细,主要是能解决当下的问题,感谢大佬分享~
神仙别闹
- 粉丝: 2674
- 资源: 7640
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功