201571030318/201574010343《小学四则混合运算》结队报告 马麒

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

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

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

(4)程序允许用户进行多轮测试,提供用户多轮测试分数柱状图,示例如下:

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

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

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

二. 核心功能代码展示:

(1)、界面设计及相关功能实现

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

import java.io.*;
    import javax.swing.*;
    import javax.swing.event.*;
    import java.awt.event.*;
    import java.awt.*;
    import java.util.*;
    public class xiti5_5 extends JFrame implements ActionListener,ItemListener{
    String str[]=new String[7],s;
    FileReader file;     BufferedReader in;
    JButton restart=new JButton("重新练习");
    JButton next=new JButton("下一题目");
    JButton finish=new JButton("交卷");
    JCheckBox option[]=new JCheckBox[4];
    JLabel score=new JLabel("20   剩余时间: 120s");
    JTextField question=new JTextField(10);
    int account=0;
    int n= 0;
    xiti5_5(){
    for(int i=0;i<4;i++){
    option[i]=new JCheckBox();
    option[i].addItemListener(this);
           }
    restart.addActionListener(this);
         next.addActionListener(this);
         finish.addActionListener(this);
         try{
         file=new FileReader("D:\\result.txt");
         in=new BufferedReader(file);
     }catch(IOException e){}
    Box boxV=Box.createVerticalBox();
    JPanel p1=new JPanel();
    JPanel p2=new JPanel();
    JPanel p3=new JPanel();
    JPanel p4=new JPanel();
    p1.setLayout(new FlowLayout(FlowLayout.CENTER));
    p1.add(new JLabel("题目   :10+72+6="));p1.add(question);
    p2.setLayout(new FlowLayout(FlowLayout.CENTER));
    p2.add(new JButton("确定"));         

    p3.setLayout(new FlowLayout(FlowLayout.CENTER));
    p3.add(new JLabel("您的得分:"));p3.add(score);
    p4.setLayout(new FlowLayout(FlowLayout.CENTER));
    p4.add(restart);p4.add(next);p4.add(finish);
    boxV.add(p1);boxV.add(p2);boxV.add(p3);boxV.add(p4);
        Container con=getContentPane();
           con.add(boxV);
          this.setSize(800,300);
            this.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
            this.setVisible(true);
          this.validate();
         reading();
               }
      public void reading(){
          int i=0;
     try{
    s=in.readLine().trim();
               if(!(s.startsWith("end"))){
    StringTokenizer tokenizer=new StringTokenizer(s,"#");
          while(tokenizer.hasMoreTokens()){
                str[i]=tokenizer.nextToken();
         i++;
            }
      question.setText(str[0]);
       for(int j=1;j<=4;j++){
          option[j-1].setLabel(str[j]);
             }
     }
    else if(s.startsWith("end")){
         question.setText("考试结束,点击交卷按钮查看得分。");
      next.setEnabled(false);
    in.close();file.close();
     }
     }catch(Exception exp){question.setText("无试题文件");}
      }
    public void actionPerformed(ActionEvent e){
    if(e.getSource()==restart){
     account=0;
    next.setEnabled(true);
     score.setText(account+"分");
    try{
    file=new FileReader("D:\\java.txt");
    in=new BufferedReader(file);
    }catch(IOException ee){}
    reading();
      }
    if(e.getSource()==next){
    reading();
                  for(int j=0;j<4;j++){
                    option[j].setEnabled(true);
                    option[j].setSelected(false);
           }
                 }
     if(e.getSource()==finish){
      int n=JOptionPane.showConfirmDialog(null,"交卷以后将不能再修改,确实要交卷吗?", "确认对话框",JOptionPane.YES_NO_OPTION);
         if(n==JOptionPane.YES_OPTION){
        for(int i=0;i<4;i++){
                 option[i].setEnabled(false);
                  }
      score.setText(account*10+"分");
                   restart.setEnabled(false);
                    next.setEnabled(false);
                   finish.setEnabled(false);
              }
              }
             }
     public void itemStateChanged1(ItemEvent e)
     {
    for(int j=0;j<4;j++){
     if(option[j].getLabel().equals(str[5])&&option[j].isSelected()){
                account++;
         }
        }               

    if(n==JOptionPane.YES_OPTION){
        for(int i=0;i<4;i++){
            option[i].setEnabled(false);
            }
        score.setText(account*10+"分");
        restart.setEnabled(false);
        next.setEnabled(false);
        finish.setEnabled(false);
        }                                  }
        public void itemStateChanged(ItemEvent e)     {
            for(int j=0;j<4;j++){
                if(option[j].getLabel().equals(str[5])&&option[j].isSelected()){
                    account++;              }                                 }             }
        public static void main(String args[]){
            xiti5_5 ET=new xiti5_5();
            }     }

四,实验功能及伙伴图片:

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


PSP2.1


任务内容


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


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


Planning


计划


16


17


·       Estimate


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


19


20


Development


开发


96


99


··       Analysis


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


47


50


·       Design Spec


·  生成设计文档


24


27


·       Design Review


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


18


21


·       Coding Standard


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


15


16


·       Design


具体设计


23


25


·       Coding


具体编码


36


23


·       Code Review


·  代码复审


7


8


·       Test


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


13


21


Reporting


报告


9


8


··       Test Report


·  测试报告


3


2


·       Size Measurement


计算工作量


2


1


·       Postmortem & Process Improvement Plan


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


3


3

六:伙伴的评价

通过本次实验赵希涛同学积极配合,共同克服困难,他是一个是一个细心严谨的人,虽然Java底子弱,但我们还是不畏困难共同完成了任务,做出来后成就感很强。

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

答:这是肯定的,以前一个做错误很多,而且自己是个粗心大意的人,这次和同伴一起不仅实验中的错误减少,而且大大的提高了实验效率,过程中很高心,愉快的的完成了任务。两人之间还可以优势互补,通过一起讨论、合作,达到互相学习、共同进步的目的,更加增强了我们的团结意识,提高了学习兴趣和主动性。

原文地址:https://www.cnblogs.com/mq123/p/8719182.html

时间: 2024-11-07 04:06:27

201571030318/201574010343《小学四则混合运算》结队报告 马麒的相关文章

201574010343/201571030318《小学四则混合运算》结对项目报告

github代码地址:https://github.com/zxt555/demo2/tree/master/src 一:需求分析 1. 由计算机从题库文件中随机选择20道加减乘除混合算式,用户输入算式答案,程序检查答案是否正确,每道题正确计5分,错误不计分,20道题测试结束后给出测试总分: 2.系统随机产生一百以内的两个数进行运算选择加.减.乘.除运算. 3.系统随机产生一百以内的两个数进行运算. 4.练习时,用户从键盘输入结果,正确和错误均有提示,错误的话提示下会有正确的结果. 5. 根据实

软件工程学习之小学四则混合运算出题软件 Version 1.00 设计思路及感想

对于小学四则混合运算出题软件的设计,通过分析设计要求,我觉得为了这个软件在今后便于功能上的扩充,可以利用上学期所学习的<编译原理>一课中的LL1语法分析及制导翻译的算法来实现.这样做的好处有以下几点: 1. 由于LL1制导翻译是一项成熟且可靠的技术,并且其递归下降算法易于改编为算式生成算法: 2. 我们有系统的方法可以获得较复杂表达式的LL1文法,则可以方便地生成形式丰富的算式: 3.由于四则混合运算中需要考虑运算优先级的问题,那么采用LL1分析器可以很方便的实现计算表达式的功能: 4.当用户

MathExamV2.0四则混合运算计算题生成器

MathExamV2.0四则混合运算计算题生成器----211606360 丁培晖 211606343 杨宇潇 一.预估与实际 PSP2.1 Personal Software Process Stages 预估耗时(分钟) 实际耗时(分钟) Planning 计划 ? Estimate ? 估计这个任务需要多少时间 60 100 Development 开发 ? Analysis ? 需求分析 (包括学习新技术) 360 440 ? Design Spec ? 生成设计文档 20 20 ? D

基于MFC的含四则混合运算的计算器

今天无意间发现win7系统的标准型计算器连最基本的四则混合运算都没做,刚刚好公司给了我一个工作任务,就是用MFC实现一个含四则混合运算的计算器. 我在网上查询资料,发现大部分只是实现了基本的加减乘除运算,而含四则混合运算的也没有能够说得清楚明白.于是我搜索四则混合运算算法,发现要实现四则混合运算,就要用到逆波兰算法,而使用逆波兰算法,就要先把算术式从中缀表达式转换为后缀表达式. 所谓中缀表达式,就是我们平常的算术式,例如:1+2-3*4/5. 而后缀表达式,就是将运算符写在操作数之后,上面算术式

JAVA实现简单四则混合运算

JAVA实现简单四则混合运算,说明:该计算器支持实则混合运算,如 2*(3+1 )/ 4-3 *9+ 8/ 3*4- 5,则输出:-19.333332 需要说明的事括号必须是英文的.源码如下仅供学习: 运行后直接在Console里面敲然后回车即可 [1].[代码] [Java]代码 跳至 [1] ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36

C语言写的秒速计算四则混合运算项目

开发语言:C语言 开发工具:Visual Studio 2017 整理时间:2017年8月2日 源代码:500行: 开发方式:C语言多文件模式开发 实现功能:在文件中写入四则混合运算表达式(无论有多长...),按运行即可得出结果. 四则混合运算表达式形如: (19+67)*33-45/5+17*52+39/3+.... 意义:在实际快速计算的同时,对学习也有如下意义:对堆栈的学习应用,多多文件的学习巩固 项目演示截图: 其他C语言项目参考:

第四次作业 结对编程 (四则混合运算)

一 需求分析 本次我们做的程序是数学的四则混合运算,并且增加了部分人性化的功能,接下来,我们谈谈这个程序的相关需求,此程序是一个1—10的四则混合运算,那么可以想到主要用于小学生,(ps 个人想法,不排除其他高年级的使用,因为用户可以输入任意的随机数范围),此外,本程序还可能会出现在家庭.教育机构和部分教学网站上面,因为他们可能会给学生出一些简单的数学题目,可以自由设置测试时间,题目数量等内容,而这一程序正好解决了这一个问题,我想,产品的需求必须首先知道用户需要什么,要以客户为中心.而这个产品正

加/减/乘/除四则混合运算(C 语言)

逆波兰表达式(也称为后缀表达式) C 语言简单实现,(也称为后缀表达式) 本示例旨在展示逆波兰表达式原理,作简单的混合运算,不作容错处理也不保证结果,若混合运算字符串中有负数等,自行调试解决 列如计算: 20.5+(100-(3+2)*8)/(8-5) - 10 后缀表达式为:20.5 100 3 2 + 8 * - 8 5 - / 10 - + C  语言代码如下: #include <stdio.h> #include <stdlib.h> #include <strin

四则混合运算

主题运算: using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.IO; namespace shuxuefudao{ public partial class Form1 :