实验一 Java开发环境的熟悉
北京电子科技学院(BESTI)
实 验 报 告
课程:Java程序设计 班级:1353 姓名:陈巧然 学号:20135310
成绩: 指导教师:娄佳鹏 实验日期:2015.4.13
实验密级: 预习程度: 实验时间:18:30~21:00
仪器组次:10 必修/选修: 实验序号:1
实验名称: Java开发环境的熟悉
实验目的与要求:1.使用JDK编译、运行简单的Java程序
2.使用Eclipse 编辑、编译、运行、调试Java程序
3.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
4.实验报告中统计自己的PSP(Personal Software Process)时间
实验仪器:
名称 |
型号 |
数量 |
PC |
MacBook(win7) |
1 |
虚拟Linux系统 |
实验楼虚拟机 |
1 |
说明:在实验楼的实际操作过程中未截图,此报告中过程为二次在win7系统的cmd和eclipse中操作完成。
一、实验步骤
(一)命令行下Java程序开发
1.双击桌面上的Xface终端
图标,打开终端(类似Windows下的cmd),之后会自动运行shell程序
(win7系统中打开开始菜单,点击命令提示符,运行cmd)
2.输入【cd Code】
命令进入Code目录,输入【mkdir 20135310】
命令建立实验目录,可以使用【ls】
命令或【dir】
命令查看建立的目录情况
(win7中输入【cd Code】
命令进入Code目录,输入【mkdir 20135310】
或【md 20135310】命令建立实验目录,用【dir】
命令查看建立的目录情况)
3.输入【cd 20135310】
命令进入实验目录,再输入类似【mkdir exp1】
建立第一个实验目录,然后输入【cd exp1】
进入实验一目录,可以输入【pwd】
命令查看当前工作路径
(win7下建立目录的指令同上,当前工作路径已显示)
4.输入【gedit Hello.java】
(注意把代码保存到exp1目录中)或【vim Hello.java】
(建议大家花点时间学习一下Vim)编辑Hello.java,并输入以下代码:
package cqr;
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 + " !");
}
}
(win7下在命令行中输入【echo>Hello.java】创建java文件,输入【Hello.java】打开java文件进行编辑,代码同上)
注意代码的第一行,这会影响到我们使用javac编译代码的方式。
注意代码第二行,我们使用到Java类库中的类时,要用import导入相关的类(C语言中的include),导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类,路径为
java.util.Scanner
5.
输入【
javac -d . Hello.java】
命令编译代码,输入【java cqr.Hello
】
命令运行程序。
注意:代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀
(二)Eclipse下Java程序开发、调试
1.在命令行中输入【eclipse】
命令并回车或单击桌面上的Eclipse EE图标打开Eclipse
(win7中进入eclipse.exe所在目录,输入【eclipse.exe】打开eclipse)
2.在Eclipse中单击【File->New-> Java Project】
新建Java项目
3.输入项目名称【HelloWorld】
,并单击【Finish】
按钮完成新建项目
4.在Eclipse中单击【File->New->Class】
新建Java类
5.根据Java代码规范输入包名【cqr】
(小写),类名【HelloWorld】
(单词首字母大写),并勾选上自动产生main函数选项,最后单击Finish
按钮
6.输入如下代码,单击运行按钮(或使用【Ctrl+F11】
快捷键),就可以在控制台(Console)中看到运行结果
package cqr;
public class HelloWorld {
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;
}
}
7.调试程序,首先通过单击【Window->Open Perspective->Debug】
打开调试视图
8.设置断点,在第四行左边右键,点击【Toggle Breakpoint】,然后单击调试按钮(或使用【F11】
快捷键)开始调试Java程序,我们可以看到程序停留在了第4行
注意,此时第4行代码并没有执行,我们可以把鼠标放到变量名上来查看变量的值,此时i的值并不是5,我们通过单步运行让程序运行到第5行,单步运行有两种:【Step Into】(快捷捷F5)和【Step Over】(快捷捷F6),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,【Step Into】
会跳入函数实现,【Step Over】
会直接执行完函数,实际使用中我们优先使用【Step Over】
,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过【Step Into】
进入函数进行调试。单击一下【Step Over】
图标(或【F6】
),程序停在了第5行,这时查看变量i的值,会看到i等于5。
9.单步执行效率较慢,要想让程序直接运行到第11行,可以在第11行设置断点,然后单击【Resume】
图标(快捷键【F8】
),程序就运行到了第11行
10.设置条件断点:在第11行左边单击鼠标右键,选择【Breakpoint Properties...】,设置条件【i==50】
按一下【F8】,我们可以查看i的值是50
(三)练习(通过命令行和Eclipse两种方式实现,自己的学号后两位与题目总数取余的结果再加上1就是自己要完成的题号,在Eclipse下练习调试程序)
题目:实现凯撒密码,并进行测试。代码如下:
import java.io.*;
import java.util.Scanner;
class kaisa
{
public static void main(String[] args)
{
System.out.println("Please input the key:");
Scanner s=new Scanner(System.in);
int a =s.nextInt();
C(a);
}
public static void C(int k)
{
try
{
char b[];
BufferedReader br2=new BufferedReader(new InputStreamReader(System.in));
System.out.println("Please input the plain:");
String str2=br2.readLine();
b=str2.toCharArray();
System.out.println("The cipher:");
for (int i=0;i<str2.length() ;i++ )
{
char ch =(char)((b[i]-‘a‘+k)%26+‘a‘);
System.out.print(ch);
}
System.out.println();
}
catch (IOException e)
{
System.out.println(e.getMessage());
}
System.out.println("key="+k);
}
}
运行:
二、总结
(一)PSP时间
步骤 | 耗时 | 百分比 |
---|---|---|
需求分析 | 5 | 6.25% |
设计 | 5 | 6.25% |
代码实现 | 40 | 50% |
测试 | 20 | 25% |
分析总结 | 10 | 12.5% |
(二)遇到的问题和解决方法
1.命令行常用指令不熟练,Linux和Windows下的命令行指令大致相同,但很多细节方面不太一样,如windows下不能用【ls】查看目录、不需要输入【pwd】直接可显示当前工作路径等
2.Eclipse中,当打出前括号时会自动生成后括号,一开始因为不知道总是多出很多后括号,导致编译失败
3.实验楼虚拟机运行慢、反应迟钝,且很容易卡死挂住,加上学校内网速普遍偏慢,浪费太多时间。
(三)收获和感想
1.学到一些新的常见命令行指令,如 编译一个.java文件 :javac -d . 类名.java;在命令行中运行.class文件:java 包名.类名等
2.初次体验Linux和虚拟机,不知道是实验楼还是网速或者别的原因,总之感觉很不好……实验内容步骤都很基础,本可以很快完成,但实际却耗费我两晚的自由学习时间。个人觉得实验楼是前景不错的技术学习、交流平台,但尚未发展成熟。后面的实验若还是这种将大把时间用在等虚拟机反应上,我更愿意对照步骤在Windows系统中完成;另一方面,打算有空时多接触Linux环境,感受java的跨平台性并且学习处理不同平台间的差异和联系。
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。