实验三:实验报告

课程:程序设计与数据结构
班级: 1623
姓名: 张旭升
学号:20162329
指导教师:娄嘉鹏 王志强
实验日期:5月12日

实验密级: 非密级
预习程度: 已预习

必修/选修: 必修
实验序号: cs_29

实验名称: Java面向对象程序设计

实验内容

  1. XP基础

  2. XP核心实践

  3. 相关工具

实验要求


1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程

  1. 完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是 运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决 办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可 以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导

  2. 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。


实验步骤

(一)敏捷开发与XP
(二)编码标准
(三)结对编程
(四)版本控制
(五)重构
(六)Java密码学算法

实验过程

一.敏捷开发与XP

  • 敏捷开发包括许多模式,而XP模式就是其中一种,本次实验也主要讨论的就是这种模式。

  • XP是以开发符合客户需要的软件为目标而产生的一种方法论
  • XP是一种以实践为基础的软件工程过程和思想
  • XP认为代码质量的重要程度超出人们一般所认为的程度
  • XP特别适合于小型的有责任心的、自觉自励的团队开发需求不确定或者迅速变化的软件

XP模式的开发中就包括了一下过程:
1.编码标准:
  • 包、类、变量用名词
  • 方法名用动宾
  • 包名全部小写,如:io,awt
  • 类名第一个字母要大写,如:HelloWorldApp
  • 变量名第一个字母要小写,如:userName
  • 方法名第一个字母要小写:setName

    当代码可以满足以上的一些标准时代码的可读性就会大大增加,代码的档次也会立马提升。

2.结对编程
结对编程的好处在于当一个人的思维总是有局限性的,当两个人坐在一起编写一个代码时就好像飞机驾驶时需要一个机长和一个僚机一样,在减少出错的同时也能提出更多的建议或者意见。
3.版本控制
1.版本控制提供项目级的 undo(撤销) 功能: 没有什么事情是终结版本, 任何错误必须很容易回滚。 假设你在使用世界上最复杂的文字处理系统。 它具备了所有的能想到的功能,就是没有支持 DELETE(删除) 键。想象你打字的时候得多么的谨慎和缓慢吧, 特别是一篇超大的文档的快临近末尾的时候, 一个不小心就要重头再来(试想你选中所有的文字, 不小心按了 DELETE 键, 因为没有撤销功能,只好重新录入)。编辑文字和版本控制相同,任何时候都需要回滚,无论是一个小时, 一天, 还是一周, 这让你的团队工作自由快速的工作, 而且对于修正错误也非常自信。2.版本控制允许多人在同一代码上工作, 只要遵守一定的控制原则就行。 再也不会发生诸如一个人覆盖了另一个人编辑的代码,导致那个人的修改无效这样的情况。3.版本控制系统保存了过去所作的修改的历史记录。如果你遭遇到一些惊讶的代码,通过版本控制系统可以很容易找出是谁干的, 修改了什么, 修改的时间, 如果幸运的话,还能找出原因。4.版本控制系统还支持在主线上开发的同时发布多个软件版本。在软件发布的时候也不需要整个团队的停止工作,不需要冻结代码。5.版本控制也是项目级的时间机器,你可以选择任何一个时间, 精确地查看项目在当时的情况。 这对研究非常有用, 也是重现以前某个有问题的发布版本的基础。
4.重构

重构就是在不改变软件外部行为的基础上,改变内部的结构,使其更加易于阅读、易于维护和变更。

目前我们对于类的重构是对于IDEA菜单栏中的Refactor选项卡中的各个功能的使用学习:
  • Rename功能可以修改类的名字或变量的名字使其更符合代码的编码标准。
  • Encapsulate Field功能可以实现对类中变量的封装,并快捷生成set,get方法。
  • Extract Method功能可以用于提取重复代码然后用 Generate中相应的方法对重复代码进行重构,提高代码质量。

Java密码学算法

凯撒密码:
之前在书本学习的章节中我们就有接触过简单的密码算法,就是凯撒密码,它是一种典型的对称型密码学算法,相对其它的密码算法来说是比较简单的,原理就是将一句英文句子通过将每一个字母的```ASCLL```码都加或减去几位,可以将原来的句子编程另一个句子或者乱码从而实现明文加密的目的,同时解密的时候就是用同样的方法回移相同的位数就可以了。
其他加密算法:
在Java的JDK中已经给我们提供了许多不同种类的加密算法,而通过这次实验我们所学习的分别是以下两种加密算法:
  • 对称加密-DES算法:

    这种算法的加解密的本质和凯撒密码是相同,也就是加解密所用的密钥都是一样的,不同之处在于该算法生成密钥是无规律且有很大的长度的,这就使得用该算法加密的文件是很难被破译的。

  • 非对称加密-RSA算法:

    这个算法也是我在这次实验中重点研究并实际使用多次的一个加密算法,它与之前DES加密算法最大的不同之处就在于它的密钥分为公钥和私钥两种,通常明文会通过公钥进行加密,而用相应的私钥进行解密,同时公钥是可以互相交换的,而私钥是个人保存的。

  • 举个例子:

      如果你想要利用网络给“张三”传达一句非常机密的话,而你又怕直接传送不安全,你就可以用“张三”的公钥将你要传达的话进行加密处理,然后将密文用网络直接传送给“张三”,当“张三”接收到了密文后用他自己的私钥对其解密就可以正常阅读了,这样即使在传达过程中被截获也并不会泄密,因为截取密文的人并不具有“张三”的私钥。

实验中遇到的问题

  • 老师给的博客非常清晰,在认真对着文字和代码边实践边看的同时学习效率非常高而且并没有遇到什么问题。

实验不足

在IDEA的重构中还不熟练,在遇到一些相应的问题时第一时间还是想到自己去敲一个而不是直接运用重构的快捷方法。

## 实验心得

通过本次实验我充分的体会到了用集成编程环境的好处,就比如一些你忘记加却必须要加的一些代码系统会自动生成,并且在你忘记某个方法时输入相应对象它就会给你提示,这对于我们这些编程的初学者来说确实是非常实用,并且它自带的代码格式也使我们的代码变得更好看,可读性更高了。

转载于:https://www.cnblogs.com/Zhangxusheng/p/6847182.html

20162329 张旭升 实验三:实验报告相关推荐

  1. 计算机网络实验设计应用题,计算机网络实验三实验报告.doc

    计算机网络实验三实验报告 实验综合成绩 (百分制) 实验评阅教师签名其中实验态度优良中及格不及格实验报告优良中及格不及格 实 验 报 告 实验时间: 2015年 12 月 24日 实验运行环境 win ...

  2. java实验三_java实验三实验报告.docx

    java实验三实验报告.docx 实验报告课程名称面向对象课程设计实验项目名称类的继承班级与班级代码13计算机科学与技术1班实验室名称(或课室)SS1205专业计算机科学与技术任课教师尹华学号1225 ...

  3. python编程图书批发商店的某本书的零售价是26.5_根据实验指导书,完成实验3的所有任务,使用 实验三(实验报告).docx 完成报告并提交。_学小易找答案...

    [多选题]期末结账后没有余额的账户是( ). [单选题]企业本期生产产品直接耗用原材料 3000 元,生产车间管理方面耗用原材料 2000 元,正确的会计分录是( TopSage ) [多选题]下列属 ...

  4. 20202413 2021-2022-2 《网络与系统攻防技术》实验三实验报告

    20202413 2021-2022-2 <网络与系统攻防技术>实验三实验报告 文章目录 20202413 2021-2022-2 <网络与系统攻防技术>实验三实验报告 1.实 ...

  5. 实验三Android发短信,南昌大学+android+实验三+实验报告.docx

    南昌大学+android+实验三+实验报告.docx 还剩 6页未读, 继续阅读 下载文档到电脑,马上远离加班熬夜! 亲,喜欢就下载吧,价低环保! 内容要点: 个 新 的 实 例 , 并 将 该 Ac ...

  6. 20135333苏正生实验三实验报告

    课程: Java程序设计 班级: 1353 姓名: 苏正生 学号: 2015333 成绩: 指导教师: 娄家鹏 实验日期: 2015.5.6 实验密级: 预习程度: 实验时间: 3:20~5:00 仪 ...

  7. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第七周学习总结

    20162329张旭升 2016-2017-2 <程序设计与数据结构>第七周学习总结 教材学习内容总结 通过继承实现多态:若两个类是is-a关系,将子类对象向上转型为父类后该变量就可以实现 ...

  8. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第八周学习总结

    20162329张旭升 2016-2017-2 <程序设计与数据结构>第八周学习总结 教材学习内容总结 1.异常的产生:当程序中出现不符合计算机逻辑的情况,在编译运行时就会出现异常. 2. ...

  9. 20162329张旭升 2016-2017-2 《程序设计与数据结构》第九周学习总结

    20162329张旭升 2016-2017-2 <程序设计与数据结构>第九周学习总结 教材学习内容总结 1.建立数据库连接:我们是通过老师给的XAMPP程序来配置自己的数据库,然后根据教程 ...

  10. 用dsp的c54x汇编语言编写4位数的按位输出和计算,DSP实验三实验四(精).doc

    DSP实验三实验四(精).doc 实验三.文件和Gel文件的编写 一.实验目的 1. 掌握Gel文件的编写, 2. 熟悉Code Composer Studio的使用 二.实验设备 1. 集成开发环境 ...

最新文章

  1. Linux查看进程线程个数
  2. 鼠标按键获取感兴趣区域 2
  3. java取list中最大数值_Java后台通过Collections获取list集合中最大数,最小数代码
  4. cocos网络通信php,cocos2d-x网络编程 连接php服务器笔记2
  5. CF A. DZY Loves Hash
  6. 博士申请 | 香港浸会大学万人杰教授招收计算机视觉全奖博士生/研究助理
  7. python参数估计置信区间_python中分布参数的置信区间估计
  8. eclips git中的add to Index无效解决
  9. 两个矩阵是否相交的算法_个性化推荐召回算法——Personal Rank
  10. 长虹电视刷机固件包汇总
  11. matlab设计理想带通滤波器 bpf(f_sf_b1_b2),QDPSK信号数字化解调器中带通滤波器的设计与仿真...
  12. fpga如何约束走线_FPGA入门之我见- 布局布线(place route,PAR)
  13. v2021年烷基化工艺考试题及烷基化工艺考试试卷
  14. java中的IO流(超全)(超详解)结合实例轻松掌握
  15. 没有网就不能和女朋友开视频了?有Python在!没网照样开视频!
  16. python代码写父亲节快乐图片_巧用代码制作动态图文图【父亲节】
  17. 有手就行的移动平均法、指数平滑法的Excel操作,用来时间序列预测
  18. 1. Nacos的安装与启动
  19. 学习笔记-如何设计离线跑批系统
  20. 网络信息安全攻防实验室 脚本关第七关

热门文章

  1. 学习笔记之Python全栈开发/人工智能公开课_腾讯课堂
  2. 眼科手术设备行业调研报告 - 市场现状分析与发展前景预测
  3. matlab中的括号
  4. 商标网error:Failed to execute ‘send‘ on ‘XMLHttpRequest‘: Failed to load ‘http://127.0.0.1:18080/‘解决方案
  5. 绿色开源的屏幕/截屏OCR软件Capture2Text
  6. CreateEvent() SetEvent() ResetEvent() 进程互斥
  7. 斐波那契数列 兔子数列
  8. 阿里云回应:压根没有“阿里云网盘”,我们做的不是网盘
  9. Vue 2 中实现 CustomRef 方式防抖/节流
  10. 前端三件套系例之JQuery——JQuery动画效果、JQuery插件、