第三次作业:结对编程
第三次作业
github项目地址 | 链接 |
---|---|
队友博客地址 | 链接 |
作业地址 | 链接 |
一.PSP表格
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 60m | 60m |
· Estimate | · 估计这个任务需要多少时间 | 3-4d | 3d |
Development | 开发 | 1-2d | 1.5d |
· Analysis | · 需求分析 (包括学习新技术) | 1d | 0.5d |
· Design Spec | · 生成设计文档 | 1h | 1h |
· Design Review | · 设计复审 (和同事审核设计文档) | 1h | 1h |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 5h | 3h |
· Design | · 具体设计 | 2h | 2h |
· Coding | · 具体编码 | 5h | 5h |
· Code Review | · 代码复审 | 1h | 1h |
· Test | · 测试(自我测试,修改代码,提交修改) | 3h | 2h |
Reporting | 报告 | 2h | 2h |
· Test Report | · 测试报告 | 2h | 2h |
· Size Measurement | · 计算工作量 | 2h | 2h |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 2h | 2h |
合计 | 6d | 3d |
二.程序设计
在设计初期,是想设计一个猜出现点数最多的骰子游戏,在设计过程中也出现了很多问题,但是在他人的帮助下,我还是完成了代码编辑,但是确实遇到了一个无法解决的问题,就是把方法写在一个新类里面,会报一堆错误,这个问题在询问同学后还是不知如何解决。不过其他方面的内容还是顺利解决了。
关键代码:
int point1 = 0, point2 = 0, point3 = 0, point4 = 0, point5 = 0, point6 = 0;
Random rd = new Random();//创建一个可以生成随机的对象
for (int i = 1; i <= 100; i++)
{
int point = rd.Next(1, 7);
switch (point)
{
case 1: { point1++; break; }
case 2: { point2++; break; }
case 3: { point3++; break; }
case 4: { point4++; break; }
case 5: { point5++; break; }
case 6: { point6++; break; }
default:
break;
}
//比较那个出现的次数最多
}
int[] array = new int[] { point1, point2, point3, point4, point5, point6 };
if (point4 == array.Max())
{
textBox8.Text = "成功!出现最多的点数为:4";
}
else { textBox8.Text = "失败!"; }
textBox1.Text = "1点出现的次数为:" + point1;
textBox2.Text = "2点出现的次数为:" + point2;
textBox3.Text = "3点出现的次数为:" + point3;
textBox4.Text = "4点出现的次数为:" + point4;
textBox5.Text = "5点出现的次数为:" + point5;
textBox6.Text = "6点出现的次数为:" + point6;
}
三.代码复审
借由代码审查可以找到及移除像是格式化字符串攻击、竞争危害、内存泄漏及缓存溢出等计算机安全隐患,因此提升代码的安全性。基于Subversion(可能是Trac或是Redmine)、Mercurial、Git或其他软件的线上软件库可以允许协同审查代码,而且有些协同代码审查工具可以简化代码审查的过程。
自动化代码审查软件可以系统化的检查源代码中是否有已知的计算机安全隐患,可以减少大量代码审查的工作。
在代码复审过程中,找出了很多问题,最后一一改正,得到目前的代码。
四.代码测试
在调试过程中为了增强趣味性,加入了图片和BGM。设计的代码唯一繁琐之处就是,在每次点击按钮下都要进行一次方法,原因就还在于无法创建一个新的类来放方法用于调用。
五.总结
这次任务对我来说是一次巨大的挑战,我从中也学到了很多东西,之前只是做过类似的窗体应用,这次算是对之前内容的一次复习吧,感觉长时间不做还是会有很多东西会遗忘。以后会注意多做一些练习复习之前的知识。