结对编程1
201421042051 刘向东
201421122066 江泽平
coding.net地址:https://coding.net/u/lxdapp/p/gui/git
一、编码规范
1、缩进
1.1、方法与成员变量缩进一个tab
1.2、循环、判断语句内缩进一个tab
1.3、方法内缩进一个tab
2、命名
2.1、驼峰命名法
2.2、对象命名为:功能+类名,如表达式框架exprssionFrame
二、需求分析
1、记录用户的对错总数,程序退出再启动时,能把以前的对错数量保存并在此基础上增量计算
在此使用写入文件的方式,在用户答完题目之后显示用户对错总数,写入答题时间、对错总数和做题时间。用户可以在主面板点击历史记录按钮查看。
2、增加计时功能,能显示用户开始答题后消耗时间。
使用timer,每一秒触发一次事件,使秒的label数字加一,在59秒时分钟label+1,秒为0。
三、程序设计之思维导图
四、代码展示
1、历史记录面板
使用Scanner读取文件,添加到JTextArea控件中
2、表达式界面
2.1、生成表达式面板
多次实例化表达式类,生成指定的表达式,并将答案保存在数组中,销毁实例,表达式类应该优化,使用多线程会让表达式生成速度加快。多次实例化和销毁严重影响 性能。在此界面有timePanel、exepressionPanel、scrollPanel、commitPanel。分别用于显示时间,显示题目、在题目多的时候用滚动条防止界面长、提交。其中 exepressionPanel中使用gridLayout用于布局,形成纵向为二横向为题目数的布局,使得一道题目对应一个textfield。将exepressionPanel加入到scrollPanel便可以实现滚动 条,在此需要注意的是,只有轻量级的组件可加入scrollPanel。
2.2、计时功能
实例化Timer,添加监听,调用以上方法。每次获得时分秒三个label的值,对秒进行+1操作,为60时设置为0,对分进行+1操作。在此为了美观当小于10时,setText时添 加一个“0”字符串。
五、程序运行
5.1、历史记录
5.2、设置题目数量,有正则表达式判断输入是否合法,非正整数不会出现答题界面
5.3、答题界面与提交结果,没有填结果即为错误,支持分数,带分数的输入
六、小结感受
软件开发是一个迭代的过程,同时软件开发团队开发相对于独自开发更需要交流,两个人必须在开发过程中分工明确,经常沟通,此次的结对开发由只有两人,在配合过程中也相对于更多人来的轻松,同时两个人的编程两都大大减少,相互补充,找出对方设计的缺陷,一直完善,深刻的体会到了1+1>2的感觉。同时也在此让我们重视了面向对象编程的UML。开发前的设计,思路等先勾勒出来,使得后面的开发事半功倍。
七、评价伙伴
江泽平同学编程能力很强,沟通时很强势,正确的就是正确的,错误的就是错误的,争论到底,坚持自己的设计。很主见,开发时认真、细心。细心呵护自己的代码。努力做到代码最优化,测试认真,热爱学习。
相对来是个很优秀的人,但是应该参考下队友意见,还需好好改造,重新做人。
八、PSP
PSP2.1 | Personal Software Process Stages | Time Senior Student | Time |
---|---|---|---|
Planning | 计划 | 60 | 55 |
Estimate | 估计这个任务需要多少时间 | 300 | 200 |
Development | 开发 | 460 | 355 |
Analysis | 需求分析 (包括学习新技术) | 20 | 10 |
Design Spec | 生成设计文档 | 20 | 10 |
Design Review | 设计复审 | 5 | 10 |
Coding Standard | 代码规范 | 1 | 1 |
Design | 具体设计 | 60 | 50 |
Coding | 具体编码 | 300 | 200 |
Code Review | 代码复审 | 10 | 8 |
Test | 测试(自我测试,修改代码,提交修改) | 50 | 20 |
Reporting | 报告 | 60 | 50 |
测试报告 | 24 | 45 | |
计算工作量 | 3 | 5 | |
并提出过程改进计划 | 8 | 10 |