结对编程1 (四则运算基于GUI)

https://git.coding.net/Luo_yujie/sizeyunsuan.app.git

201421123034

201421123032 

1. 需求分析

  这次作业新引用了语言选择,计时器与统计正确率功能。首先,在搜索语言国际化后发现,现在程序的开发与使用不仅仅仅限于本地,java语言国际化、多元化已经成为一种必然趋势,这就要求我们必须使用同一套规则,所以,语言选择功能是适应潮流所必需的。计时器与统计正确率功能能让使用本程序的用户更加省心、便捷,约束性更强。

2. 程序设计:针对选择的2-3个新开发功能做设计,使用思维导图。

a.语言选择 用户可以在首界面选择英文、中文、繁体中文语言

b.计时器 按下计时器按钮开始计时,按下结束按钮结束计时,用户可以根据自己需求选择开始做题时间

c.统计正确率 根据用户输入的回答与正确答案的比对,计算正确率并输出

3. 代码展示

a.语言选择功能

    btnNewButton.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                dispose();//销毁当前页面
                new English().setVisible(true);    //下个页面显示出来
                
            }
        });

b.统计正确率功能

JButton button_1 = new JButton("提交答案");
        button_1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                String[] ans =textArea_1.getText().split("\n");
                String strings[]=new String[list11.size()];
                for(int i=0,j=list11.size();i<j;i++){
                strings[i]=list11.get(i);
                }  int count=0;
                  for(int i = 0;i < list11.size();i++){
                    if(ans[i].equals(strings[i])) 
                    {
                        print.add("正确\n");
                        count++;
                    }                    
                    else{print.add("错误\n");}
            }
          
                       textArea_2.append(print+"\n");
                       double sum =((double)count/(double)(list11.size()))*100;
                      lblNewLabel.setText("正确率为:"+sum+"%");
            }
        });

c.计时器功能

public class timer extends JFrame {
     final Label lab = new Label();
        Date now = new Date();
        @SuppressWarnings("deprecation")
        public timer() {
            now.setHours(0);
            now.setMinutes(0);
            now.setSeconds(0);
            setBounds(550, 270, 278, 245);
            final Timer timer = new Timer(1000, new ActionListener() {
                public void actionPerformed(ActionEvent e) {
                    Date now2 = new Date(now.getTime() + 1000);
                    now = now2;
                    SimpleDateFormat formatter = new SimpleDateFormat("HH:mm:ss");
                    lab.setText(formatter.format(now));
                }
            });
            Button b1 = new Button("开始");
            Button b2 = new Button("停止");
            b2.setBounds(235, 209, 67, 40);
            b1.setBounds(65, 209, 67, 40);
            b1.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    Button b = (Button) e.getSource();
                    b.setLabel("开始");
                    timer.start();
                }
            });
            b2.addActionListener(new ActionListener() {
                @Override
                public void actionPerformed(ActionEvent e) {
                    Button b = (Button) e.getSource();
                    b.setLabel("停止");
                    timer.stop();
                }
            });

 

4. 程序运行:程序运行及每个功能的使用截图。

a.欢迎界面,选择语言

b.语言分类界面

c.主要功能界面

5. 小结感受:结对编程真的能够带来1+1>2的效果吗?通过这次结对编程,请谈谈你的感受和体会。

  本次结对编程两个人一起讨论的效果明显比第一次高效而且有帮助,第一次个人作业时,由于每个人的思路不一样,寻求帮助时,听别人的解释也是一头雾水。这次的结对编程时讨论起来就有目的有针对性得多了。

  在语言国际化功能设计当中遇到了很多高深的代码,所以这个功能还有待开发。设计过程中最难解决的时题目的输出,经多次实验发现,最合适的还是用JTextArea文本域输出,虽然看起来像是用于输入的文本框,但是像这种多行多个输出还是用文本域比较合适。

  在代码设计过程当中,我们还是比较少用到第一次个人作业的思想与方法,基于GUI的设计许多语言跟控制台不一样就得重新设计编写。所以可能下次以结对作业开始,再进行个人作业,让我们自己分开再完善我们自己的功能可能效果更好一点。

6.

PSP2.1 Personal Software Process Stages Time (h) Senior Student Time (h)
Planning 计划 0.2 0.3
· Estimate 估计这个任务需要多少时间 0.1 0.1
Development 开发 5 6.3
· Analysis 需求分析 (包括学习新技术) 0.5 1
· Design Spec 生成设计文档 0.2 0.2
· Design Review 设计复审 0.2 1.2
· Coding Standard 代码规范 0.1 0.1
· Design 具体设计 1 0.5
· Coding 具体编码 1 1.5
· Code Review 代码复审 0.3 0.1
· Test 测试(自我测试,修改代码,提交修改) 0.4 0.5
Reporting 报告 0.15 0.1
· 测试报告 0.05 0.05
· 计算工作量 0.05 0.05
· 并提出过程改进计划 0.2 0.4

7.过程

posted @ 2017-03-15 09:49  gong.xiaoting  Views(211)  Comments(1Edit  收藏  举报