北京电子科技学院BESTI实验报告
课程:程序设计与数据结构
班级: 1623
姓名: 王译潇
学号:20162314
指导教师:娄佳鹏老师、王志强老师
实验日期:2017年5月12号
实验密级: 非密级
预习程度: 较好
实验时间:60分钟
必修/选修:必修
实验序号:2
实验内容
初步掌握IDEA中Code的用法
理解并掌握在码云中与搭档结对编程开发的方式方法
初步掌握结对编程的方式过程
熟悉S.O.L.I.D原则
了解设计模式
实验要求
1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程
2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导
严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。
请大家先在实验楼中的~/Code目录中用自己的学号建立一个目录,代码和UML图要放到这个目录中,截图中没有学号的会要求重做,然后跟着下面的步骤练习。
实验情况
1.IDEA工具Code格式化代码
2.码云与搭档结对后,下载并修改搭档的Complex的代码,提交git log 截图
3.在码云上下载并Code格式化搭档的代码
4.结对方式学习Java密码学相关内容,以下是凯撒密码的加密解密,其余内容已经git到我和搭档林臻的公共项目
搭档-20162310林臻的博客
码云上公共项目的链接
PSP2.1(Personal Software Process)
步骤 | 时间 | 百分比 |
---|---|---|
需求分析 | 45分钟 | 16.7% |
设计 | 50分钟 | 18.5% |
代码实现 | 2小时 | 44.4% |
测试 | 30分钟 | 11.1% |
分析总结 | 25分钟 | 9.2% |
结对编程四则运算第一阶段总结
课程:程序设计与数据结构
班级: 1623
姓名: 王译潇
学号:20162314
担任角色
驾驶员:林臻
副驾驶:王译潇
一、需求分析
- 我们这门课是讲面向对象的程序设计,以对象为主,以使用者即以人为本是我们数据结构和程序设计的出发点
- 需要一个给测试对象自主选择的对象:难度等级、确定继续或退出等。
- 需要一个针对每个等级设计出的计算方法,一个循环器
- 需要一个统计正确率的循环器
- 需要一个针对除法及真分数计算的一个类
二、设计思路
- 使用if (else-if) 语句 去实行自主选择level1-level6的难度
- 使用( while(**.equalsIgnoreCase("y")) ) 来给使用者一个自主选择题目难度及数量的方法
- 借助循环器记录并统计计算用户的正确率
阶段性成果
- 设计level1-level6的6个等级难度
Level1: 两个个位整数的加法运算
Level2: 三个十位整数的加减法混合运算
Level3:三个个位帧数的加减乘混合运算
Level4:两个分式相加
Level5:四个分式的加法和乘法混合运算
Level6:六个分式的加减乘除混合运算
遇到的问题(与搭档20162310林臻一起遇到并解决的,故这点我俩博客是相同的)
第一个遇到的问题是:
因为设计了两个( while(**.equalsIgnoreCase("y")))来达到内层外层的能循环的目的。但是实际操作的时候出现了错误程序竟然没等我输入是否要再选一个难度时就已经结束了程序的运行
解决方案: 我发现两层的循坏在**位置上不能用同一个字符串,得换一个,如此达成目的。
第二个遇到的问题是:
在设计实现准确率的过程之中,我在每次的运算中都进行了正确的题和错误的记录,所以我怕在程序的结尾打了一行[tf = t / (t + f);]但是程序并没有朝着我所预期的方向运行,不管用户端的操作者答对了多少题目,最后的准确率依然为0.0。
解决方案:由于我之前定义[t和f]:int t = 0;我就意识到了可能在各个难度循环中得到的[t和f]值并没能出来,所以最后那一段代码只能得到我定义的初始值,于是我在着一行代码前打了t = t;;f = f;如此即可以正常运行了。
三、JUnit测试
- 测试结果
结对评价
在这周的实验和结对编程过程中,20162310林臻表现出色认真,一丝不苟,创意十足,有许多idea,由于我个人学习安排,更随我不辞辛苦
远到北大在我作为领航者的带领下,深入贯彻落实我的讲话精神和指示方针,圆满联手完成了结对以来的第一个作业,画上了一个圆满的句号。
PSP2.2
PSP2.2
PSP2.2 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|---|
Planning | 计划 | 1 | 1 |
· Estimate | · 估计这个任务需要多少时间 | 5 | 10 |
· Analysis | · 需求分析 (包括学习新技术) | 2 | 2 |
· Design Spec | · 生成设计文档 | 1 | 1 |
· Design Review | · 设计复审 (和同事审核设计文档) | 1 | 1 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 1 | 1 |
· Design | · 具体设计 | 2 | 3 |
· Coding | · 具体编码 | 5 | 6 |
· Code Review | · 代码复审 | 1 | 1 |
· Test | · 测试(自我测试,修改代码,提交修改) | 1 | 1 |
Reporting | 报告 | 1 | 1 |
· Test Report | · 测试报告 | 2 | 2.5 |
· Size Measurement | · 计算工作量 | 0.5 | 0.5 |
· Postmortem & Process | · 事后总结, 并提出过程改进计划 | 3 | 2 |