• 结对编程1(201421123038,201421123039)


    一、题目描述

    我们在个人作业1中,用各种语言实现了一个命令行的四则运算小程序。进一步,本次要求把这个程序做成GUI(可以是Windows PC 上的,也可以是Mac、Linux,web,手机上的),成为一个有基本功能、一定价值的程序。

    二、需求分析

    1.记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算;
    2.有计时功能,能显示用户开始答题后的消耗时间;
    3.界面支持中文简体/中文繁体/英语,用户可以选择一种。

    三、结对分工

    方巧玲(队友):
    
    
     1:有计时功能,能显示用户开始答题后的消耗时间。
    
     2:界面支持中文简体/中文繁体/英语,用户可以选择一种。
    
    白碧宇(本人): 
    
    
    1:建构四则运算式的题库。
    
    2:记录用户的对错总数,程序退出再启动的时候,能把以前的对错数量保存并在此基础上增量计算。

    四、程序设计

    思维导图:

    1.计时器功能

    2.记错功能

    五、代码展示

    1.计时代码

    复制代码
    public void showTime() {
            labTime = new JLabel(tips.get(1) + "00:00");
            labTime.setBounds(580, 0, 120, 50);
            jpMain.add(labTime);  //计时开始
            new Thread() {
                public void run() {
                    while (true) {
                        try {
                            Thread.sleep(1000);
                            seconds++;
                            if (seconds >= 60) {
                                seconds = 0;
                                minutes++;
                            }
                            // 修正分钟数和秒钟数
                            if (seconds < 10)
                                secStr = "0" + seconds.toString();
                            else
                                secStr = seconds.toString();
                            if (minutes < 10)
                                minStr = "0" + minutes.toString();
                            else
                                minStr = minutes.toString();
                        } catch (InterruptedException e) {
                            e.printStackTrace();
                        }
                        labTime.setText(tips.get(1) + minStr + ":" + secStr);
                        if(isEnd)
                            break;
                    }
                }
            }.start();
        }
    复制代码

    2.语言选择代码

    复制代码
    public void setLanguage() 
    { String[] choiceLanguage = { "中文", "English" }; String language = (String) JOptionPane.showInputDialog(null, "请选择客户端的语言: ", "Choice a language for client", JOptionPane.PLAIN_MESSAGE, new ImageIcon("icon.png"), choiceLanguage, "中文"); if (language == null)
    { System.exit(-1); }
    else { try { reader = new BufferedReader(new FileReader(new File("language/" + language + ".txt"))); String s; while ((s = reader.readLine()) != null) { tips.add(s); } reader.close(); } catch (IOException e) { e.printStackTrace(); } } }
    复制代码

    六、程序运行

     

    七、psp

    PSP2.1 Personal Software Process Stages Time (%) Senior Student Time (%)
    Planning 计划 9 7
    · Estimate 估计这个任务需要多少时间 9 7
    Development 开发 92 96
    · Analysis 需求分析 (包括学习新技术) 6 9
    · Design Spec 生成设计文档 7 7
    · Design Review 设计复审 3 7
    · Coding Standard 代码规范 4 4
    · Design 具体设计 15 16
    · Coding 具体编码 36 30
    · Code Review 代码复审 8 9
    · Test 测试(自我测试,修改代码,提交修改) 12 25
    Reporting 报告 10 6
    · 测试报告 3 2
    · 计算工作量 4 1
    · 并提出过程改进计划 3 3

    八、小结感受

       个人方面的不足:跟队友两个人都是java基础比较薄弱,做上一题就是做了好久才写好,看到这次结对作业是做GUI界面,真的以前没学过也没有自学过,要实现这些功能确实有些麻烦。后来通过百度网上教程和队友一起学习,通过看视频才初步有一些了解,对GUI界面编写有了大致的了解后心里才有了底。后来就先根据题目要求画好思维导图,然后一边百度一边请教别人,和队友一起讨论,才于截止期限前勉强完成。
    
       结对方面的不足:以前没有过结对经验,这是第一次,刚看到队友上次作业的代码时,是大部分看不懂的,她也不怎么看懂我的,所以决定两个人讨论出一套代码规则根据规则重写代码,规则如下。后来编程期间虽然也有很多不一致,但我们还是通过补充几条规则解决了问题,结对需要团结,尊重队友的意见,在队友的帮助下也会更轻松一些。

    事前讨论的代码规则

    1. 1.变量命名的规则:以变量的功能命名,使用完整的英文描述,采用驼峰命名法。
      2.函数传参过程中尽量采用形式传值
      3.花括号“{}”不允许省略,即使只有一段代码。
      4.使用括号“()”来强调运算符优先级。
      5.记得格式化代码,eclipse里面Ctrl
      +Shilft+F

       结对照片

         

    代码地址:https://git.coding.net/nibaijiejiea/test.git

  • 相关阅读:
    switch statement
    Block statement
    Variable hoisting Global variables Constants
    How the Web works
    Discover browser developer tools
    Publishing via GitHub
    第十二节,OpenCV学习(一)图像的读取、显示、保存
    剑指Offer编程题3——从尾到头打印链表
    剑指Offer编程题2——替换空格
    剑指Offer编程题1——二维数组中的查找
  • 原文地址:https://www.cnblogs.com/baijiejie/p/6551382.html
Copyright © 2020-2023  润新知