结对编程第三次作业
github地址
[我的地址]( [link]( https://github.com/gy722/)
结对编程照片:(由于我们没有在学校所以我们都是视频沟通)
项目 | 预计耗时 | 实际耗时 |
---|---|---|
计划 | 20 | 60 |
需求分析 | 60 | 100 |
生成设计文档 | 20 | 30 |
设计复审 | 20 | 10 |
代码规范 | 10 | 10 |
具体设计 | 30 | 60 |
具体编码 | 240 | 360 |
代码复审 | 30 | 30 |
测试 | 60 | 120 |
报告 | 120 | 150 |
测试报告 | 100 | 120 |
时候总结改进 | 60 | 90 |
总计 | 770 | 1270 |
功能设计
我们的随机点名程序应该包括以下窗体:
1.加载学生姓名的窗口
2.开始随机点名的窗口
3.停止随机的窗口
4.我们加入了新的功能是①在点名的时候可以新增学生,因为由于许多原因很多同学经常没选上课,但是还是先跟班学习,之后才会加入到教务系统中,所以这个添加学生可以实现这个功能
②设置了登陆界面可以验证登陆人
遇到的问题
①我们对以前学习的 C# 忘记了很多,所以很多基本的语法我们都有些忘记,通过翻看以前的笔记,看C#的书,和老师的代码相结合完成了这次作业
②本来以为添加新同学会很简单,但是在我们的尝试以后,我们忘了如何添加数据到数据库,所以我们放弃了这个 创新功能,我们保留了登陆的功能
功能的体现
(1)Design By Contract:
体现:这个整套点名系统需要输入的参数很少,主要是通过点击控件来完成,在输入同学名字的时候可以规定相应的格式,比如不能输入符号,还有长度不得超过8个字。
(2)Information Hiding:
信息隐藏指在设计和确定模块时,使得一个模块内包含的特定信息,对于不需要这些信息的其他模块来说,是不可访问的。
如何体现:可以通过public 和 private 来实现,但是我觉得本程序的严谨程度不需要太多私密性,不过在调取数据库的时候可以限制限权,防止详细信息暴露
(3)Interface Design:
体现:设计适当好的接口,增加程序的可行性,让程序更加的通俗易懂。
(4)Loose Coupling :
软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块的独立性则越差。模块间耦合高低取决于模块间接口的复杂性、调用的方式及传递的信息。
体现:这个我们不太会,以前在C#中学到过,不过由于不太会,所以没有运用到程序当中。
编码的过程
我们根据老师给的代码,加上了自己的创新,新建了类库,包括三个类:数据库,引用类,实体类。
以下为部分代码截图
添加学生功能的实现
单元测试
感悟
结对编程相对于一个人编程感觉过程要轻松一点,而且过程中也不那么枯燥,遇到问题两个人共同解决也会快很多,感觉真的是1+1>2,希望以后还会有结对编程的作业。这次的作业有老师代码的支持也让我们相对于要轻松一点,不过耗费的时间真的是一点也不少,完成的过程也是艰辛的。