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 实验序 ...
随机推荐
- Java的Bean
Bean的定义 遵循Sun的Java Bean规范编写的特殊类 Java Bean的规范 类的访问控制权限是public 类提供有一个无参的构造函数 类的属性的访问控制权限是private,通过set ...
- MySQL 5.6 & 5.7最优配置文件模板
Inside君整理了一份最新基于MySQL 5.6和5.7的配置文件模板,基本上可以说覆盖90%的调优选项,用户只需根据自己的服务器配置稍作修改即可,如InnoDB缓冲池的大小.IO能力(innodb ...
- Stone Game, Why are you always there? HDU - 2999(sg定理)
题意:给你n个数的集合,表示你每次取石子只能为集合里的数,然后给你一排石子,编号为1~n,每次你可以取相邻位置的连续石子(数量只能为集合里的数),注意石子的位置时不变的,比如把2拿走了,1和3还是不相 ...
- 【刷题】BZOJ 3669 [Noi2014]魔法森林
Description 为了得到书法大家的真传,小E同学下定决心去拜访住在魔法森林中的隐士.魔法森林可以被看成一个包含个N节点M条边的无向图,节点标号为1..N,边标号为1..M.初始时小E同学在号节 ...
- H5页面遮罩弹框下层还能滚动的问题
在页面上显示一个遮罩层,这是非常常见的操作,在遮罩层上操作,下层也会默认跟随手指滚动 此处就是要在显示遮罩的时候禁止下层滚动. 首先设置一个全局变量 var canScroll=false; 页面初始 ...
- MugLife app是一款可以将静态照片变成3D动画的手机应用
MugLife app是一款可以将静态照片变成3D动画的手机应用,如下效果图所示: 大家可以看到,这个静态图具有了类3D的动画特效,是不是很好玩? 这种算法是如何实现的呢? 这里给出一篇论文“Brin ...
- Andoid自动判断输入是电话,网址或者Email的方法--Linkify
Andoid自动判断输入是电话,网址或者Email的方法----Linkify的应用!http://blog.csdn.net/android_tutor/article/details/500016 ...
- Python之旅:入门
一 编程与编程语言 python是一门编程语言,作为学习python的开始,需要事先搞明白:编程的目的是什么?什么是编程语言?什么是编程? 编程的目的: #计算机的发明,是为了用机器取代/解放人力,而 ...
- lumen 增加视图路径
在 ServiceProvider 里面加上 app('view')->addLocation(module_path('Develop') . '/resources/views');
- matlab绿色版本合集
网上找的matlab绿色版本合集链接https://pan.baidu.com/s/1gfDyIo7 密码:pxrs