20155228 实验一《Java开发环境的熟悉》实验报告

实验内容

  • 使用JDK编译、运行简单的Java程序;

  • 使用IDEA 编辑、编译、运行、调试Java程序。

实验要求

  • 没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;

  • 完成实验、撰写实验报告,实验报告模板见QQ群,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);

  • 实验报告中统计自己的PSP(Personal Software Process)时间;

  • 严禁抄袭。

实验知识点

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

  • 命令行运行javac;java;javac -cp; java -cp;

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

  • 包管理:package;import;javac -d ;

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

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

  • JDK帮助文档的使用。

实验步骤

命令行下Java程序开发

1.进入终端:

在图形界面下鼠标右键可以打开终端,打开的终端所处的位置就是打开终端前所在文件夹的位置。或者使用快捷键ctrl+t

2.新建Code目录并进入:

home目录下输入mkdir Code新建目录Code,并输入cd Code进入Code目录。如果不在home目录下可以输入cd ~返回到home目录。输入ls可以查看当前文件夹下所有文件的名字。

3.建立并进入实验目录:

输入mkdir 20155228新建实验目录,输入cd 20155228进入实验目录,输入mkdir exp1新建实验一目录,输入cd exp1进入实验一目录。输入pwd可以查看现在所处位置。

4.新建vim文档编写代码:

输入vim Hello.java新建vim文档并进入编辑。打开文档后按a进入插入模式,输入以下代码。

 package ljp;
import java.util.Scanner;
public class Hello{
public static void main(String[] args){
System.out.println("Input your first name, please:");
Scanner s = new Scanner(System.in);
String name = s.next();
System.out.println("Hello " + name + " !");
}
}
  • 第一行代码的package使得代码在编译后将class文件放到java文件所在目录下的名为ljp文件夹中,如果没有就新建一个。

  • 第二行代码的import是调用API方法java.util.Scanner

5.编译运行代码:

输入javac -d . Hello.java编译代码,输入java ljp.Hello运行代码。

  • 编译代码的命令中-d是后面输入要编译的代码的位置,命令中.是指当前文件夹。

  • 运行代码的命令中ljp.Hello是指运行当前目录下名为ljp中的名为Hello的代码。

IDEA下Java程序开发、调试

1.新建工程和文件

运行IDEA点击create a new project,输入工程名,工程名随意写。然后在工程文件夹下的src文件夹新建文件,输入文件名,文件名也随意写下,但是在后面写public class时候需要保证公共类名与文件名相同。

2.输入代码并编译:

2 public class code0407 {
3 public static void main(String[] args) {
4 int i = 5;
5 int j = 6;
6 int sum = add(i, j);
7 System.out.println(sum);
8
9 sum = 0;
10 for(i=0; i< 100; i++)
11 sum += i;
12
13 System.out.println(sum);
14 }
15
16 public static int add(int augend, int addend){
17 int sum = augend + addend;
18 return sum;
19 }
20}

输入代码后按下ctrl+shift+f10编译代码

3.设置断点调试代码

  • 设置断点:点击行号右边空白位置即可设置断点

  • 运行当断点处:shift+f9到右上角去点那个昆虫图标也可以。

  • 运行下一行(step over):f8或者到左下角去点那个向下的箭头也可以。

  • 进入和离开函数(step in、step out)

切换到debuger栏目可以看到各个自变量在当前步骤的数值。

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

程序的功能是对输入的学生的姓名和成绩进行排序并以成绩升序的形式进行输出。

import java.util.*;
public class code040702 {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
System.out.println("输入学生的个数:");
int num=in.nextInt();
int a,b,i,j,temp,temp2;
int[] scores=new int[100];
String[] name=new String[100];
int[] rank=new int[100];
String tempname;
for(a=0;a<num;a++)
{
rank[a]=a;
b=a+1;
System.out.printf("请输入第%d个学生的姓名和成绩:",b);
name[a]=in.next();
scores[a]=in.nextInt();
}
/*for(a=0;a<num;a++)
{
System.out.printf("%d ",scores[a]);
}*/
for(i=0;i<(num-1);i++)
{
for(j=(i+1);j<num;j++)
{
if(scores[i]>scores[j])
{
temp=scores[i];
scores[i]=scores[j];
scores[j]=temp;
temp=rank[i];
rank[i]=rank[j];
rank[j]=temp;
}
}
}
System.out.println("学生成绩升序排名");
for(a=0;a<num;a++)
{
b=rank[a];
System.out.printf("%s %d\n",name[b],scores[a]);
} }
}

运行结果截图如下:

编程中遇到的问题和解决:

编程中主要遇到的问题是如何实现学生姓名和成绩的相互关联。在开始的时候我想到的办法是定义一个学生类,其中包括学生姓名的字符串成员变量和学生成绩的整数成员变量。这里涉及到多个学生,所以需要新建多个学生类实例,通过是上网查阅发现需要使用泛型还有Arraylist,从实现上来说并不容易。所以后来改换另外一种思路,将成绩和姓名分别放入一个数组和一个字符串中。另外再新建一个标号数组用于确定名字的输出顺序,在对成绩进行排序的时候也对标号进行排序,在输出成绩的时候根据标号输出对应的名字。

PSP时间统计

步骤 耗时 百分比
需求分析 5min 8%
设计 10min 16%
代码实现 30min 50%
测试 5min 8%
总结分析 10min 16%

20155228 实验一《Java开发环境的熟悉》实验报告的更多相关文章

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

    20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...

  2. 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...

  3. 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告

    20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...

  4. 20165205 实验一 java开发环境的熟悉 实验报告

    20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...

  5. 20162327实验一Java开发环境的熟悉实验报告

    20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...

  6. 实验一Java开发环境的熟悉

    实验一Java开发环境的熟悉 实验内容 •命令行下Java程序开发 •IDEA下Java程序开发.调试 •练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序) •实现凯撒密码 ...

  7. 20175316 盛茂淞 实验一 Java开发环境的熟悉

    20175316 盛茂淞 实验一 Java开发环境的熟悉 实验目的 使用JDK编译.运行简单的Java程序 实验要求 1.建立"自己学号exp1"的目录 2.在"自己学号 ...

  8. 20155327实验一 Java开发环境的熟悉

    20155327实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的java程序 2.使用IDEA编辑.编译.运行.调试java程序 实验步骤 1.使用JDK编译.运行简单的jav ...

  9. 20165233 实验一 Java开发环境的熟悉

    20165233 实验一 Java开发环境的熟悉 实验要求 1.没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 2.完成实验.撰写实验 ...

  10. 20155231 java实验一 Java开发环境的熟悉

    20155231 java实验一 Java开发环境的熟悉 实验要求 没有Linux基础的同学建议先学习<Linux基础入门(新版)><Vim编辑器> 课程: 完成实验.撰写实验 ...

随机推荐

  1. js数组方法汇总

    下面主要汇总一下数组的方法 数组方法: 1.检测是否为数组的方法:Array.isArrray(); var arr=[1,2,3,4,5]; var str='string'; console.lo ...

  2. 注解之@PathVariable

    @PathVariable只支持一个属性value,类型是为String,代表绑定的属性名称.默认不传递时,绑定为同名的形参. 用来便捷地提取URL中的动态参数.其英文注释如下: Annotation ...

  3. 并查集——合作网络D306

    合作网络D306             运行时间限制:1000ms: 运行空间限制:51200KB: 试题描述 有n个结点,初始时每个结点的父结点都不存在.你的任务是执行若干次Set操作和Query ...

  4. win10 下JDK10的下载安装与环境变量配置

    一.下载 首先,要在win10 操作系统上安装jdk,就要去oracle官网下载合适的jdk版本,在这里以jdk10进行安装 下载链接:http://www.oracle.com/technetwor ...

  5. 对集合类的属性进行kvo观察

    在进行容器对象操作时,先调用下面方法通过key或者keyPath获取集合对象,然后再对容器对象进行add或remove等操作时,就会触发KVO的消息通知了. - (NSMutableArray *)m ...

  6. 1 认识开源性能测试工具jmeter

    典型的性能测试工具主要有2个,Load Runner和jmeter.Load Runner是商业化的,Jmeter是开源的.下面我们认识一下开源性能测试工具jmeter. 1.jmeter是什么? A ...

  7. Redis入门到高可用(六)—— 字符串

    一.结构和命令 1.字符串键值结构 key是字符串,value可以是字符串.数字.二进制.json等: redis的key和string类型value限制均为512MB. 2.使用场景 ♦️ 缓存 ♦ ...

  8. AxMIMS系统开发环境搭建

    系统环境:Windows10, VS2013, Qt5.6.2 64bit 1.CloudCompare2.8.1编译 (shapefilelib1.3,geos3.6.1) 2.PCL-1.8.0- ...

  9. Hadoop生态集群hdfs原理(转)

    初步掌握HDFS的架构及原理 原文地址:https://www.cnblogs.com/codeOfLife/p/5375120.html   目录 HDFS 是做什么的 HDFS 从何而来 为什么选 ...

  10. JFrame绝对布局

    通过代码:setLayout(null);设置容器布局为绝对布局. 添加控件要注意:一定要设置控件具体的位置.可通过代码setLocation(20, 20)或者setBounds(0, 0, 30, ...