• 20145326 《Java程序设计》实验一实验报告


    北京电子科技学院(besti)实验报告

    课程:Java程序设计
    班级:1453
    指导教师:娄嘉鹏
    实验日期:2016.04.08
    实验名称:Java开发环境的熟悉(Linux + Eclipse)
    实验内容:
    1.使用JDK编译、运行简单的Java程序;
    2.使用Eclipse 编辑、编译、运行、调试Java程序。
    实验目的与要求:
    1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
    2.完成实验、撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);
    3.实验报告中统计自己的PSP(Personal Software Process)时间:



    实验内容、步骤与体会


    一、实验内容:

    使用JDK和IDE编译、运行简单的Java程序,
    题目: 实现四则运算,并进行测试。

    程序设计思路:

    四则运算顾名思义,就是加、减、乘、除四种运算,因为一开始要有输入,所以我就调用了Scanner实例,当用户选择不同运算时,我打算用switch与case语句来实现,这就是我一开始凭感觉想到的东西,于是我做了个比较基础的:先让用户输入两个数,然后选择一种运算方式,然后得出结果,就这么简单。
    将这两个数分别定义成双精度浮点型数据,分别为a和b。接着就是选择运算方式,用switch与case语法来实现,然后进入switch的case里面,直接System.out.println()出相应的式子就可以了。

    步骤 耗时 百分比
    需求分析 30分钟 16%
    设计 1小时 33%
    代码实现 30分钟 16%
    测试 30分钟 16%
    分析总结 30分钟 16%








    程序代码:


             package field; 
             import java.util.Scanner;  
             public class Main {  

                while(true)
                {
                System.out.println("PLEASE INPUT TWO NUMBERS");
                Scanner scanner =new Scanner(System.in);
                Double a=scanner.nextDouble();
                Double b=scanner.nextDouble();

                System.out.println("PLEASE CHOOSE:1、ADD 2、MINUS 3、MULTIPLY 4、DIVIDE");
                int choice=scanner.nextInt();

                switch (choice) {
                case 1:
                System.out.print("结果为");
                System.out.println(a+b);
                break;
                case 2:
                System.out.print("结果为");
                System.out.println(a-b);
                break;
                case 3:
                System.out.print("结果为");
                System.out.println(a*b);
                break;
                case 4:
                if(b==0)System.out.println("ERROR");
                System.out.print("结果为");
                System.out.println(a/b);
                break;
                default:System.out.println("ERROR");
              }
            }
           }
        }

    运行结果为:




    二、调试代码(1):一开始确实编译成功了,不过突然发现没有考虑到除数为0的情况,这在逻辑上是不严谨的。于是在除法那块加上了判断除数是否为0,最开始不知道什么是断点,也没有用断点来调试,不过后来百度知道了在eclipse中设置断点的方法:在方法内部选择要打断点的代码,双击,左边会出现一个点。然后在工具栏中找debug,点击后也许会出现切换窗口的对话框,点击YES,一般按F8来一步步调试。



    三、实验体会(1)实验课下来以后,觉得自己之前编的那个四则运算确实太基础太简单了,没有挑战性,不大满意。又因为自己想尝试一些新的东西,所以以玩的心态,在原有代码的思想上做了一些改进。首先先判断用户输入的数字是否符合运算要求,如果不考虑这一点的话万一用户不小心输入了错误的数字,那么就会导致运算发生错误。这让我想到了第八章的知识,使用try、catch语法,如果发生错误,执行流程会跳离错误发生点,显示更友好的错误信息。其次,主程序依旧用了循环。这次整个程序运用了do while语法,使整个程序可以不断地循环,避免用户需要不断编译程序,在这个循环中,用户能够根据自己的需要选择继续还是结束,给了用户更多的选择空间。




                      
    程序代码:

                       package field;
                       import java.util.Scanner;
                      import java.text.DecimalFormat;
                public class Zhidao {

              public static void main(String[] args) {
              String condition = "";
              Zhidao zhidao = new Zhidao();
                
    do{                       
                Scanner scanner = new Scanner(System.in);
                try{
                    System.out.print("输入第一个数:");
                    double x = scanner.nextDouble();
                    System.out.print("输入第二个数:");
                    double y = scanner.nextDouble();
                    System.out.print("输入运算符:");
                    String s = scanner.next();
                   
     char z = s.charAt(0);
                    zhidao.yunsuan(x, y, z);
                }catch(Exception e)
                {
                    System.out.println("请输入正确的数据!");
                }
                System.out.print("是否继续?continue:继续,任意字符:结束");
                condition = scanner.next();

          
      }while("continue".equals(condition));
        }

        public static void yunsuan(double x,double y,Character z){
            DecimalFormat r=new DecimalFormat();
            r.applyPattern("#0.00");
            if(z.equals('+')){
                System.out.println(x+"+"+y+"=" + r.format((x+y)));
            } else if(z.equals('-')){
                System.out.println(x+"-"+y+"=" + r.format((x-y)));
            } else if(z.equal
    s('*')){

                System.out.println(x+"*"+y+"=" + r.format((x*y)));
            } else if(z.equals('/')){
             
       if(y==0)
                {
                    System.out.println("被除数不能为0");
                } 
                else{
                    System.out.println(x+"/"+y+"=" + r.format((x/y)));
                    }

            }
            else{
                System.out.println("无法识别该运算符");
                }
        }
    }


    运行结果:

     







    调试代码(2):由于对Java的知识掌握得并不是炉火纯青,所以刚开始只是有好的设计思路但却不会设计,后来就网上查阅,又看了书上的相应的程序,整理思绪,一步步逐渐实现代码。我最开始就在类那里出现了问题, 程序中显示的是
    >
    Exception in thread "main" java.lang.RuntimeException: Uncompilable source code - Erroneous tree type: 
    at cc.openhome.Zhidao.main(Zhidao.java:11)
    C:UsersAdministratorAppDataLocalNetBeansCache8.1executor-snippets un.xml:53: Java returned: 1


    后来才发现原来是没有数据库操作,哎,还是自己主动动手编程太少了,这点意识都没有。后来加上了数据库操作,程序就跑起来了。


    实验体会(2):本次实验是第一次实验,相对来说我抽的题目——四则运算还比较简单,还好这次的程序代码没有太大的问题,自己都能够解决。但是不得不承认,我感觉我还是很缺乏Java的实战经验,第一次的代码没啥难度,思路也清晰易懂,第二次尝试了一些不一样的东西,比如try、catch的调用,虽然中途有一些问题,但最后也成功了。以后不止要多敲代码,还要多“主动”的敲代码,这才是重点,不要盲目的抄书,要把书上的东西最终都变成自己的!

  • 相关阅读:
    Sqlmap使用详解
    WEB漏洞学习手册
    量压形态的使用方法
    sql执行过程及常见优化手段
    什么是JavaScript 函数作用域
    git http 拉取代码 自动输入用户名和密码
    PHP 报文件写入无权限 file_put_contents failed to open stream: Permission denied in xxxxx on line 2
    记一次 解决PHP Linux服务器报 打开文件数过多的异常
    微信开发 坑 记录帖
    python 安装 cv2 注意事项 填坑 opencv-python 找不到指定的模块
  • 原文地址:https://www.cnblogs.com/cxy1616/p/5374708.html
Copyright © 2020-2023  润新知