201571030335/201571030320《小学四则运算练习软件》结对项目报告

源码链接地址:  https://github.com/woaichimangguo(我的201571030335)

https://github.com/mashifang(小伙伴的201571030320)

一. 需求分析:

(1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分。

(2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下:

(3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做)、带括号算式、真分数算式练习。

(4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图 。

(5)程序记录用户答题结果,当程序退出再启动的时候,可为用户显示最后一次测试的结果,并询问用户可否进行新一轮的测试。

(6)测试有计时功能,测试时动态显示用户开始答题后的消耗时间。

(7)程序人机交互界面是GUI界面(WEB页面、APP页面都可),界面支持中文简体(必做)/中文繁体/英语,用户可以进行语种选择。

二. 核心功能代码展示:

import java.awt.Font;
import java.awt.GridLayout;
import java.awt.Label;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.ArrayList;

import javax.swing.*;

public class Self extends JFrame{
    int rightSum=0;
    Her createArithmeticnew=new Her();
    private JPanel panel1=new JPanel();
    private JLabel label=new JLabel();
    JTextField text=new JTextField(10);
    ArrayList<String> list=new ArrayList<String>();
    public static void main(String[] args) {
        // TODO Auto-generated method stub
      JFrame frame=new  Self();
      frame.setTitle("小学四则运算训练小程序");
      frame.setSize(300,200);
      frame.setLocationRelativeTo(null);
      frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
      frame.setVisible(true);
    }
    public Self(){
        setLayout(new GridLayout(3, 2,5,5));
        addAnswer();
        JPanel panel2=new JPanel();
        //panel2.setSize(10,100);
        panel2.add(new JLabel("请输入答案:"));
        panel2.add(text);
        this.add(panel2);
        JButton buttonSubmit=new JButton("提交答案");
        buttonSubmit.addActionListener(new ActionListener() {

            @Override
            public void actionPerformed(ActionEvent e) {
                // TODO Auto-generated method stub
                int size=list.size();
                int errorSum=size-rightSum;
                JFrame resultFrame=new JFrame();
                resultFrame.setTitle("运算结果");
                resultFrame.setSize(500,500);
                resultFrame.setLocationRelativeTo(null);
                resultFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
                resultFrame.setVisible(true);
                JPanel panel=new JPanel();
                Font font = new Font(Font.DIALOG, Font.PLAIN, 20);
                panel.add(new JLabel("做题总数: "+size+" "+"正确数:"+rightSum));
                setLayout(new GridLayout(100, 1,5,5));
                for(int i=0;i<size;i++){
                    panel.add(new JLabel(list.get(i)));
                }
                resultFrame.add(panel);
            }});
        JButton buttonNext=new JButton("下一题");
        buttonNext.addActionListener(new ActionListener() {//定义时间监听器
           public void actionPerformed(ActionEvent e) {
               String question=label.getText();
               double result=Double.parseDouble(text.getText());
               String ifRight="";
               if(Her.result==result){
                 ifRight="正确";
                 rightSum++;
               }else{
                   ifRight="错误";
               }
               String message=question+", "+"你的答案:"+result+", "+"正确答案: "+Her.result+", 状态: "+ifRight;
               list.add(message);
               text.setText("");
               String answer=Her.creat();
                label.setText(answer);
               }
              });
        JPanel panel3=new JPanel();
        //button.setSize(10,10);
        panel3.add(buttonNext);
        panel3.add(buttonSubmit);
        add(panel3);
    }
    public void addAnswer(){
        //System.out.println("hah");
        //panel1.setSize(0,50);
        Font font = new Font(Font.DIALOG, Font.PLAIN, 20);
        label.setFont(font);
        String answer=Her.creat();
        label.setText(answer);
        panel1.add(label);

        add(panel1);
    }
}

import java.util.ArrayList;
import java.util.Random;

public class Her {
     //private ArrayList<Double> list=new ArrayList<Double>();
    static double result=0;
     public static String creat(){
         Random random=new Random();
         int a=random.nextInt(101);
         int b=random.nextInt(101);
         int c=random.nextInt(4);
         char character=‘+‘;
         switch(c){
            case 0:character=‘+‘; result=a+b; break;
            case 1:character=‘-‘; if(a<b){int temp=a;a=b;b=temp;} result=a-b; break;
            case 2:character=‘x‘; result=a*b; break;
            case 3:character=‘/‘; result=a/b; break;
         }
         return "题目:"+a+character+b+"=?";
     }
}

三. 程序运行:程序运行时每个功能界面截图:

四.实验过程照片:

五.提供此次结对作业的PSP:


PSP2.1


任务内容


计划共完成需要的时间(h)


实际完成需要的时间(h)


Planning


计划


15


17


·       Estimate


·  估计这个任务需要多少时间,并规划大致工作步骤


18


20


Development


开发


96


98


··       Analysis


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


48


50


·       Design Spec


·  生成设计文档


24


26


·       Design Review


·  设计复审 (和同事审核设计文档)


18


20


·       Coding Standard


代码规范 (为目前的开发制定合适的规范)


12


16


·       Design


具体设计


24


25


·       Coding


具体编码


36


21


·       Code Review


·  代码复审


7


9


·       Test


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


13


21


Reporting


报告


9


6


··       Test Report


·  测试报告


3


2


·       Size Measurement


计算工作量


2


1


·       Postmortem & Process Improvement Plan


·  事后总结 ,并提出过程改进计划


3


3


六. 请使用汉堡评价法给你的小伙伴一些点评。

本次结对项目合作中,我的小伙伴非常的认真,细心,有想法,而且表现出了很强的逻辑思维。我们两个在一次次的尝试下,发现不足并经过认真讨论下改正错误,完成此次任务。在本次试验我们合作中,我在她身上学习到了很多,希望以后还能跟她一起学习合作。

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

通过本次结对项目合作,我发现了我的小伙伴身上很多值得我学习的地方,看到了她与我不同的想法,学习到了她不一样的方法。思想交换,互相学习,共同进步想必就是这次试验我的收获。我觉得结对编程真的能够带来1+1>2的效果。在问题上我们可以共同更快更有效率的完美解决,在其他方面我们可以优势互补,相互学习,提升自己。这种结对的方法真的是很有效,以后的编程学习中,我认为个人独立思考很重要,但是结对合作更是有它的好处,两个的结合一定能使编程能力提高,加油。

原文地址:https://www.cnblogs.com/zjy25/p/8719472.html

时间: 2024-10-22 01:55:37

201571030335/201571030320《小学四则运算练习软件》结对项目报告的相关文章

201571030132/201571030333《小学四则运算系统》结对项目报告

GitHub仓库地址: https://github.com/Sophur/Team-four-operation 一.需求分析 (1)由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分: (2)题库文件可采用实验二的方式自动生成,也可以手工编辑生成,文本格式如下: (3)程序为用户提供三种进阶四则运算练习功能选择:百以内整数算式(必做).带括号算式.真分数算式练习: (4)程序允许用户进行多轮

201571030121《小学四则运算练习软件软件需求说明》结对项目报告

201571030107/201571030121<小学四则运算练习软件软件需求说明>结对项目报告 结对小伙伴:冯晓(201571030107) 任务一 首先,我们进行了实例体验,把我们已经上线的<小学生四则运算网站>链接发给我们调研的人,在他们体验过我们的程序后在填写需求分析调查问卷,这样可以更好的得到一个反馈,让我们的需求分析更加清楚. 网站链接:http://123.56.24.117:8080/ 其次,我们主要采取了精准的问卷调查方式来进行需求分析,调查的主要对象为老师和有

201571030122/201571030129《小学四则运算练习软件软件需求说明》结对项目报告

<小学四则运算练习软件>博文链接:http://www.cnblogs.com/mzll/p/8709480.html GitHub的链接地址:https://github.com/13993013291/Shiyan3.git 任务一:        以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 1.调研对象:老师,学生以及家长: 2.调研方法:主要是问卷调查,其次通过即时通讯工具访谈了下当老师的同学: 3.问卷样本链接:h

2015710301020/201571030119《小学四则运算练习软件软件需求说明》结对项目报告

任务一:以小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动 1.实践软件需求获取方式 调查问卷: 利用问卷星平台,列出来28道题分别对老师.家长以及小学生进行了问卷调查. 问卷样本链接:https://www.wjx.cn/jq/22531831.aspx 2.调查问卷分析 任务二:采用适当的建模方法描述任务1所获取的需求,请调研用户复查. 任务三: 1.<小学四则运算练习软件软件需求说明>链接:https://shimo.im/docs/OtKU7suLE2QKTihS

201571030120/201571030119《小学四则运算练习软件软件需求说明》结对项目报告

任务一:以小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动 1.需求获取方式 (1)老师:搭档父亲是一名小学老师,由她提前和他通了电话,他答应帮她把电子版的调查问卷发放给他的同事.然后让他对我们的原型进行了分析. (2)家长和学生:亲戚中有小孩上小学,我们将包含我们软件原型和博客的调查问卷发给他们,同时获取了小学生和家长的意见,考虑小学生的理解能力有限,我们提前和家长进行了沟通,帮助孩子理解题目并作答. 2.调查问卷设计(https://www.wjx.cn/m/22531

201571030329/201571030310《小学四则运算练习软件需求获取》结对项目报告

任务1:实施软件用户调研活动说明: (1) 调研对象:通过一位已经毕业在小学当数学教师的学姐,以她的同事以及班内小学生作为本次调研对象.让他们进行体验我和小伙伴设计的小学四则运算练习软件,并在体验结束后填写电子调查问卷:因为上次和我的搭档开发的时候就是利用Android设计的一个小APP,所以直接通过微信分享了软件,安装在手机上就可以直接进行体验测试了.让参加调查的数学老师和小学生们以这个软件为原型工具进行反馈.     (2)调查问卷设计:由于考虑到用户的差异性,本次问卷调查分为两类,第一类是

2016011990小学四则运算练习软件项目报告

 小学四则运算练习软件项目报告 项目克隆地址:https://git.coding.net/chenf640/workhome2_2.git 目录: 一.需求分析 二.功能设计 三.设计实现 四.算法详解 五.测试运行 六.代码展示 七.psp 八.总结 -------------------------------------------------- 一.需求分析 (一)功能需求  基本功能: 程序可接收一个输入参数n,然后随机产生n道加减乘除(分别使用符号+-*÷来表示)练习题. 每个数字

2016012075+小学四则运算练习软件项目报告

2016012075+小学四则运算练习软件项目报告 一.需求分析 二.功能设计 三.设计实现 四.算法详解 五.测试详解 六.代码展示 七.总结 八.PSP展示 coding.net地址:https://git.coding.net/sparkleStar/arithmetic.git,代码在Main.java中 一.需求分析 1.编写目标 使用Java编程语言,独立完成一个3到5个运算符的四则运算练习的命令行软件开发. 2.基本功能需求 (1)程序可接收一个输入参数n,然后随机产生加减乘除(分

201571030133/201571030102《小学四则运算练习软件软件需求说明》结对项目报告

我的学号:201571030133 结对伙伴的学号:201571030102 结对伙伴的博文链接:http://www.cnblogs.com/yuan1229/p/8873824.html 任务一: 以实验二个人项目.实验三结对项目所开发的小学生四则运算练习软件作为原型,实施小学生四则运算练习软件用户调研活动. 1. 调研对象:小学生.小学生家长和小学老师. 2. 需求调研方法:访谈.问卷调查 .原型评估. 问卷样本链接:https://www.wjx.cn/jq/22680152.aspx