20165227 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
20165227 《Java程序设计》实验一(Java开发环境的熟悉)实验报告
一、实验报告封面
课程:Java程序设计 班级:1652班 姓名:朱越 学号:20165227
指导教师:娄嘉鹏 实验日期:2018年4月2日
实验时间:13:45 - 15:25 实验序号:实验一
实验名称:Java开发环境的熟悉
实验题目:实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)
实验内容:
1.使用JDK编译、运行简单的Java程序;
2.使用IDEA 编辑、编译、运行、调试Java程序。实验要求:
1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程;
2.完成实验、撰写实验报告,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等);
3.实验报告中统计自己的PSP(Personal Software Process)时间;
4.严禁抄袭。实验知识点:
- JVM、JRE、JDK的安装位置与区别;
- 命令行运行javac;java;javac -cp; java -cp;
- PATH,CLASSPATH,SOURCEPATH的设定方法与应用;
- 包管理:package;import;javac -d ;
- Eclipse(Netbeans)管理Java项目,调试:断点、单步执行等;
- Java基础语法:类型与类型转换;变量;运算符;流程控制等;
- JDK帮助文档的使用。
二、实验步骤
(一)命令行下Java程序开发
1、打开Linux虚拟机中的终端进行如下操作

2、通过
vim Hello.java来编辑代码,并用javac -d . Hello.java来编译代码,最后用java zy.Hello运行带包代码

(二)IDEA下Java程序开发、调试
打开IDEA新建Java项目

运行代码用
Alt+Shift+F10快捷键

- 设置断点,直接在代码左侧单击右键

运行断点用
Alt+Shift+F9快捷键;继续向下单步执行可使用Step IntoF7和Step OverF8

或者直接
F9快捷键运行完毕

条件断点:
在断点出单击右键出现设置

从上一个断点通过快捷键
F9执行至条件断点

(三)练习
- 要求:实现凯撒密码并进行安全加固,并进行测试(正常情况,异常情况,边界情况)
- 凯撒密码:通过把字母移动一定的位数来实现加密和解密。明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。位数就是凯撒密码加密和解密的密钥。
1、代码
- 测试代码
import java.io.*;
import java.util.Scanner;
public class K {
public static void main(String[] args) {
Caeser person = new Caeser();
System.out.println("========================================");
System.out.println("==========加密输入1,解密输入2==========");
System.out.println("========================================");
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
if (n == 1) {
System.out.print("明文:");
Scanner scanner1 = new Scanner(System.in);
String m = scanner1.nextLine();
System.out.print("密钥:");
Scanner scanner2 = new Scanner(System.in);
int k = scanner2.nextInt();
try {
String serct = person.encrypt(m, k);
System.out.print("密文是:" + serct);
}
catch (E e){
System.out.println(e.warnMess());
}
} else {
System.out.print("密文:");
Scanner scanner1 = new Scanner(System.in);
String m = scanner1.nextLine();
System.out.print("密钥:");
Scanner scanner2 = new Scanner(System.in);
int k = scanner2.nextInt();
try {
String source = person.decrypt(m, k);
System.out.print("明文是:" + source);
}
catch (E e){
System.out.println(e.warnMess());
}
}
}
}
- 密码算法
public class Caeser {
String encrypt(String sourceString, int password) throws E{
char[] c = sourceString.toCharArray();
int m = c.length;
for (int i = 0; i < m; i++) {
if(c[i]>122||c[i]<65||(c[i]>90&&c[i]<97)){
throw new E(sourceString);
}
int mima = (c[i] - 'a' + password) % 26 + 'a';
c[i] = (char) mima;
}
return new String(c);
}
String decrypt(String sourceString, int password) throws E{
char[] c = sourceString.toCharArray();
int m = c.length;
for (int i = 0; i < m; i++) {
if(c[i]>122||c[i]<65||(c[i]>90&&c[i]<97)){
throw new E(sourceString);
}
int n = c[i] - 'a' - password;
if (n <= 0) {
n = n + 26;
}
int mima = n % 26 + 'a';
c[i] = (char) mima;
}
return new String(c);
}
}
- 异常代码
public class E extends Exception{
String message;
public E(String sourceString){
message = "输入错误!";
}
public String warnMess(){
return message;
}
}
测试
- 正常情况

- 异常情况

- 边界情况

3、IDEA测试
正常情况

异常情况

- 边界情况

三、实验过程中遇到的问题
- 会出现密文出现乱码的问题,已解决
四、实验体会与总结
- 在做前两个实验的过程中让我对代码的理解和对IDEA调试方面的理解都加深了,弥补了之前对与断点调试的理解运用不恰的问题
- 对于第三个练习实验,凯撒密码算法的编写让我思考了很久,在这里我又发现了自己对于Java代码和C语言功底的不足,通过资料查找和时间才算是完成了这个实验,也算是触及了密码算法实现的一角,加深了对其的理解
| 步骤 | 耗时 | 百分比 |
|---|---|---|
| 需求分析 | 7min | 5% |
| 设计 | 10min | 7% |
| 代码实现 | 100min | 73% |
| 测试 | 5min | 4% |
| 分析总结 | 15min | 11% |
参考资料
1.《Eclipse精粹(Eclipse Distilled)》
20165227 《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 实验序 ...
随机推荐
- javascript 进阶篇1 正则表达式,cookie管理,userData
首先,什么事正则表达式呢,其实引入概念很多时候并不能帮我们明白它到底是什么,所以我先简单描述下,正则表达式,其实就是一个记录字符串规则则的字符串,等我们看完这一部分,也就能明白它到底是什么了. 基本语 ...
- Angular 动态组件
Angular 动态组件 实现步骤 Directive HostComponent 动态组件 AdService 配置AppModule 需要了解的概念 Directive 我们需要一个Directi ...
- https和http/2
http://geek.csdn.net/news/detail/188003 HTTPS协议原理分析 HTTPS协议需要解决的问题 HTTPS作为安全协议而诞生,那么就不得不面对以下两大安全问题: ...
- 【刷题】BZOJ 2594 [Wc2006]水管局长数据加强版
Description SC省MY市有着庞大的地下水管网络,嘟嘟是MY市的水管局长(就是管水管的啦),嘟嘟作为水管局长的工作就是:每天供水公司可能要将一定量的水从x处送往y处,嘟嘟需要为供水公司找到一 ...
- 51nod 1421 最大MOD值 | 暴力
题面 有一个a数组,里面有n个整数.现在要从中找到两个数字(可以是同一个) ai,aj ,使得 ai mod aj 最大并且 ai ≥ aj. Input 单组测试数据. 第一行包含一个整数n,表示数 ...
- Nginx访问日志分析
nginx默认的日志格式 log_format main '$remote_addr - $remote_user [$time_local] "$request" ' '$sta ...
- java多线程 -- ReadWriteLock 读写锁
写一条线程,读多条线程能够提升效率. 写写/读写 需要“互斥”;读读 不需要互斥. ReadWriteLock 维护了一对相关的锁,一个用于只读操作,另一个用于写入操作.只要没有 writer,读取锁 ...
- Android Studio导入ApiDemos
安卓开发入门篇(一):Android Studio导入ApiDemoshttp://blog.csdn.net/dreamer2020/article/details/52316895 https:/ ...
- 解题:ZJOI 2013 K大数查询
题面 树套树,权值线段树套序列线段树,每次在在权值线段树上的每棵子树上做区间加,查询的时候左右子树二分 本来想两个都动态开点的,这样能体现树套树在线的优越性.但是常数太大惹,所以外层直接固定建树了QA ...
- 数据库之SQLite的介绍与使用20180705
一.SQLite 简介 1.介绍 SQLite,是一款轻型的数据库,是遵守ACID的关系型数据库管理系统,它包含在一个相对小的C库中.它是D.RichardHipp建立的公有领域项目.它的设计目标是嵌 ...