Java实验报告一:Java开发环境的熟悉
实验要求:
1. 使用JDK编译、运行简单的Java程序
2.使用Eclipse 编辑、编译、运行、调试Java程序
实验内容
(一) 命令行下Java程序开发
(二)Eclipse下Java程序开发、调试
(三)练习(通过命令行和Eclipse两种方式实现,在Eclipse下练习调试程序)
1、实现凯撒密码,并进行测试。
(一):
首先双击桌面上的
Xface终端
图标,如下图所示:打开终端(类似Windows下的cmd),之后会自动运行shell程序,如下图所示:
输入
cd Code
命令进入Code(注意C要大写)目录,如下图所示:输入
mkdir 20135100
命令建立实验目录,注意目录名一定是自己的学号(学号要体现在实验报告截图中),可以使用ls
命令或dir
命令查看建立的目录情况。如下图所示:输入
cd 20135100
命令进入实验目录,再输入类似mkdir exp1
建立第一个实验目录,然后输入cd exp1
进入实验一目录,可以输入pwd
命令查看当前工作路径,如下图所示:输入
gedit Hello.java
(注意把代码保存到exp1目录中)或vim Hello.java
(建议大家花点时间学习一下Vim)编辑Hello.java,并输入以下代码:1 package ljp;
2 import java.util.Scanner;
3 public class Hello{
4 public static void main(String[] args){
5 System.out.println("Input your first name, please:");
6 Scanner s = new Scanner(System.in);
7 String name = s.next();
8 System.out.println("Hello " + name + " !");
9 }
10 }
注意代码的第一行,这会影响到我们使用javac编译代码的方式。
注意代码第二行,我们使用到Java类库中的类时,要用import导入相关的类(你可以暂时理解为C语言中include的功能),导入路径可以查看JDK帮助文档,比如我们使用到了Scanner类,路径见下图中红框。
7.输入javac -d . Hello.java
命令编译代码,输入java ljp.Hello
命令运行
程序。结果如下图所示:
注意:代码中有package时,使用javac编译代码时一定要加-d参数,运行代码时一定要加包名前缀。
(二):
1、在Eclipse中单击File->New->Class
新建Java类,如下图所示:
2、根据Java代码规范输入包名ljp
(小写,可以自定义),类名HelloJDB
(单词首字母大写),并勾选上自动产生main函数选项,最后单击Finish
按钮,如下图所示:
3、输入如下代码:```
1 package ljp;
2 public class HelloJDB {
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}
4、单击运行按钮(或使用Ctrl+F11
快捷键),就可以在控制台(Console)中看到运行结果。如下图所示:
5、下面我们练习调试程序,首先我们通过单击Window->Open Perspective->Debug
打开调试视图,如下图所示:
6、调试程序首先要会设置断点和单步运行。
设置断点比较简单,双击左侧即可。
调试:然后单击调试按钮(或使用F11
快捷键)开始调试Java程序,我们可以看到程序停留在了第4行,如下图所示:
注意,此时第4行代码并没有执行,我们可以把鼠标放到变量名上来查看变量的值,此时i的值并不是5,我们通过单步运行让程序运行到第5行,单步运行有两种:Step Into(快捷捷F5)和Step Over(快捷捷F5),这两种单步运行功能在运行语句时没有区别,在执行函数调用语句时,Step Into
会跳入函数实现,Step Over
会直接执行完函数,实际使用中我们优先使用Step Over
,只有函数执行出错了,说明程序问题在被调用函数中,这时再回来通过Step Into
进入函数进行调试。我们单击一下Step Over
图标(或F6
),程序停在了第5行,这时查看变量i的值,会看到i等于5。
7、单步执行效率比较慢,如果我们感觉到第6行到第10行的代码没有问题了,想让程序直接运行到第11行,怎么办?首先我们要在第11行设置断点,然后单击Resume
图标(快捷键F8
),程序就运行到了第11行。
(三):实现凯撒密码,并进行测试。
代码:
package ljp;
import java.util.Scanner;
public class kaisa
{
void mj()
{
Scanner in = new Scanner(System.in);
System.out.print("请选择操作(1.加密 2.解密):");
int n=in.nextInt();
if(n == 1)
{
System.out.print("请输入待加密的字符串:");
String str = in.next();
String jm="";
int key = 3;//凯撒密码加密,向后移位3位
for(int i = 0;i < str.length();i++)
{
char c = str.charAt(i);
if(c >= 'a'&&c <= 'z')
{
if(c>='x'&&c<='z')
{
c-=26;
c+=key;
}
else
{
c+=key;
}
}
else if(c >= 'A'&&c <= 'Z')
{
if(c>='X'&&c<='Z')
{
c-=26;
c+=key;
}
else
{
c+=key;
}
}
jm += c;
}
System.out.print("加密后的字符串是:"+jm);
System.out.print("\n输入任意建继续,0结束程序:");
n=in.nextInt();
if(n==0)
{
System.out.print(" 谢谢使用本程序,欢迎再次使用!");
}
else
{
this.mj();
}
}
else if(n == 2)
{
System.out.print("请输入待解密的字符串:");
String str = in.next();
String jm="";
int key = -3;//凯撒密码解密,向前移位3位
for(int i = 0;i < str.length();i++)
{
char c = str.charAt(i);
if(c >= 'a'&&c <= 'z')
{
if(c>='a'&&c<='c')
{
c+=26;
c+=key;
}
else
{
c+=key;
}
}
else if(c >= 'A'&&c <= 'Z')
{
if(c>='A'&&c<='C')
{
c+=26;
c+=key;
}
else
{
c+=key;
}
}
jm += c;
}
System.out.println("解密后的字符串:"+jm);
System.out.print("\n输入任意建继续,0结束程序:");
n=in.nextInt();
if(n==0)
{
System.out.print(" 谢谢使用本程序,欢迎再次使用!");
}
else
{
this.mj();
}
}
else
{
System.out.print("请输入1或2,其他字符无效!\n输入任意建继续,0结束程序:");
n=in.nextInt();
if(n==0)
{
System.out.print(" 谢谢使用本程序,欢迎再次使用!");
}
else
{
this.mj();
}
}
}
public static void main(String[] args)
{
kaisa mj=new kaisa();
System.out.println("******欢迎使用凯撒密码******");
mj.mj();
}
}
运行结果:
实验中遇到的问题和解决办法。
在实验二的操作过程中,在设置断点时,没有看懂老师的操作截图。所以自己上网百度以后发现,只需要简单的在所需断点的行的最左边双击就可以设置断点。
实验三的编译过程中,遇到较多问题。
首先,忘记了凯撒密码的原理。上网进行百度后才明白:它是一种替换加密的技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B变成E,以此类推。
其次,第一次独立编写代码,发现需要的知识储备不够多。在一边进行翻书,一边上网查找功能方法下,最终才编译成功。
实验收获
通过本次实验,我学会了再命令行中进行java文件的编写,学会了在eclipse中调试程序,最重要的是,在进行实验和解决问题的过程中,对编程有了更深一步的理解。在第三个实验编写的过程中,将看视频学习的内容,进行了应用,通过子父类的方式实现了一下,将不同的功能进行分装处理。还是真正动手操作才能学到知识。
Java实验报告一:Java开发环境的熟悉的更多相关文章
- java实验报告三 敏捷开发与XP
20145306 java 实验三 实验报告 实验内容 1.git下载结对同学的代码 2.修改结对同学的代码 3.实现代码重构 实验步骤 新建存储空间 git下载代码 将修改后的代码上传 上传结果 重 ...
- 20145212《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDE)
20145212<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDE) 实验内容及步骤 1.命令行下的JAVA程序开发 建立并进入实验目录: 撰写简单的Hello ...
- 20145213《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
20145213<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDEA) 实验要求 使用JDK编译.运行简单的Java程序. 使用IDEA编辑.编译.运行.调试J ...
- 20145206邹京儒《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
20145206<Java程序设计>实验报告一:Java开发环境的熟悉(Windows+IDEA) 实验内容及步骤 1.使用JDK编译.运行简单的Java程序: 建立实验目录: 在IDEA ...
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20145233韩昊辰 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
20145233 <Java程序设计>实验报告一:Java开发环境的熟悉 实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 ...
- 20155304 实验一《Java开发环境的熟悉》实验报告
20155304 实验一实验报告 实验一 Java开发环境的熟悉 实验内容 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA编译.编译.运行.调试Java程序. 实验步骤 (一)命令行下 ...
- 20162308 实验一《Java开发环境的熟悉》实验报告
a 20162308 实验一<Java开发环境的熟悉>实验报告 实验内容 使用JDK编译.运行简单的Java程序. 使用IDEA 编辑.编译.运行.调试Java程序. 实验要求 没有Lin ...
- 20162330 实验一 《Java开发环境的熟悉》 实验报告
2016-2017-2 实验报告目录: 1 2 3 4 5 20162330 实验一 <Java开发环境的熟悉> 实验报告 课程名称:<程序设计与数据结构> 学生班级:1623 ...
- 2018-2019-2 20175306实验二面向对象程序设计《Java开发环境的熟悉》实验报告
2018-2019-2 20175306实验二面向对象程序设计<Java开发环境的熟悉>实验报告 面向对象程序设计-1 实验要求: 参考:> http://www.cnblogs.c ...
随机推荐
- 【PAT】B1051 复数乘法(15 分)
要会使用math函数, 还要注意到用四舍五入的方法判断是否应该输出0.00 #include <math.h> #include<stdio.h> int main() { d ...
- IntelliJ IDEA 创建Spring项目
第一步:点击file --> new --> project... 第二步: 在左侧选择Spring, 然后勾选Spring , 最后点击Next 第三步 : 填写项目名称和项目地址,点击 ...
- 简单Nginx下防跨站、跨目录安全设置,支持PHP 5.3.3以上版本
Nginx下存在跨站和跨目录的问题,跨站和跨目录影响同服务器/VPS上的其他网站. PHP在5.3.3以上已经增加了HOST配置,可以起到防跨站.跨目录的问题. 如果你是PHP 5.3.3以上的版本, ...
- WIN10安装时msxml4.0提示2502、2503解决办法
原文地址:https://jingyan.baidu.com/album/b87fe19e54535552183568f5.html?picindex=1 在Win10中,在安装msi安装包的时候常常 ...
- 20145236《网络攻防》Exp5 MSF基础应用
20145236<网络攻防>Exp5 MSF基础应用 一.基础问题回答 解释exploit,payload,encode是什么: exploit就是负责负载有用代码的交通工具,先通过exp ...
- navicate使用小技巧
以下效果是按住alt+按住鼠标左键,往左往右移动,即可
- nginx的反向代理proxy_pass指令
1. 首先什么是代理服务器?客户机发送请求时,不会直接发送到目的主机,而是先被代理服务器收到,代理服务器收到客服机的请求后,再向目的机发出,目的机就会返回数据给客户机,在返回给客户机之前,会被代理服务 ...
- mysql 数据库表备份和还原
#!/bin/bash #ip地址 HOST=localhost #用户名 USER=claim #密码 PASSWORD=Pw123456! #数据库名称 DATABASE=claim_oauth2 ...
- JMS和AMQP的区别
JMS即Java消息服务(Java Message Service)应用程序接口,是一个Java平台中关于面向消息中间件(MOM)的API,用于在两个应用程序之间,或分布式系统中发送消息,进行异步通信 ...
- Java字节码里的invoke操作&&编译时的静态绑定与动态绑定
一个一直运行正常的应用突然无法运行了.在类库被更新之后,返回下面的错误. Exception in thread "main" java.lang.NoSuchMethodErro ...