20172318 2017-2018-2 《程序设计与数据结构》实验3报告
课程:《程序设计与数据结构》
班级: 1723
姓名: 陆大岳
学号:20172318
实验教师:王志强
实验日期:2018年5月10日
必修/选修: 必修
1.实验内容
- 1.实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。
在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。
public class CodeStandard {
public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if(buffer.capacity()<20)
buffer.append("1234567");
for(int i=0; i<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}
-
2.在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。 -
3.实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。 -
4.参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
提交学习成果码云链接和代表性成果截图,要有学号水印。
2. 实验过程及结果
实验一
实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
参考 http://www.cnblogs.com/rocedu/p/6371315.html#SECCODESTANDARD 安装alibaba 插件,解决代码中的规范问题。
在IDEA中使用工具(Code->Reformate Code)把下面代码重新格式化,再研究一下Code菜单,找出一项让自己感觉最好用的功能。提交截图,加上自己学号水印。
public class CodeStandard {
public static void main(String [] args){
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if(buffer.capacity()<20)
buffer.append("1234567");
for(int i=0; i<buffer.length();i++)
System.out.println(buffer.charAt(i));
}
}
-
按照步骤
Settings
->Plugins
->Browse repositories
...在idea中下载代码规范工具
-
使用
编码规约扫描
对代码进行扫描并找出问题
-
对问题进行修改之后的代码
/**
* @author 20172318
*/
public class CodeStandard {
public static void main(String [] args){
final int maxCapacity= 20;
StringBuffer buffer = new StringBuffer();
buffer.append('S');
buffer.append("tringBuffer");
System.out.println(buffer.charAt(1));
System.out.println(buffer.capacity());
System.out.println(buffer.indexOf("tring"));
System.out.println("buffer = " + buffer.toString());
if(buffer.capacity()<maxCapacity) {
buffer.append("1234567");
}
for(int i=0; i<buffer.length();i++) {
System.out.println(buffer.charAt(i));
}
}
}
-
使用这个代码在进行一次编码规约扫描,扫描通过
-
研究下code菜单,发现code菜单的添加注释的功能挺好的,使用快捷键shift+Ctrl+/也很方便
实验二
在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例,测试成功后git add .; git commit -m "自己学号 添加内容";git push;
提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
-
fork他的文件后 使用
git pull
下载文件到idea
-
加入不少于三个JUnit单元测试用例
-
测试成功
-
git到码云后请求合并
-
合并成功
实验三
实验三 敏捷开发与XP实践 http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA
完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
-
进行三项重构,主要是
-
提交到码云
实验四
参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准。
提交学习成果码云链接和代表性成果截图,要有学号水印。
- 凯撒密码
运行:
java Caesar "Hello World!" 4
将输出“Lipps Asvph!”。这里“Hello World!”是明文,“Lipps Asvph!”是密文。
-
Java对称加密-DES算法
Skey_DES:
(1) 获取密钥生成器
(2) 初始化密钥生成器
(3) 生成密钥
(4) 通过对象序列化方式将密钥保存在文件中
Skey_kb:
(1) 获取密钥
(2) 获取主要编码格式
(3) 保存密钥编码格式
SEnc:
(1) 从文件中获取密钥
(2) 创建密码器(Cipher对象)
(3) 初始化密码器
(4) 获取等待加密的明文
(5) 执行加密
(6) 处理加密结果
-
Java非对称加密-RSA算法
Skey_RSA:
(1) 创建密钥对生成器
(2) 初始化密钥生成器
(3) 生成密钥对
(4) 获取公钥和私钥
Enc_RSA:
(1) 获取公钥
(2) 获取公钥的参数(e, n)
(3) 获取明文整数(m)
(4) 执行计算
Dec_RSA:
(1) 读取密文
(2) 获取私钥
(3) 获取私钥的参数(d, n)
(4) 执行计算
(5) 计算明文整型数对应的字符串
-
使用密钥协定创建共享密钥
-
Java摘要算法- MD5,输入java DigestCalc abc来运行程序,其中命令行参数abc是原始数据,屏幕输出计算后的消息摘要:900150983cd24fb0d6963f7d28e17f72。
3. 实验过程中遇到的问题和解决过程
问题1:如何输入命令行参数
问题1解决方案:运行时点击图1上的图标,在如图2所示的地方输入
其他(感悟、思考等)
Java说难不难,说简单吧写博客又耗时间