201723142017-2018-2《程序设计与数据结构》实验报告三(代码片段)

FYiW FYiW     2022-11-18     517

关键词:

课程:《程序设计与数据结构》
班级: 1723
姓名: 方艺雯
学号:20172314
实验教师:王志强
实验日期:2018年5月16日
必修/选修: 必修

1、实验内容

(1)代码规范
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菜单,找出一项让自己感觉最好用的功能。
(2)协同测试
在码云上把自己的学习搭档加入自己的项目中,确认搭档的项目加入自己后,下载搭档实验二的Complex代码,加入不少于三个JUnit单元测试用例。
(3)重构
http://www.cnblogs.com/rocedu/p/4795776.html, Eclipse的内容替换成IDEA。

(4)密码学应用
参考 http://www.cnblogs.com/rocedu/p/6683948.html,以结对的方式完成Java密码学相关内容的学习,结合重构,git,代码标准

2、实验要求

1、提交截图,加上自己学号水印。
2、测试成功后git add .; git commit -m "自己学号 添加内容";git push;提交搭档项目git log的截图,包含上面git commit的信息,并加上自己的学号水印信息。
3、完成重构内容的练习,下载搭档的代码,至少进行三项重构,提交重构后代码的截图,加上自己的学号水印。提交搭档的码云项目链接。
4、提交学习成果码云链接和代表性成果截图,要有学号水印。

3、实验过程及结果

准备:下载安装alibaba 插件。

实验一

  • 过程:
    1、打开 Settings ->Plugins ->Browse repositories...
    2、在搜索框输入alibaba即可看到Alibaba Java Code Guidelines插件,点击Install进行安装
    3、输入原始代码
    4、右键点击类名,再点击编码规约扫描
    5、发现问题
    6、点击Code下的Reformate Code格式化代码
  • 一般命名规则
    • 要体现各自的含义
    • 包、类、变量用名词
    • 方法名用动宾
    • 包名全部小写,如:io,awt
    • 类名第一个字母要大写,如:HelloWorldApp
    • 变量名第一个字母要小写,如:userName
    • 方法名第一个字母要小写:setName
  • 结果截图:

实验二

  • 过程:伙伴的代码是直接复制粘贴的,没有使用克隆,编写Junit单元测试,几个测试用例是类似的,git log是第一次使用。
  • 需要测试的方法 有:ComplexAdd(),ComplexSub(),ComplexMulti(),ComplexDiv()
  • 结果截图:

实验三

  • 过程:我使用了 toString、 Rename、Generate getter,由于没有找到组员的有问题的代码,所以没有什么错误改正。

  • 重构的目的:

    • 增加新功能;
    • 原有功能有BUG;
    • 改善原有程序的结构;
    • 优化原有系统的性能 。
  • 需要重构的地方:代码重复、方法过长、参数列过长、条件逻辑过度复杂、分支语句

  • 结果截图:


实验四

  • 过程:学习密码算法,参考博客
  • Java安全体系结构总共分为4个部分:
    • JCA( Java Cryptography Architecture, Java加密体系结构):JCA提供基本的加密框架, 如证书、 数字签名、消息摘要和密钥对产生器。
    • JCE( Java Cryptography Extension, Java加密扩展包):JCE在JCA的基础上作了扩展, 提供了各种加密算法、 消息摘要算法和密钥管理等功能。JCE的实现主要在javax.crypto包( 及其子包) 中
    • JSSE( Java Secure Sockets Extension, Java安全套接字扩展包):JSSE提供了基于SSL( Secure Sockets Layer,安全套接字层) 的加密功能。 在网络的传输过程中, 信息会经过多个主机(很有可能其中一台就被窃听) , 最终传送给接收者, 这是不安全的。这种确保网络通信安全的服务就是由JSSE来提供的。
    • JAAS( Java Authentication and Authentication Service, Java鉴别与安全服务):JAAS提供了在Java平台上进行用户身份鉴别的功能。
  • 凯撒密码算法:将字母表中的字母移动一定位置而实现加密。
    • 具体步骤:
      (1)根据凯撒密码特性设计算法
      (2)传入需要计算的字符串
      (3)处理计算结果
  • 结果截图:







4、实验中遇到的问题和解决过程

  • 问题一:在做实验二的时候,测试类总是出错。
  • 问题一解决:原因是在比较的时候没有加toString,必须是两个字符串型的才可以比较,改为如下就正确了。
assertEquals(new Complex(0,4).toString(),num1.ComplexAdd(num2).toString()

5、其他

这次的实验学到了很多关于代码的规范,一些方便的用法,感觉还是很实用的。

6、参考资料

201723142017-2018-2《程序设计与数据结构》实验报告一(代码片段)

201723142017-2018-2《程序设计与数据结构》实验报告一课程:《程序设计与数据结构》班级:1723姓名:方艺雯学号:20172314实验教师:王志强实验日期:2018年3月25日必修/选修:必修1.实验内容下载安装JDK和IDEA。学会使用IEDA简单地... 查看详情

201723142017-2018-2《程序设计与数据结构》实验报告三(代码片段)

课程:《程序设计与数据结构》班级:1723姓名:方艺雯学号:20172314实验教师:王志强实验日期:2018年5月16日必修/选修:必修1、实验内容(1)代码规范http://www.cnblogs.com/rocedu/p/4795776.html,Eclipse的内容替换成IDEA。参考http://www.cnbl... 查看详情

程序设计与算法

程序设计与算法[北京大学] 第一周:枚举完美立方生理周期称硬币熄灯问题讲义加群:597225218  输入:博客园程序设计与算法第一章第二周:递归(一)阶乘汉诺塔N皇后波兰表达式讲义加群:597225218  输入:博客园程序... 查看详情

201723272018-2019-1《程序设计与数据结构》实验三:查找与排序

201723272018-2019-1《程序设计与数据结构》实验三:查找与排序课程:《Java软件结构与数据结构》班级:201723姓名:马瑞蕃学号:20172327实验教师:王志强实验日期:2018年11月19日必修/选修:必修一、实验内容:实验二查找与排序-1... 查看详情

20172328《程序设计与数据结构》实验三:查找与排序

20172328《程序设计与数据结构》实验三:查找与排序课程:《软件结构与数据结构》班级:1723姓名:李馨雨学号:20172328实验教师:王志强老师实验日期:2018年11月19日-2018年11月25日必修选修:必修一、实验要求内容实验1:定义... 查看详情

20172308实验三《程序设计与数据结构》查找与排序实验报告(代码片段)

201723082018-2019-1实验3《查找与排序》报告课程:《程序设计与数据结构》班级:1723姓名:周亚杰学号:20172308实验教师:王志强实验日期:2018年10月20日必修/选修:必修1.实验内容查找与排序-1:定义一个Searching和Sorting类,并在... 查看详情

《程序设计与数据结构》第八周学习总结

学号20172326《程序设计与数据结构》第八周学习总结教材学习内容总结后绑定在程序执行时执行多态性可由继承与接口实现排序有选择法排序与插入法排序搜索分为线性搜索与二分搜索算法,同一类型的不同方法可能解决同一问... 查看详情

程序设计基石与实践专栏引导

本博文主要对通过程序设计基石与实践专栏归类,主要分为C语言与C++语言.下面对程序设计基石与实践专栏博文的索引:(待定未完待续)C语言话谈C语言让你成为一名Top的C语言程序员C语言程序员必读的5本书让你成为... 查看详情

计算机专业毕业设计(论文)题目汇总表.doc

考试报名数据处理系统设计与实现、基于WEB的车票预订信息系统设计与实现、全文搜索引擎的设计与实现、图书借阅管理信息系统设计与实现、图书销售管理信息系统设计与实现、学生选课信息系统设计与实现、运动会成绩管理... 查看详情

红书《题目与解读》第一章数学题解《acm国际大学生程序设计竞赛题目与解读》(代码片段)

...计划红书《题目与解读》第一章数学题解《ACM国际大学生程序设计竞赛题目与解读》全书目录:《题目与解读》红书训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》目录红书《题目与解读》第一章数学题解《ACM国际... 查看详情

风螺旋与飞行程序设计

精简版的课件分享。风螺旋课题的一个阶段性总结,后续将从理论向实践进行转变,希望取得更多的实践成果,再与大家分享!全文完,谢谢!  查看详情

RESTful URL 设计:公共与私有 API、分层 API 设计模式、URI 与 URL 设计?

】RESTfulURL设计:公共与私有API、分层API设计模式、URI与URL设计?【英文标题】:RESTfulURLdesign:publicvsprivateAPI,hierhachyAPIdesignpattern,URIvsURLdesign?【发布时间】:2013-12-1923:00:23【问题描述】:我经常遇到这样的问题,与HierarchicalRESTfulUR... 查看详情

程序设计语言与语言处理程序基础

重点1编译过程2文法定义 一颗语法树 有限自动机正规式7数据类型与程序控制结构8表达式9传值与传址传址调用10各程序语言特点  查看详情

201823222019-2020-1《数据结构与面向对象程序设计》第四周学习总结

教材学习内容总结1.编写类与方法(构造方法的结构和用途)2.实际参数与形式参数、public与private、return与void的区别与含义、3.UML类图的含义与形式4.静态类(Math类)静态变量、静态方法5.类间关系(依赖关系、聚合关系、继承... 查看详情

概要设计与具体设计

概要设计与具体设计在写概要设计与具体设计的时候,对于内容以及他们之间的界限非常easy模糊.今天写点自己的想法.有问题请大家不吝赐教:[email protected]首先大家要注意这2个文档最后2字,都是设计.设计就是设计,不是代码因... 查看详情

数学题解《acm国际大学生程序设计竞赛题目与解读》(代码片段)

...计划红书《题目与解读》第一章数学题解《ACM国际大学生程序设计竞赛题目与解读》全书目录:《题目与解读》红书训练笔记目录《ACM国际大学生程序设计竞赛题目与解读》目录红书《题目与解读》第一章数学题解《ACM国际... 查看详情

201723292017-2018-2《程序设计与数据结构》第十周学习总结

201723292017-2018-2《程序设计与数据结构》第十周学习总结教材学习内容总结第十三章一、集合与数据结构1、集合:是一种对象,类似于保存其他对象的存储库;2、作用:表示一个专用与保存元素的对象,并且该对象还提供增添、... 查看详情

系统分析与设计复习

文章目录系统分析与设计复习第1章系统分析与设计概述系统特性DevOps第2章系统规划**系统规划步骤**规划模型诺兰模型**CMM模型**系统规划方法战略集合转换法SST关键成功因素法CSF企业资源规划法BSPCSB三者联系和区别第3章系统分... 查看详情