结对编程做业 | |
---|---|
GitHub项目地址 | https://github.com/15565048308/PairProgramming |
搭档博客地址 | https://www.cnblogs.com/XYFWXR/ |
做业地址 | http://www.javashuo.com/article/p-noqnzypb-ga.html |
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 15 | 30 |
Estimate | 估计这个任务须要多少时间 | 900 | 1020 |
Development | 开发 | 720 | 840 |
Analysis | 需求分析 (包括学习新技术) | 80 | 120 |
Design Spec | 生成设计文档 | 20 | 15 |
Design Review | 设计复审 (和同事审核设计文档) | 15 | 15 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 20 |
Design | 具体设计 | 40 | 60 |
Coding | 具体编码 | 450 | 500 |
Code Review | 代码复审 | 30 | 35 |
Test | 测试(自我测试,修改代码,提交修改) | 100 | 120 |
Test Report | 报告测试报告 | 70 | 120 |
Size Measureme | 计算工做量 | 10 | 5 |
Postmortem & Process Improvement Plan | 过后总结, 并提出过程改进计划 | 60 | 60 |
合计 | 2445 | 2120 |
关于PSP请参阅邹欣老师博客html
这个项目是在已有的点名系统的基础上进一步完成的,实现点名自动将缺课学生写入指定文档,并根据缺课次数写入不一样的文档,一次做为平时考勤加减分和是否重修的依据,减轻老师点名记录负担。
(1)随机点名,判断该同窗是否缺课
(2)将第一次缺课学生写入FirstAbsent文档
(3) 随机点名,遍历第一次缺课学生文档,判断该同窗是否第二次缺课,如果写入第二次缺课文档并给与提示,第三次同理。
(4)课程结束,任课教师翻阅文档,查看缺勤信息。
结构以下:git
1)Design By Contract(契约式设计):
契约式设计就是按照某种规定对一些数据等作出约定,若是超出约定,程序将再也不运行
如何体现:在输入数据状况下,能获得与预期同样的结果
(2)Information Hiding(信息隐藏):
信息隐藏指在设计和肯定模块时,使得一个模块内包含的特定信息(过程或数据),对于不须要这些信息的其余模块来讲,是不可访问的。
如何实现:信息隐藏就是对信息的封装,设置访问权限public、protect private等
(3)Interface Design(接口设计):
对接口的名字,功能,接口与接口间的继承关系进行设计;好的接口设计能够加强代码可读性,易用性,可更改性。
如何实现:将不一样的功能程序段写到不一样的方法中,而后包装在同一个类中,加强可读性,便于调用
(4)Loose Coupling 松耦合:
想让对象与对象间松耦合,经过增长抽象类(Abstract Class)或者接口来作到
如何实现:软件设计的一条基本原则就是“低耦合,高内聚”,下降对象与对象之间的耦合性,便于代码设计与维护,本程序只增长啦一个方法,全部没法提现松耦合github
(1)代码规范参考
(2)编程
(1)当中止点名事件触发,调用方法bash
private void btnStop_Click(object sender, EventArgs e) { timerCallName.Stop(); //调用记录缺课次数的方法 AbsentTems(); }
(2)将随机被选中的字符串(姓名)带入新方法中,进行判断
使用MessageBox类进行提示单元测试
public void AbsentTems() { string Str = stuList[i].Name; if (MessageBox.Show("该学生是否缺课?", "Absent OR Not?", MessageBoxButtons.YesNo) == DialogResult.Yes) {
(3)进行循环,并将缺课学生姓名写入文档,以便查看学习
if (Str.EndsWith ("S")==true ) { stuList[i].Name += "T"; string Strpath3 = @"F:\软件工程文件\GisWinformPractice\WinformControlUse\TestFile\ThirdAbsent"; File.AppendAllText(Strpath3, Str + " "); MessageBox.Show("取消考试资格来年重修!!!"); }
else if (Str.EndsWith ("F") == true ) { //第四次尝试修改 stuList[i].Name += "S"; string Strpath2 = @"F:\软件工程文件\GisWinformPractice\WinformControlUse\TestFile\SecondAbsent"; File.AppendAllText(Strpath2, Str + " "); MessageBox.Show("第二次缺课,离重修更进一步!!"); }
else { stuList[i].Name += "F"; string Strpath1 = @"F:\软件工程文件\GisWinformPractice\WinformControlUse\TestFile\FirstAbsent"; File.AppendAllText(Strpath1, Str + " "); MessageBox.Show("第一次缺课,第一次重修半价哦!"); }
效果展现
测试
此代码是在已有代码的基础上进一步完成的,辅助任课教师记录缺课名单,不足就是不能语音自动播报。若实现自动语音点名,这样能够解决在老师嗓子不舒服的状况下(感冒生病等),也能考勤;编码
(1)单元测试代码
(2)代码测试结果设计