结对编程第三次作业

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,希望以后还会有结对编程的作业。这次的作业有老师代码的支持也让我们相对于要轻松一点,不过耗费的时间真的是一点也不少,完成的过程也是艰辛的。

posted on 2019-10-01 19:13  王静宜  阅读(167)  评论(0编辑  收藏  举报