代码改变世界

软件工程网络15专业结对编程

2018-03-25 18:58  jmu201521123051  阅读(176)  评论(3编辑  收藏  举报

0.项目成员

谢庆圆:201521123051
杨泽斌:201521123049
码云地址:https://gitee.com/jmu2015051/java201521123051/tree/master/Ca1/src/test

1.需求分析:我们主要添加了计时器和语言选择功能。

  • 计时器:能显示用户开始答题后的消耗时间。
  • 语言选择功能:界面支持中文简体/中文繁体/英语,用户可以选择一种。
    程序设计:
    程序主要分成两个类。一个szyswindows()类用于构建主界面。另一个为 Calculator()类用于设计算法。

2.程序设计

程序设计主要分为计时器与语言选择两方面的设计。
1). 计时器主要运用了System.currentTimeMillis()这个方法去获取启动时的毫秒值,在点击开始答题按钮时获取一个时间,在点击结束答题按钮时获取
一个时间。然后两个时间相减得出时间差,再将时间转换成00:00:00的形式输出。
2). 语言选择方面主要是界面的显示,首先准备好所要显示语言的三种语言形式(通过Goole翻译完成)。然后在界面上编辑一个置顶菜单,菜单中包含三个菜
单项(简体、繁体、英文)。然后设计三个按钮的功能,当选择相应的按钮时,运用netbeans的setTxet()方法在界面显示相应的语言。

3.代码展示:

1). 计时器:

 private void jButton3ActionPerformed(java.awt.event.ActionEvent evt) {
over=System.currentTimeMillis();
now1=((over-now) / (1000 * 60 * 60) % 60)+":"+((over-now)/ (1000 * 60)% 60)+":"+((over-now)/ 1000 % 60);
String a=now1+"";
jTextField7.setText(a);
// TODO add your handling code here:
}    

2). 语言选择器:

 private void jMenuItem2ActionPerformed(java.awt.event.ActionEvent evt) {                                           
 jLabel1.setText("arithmetic"); 
 jLabel2.setText("Please input number :");
 jButton1.setText("Start");
 jLabel3.setText("The topic purpose :");
 jButton2.setText("answer");
 jLabel5.setText("Your answer:");
 jLabel10.setText("correct answer:");
 jButton4.setText("Next question");
 jLabel9.setText("The time used for:");
 jLabel7.setText("Wrongc number :   ");
 jLabel6.setText("All number :      ");
 jLabel8.setText("correct :         ");
 jButton3.setText("End of the answer");// TODO add your handling code here:
}                                          
private void jMenu1ActionPerformed(java.awt.event.ActionEvent evt) {                                       
    // TODO add your handling code here:
}                                      
private void jMenuItem3ActionPerformed(java.awt.event.ActionEvent evt) {                                           
 jLabel1.setText("四则运算"); 
 jLabel2.setText("请输入题数:");
 jButton1.setText("开始做题");
 jLabel3.setText("题 目:");
 jButton2.setText("查看答案");
 jLabel5.setText("你的答案:     ");
 jLabel10.setText("正确答案:");
 jButton4.setText("下一题");
 jLabel9.setText("所用时间为:");
 jLabel7.setText("错  题  数:");
 jLabel6.setText("答  题  数:");
 jLabel8.setText("正  确  率:");
 jButton3.setText("结束答题");
 // TODO add your handling code here:
}                                          
private void jMenuItem1ActionPerformed(java.awt.event.ActionEvent evt) {                                           
 jLabel1.setText("四則運算"); 
 jLabel2.setText("請輸入題數:");
 jButton1.setText("開始做題");
 jLabel3.setText("題      目:");
 jButton2.setText("查看答案");
 jLabel5.setText(" 你的答案是:");
 jLabel10.setText("正確答案是:");
 jButton4.setText("下一題");
 jLabel9.setText("所用時間為 :");
 jLabel7.setText("錯  題  數:");
 jLabel6.setText("答  題  數:");
 jLabel8.setText("正  確  率:");
 jButton3.setText("结束答題");
// TODO add your handling code here:

4.程序运行:

语言选择菜单:

中文繁体界面:

中文简体界面:

英文界面:

计时器功能:点击开始答题开始计时,点击结束答题获得所用时间

5.PSP

PSP2.1 个人开发流程 估计耗时 实际耗时
. Planning 计划 20 20
· Estimate 明确需求和其他相关因素,估计每个阶段的时间成本 5 8
. Development 开发 320 350
· Analysis 需求分析 30 50
· Design Spec 生成设计文档 15 20
· Design Review 设计复审 25 50
· Coding Standard 代码规范 10 16
· Design 具体设计 60 90
· Coding 具体编码 75 105
· Coding Reivew 代码复审 25 30
· Test 测试 15 25
. Reporting 报告 25 40
· 测试报告 5 10
· 计算工作量 5 10
· 并提出过程改进计划 8 15

6.小结感受

在这次结对编程中,虽然我不是很懂具体的算法,但是我还是体会到了结对编程的优点,真的是一加一大于二,虽然你的结对对象不一定比你厉害,但是每个人都是有优点的,在实际的探讨中能提出很有价值的问题,即便是错的地方,也能给我们以后的编程提供很好的教育。
 在这次结对作业中,我们没有特别的进行分工,只是走了需求分析,算法设计,界面设计,实际编码以及程序测试,在编程和程序规范中我们都做出了我们的努力。规范的编码以及适当的注释,让双方都对程序有了更好的了解,对后期的测试也有很大的帮助。也有助于代码的可读性,使代码都能让我们读懂,其实无非是大一学习C语言时养成的习惯写法。