• 《个人开发流程》——宋嘉琪


    一、目的

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

    二、步骤

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

    三、核心代码

    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

    六、个人总结

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

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

  • 相关阅读:
    structInMemory
    合并字符串
    eggs
    1005. Spell It Right (20) -PAT
    60 人工智能
    50 计算机网络
    20数据结构
    40操作系统
    10 C/C++/python
    30汇编
  • 原文地址:https://www.cnblogs.com/songjiaqi/p/14643515.html
Copyright © 2020-2023  润新知