zoukankan      html  css  js  c++  java
  • 20165337第五周实验报告

    一.命令行下Java程序开发
    1.输入mkdir指令建立文件夹。
    2.输入javac -d . 目标文件夹/类名.java编译文件
    3.输入javac 包名.类名运行文件
    程序运行结果如下:

    二.使用IDEA调试程序
    1.编写程序及运行

    2.依次向下单步调试
    

    3.在循环内调试
    

    4.调试过程中,语句只运行一次
    


    三.编写并且调试运行程序
    1.实验题目:实现简单四则运算(能支持分数,加减乘除,支持括号)
    2.代码编写:

    import java.io.BufferedReader;
    import java.io.IOException;
    import java.io.InputStreamReader;
    import java.util.ArrayList;
    public class hellojdk{
        public static void main(String[] args){
            BufferedReader reader=null;
            InputStreamReader inputStreamReader=null;
            try{
                System.out.println("请输入表达式:或直接输入#结束运算!");
                inputStreamReader=new InputStreamReader(System.in);
                reader=new BufferedReader(inputStreamReader);
                String str=reader.readLine();
                while(!str.equals("#")){
                    System.out.println("运算结果为:"+opt(str)+"");
                    System.out.println("请输入表达式:或直接输入#结束运算!");
                    str=reader.readLine();
                }
            }catch(Exception e){
                e.printStackTrace();
            }
            if(reader!=null){
                try {
                    reader.close();
                } catch (IOException e) {
                    e.printStackTrace();
                }
            }
        }
    
        public static float opt(String s) throws Exception{
            if(s == null || "".equals(s.trim())) {
                return 0f;
            }
            int a1=s.indexOf("+");
            int a2=s.indexOf("-");
            int a3=s.indexOf("*");
            int a4=s.indexOf("/");
            int a5=s.indexOf("(");
            if(a1==-1&&a2==-1&&a3==-1&&a4==-1){
                if(s.trim()==null||"".equals(s.trim())){
                    throw new Exception("operate error");
                }
                return Float.parseFloat(s.trim());
            }
    
            if(a5!=-1){
                int a6=s.indexOf(")");
                if(a6==-1){
                    throw new Exception("括号不匹配");
                }else{
                    float f=opt(s.substring(a5+1,a6).trim());
                    s=s.replace(s.substring(a5,a6+1), String.valueOf(f));
                    return opt(s);
                }
            }
    
            if(a1!=-1){
                return opt(s.substring(0,a1))+opt(s.substring(a1+1,s.length()));
            }
            if(a2!=-1){
                return opt(s.substring(0,a2))-opt(s.substring(a2+1,s.length()));
            }
            if(a3!=-1){
                return opt(s.substring(0,a3))*opt(s.substring(a3+1,s.length()));
            }
            if(a4!=-1){
                return opt(s.substring(0,a4))/opt(s.substring(a4+1,s.length()));
            }
            return Integer.parseInt(s.trim());
        }
    }
    
    3.代码调试
    分别对加减,乘除,混合运算以及括号优先级的运算测试以及负数结果的测试。
    

    代码上传
    https://gitee.com/BESTI-IS-JAVA-2018/20165337

    步骤 耗时 百分比
    需求分析 30分钟 11.1%
    设计 3小时 66.7%
    代码实现 10分钟 3.7%
    测试 30分钟 11.1%
    分析总结 20分钟 7.4%
  • 相关阅读:
    Path Sum II
    Convert Sorted Array to Binary Search Tree
    Construct Binary Tree from Inorder and Postorder Traversal
    Construct Binary Tree from Preorder and Inorder Traversal
    Maximum Depth of Binary Tree
    Binary Tree Zigzag Level Order Traversal
    Binary Tree Level Order Traversal
    Same Tree
    Validate Binary Search Tree
    Binary Tree Inorder Traversal
  • 原文地址:https://www.cnblogs.com/y963976867/p/8687023.html
Copyright © 2011-2022 走看看