需求分析:即使老师已经给出了题目,也要对题目的需求做分析。
- ,运算符在3个到5个之间。
- 为了让小学生得到充分锻炼,每个练习题至少要包含2种运算符。同时,由于小学生没有分数与负数的概念,你所出的练习题在运算过程中不得出现负数与非整数,比如不能出 3/5+2=2.6,2-5+10=7等算式。
- 文件目录与程序目录一致。
- 当程序接收的参数为4时,以下为输出文件示例。
- ,包括出题与求解正确答案。注意,算式中存在的括号必须大于2个,且不得超过运算符的个数。(5分)
- 。注意在实现本功能时,需支持运算时分数的自动化简,比如 1/2+1/6=2/3,而非4/6。(5分
功能设计:
- 每个数的值在0和100之间,运算符在3~到5个之间。
- 每个练习题至少包含两种运算符。
- 练习题在运算过程中不得出现负数与非整数。
设计实现:使用Rondom类包含的方法,使用一个和当前系统时间对应的相对时间有关的数字作为种子数。
核心代码:
1 import java.text.DecimalFormat;
2 import java.util.Scanner;
3 public class Zhidao {
4
5 public static void main(String[] args) {
6 String condition = "";
7 Zhidao zhidao = new Zhidao();
8 do{
9 Scanner scanner = new Scanner(System.in);
10 try{
11 System.out.print("请输入第一个数:");
12 double x = scanner.nextDouble();
13 System.out.print("请输入第二个数:");
14 double y = scanner.nextDouble();
15 System.out.print("请输入运算符:");
16 String s = scanner.next();
17 char z = s.charAt(0);
18 zhidao.yunsuan(x, y, z);
19 }catch(Exception e){
20 System.out.println("请输入正确的数据!");
21 }
22 System.out.print("是否继续?continue:继续,任意字符:结束");
23 condition = scanner.next();
24
25 }while("continue".equals(condition));
26 }
27
28 public static void yunsuan(double x,double y,Character z){
29 DecimalFormat r=new DecimalFormat();
30 r.applyPattern("#0.00");
31 if(z.equals('+')){
32 System.out.println(x+"+"+y+"=" + r.format((x+y)));
33 } else if(z.equals('-')){
34 System.out.println(x+"-"+y+"=" + r.format((x-y)));
35 } else if(z.equals('*')){
36 System.out.println(x+"*"+y+"=" + r.format((x*y)));
37 } else if(z.equals('/')){
38 if(y==0){
39 System.out.println("被除数不能为0");
40 } else{
41 System.out.println(x+"/"+y+"=" + r.format((x/y)));
42 }
43
44 }else{
45 System.out.println("无法识别改运算符");
46 }
47 }
48 }
6.PSP:
|
PSP2.1 |
任务内容 |
计划完成需要的时间(min) |
实际完成需要的时间(min) |
|
Planning |
计划 |
365 |
380 |
|
Estimate |
估计这个任务需要多少时间,并规划大致工作步骤 |
20 |
20 |
|
Development |
开发 |
80 |
80 |
|
Analysis |
需求分析 (包括学习新技术) |
25 |
20 |
|
Design Spec |
生成设计文档 |
15 |
20 |
|
Design Review |
设计复审 (和同事审核设计文档) |
10 |
10 |
|
Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
10 |
13 |
|
Design |
具体设计 |
15 |
22 |
|
Coding |
具体编码 |
100 |
125 |
|
Code Review |
代码复审 |
10 |
10 |
|
Test |
测试(自我测试,修改代码,提交修改) |
25 |
20 |
|
Reporting |
报告 |
15 |
15 |
|
Test Report |
测试报告 |
12 |
10 |
|
Size Measurement |
计算工作量 |
5 |
5 |
|
Postmortem & Process Improvement Plan |
事后总结 ,并提出过程改进计划 |
23 |
20 |
总结:通过这次实验,看到了自己的很多问题,最重要的是JAVA基础真的不过关,需要重新抓一下了,还有就是做好前期工作吧,感觉前期工作做好之后,后面真的会轻松很多。
?为什么?