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

实验内容及步骤

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

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

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

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

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

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



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

[注意事项]: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<str2.length();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<str2.length();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); }

代码的调试

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

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

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

IDEA下运行结果:

命令行下运行结果:

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

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

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

  • 问题一:选择加密解密时出现了问题
  • 解决:见上文调试部分
  • 问题二:命令行下运行时出现了错误
  • 解决:见上文命令行下的运行测试部分

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

PSP(Personal Software Process)时间

步骤 耗时 百分比
需求分析 15min 15%
设计 20min 20%
代码实现 35min 35%
测试 15min 15%
分析总结 15min 15%

20155320《Java程序设计》实验一(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. 实验一《开发环境的熟悉》&实验二《固件设计》

    20145312&20145338 实验一<开发环境的熟悉>&实验二<固件设计> 合作博客链接:http://www.cnblogs.com/yx2014531 ...

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

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

  7. 20145233韩昊辰 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)

    20145233 <Java程序设计>实验报告一:Java开发环境的熟悉 实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 ...

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

    一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:温丰帆 学号:20175236 指导教师:娄嘉鹏 实验日期:2019年4月2日 实验时间:13:45 - 15:25 实验序号:实验一 ...

  9. 20165234 《Java程序设计》实验一 Java开发环境的熟悉

    一.实验报告封面 课程:Java程序设计  班级:1652班  姓名:刘津甫  学号:20165234 指导教师:娄嘉鹏  实验日期:2018年4月2日 实验时间:15:35 - 17:15  实验序 ...

  10. 2018-2019-2 20175227张雪莹 《Java程序设计》 实验一 Java开发环境的熟悉

    2018-2019-2 20175227张雪莹<Java程序设计> 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:2017 ...

随机推荐

  1. Java 封装(内部类)

    1.封装 封装是指,一种将抽象性函式接口的实例细节部份包装.隐藏起来的方法.封装可以被认为是一个保护屏障,防止该类的代码和数据被外部类定义的代码随机访问.要访问该类的代码和数据,必须通过严格的接口控制 ...

  2. [T-ARA][나 어떡해/1977 기억 안나][我怎么办/1977我不记得了]

    歌词来源: 我怎么办:https://music.163.com/#/song?id=28111191 1977我不记得了:https://music.163.com/#/song?id=281111 ...

  3. CF Gym 100637B Lunch(拆分子问题)

    题意:在一条狭窄的沼泽上有一列数量为n的连续荷叶,编号为1-n.有一只蛤,在边s号荷叶上,其他荷叶上苍蝇,哈可以跳到相邻的荷叶上,或者越过一片荷叶,跳完以后原来的荷叶会沉,目标是f荷叶,在跳到f荷叶之 ...

  4. tree视图显示的记录数量

    在act_window中,定义limit字段,可以指定打开的tree视图的记录数量. limit:列表视图中每个页面的记录数.

  5. 6、Android---运用手机多媒体(待完成)

    6.1.程序运行在手机上 6.2.使用通知 通知是Android中比较由特色的一个功能 当某个应用程序需要向用户发出一些提示信息时 而该程序由不在前台的显示 就可以借助通知来实现 6.2.1.通知的基 ...

  6. StackExchange.Redis学习笔记(一) Redis的使用初探

    Redis Redis将其数据库完全保存在内存中,仅使用磁盘进行持久化. 与其它键值数据存储相比,Redis有一组相对丰富的数据类型. Redis可以将数据复制到任意数量的从机中 Redis的安装 官 ...

  7. Java性能监控

    Java性能监控 上次介绍了如何使用jvisualvm监控java,今天做进一步讲解!Java性能监控主要关注CPU.内存和线程. 在线程页中,点击线程Dump,可以生成threaddump日志,通过 ...

  8. Mysql查询正在运行的事务

    查询 正在执行的事务:SELECT * FROM information_schema.INNODB_TRX 根据这个事务的线程ID(trx_mysql_thread_id): 可以使用mysql命令 ...

  9. CSP 试题编号201803-2 Java实现

    package HB; import java.util.Scanner; public class Test_06 { public static void main(String[] args) ...

  10. 【TOJ 1072】编辑距离(动态规划)

    描述 假设字符串的基本操作仅为:删除一个字符.插入一个字符和将一个字符修改成另一个字符这三种操作. 我们把进行了一次上述三种操作的任意一种操作称为进行了一步字符基本操作. 下面我们定义两个字符串的编辑 ...