20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

20145308刘昊阳 《Java程序设计》实验一报告

实验名称

Java开发环境的熟悉

实验内容

  1. 使用JDK编译、运行简单的Java程序
    2.使用Eclipse 编辑、编译、运行、调试Java程序

统计的PSP(Personal Software Process)时间

步骤 耗时(min) 百分比
需求分析 5~10 7%
设计 10~20 15%
代码实现 40~50 36%
测试 20~30 21%
分析总结 20~30 21%

实验步骤

  • 编写代码
    • 首先思考程序要实现什么功能,我设计程序实现对输入的学生成绩评级和打印输入的学生信息
    • 将学生信息封装到一个student对象中,进行操作时再建立实例进行操作
      • 代码
public class Student {
    String number;
    String name;
    int mark;

    public Student(String number,String name,int mark){
        this.number = number;
        this.name = name;
        this.mark = mark;
    }

    public Student(){

    }

}
  • 主要功能的实现主要是靠levelprint两个方法实现, 并设计菜单使程序能够调用两个方法
    • 代码
 import java.util.Scanner;

public class ex1 {
    public static void main(String[] args){
        Scanner s = new Scanner(System.in);
        Scanner n = new Scanner(System.in);
        Scanner u = new Scanner(System.in);
        Scanner c = new Scanner(System.in);
        Student student = new Student();
        System.out.println("请输入要处理的学生学号");
        student.number = u.next();
        System.out.println("请输入要处理的学生姓名");
        student.name = n.next();
        System.out.println("请输入要处理的学生分数");
        student.mark = s.nextInt();
        System.out.println("请选择要对该学生成绩进行的操作");
        System.out.printf("1.对成绩评级\n2.打印学生信息\n");
       int ch = c.nextInt();
        ex1 ex = new ex1();
        switch(ch){
            case(1):
                ex.level(student.mark);
                break;
            case(2):
                ex.print(student.number,student.name,student.mark);
        }

    }
    public void level(int score) {
            char level;
            if (score >= 90) {
                level = 'A';
            } else if (score >= 80 && score < 90) {
                level = 'B';
            } else if (score >= 70 && score < 80) {
                level = 'C';
            } else if (score >= 60 && score < 70) {
                level = 'D';
            } else {
                level = 'E';
            }
            System.out.printf("得分等级:%c\n", level);
    }
    public void print(String num,String nam,int Mark){
        System.out.printf("该学生学号:%s 姓名:%s 成绩%d",num,nam,Mark);
    }
}

  • 测试并调试代码
    • 使用命令行进行编译

    • 使用IDEA进行编译调试

      • 设置断点,可以设置条件

      • 打开Debug运行,输入数据

      • 设置两个断点,点击Resume让程序直接运行到第二个断点下一行

      • 点击单步执行(Step IntoStep Over),最后得出结果

      • 单步执行效率低,调试大循环用条件断点比较方便,我的代码里没有循环,要体现条件断点在循环中的作用,用老师给的带循环的代码试了一下

        • 设置条件断点,"i==50"

        • 单击Resume,可以查看循环运行中各个值变化

问题及解决过程

  • 问题:student对象中有namenumber两个String型变量,不知道怎么输入

  • 解决过程:书本上的Scanner方法中只讲解了输入intlong等类型变量,并没有讲解输入Stringchar变量,上网查资料,直接用next()方法就可以取到字符串

  • 问题:使用IDEA运行成功,使用命令行编译会显示输出部分有错

  • 解决过程:本来以为是printfprinntln以及输出内容格式上的问题,修改了格式发现还是会出问题,后来发现是编码的问题,IDEA与命令行所用编码不同,就将编码改为了UTF-8,运行成功

总结体会

  • 第一次实验将之前对着书敲代码的过程转换成了写程序的能力,实验过程中不仅更加熟悉了命令行和IDEA,还学习了IDEA环境下的Debug调试,还联系了自己编程的能力
posted @ 2016-04-10 20:52  20145308刘昊阳  阅读(381)  评论(2编辑  收藏  举报