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


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

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

    步骤 耗时 百分比
    需求分析 1小时 20%
    设计 2小时 40%
    代码实现 40分钟 15%
    测试 40分钟 15%
    分析总结 30分钟 10%

    实验内容、步骤与体会

    一、实验内容:

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

    • 程序设计思路:
      根据题目,设计Java程序四则运算,因为能力有限,所以设计的是两个数之间的运算,首先先提示用户按顺序输入两个数字,当然中间也考虑到万一用户输入的数字不符合运算要求怎么办?所以,首先先判断用户输入的数字是否符合运算要求,如果不考虑这一点的话万一用户不小心输入了错误的数字,那么就会导致设计的程序瘫痪,或者导致运算发生错误。这让我正好想到了第八章的知识,使用try、catch语法,如果发生错误,执行流程会跳离错误发生点,显示更友好的错误信息。其次,主程序整个运用了do while语法,使整个程序可以不断地循环,避免用户需要不断编译程序,在这个循环中,用户能够根据自己的需要选择继续还是结束,然后根据用户的选择再进行相应的流程,给了用户更多的选择空间。其次就是运算符号“+”、“-”、“*”、“/”的识别,根据用户输入的运算符进行相应的运算,这个过程我觉得还可以用多种方法来编程,比如switch应该也可以。
    • 程序代码:
    import java.text.DecimalFormat;
    import java.util.Scanner;
    
        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.equals('*')){
                    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("无法识别改运算符");
                    }
            }
        }
    
    • 命令行运行结果:

    • IDE运行结果:

    二、遇到的问题及解决

    • 由于对Java的知识掌握的并不是很好,所以刚开始只是有设计思路但却不会设计,后来就看了书上的几个相应的程序,按照书上例子的思路开始编程。首先在类那里出现了问题, String condition = "";刚开始只是按照思路大概编出了框架,但就是理想和现实有差距,编程更是这样,所以不出意外的没有通过编译,后来才知道,没有数据库操作,所以就出现了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这样的错误。后来加上数据库操作,让它有个内存空间程序才运行成功。
    • 因为很少用DOS命令行来运行、编译程序,所以都有点儿忘记怎么操作了,忘记什么时候使用javac编译,什么时候使用java运行,不过还好实验内容里面有JVM、JDK的操作步骤,所以,第一步是先找到程序所在的文档,其次就是先用javac xxx.java编译,然后输入java xxx再Enter就可以直接运行。相比较而言,我觉得使用IDEA编辑、编译、运行、调试程序要方便的非常多,所以我还是习惯用IDEA。

    三、心得体会

    本次实验由于是第一次实验,相对来说简单一点儿,是Java开发环境的熟悉,所以主要问题还是出在程序的编译方面,不过还好这次的程序没有太大的问题,自己都能够解决。但是由于一直以来缺乏实战经验,这次实验还是遇到了比较多的困难,虽然实验不难,但是编程却是一项很艰难的挑战,对Java的基础语法不能熟练地运用,因为毕竟精力有限,不能花大把的时间都投入到编程上去。但是却越来越意识到编程的重要性,所以我希望自己的编程技术能不断地取得进步。

    恍惚中,时光停滞,岁月静好。。。
  • 相关阅读:
    系统运行性能监控日志
    iptables 操作
    访问dubbo没有权限,通过ip进行跳转服务器,并通过有权限服务器代理访问
    乐观锁
    ES的优化布局
    Docker壳的配置笔记
    expect 实现iterm2自动加载pem登录跳板机
    mybaits-spring demo 记
    Java中volatile修饰符,不稳定标记的用法笔记
    用intellj 建一个spring mvc 项目DEMO
  • 原文地址:https://www.cnblogs.com/feng886779/p/5372596.html
Copyright © 2020-2023  润新知