zoukankan      html  css  js  c++  java
  • 结对编程-四则运算-GUI

     201421123022 王若凡        201421123026  欧阳勇

    https://git.coding.net/ttoyy/sizeyunsuan-GUI.git

    a.需求分析:

         这个程序做成GUI(可以是Windows PC 上的,也可以是MacLinuxweb,手机上的),成为一个有基本功能、一定价值的程序。在下面的功能需求中实现两个:

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

    b.功能设计

          1.生成自定义数目算术题。

          2.支持整数和分数的加减乘除。

          3.输入答案判断对错,错误后写出正确答案。

          4.集中收集错题。

          5.简繁中英文切换。

          6.计时功能。


     

    思维导图

     


     

    c.设计实现与代码展示(Viewcode

    计时功能:

    B0.addActionListener(new ActionListener(){
    
                public void actionPerformed(ActionEvent e) {
    
                    tishu=Integer.parseInt(T1.getText());//获取总题数
    
                    timer = new Timer();
    
                    finishtime=System.currentTimeMillis();
    
                    starttime=finishtime;
    
                    timer.schedule(new TimerTask()
    
                    {
    
                        public void run() {    
    
                         finishtime=System.currentTimeMillis();
    
                         duration=finishtime-starttime;
    
                         String str=df.format(new Date(duration));
    
                         L12.setText(str);
    
                         if(summary==tishu){
    
                         try {
    
                         Thread.sleep(2000000);
    
                    } catch (InterruptedException e) {             
    
                    e.printStackTrace();
    
                    }
    
                    }
    
                   }  
    
                  }, 1000, 1000);
    
                }
    
            });

     

     出题功能:

    B1.addActionListener(new ActionListener(){
    
                public void actionPerformed(ActionEvent e) {
    
                    noanswer=tishu-dadui-dacuo;//算出未答题数
    
                    L9.setText("");
    
                    L8.setText(null);
    
                    T3.setText(null);           
    
                   if(summary==tishu)
    
                    {   
    
                       JOptionPane.showMessageDialog(null, "答题已完成,答题总题数:"+tishu+",答对题数:"+dadui+",答错题数:"+dacuo+",未答数:"+noanswer);
    
                       frame.setVisible(false);
    
                    }
    
                    //生成一个随机算术.该处代码由上次作业改成。
    
         if(t==1){summary++;} } });
    
     

     

    结果判断与输出

    T3.addActionListener(new ActionListener(){
    
                public void actionPerformed(ActionEvent d) {
    
                    if(sum1.equals(T3.getText()))
    
                    {
    
                        L9.setText("Right!");
    
                        dadui++;
    
                        L10.setText(String.valueOf(dadui));   
    
                    }
    
                    else
    
                    {
    
                        L9.setText("Error!answer is:"+sum1);
    
                        dacuo++;  
    
                        FileWriter fw = null;
    
                        try {
    
                        //如果文件存在,则追加内容;如果文件不存在,则创建文件
    
                        File f=new File("D:/cuoti.txt");
    
                        fw = new FileWriter(f, true);
    
                        }
    
                        catch (IOException e) {
    
                        e.printStackTrace();
    
                        }
    
                        PrintWriter pw = new PrintWriter(fw);
    
                        pw.println(L8.getText()+"="+T3.getText()+"    "+"正确答案:"+sum1 +'
    ');
    
                        pw.flush();
    
                        try {
    
                        fw.flush();
    
                        pw.close();
    
                        fw.close();
    
                        } catch (IOException e) {
    
                        e.printStackTrace();
    
                        }
    
                        L11.setText(String.valueOf(dacuo));
    
                    }
    
     
    
                }
    
            });

     

     

     错题统计收集

    FileWriter fw = null;
    
                        try {
    
                        //如果文件存在,则追加内容;如果文件不存在,则创建文件
    
                        File f=new File("D:/cuoti.txt");
    
                        fw = new FileWriter(f, true);
    
                        }
    
                        catch (IOException e) {
    
                        e.printStackTrace();
    
                        }
    
                        PrintWriter pw = new PrintWriter(fw);
    
                        pw.println(L8.getText()+"="+T3.getText()+"    "+"正确答案:"+sum1 +'
    ');
    
                        pw.flush();
    
                        try {
    
                        fw.flush();
    
                        pw.close();
    
                        fw.close();
    
                        } catch (IOException e) {
    
                        e.printStackTrace();
    
                        }  
     B6.addActionListener(new ActionListener(){//错题本打开
    
                public void actionPerformed(ActionEvent d) {
    
                    try
    
                    {
    
                    Runtime.getRuntime().exec("notepad.exe D:/cuoti.txt");
    
                    }
    
                    catch(Exception e)
    
                    {
    
                    System.out.println(e.getMessage());
    
                    }
    
                  }
    
                });
    
     

     

     语言切换

     

    B3.addActionListener(new ActionListener(){//简体中文
    
                public void actionPerformed(ActionEvent e) {
    
                     L1.setText("题数:");
    
                     L2.setText("题目:");
    
                     L3.setText("输入答案:");
    
                     L4.setText("结果:");
    
                     L5.setText("答对题数:");
    
                     L6.setText("答错题数:");
    
                     L7.setText("答题时间:");
    
                     B0.setText("开始");
    
                     B1.setText("下一题");
    
                     B6.setText("错题集");
    
                    //B2.setText("计时");
    
                }
    
            });
    
            B4.addActionListener(new ActionListener(){//繁体中文
    
                public void actionPerformed(ActionEvent e) {
    
                    L1.setText("題數");
    
                    L2.setText("題目:");
    
                     L3.setText("輸入答案:");
    
                     L4.setText("結果:");
    
                     L5.setText("答對題數:");
    
                     L6.setText("答錯題數:");
    
                     L7.setText("答題時間:");
    
                     B0.setText("開始");
    
                     B1.setText("下一題");
    
                     B6.setText("錯題集");
    
                    
    
                }
    
            });
    
            B5.addActionListener(new ActionListener(){//英文
    
                public void actionPerformed(ActionEvent e) {
    
                     L1.setText("Question number");
    
                     L2.setText("Test:");
    
                     L3.setText("Enter the answer:");
    
                     L4.setText("Result:");
    
                     L5.setText("Right number:");
    
                     L6.setText("Wrong number:");
    
                     L7.setText("Answer times:");
    
                     B0.setText("Run");
    
                     B1.setText("Next");
    
                     B6.setText("WrongTest");
    
                
    
                }
    
            });

     

    d.测试运行

     

       点击错题集:


     

     

    PSP表格

     

    PSP2.1

    Personal Software Process Stages

    Estimated timeh

    actual timeh

    Planning

    计划

    16

    17

    · Estimate

    估计这个任务需要多少时间

    16

    17

    Development

    开发

    8

    9

    · Analysis

    需求分析 (包括学习新技术)

    1

    0.5

    · Design Spec

    生成设计文档

    0.5

    0.5

    · Design Review

    设计复审

    1

    1

    · Coding Standard

    代码规范

    0.5

    0.2

    · Design

    具体设计

    2

    1.5

    · Coding

    具体编码

    8

    8

    · Code Review

    代码复审

    0.5

    0.5

    · Test

    测试(自我测试,修改代码,提交修改)

    1

    1.5

    Reporting

    报告

    1.5

    1.5

    ·

    测试报告

     

     

    ·

    计算工作量

    0.5

    1

    ·

    并提出过程改进计划

    1

    1


     

      

     总结:

          此次结对编程任务与王若凡合作,开始我们先对需求进行了分析,对于功能实现先定了大致方向。基础四则运算算法取用王若凡的程序,在此基础上实现各种功能。在错题集功能上耗费时间较多,想对错题集里的错题进行编号的功能还是无法完成实现。

          结对编程无疑提高了我们编程的高效性,互相监督,取长补短,如我的思路较快,而他实际操作网上查找资料能力较强。两个人的思路想法在同一时间产生碰撞,让程序更好更快地完成。一个人编写另一个人旁边护航有效地发现一些错误特别是低级错误,

    如此才不会产生当局者迷而陷入死循环。


    汉堡包点评: 

         先来一片面包: 我们有着一个共同任务,对任务有着相同思路,并且我们可以互相信赖,主要是他看上了我的壁纸~;

         铺上肉与佐料:队友在编程中充分地展示了他强大的动手能力与资料知识搜索能力,而且他是一个很耐心的人,是能带着我认真打代码的引航者。

                              不足之处在于对问题解决思路不够清晰,思路的表达条理性不够。若有一个清晰的思路加上他强大的编程动手能力,那肯定会成为无敌的编程大神。

        然后再来一片面包:方向盘与gps导航,才能走的更远才能探索未知道路;互相配合,终能完成任务,更上一层楼。

     

  • 相关阅读:
    jquery 插件 lettering.js
    css中一些生僻却好用的属性
    mui-5+api(plus)加载顺序
    网易云音乐mp3外链、真实地址下载方法
    移动端a标签的妙用(拨号、短信、邮件等)
    Android上架mui-app
    ios-app证书配置、打包提交
    前端兼容性问题
    米拓CMS学习总结
    1) 链表顺序存储---之二代码
  • 原文地址:https://www.cnblogs.com/ttoyy/p/6547470.html
Copyright © 2011-2022 走看看