• 20165330 实验一 Java开发环境的熟悉


    一、实验内容及步骤

    1. 使用JDK编译、运行简单的Java程序
      • 使用命令 cd 20165330 进入到学号目录下
      • mkdir exp1新建文件夹
      • mkdir bin src建立bin src目录
      • vim src/Hello.java在src目录下编写程序
      • javac -g -d bin src/Hello.java编译到bin目录
      • java -cp bin ljp.Hello运行带包的程序

    实验截图如下:
    image

    1. 使用IDEA编辑、编译、运行、调试Java程序
      • 打开IDEA创建HelloJDB工程,并新建HelloJDB的class文件
      • 编写代码
      • 运行程序点击Run
      • 设置断点:在所想设的行处点击左键
      • 点击debug开始调试
      • 点击step into(F7)或step over(F8)进行单步运行
      • 可在断点处右键设置条件,后单击Resume图标,可直接运行到断点处

    实验截图如下:
    image
    image

    二、练习

    题目:4. 实现学生成绩管理功能(增删改,排序,查找),并进行测试(正常情况,异常情况,边界情况)。

    1. 要求:通过命令行和IDEA两种方式实现
    2. 设计思路:首先要有多个类的运用,分别进行功能操作、信息存放和功能实现的计算方法。
    • 主类为功能操作页面,显示各项功能操作
    class Menu
    {
        public static void paint()
        {
            clrscr();
            for (int i = 0; i < 80; i++)
            {
                System.out.print('=');
            }
            System.out.println();
    
            System.out.println("                             学生成绩管理系统                 ");
            System.out.println();
            System.out.println("               1 输入记录                       2 输出所有记录");
            System.out.println("               3 按平均成绩排序并输出           4 查找记录");
            System.out.println("               5 统计各分数段人数               6 删除记录");
            System.out.println("               0 退出");
    
            for (int i = 0; i < 80; i++)
            {
                System.out.print('=');
            }
            System.out.println("                                            ");
            System.out.println();
            System.out.print("请输入命令:");
        }
    
    • 然后实现信息存放,在这里我共输入了三门科目的成绩:Java、数学、英语
        public Student(int number, String name, int java, int math, int english)
        {
            this.number = number;
            this.name = name;
            this.english = english;
            this.math = math;
            this.java = java;
            total = english + math + java;
            average = total/3;
        }
    
        public int getNumber()
        {
            return number;
        }
    
        public String getName()
        {
            return name;
        }
    
        public int getEnglish()
        {
            return english;
        }
    
        public int getMath()
        {
            return math;
        }
    
        public int getJava()
        {
            return java;
        }
    
        public int getAverage()
        {
            return average;
        }
    
        public int getTotal()
        {
            return total;
        }
    }
    
    
    • 最后开始功能实现的运算方法(包括为增加、排序、查找、删除、总分、平均分、统计分数段)
    class StudentSet
    {
        private static final int maxLen = 1000;
        private static int len = 0;
        private static Student[] data = new Student[maxLen];
    
        public static int getMaxLen()
        {
            return maxLen;
        }
    
        public static int getLen()
        {
            return len;
        }
    
        public static Student getData(int index)
        {
            return data[index];
        }
    
        public static int addData(Student newData)
        {
            if (len < maxLen)
            {
                data[len] = newData;
                len++;
                return 0;
            } else
            {
                return -1;
            }
        }
    
        public static void sortData()
        {
            for (int i = 0; i < len -1; i++)
            {
                int minIndex = i;
                for (int j = i+1; j < len; j++)
                {
                    if (data[minIndex].getAverage() > data[j].getAverage())
                    {
                        minIndex = j;
                    }
                }
                if (minIndex != i)
                {
                    Student temp = data[i];
                    data[i] = data[minIndex];
                    data[minIndex] = temp;
                }
            }
        }
    
        public static int search(int number)
        {
            for(int i = 0; i < len; i++)
            {
                if (data[i].getNumber() == number)
                {
                    return i;
                }
            }
            return -1;
        }
    
        public static int delete(int number)
        {
            for (int i = 0; i < len; i++)
            {
                if (data[i].getNumber() == number)
                {
                    for (int j = i + 1; j < len; j++)
                    {
                        data[j-1] = data[j];
                    }
                    len--;
                    return 0;
                }
            }
            return -1;
        }
    
        public static int stat(int min, int max)
        {
            int sum =0;
    
            for (int i = 0; i < len; i++)
            {
                if ((data[i].getAverage() >= min) && (data[i].getAverage() <= max))
                {
                    sum++;
                }
            }
            return sum;
        }
    }
    
    
    • 运行结果截图:
      image

    • 遇到的问题和解决过程

    在运行时,出现
    image

    解决方法:翻看前面的代码,发现前面输入java成绩部分的java输入错误,导致与错误行中的java不对应,导致找不到该变量。

    三、实验体会与总结

    • 在本次实验中,前两个实验都是基本的操作,很快就可下手做,也是我更掌握了运行java的基本步骤,还有特别注意的带包的程序运行的不同之处。
    • 第三个实验对我来说有很大难度,之前C语言也遇到过类似的问题,大概的框架自己是很快可以想出来的,在往其中填补代码的过程就显得吃力,翻看了很多书上的内容,也询问好多人,平常的敲代码这一项任务还是要多上心,代码的框架结构、语句使用自己有时也要仔细推敲一下。
    步骤 耗时 百分比
    需求分析 5min 4%
    设计 20min 20%
    代码实现 60min 57%
    测试 15min 15%
    分析总结 5min 4%
  • 相关阅读:
    关于mybatis中mapper.xmlSQL语句书写的心得
    笔记
    SpringMVC的小总结
    配置generatorConfig.xml自动生成的代码的sql书写问题
    关于SQL中的排序问题
    鼠标的change事件
    Git学习笔记 --第一章
    XHR对象
    黑马程序员——java学习6(127-151)——多线程
    黑马程序员——java学习5(107-126)——内部类,异常,包
  • 原文地址:https://www.cnblogs.com/besty-zyx/p/8693290.html
Copyright © 2020-2023  润新知