20155320《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20155320《Java程序设计》实验一(Java开发环境的熟悉)实验报告
实验内容及步骤
(一)命令行下Java程序开发
步骤一:首先在cmd中输入d:
和cd ljq20155320
进入我进行代码托管的文件夹,,由于不小心输入错误我按了ctrl + c
快捷键退出了当前操作,重新输入正确的操作cd 20155320
然后输入md 20155320test
和md 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开发环境的熟悉)实验报告的更多相关文章
- 20145308刘昊阳 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20145308刘昊阳 <Java程序设计>实验一报告 实验名称 Java开发环境的熟悉 实验内容 使用JDK编译.运行简单的Java程序 2.使用Eclipse 编辑.编译.运行.调试J ...
- 20175316 盛茂淞 2018-2019-2 《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20175316 盛茂淞 2018-2019-2 <Java程序设计>实验一 Java开发环境的熟悉 实验报告 一.实验要求 1.使用JDK编译.运行简单的Java程序: 2.使用IDEA ...
- 20165327《Java程序设计》实验一 Java开发环境的熟悉 实验报告
20165327<Java程序设计>实验二 <Java面向对象程序设计>实验报告 实验二 <Java面向对象程序设计> 一.实验报告封面 课程:Java程序设计 班 ...
- 20165205 实验一 java开发环境的熟悉 实验报告
20165205 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘喆君 学号:20165205 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验 ...
- 实验一《开发环境的熟悉》&实验二《固件设计》
20145312&20145338 实验一<开发环境的熟悉>&实验二<固件设计> 合作博客链接:http://www.cnblogs.com/yx2014531 ...
- 20162327实验一Java开发环境的熟悉实验报告
20162327 <程序设计与数据结构>第一次实验报告 基础知识 1.JDB的使用 使用JDB调试程序需要以下五个步骤: 1.设置断点 stop in 2.run 3.print 4.ne ...
- 20145233韩昊辰 《Java程序设计》实验报告一:Java开发环境的熟悉(Windows+IDEA)
20145233 <Java程序设计>实验报告一:Java开发环境的熟悉 实验要求 使用JDK编译.运行简单的Java程序: 使用IDEA 编辑.编译.运行.调试Java程序. 实验内容 ...
- 20175236 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:温丰帆 学号:20175236 指导教师:娄嘉鹏 实验日期:2019年4月2日 实验时间:13:45 - 15:25 实验序号:实验一 ...
- 20165234 《Java程序设计》实验一 Java开发环境的熟悉
一.实验报告封面 课程:Java程序设计 班级:1652班 姓名:刘津甫 学号:20165234 指导教师:娄嘉鹏 实验日期:2018年4月2日 实验时间:15:35 - 17:15 实验序 ...
- 2018-2019-2 20175227张雪莹 《Java程序设计》 实验一 Java开发环境的熟悉
2018-2019-2 20175227张雪莹<Java程序设计> 实验一 Java开发环境的熟悉 一.实验报告封面 课程:Java程序设计 班级:1752班 姓名:张雪莹 学号:2017 ...
随机推荐
- codeforces 407C Curious Array
codeforces 407C Curious Array UPD: 我觉得这个做法比较好理解啊 参考题解:https://www.cnblogs.com/ChopsticksAN/p/4908377 ...
- codeforces 388D Fox and Perfect Sets(线性基+数位dp)
#include<bits/stdc++.h> using namespace std; #define fi first #define se second #define mp mak ...
- Java Basic Notes——static修饰符
1.static 在程序中任何变量或者代码都是在编译时由系统自动分配内存来存储的,而所谓静态就是指在编译后所分配的内存会一直存在,直到程序退出内存才会释放这个空间,也就是只要程序在运行,那么这块内存就 ...
- android--简单的发短信功能
一.准备字符资源 <string name="tip_phone">请输入电话号码</string> <string name="tip_s ...
- JavaScript权威指南第01章 JavaScript 概述
版权声明:本文为博主原创文章,未经博主同意不得转载. https://blog.csdn.net/huangbin10025/article/details/27951767 JavaScript 概 ...
- 1. Docker基础命令
本文简要介绍Docker的基础命令,目的在于快速入门Dokcer,Docker的完整命令可以参考Docker官方手册. 0. 安装Docker Docker当前分为企业版(Docker Enterpr ...
- 关于IntelliJ IDEA 文档无法编辑的解决办法
问题:在调试的时候,光标无法聚焦到代码区,导致无法编辑代码.停止调试后,问题仍然存在,需要重启idea. 这个问题纠结了我一个上午,百狗一通,发现都是说要卸载vim插件啥的,但是我是没装过vim插件. ...
- (转)进程process和线程thread的关系
写的很好很明白cpu每次只能执行一个进程,所以其他进程会挂起 在一个进程中,允许存在n个线程,n个线程共享这个进程中的资源 多个线程在共享的时候存在资源互斥,一次只能一个线程,会需要加锁 一次存在固定 ...
- Struts2学习总结——文件上传与下载
Struts2文件上传与下载 1.1.1新建一个Maven项目(demo02) 在此添加Web构面以及 struts2 构面 1.2.1配置Maven依赖(pom.xml 文件) <?xml v ...
- JUnit提供测试框架的优势(JUnit Provides Advantages as a Test Framework)
测试Java类的内部功能就是刚才你做的那些工作了.真正的测试和刚才的简单例子的主要区别是代码库的大小和复杂度.在处理一大堆代码时,你会需要收集情况报告.但上面的例子遇到第一个错误就停止了,它没有收集尽 ...