• 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%
  • 相关阅读:
    Pycharm的使用秘籍
    python 装饰器
    python继承和重写
    python中一切皆对象及__init__.py文件的使用
    python的参数类型与时序解包
    Jmeter使用计数器生成变量
    python unittest套件加载用例时,出现No tests were found,Empty test suite
    Python 执行tail文件并操作
    go 函数和流程控制
    go 数据类型和操作符
  • 原文地址:https://www.cnblogs.com/y963976867/p/8687023.html
Copyright © 2020-2023  润新知