zoukankan      html  css  js  c++  java
  • 实验一 Java开发环境的熟悉

    实验一 Java开发环境的熟悉

    20135318 刘浩晨

    一、实验内容

    1. 使用JDK编译、运行简单的Java程序

    2.使用Eclipse 编辑、编译、运行、调试Java程序

    3.完成练习:实现学生成绩管理系统功能

     

    二、实验要求

    1.完成实验、撰写实验报告,注意重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法以及分析(从中可以得到什么启示,有什么收获,教训等)。

    2.实验报告中统计自己的PSP(Personal Software Process)时间。

      附:统计时间表:

    步骤

    耗时

    百分比

    需求分析

     25min

     15%

    设计

     50min

     30%

    代码实现

     60min

     35%

    测试

    17min 

     10% 

    分析总结

     17min

     10%

     

    三、实验知识点

    1. JVM、JRE、JDK的安装位置与区别;

    2. 命令行运行javac,java;javac -cp; java -cp;

    3. PATH,CLASSPATH,SOURCEPATH的设定方法与应用;

    4. 包管理:package;import;javac -d ;

    5. Eclipse(Netbeans)管理Java项目,调试:断点、单步执行等;

    6. Java基础语法:类型与类型转换;变量;运算符;流程控制等;

    7. JDK帮助文档的使用;

     

    四、实验步骤

    (一)命令行下Java程序开发

    1.利用Xface终端打开命令行

    2.输入cd Code命令进入Code目录

    3.输入mkdir 20135318 命令建立实验目录,使用ls命令或dir命令查看建立的目录情况

    4.输入cd 20135318命令进入实验目录,再输入mkdir exp1建立第一个实验目录,然后输入cd exp1进入实验一目录,输入pwd命令查看当前工作路径

    5.输入gedit Hello.java,完成java程序的编写

      代码如下:

    Package lhc;

    Import java.util.Scanner;

    public class Hello{
       public static void main(sTring[] args){

          System.out.println(“Input your first name,please:”);

          Scanner a=new Scanner(System.in);

          String name=s.next();

          Systm.out.println(“Hello”+name+“!”);

      }

    }

    6.输入javac -d . Hello.java命令编译代码,输入java lhc.Hello命令运行 程序。结果如下图所示:

     

    (二)Eclipse下Java程序开发、调试

    1.打开Eclipse,新建Java Project,输入项目名称Hellohaha

    2.新建Java类,输入包名lhc,类名Hellohaha

    3.输入如下代码,并运行

    package lhc;

    public class Hellohaha {

      public static void main(String[] args) {

        int i = 5;

        int j = 6;

        int sum = add(i, j);

        System.out.println(sum);

        sum = 0;

        for(i=0; i< 100; i++)  

        sum += i;

        System.out.println(sum);

      }

      public static int add(int augend, int addend){

         int sum = augend + addend;

        return sum;

      }

    }

    4.调试程序,Toggle Breakpoint设置断点,F11快捷键调试。可把鼠标放在变量名上查看变量的值;Step Into或Step Over单步运行,

    5.单步执行效率比较慢,若想让程序直接运行到第11行,就要在第11行设置断点,然后单击Resume,程序就运行到了第11行

    6. Breakpoint Properties设置条件断点解决问题。并设置条件“i==50”,

     

    (三)练习:实现学生成绩管理功能,并进行测试。

    1.设定程序主要功能:输入并输出学生姓名、学号、课程数及每门课程成绩,并输出总分、平均分及排名

    2.详细设计方案:

    package 学生成绩管理系统;

    import java.util.Scanner;

    public class Text1 {

             public static void main(String[] args) {

                       // TODO Auto-generated method stub

                       int sum=0;

                       int  average=0;

                       Scanner input=new Scanner(System.in);

                       System.out.println("请输入学生总人数:");

                       int number=0;

                       number=input.nextInt();

                       System.out.println("请输入课程门数:");

                       int coursesnum=0;

                       coursesnum=input.nextInt();

                       String [] coursesname=new String[coursesnum];

                       for(int i=0;i<coursesname.length;i++)

                       {

                                System.out.println("请输入第"+(i+1)+"门课的名字:");

                                coursesname[i]=input.next();

                       }

                       String [] name=new String[number];

                       String [] ID=new String[number];

                       int [][] score=new int[number][coursesnum];

                       for(int i=0;i<name.length;i++)

                       {

                                System.out.println("请输入第"+(i+1)+"个学生的名字:");

                                name[i]=input.next();

                                System.out.println("请输入第"+(i+1)+"个学生的学号:");

                                ID[i]=input.next();

                                 for(int j=0;j<coursesname.length;j++)

                                 {

                                          System.out.println("请输入"+name[i]+" "+coursesname[j]+"的成绩:");

                                          score[i][j]=input.nextInt();

                                 }

                       }

                      

                       int [] scoreSum=new int [number];

                       int [] rank=new int[number];

                       for(int i=0;i<number;i++)

                       {

                                for(int j=0;j<coursesnum;j++)

                                {

                                         sum+=score[i][j];

                                }

                                scoreSum[i]=sum;

                                rank[i]=sum;

                                sum=0;

                       }

                       for(int i=0;i<number-1;i++)

                       {

                                for(int j=i+1;j<number;j++)

                                {

                                         if(rank[i]<rank[j])

                                         {

                                                    int temp=rank[j];

                                                    rank[j]=rank[i];

                                                    rank[i]=temp;

                                         }

                                }

                       }

                       System.out.print("学生 ");

                       System.out.print("学号 ");

                       for(int i=0;i<coursesnum;i++)

                       {

                                System.out.print(coursesname[i]+" ");

                       }

                       System.out.print("总分 ");

                       System.out.print("平均分 ");

                       System.out.print("排行榜");

                       System.out.print(" ");

                       int[]  temp=new int[number];

                       for(int i=0;i<temp.length;i++)

                       {

                                for(int j=0;j<scoreSum.length;j++)

                                {

                                         if(rank[i]==scoreSum[j])

                                         {

                                                   temp[i]=j;

                                         }

                                }

                       }

                       for(int i=0;i<number;i++)

                       {

                                System.out.print(name[temp[i]]+" ");

                                System.out.print(ID[temp[i]]+" ");

                                for(int j=0;j<coursesnum;j++)

                                {

                                         System.out.print(score[temp[i]][j]+" ");

                                }

                                System.out.print(scoreSum[temp[i]]+" ");

                                System.out.print((scoreSum[temp[i]]/coursesnum)+" ");

                                System.out.print("第"+(i+1)+"名");

                                System.out.print(" ");

                       }

             }

    }

    4.运行结果

    (1)命令行实现

     

    (2)Eclipse实现

     

    五、实验分析与总结

    (一)注意事项

       1.代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀。

       2.Step Into或Step Over单步运行,这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,Step Into会跳入函数实现,Step Over会直接执行完函数,实际使用中我们优先使用Step Over,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过Step Into进入函数进行调试。

    (二)遇到的问题及解决方法

      1.实验(一)中出现无效的标记:-d的错误

        决解方法:没有注意书写格式,正确格式应为:javac -d . Hello.java,-d前和后均有一个空格,改正后无错误。

      2.练习程序编写有困难

       决解方法:以前C语言曾实现过学生成绩管理系统,然后将以前的思路巩固了一下,先确认了这次代码要实现的具体功能,然后对二维数组再次进行学习,最终完成代码编写。

    (三)实验总结体会

        通过本次实验,完成了使用JDK编译、运行简单的Java程序和使用Eclipse 编辑、编译、运行、调试Java程序的学习与熟悉。并在自己编写代码的过程中逐渐寻找编程的感觉,但同时也感到了一点困难。练习实验并没有自己想得那么简单,但只要认真理解知识点后还是能够完成。只有实际操作才能寻找自己的不足与薄弱环节,以后实验一定认真对待,积极学习。

     

  • 相关阅读:
    SSD论文优秀句子
    A Case Study -- Performance Evaluation of a DRAM-Based Solid State Disk
    A Case for Flash Memory SSD in Enterprise Database Applications
    Understanding Manycore Scalability of File Systems
    slabs.c
    背包九讲
    redis async client 与自有框架集成
    同步git修改文件到远端服务器脚本
    服务发现:Zookeeper vs etcd vs Consul
    Linux 常用工具贴
  • 原文地址:https://www.cnblogs.com/lhc-java/p/4433746.html
Copyright © 2011-2022 走看看