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. 用promise和async/await分别实现红绿灯

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. BZOJ3613 南园满地堆轻絮 二分/贪心

    正解:贪心 解题报告: 传送门! 这题似乎是可以二分水过的,,,但数据可以加强一下就能简单把二分卡住了,或者修改下空间限制什么的反正就很容易能卡住 所以这里介绍一个优秀的贪心做法,O(n)的时间复杂度 ...

  3. Too many connections解决方法

    在工作中,大家或许常常遇到Too many connections这个错误,这时作为DBA想进数据库管理都进不去,是非常尴尬的一件事情.当然有同学说可以修改配置文件,但是修改配置文件是需要重启mysq ...

  4. 【叶问】 MySQL常用的sql调优手段或工具有哪些

     MySQL常用的sql调优手段或工具有哪些1.根据执行计划优化   通常使用desc或explain,另外可以添加format=json来输出更详细的json格式的执行计划,主要注意点如下:     ...

  5. node 学习系列-hello world

    准备学习node,记录一段 1.搭建好 node 以后,就记录一下 hello world

  6. map+case结构使用技巧

    people.txt文本如下 lyzx1, lyzx2, lyzx3, lyzx4, lyzx5, lyzx6, lyzx7, lyzx7,,哈哈 托塔天王 import org.apache.spa ...

  7. (转)通过Ajax使用FormData对象无刷新上传文件

    写在前面:本文说的这个方案有浏览器兼容性问题:所有主流浏览器的较新版本已经支持这个对象了,比如Chrome 7+.Firefox 4+.IE 10+.Opera 12+.Safari 5+,对兼容性比 ...

  8. 谷歌启用抓取JavaScript,应对方案!

    谷歌启用了抓取JavaScript来深入了解网站,这样,如果网站或黑页是加了跳转代码或判断代码,很有可能将会被识别出来.虽然目前只是谷歌启用识别JavaScript文件,但国内搜索引擎很可能也会跟着模 ...

  9. Tensorflow实现LeNet-5、Saver保存与读取

    一. LeNet-5 LeNet-5是一种用于手写体字符识别的非常高效的卷积神经网络. 卷积神经网络能够很好的利用图像的结构信息. 卷积层的参数较少,这也是由卷积层的主要特性即局部连接和共享权重所决定 ...

  10. Kotlin sealed class

    密封类的概念对于我这种从古代语言进化到现代语言的老古董来说还是有点绕腾的啊! 1. 密封类用来表示受限的类继承结构 解释:类中 元素值限制在某一个集合之中 2. 密封类可以有子类,但是所有的子类都必须 ...