个人开发流程 --计应191第二组宋嘉琪

一、目的

学会用Java编写简单的四则运算。

二、步骤

思路分析:拿到表达式后,按照人的计算方法先乘除后加减,遍历运算符,得出结果。

三、核心代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
package sizeyunsuan;
 
import java.util.Scanner;
 
public class Szys {
        public static void main(String[] args) {
            Scanner str1 = new Scanner(System.in);
            System.out.println("请输入:");
            String str = str1.nextLine();
            String strs = str.replace("+","-");
            String[] s = strs.split("-");
            double temp=0;
            double sum=0;
            //遍历截取了的字符数组
            for(String a:s){
                //查找有*或/的数组
                if(a.contains("*")||a.contains("/")){
                    //遍历带符号的数组
                    for(int i=0;i<a.length();){
                        //设置一个变量,来控制下标,
                        int count = 1;
                        //需要截取的字符串长度
                        a:for(int j=i+1;j<a.length();j++){
                            //取出下一个字符
                            char c = a.charAt(j);
                            //System.out.println(c+"===");
                            //如果字符是*或/
                            if(c=='*'||c=='/'){
                                //终止a循环
                                break a;
                            }else{
                                //如果不是就长度加一;
                                count++;
                            }
                        }
                        //截取字符串
                        String strNun =a.substring(i,i+count);
//                      System.out.println(strNun+"=========");
                        //转变为数字
                        double d = Double.parseDouble(strNun);
                        //第一个数字
                        if(i==0){
                            temp = d;
                        }else{
                            //取出当前的数字前面的符号
                            char t =a.charAt(i-1);
                            //如果运算符是*
                            if(t=='*'){
                                //前一个数就乘它
                                temp*=d;
                            }else if(t=='/'){
                                temp/=d;
                            }
                        }
                        //把坐标向后移一个长度
                        i+=count+1;
                    }
                    str = str.replace(a, temp+"");
                }
            }
            //计算加减,与上面的思路一样
            for(int i = 0;i<str.length();){
                int count =1;
                a:for(int j=i+1;j<str.length();j++){
                    char c = str.charAt(j);
                    if(c=='+'||c=='-'){
                        break a;
                    }else{
                        count++;
                    }
                }
                String strNum = str.substring(i,i+count);
                double d  =Double.parseDouble(strNum);
                if(i==0){
                    sum=d;
                }else {
                    char s2 =str.charAt(i-1);
                    if(s2=='+'){
                        sum+=d;
                    }else if(s2=='-'){
                        sum-=d;
                    }
                }
                i+=count+1;
            }
            System.out.println(sum);
        }
    }

  

 四、运行结果

 五、psp阶段

psp 任务内容 计划完成需要用的时间 实际完成所用的时间
planning 计划 2 3
明确需求 估计这个任务大概需要多久,以及所进行的步骤 2 3
Development 开发 40 60
Analysis 需求分析 5 10
Design 具体设计 2 5
Coding 具体编码 40 68
Code Review 代码复审 20 30
Test 测试,包括修改 2 15
Reporting 报告 1 2
////// 计算工作量 2 3
///// 事后总结,并提出规程还进计划 5 7

六、个人总结

在写代码的时候,需要先有清晰的思路,现在脑子里大概构思好,然后再进行代码的编写,而且在写代码的过程中,需要不断的回忆以前的旧知识,也可以复习一下以前的知识,真是佩服那些程序员们,真厉害,因为是团队的问题,写的代码不仅自己能看懂,也得让别人也看懂,太厉害了,但是由于的我能力有限,没能写出出现括号的情况,如果表达式里面带有括号的话,运行会出错。

虽然每次写作业耗费了大量的时间和精力,但是让我学会了很多东西,获得了宝贵的经验。

原文地址:https://www.cnblogs.com/jinpai/p/14663663.html