java实验报告实验环境_20155320《Java程序设计》实验一(Java开发环境的熟悉)实验报告...

20155320《Java程序设计》实验一(Java开发环境的熟悉)实验报告

实验内容及步骤

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

步骤一:首先在cmd中输入d:和cd ljq20155320进入我进行代码托管的文件夹,,由于不小心输入错误我按了ctrl + c快捷键退出了当前操作,重新输入正确的操作cd 20155320然后输入md 20155320test和md exp1创建一个新的文件夹

b6c5d716b1a464445ac8601d4aa5d653.png

步骤二(编译 、运行java程序):我再exp1文件夹中新建了一个Hello.txt文本文件,在其中编辑相应代码并在cmd上编译并运行:

90120a14a123f6f1a922ef2725be51ee.png

614e0bd49d2278ac1de65eb9b3164df1.png

(二)使用IDEA编辑、运行、调试Java程序

1.在IDEA中新建project并将类名定义为HelloJDB,输入相应代码,并在第八行设定行断点

4d0a9035792c2c2e5109605c0d8f2461.png

2.在run菜单中找到deb按debug进行单步调试,显然程序将会运行到断点处停止,按Step Over往下运行,可看到结果为sum=11

a4197a134c3c83d5c7d2d9c6b98db5cd.png

75018e5ef5fef57aa16447fc114a4565.png

3.按Step Over继续往下运行,到12行时重新再设置一个断点,右键该断点设置i的值为50,再按resume得到i=50时的结果

e6a7dca58a9a8cede1adaf22bf943f26.png

77725d06939370a717aec3530e4cc5e2.png

[注意事项]:Step Into(F7)和step Over(F8)的区别

Step Over(F8):程序向下执行一行(如果这个此行有方法调用,这个方法将被执行完毕返回,然后到下一行)

Step Into(F7):程序向下执行一行,如果此行有自定义方法调用,则进入自定义方法中去)

因此在使用时需注意区分

(三)练习: 实现凯撒密码,并进行测试

前期准备

安装JDK并配置环境变量

下载IEDA,安装完毕后在IDEA界面中配置JDK,为后期运行IDEA调试程序做好准备

需求分析

需求分析

凯撒密码是一种移位密码,通过不同的密钥key来决定如何移位

需要分别设计两个方法来加密和解密

需要设计一个输入能正确接收输入的密文和明文

设计

声明java.util.Scanner,用于读入密钥key和密文、明文等。

-根据不同的选择进行加密或解密运算,并输出结果

-加密方法需将读入的字符串利用toCharArray()转化为字符数组。

主类的设计

在主类中输入密钥key并选择是进行加密还是解密运算

创建好加密解密方法后,在主类中调用即可。

代码实现 & 测试

public class的设计

public static void main (String[] args){

System.out.print("请输入密钥: ");

Scanner key = new Scanner(System.in);

int a= key.nextInt();

System.out.println("请选择加密(T)还是解密(F):");

String choose=key.next();

if(choose.equals("T")){

C(a);

}

else{

M(a);

}

加密方法C

public static void C(int n ){//加密

char b[];

char ch;

Scanner scanner=new Scanner(System.in);//

System.out.println("请输入一段明文: ");

String str2=(String)scanner.nextLine();//

b = str2.toCharArray();

System.out.println("密文为: ");

int k=n;

for (int i=0;i

if(b[i]!=' ')

ch = (char)((b[i]-'a'+k)%26+'a');

else

ch=' ';

System.out.print(ch);

}

System.out.println();

System.out.println("密钥k = " +k);

}

解密方法M

public static void M(int n){//解密

char b[];

char ch;

Scanner scanner=new Scanner(System.in);//

System.out.println("请输入一段密文: ");

String str2=(String)scanner.nextLine();//

b = str2.toCharArray();

System.out.println("明文为: ");

int k=n;

for (int i=0;i

if(b[i]!=' ')

ch = (char)((b[i]-'a'-k+26)%26+'a');

else

ch=' ';

System.out.print(ch);

}

System.out.println();

System.out.println("密钥k = " +k);

}

代码的调试:

在选择是进行加密还是解密运算时,我设计了一个比较选择,但是却出现了无论是选择加密还是解密都是解密的情况

a6da6a8f6133569356e05184c406bb5a.png

-通过单步调试我发现了问题出现在比较的地方:

80762f313444de0f162600e5e9cbf9cc.png

我突然想起String和对象的比较是不能用==进行的,而应该用equals()进行,通过改正解决了这一问题

IDEA下运行结果:

d3100df706d0fdd8573b0e15848aee30.png

25eef1f411dacf7fe454723b1dd2db89.png

命令行下运行结果:

打开cmd ,在命令行下运行该程序,却出现了如下错误:

58baec2a2b01930e913c34a39dbbef23.png

查了一会资料无果的情况下,偶然看到了20155321的博客发现他也遇到了同样的问题,根据其中记录的解决办法,我知道因为windows下默认的编码方式与IDEA设置的编码方式不同,将编码方式转为UTF-8即可成功运行,运行结果如下:

c4608b8d4a4f24f9e98d0875cc6e316c.png

分析总结(遇到问题及解决办法):

问题一:选择加密解密时出现了问题

解决:见上文调试部分

问题二:命令行下运行时出现了错误

解决:见上文命令行下的运行测试部分

在分析设计时一定要注意思考全面一点,像字符串比较之类的错误是比较常犯的一定要警醒,还有一些方法的调用还是有些反应不过来,还需多加练习。

PSP(Personal Software Process)时间

步骤

耗时

百分比

需求分析

15min

15%

设计

20min

20%

代码实现

35min

35%

测试

15min

15%

分析总结

15min

15%

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值