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


    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语言时养成的习惯写法。

  • 相关阅读:
    对C#下函数,委托,事件的一点理解!
    Firefox XPI插件安装方法
    assert()函数用法总结
    Linux下rsync的用法
    windows XP下如何切换用户到Administrator
    预编译命令#pragma once与 #ifndef的区别
    DOS命令下获取远程主机MAC地址的三种方法
    net send命令详解
    Linux守护进程详解(init.d和xinetd)
    如何在真机上调试Android应用程序(图文详解)
  • 原文地址:https://www.cnblogs.com/xqy123/p/8645796.html
Copyright © 2020-2023  润新知