ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

小学生口算题答题系统———计应193第六组栗亚文

2021-05-30 02:03:41  阅读:197  来源: 互联网

标签:10 ch int void 亚文 193 usersAnswer public 算题


小学生口算题答题系统———计应193第六组栗亚文

计划: (0.50小时)

  1. 首先输入用户名登录答题系统
  2. 程序随机产生10道根据用户选择的范围和要求的四则运算题
  3. 开始答题时,同时计时器开始计时
  4. 答题完毕后提交答案,显示做题情况和答题时间
  5. 程序根据用户答题情况进行后台记录


需求分析:(用户故事)
作为一名一年级小学生的家长,我希望制作一个出题软件,完成100以内的整数的混合加减法题随机产生,以此来提升孩子的学习进度以及计算水平为以后的学习奠定基础,以便减轻我的家庭负担

生成设计文档

(主要类说明)

Operation类:

重要属性:两个操作数、正确答案、用户答案

重要方法:抽象方法operation,用于对操作数的运算。

+、-、*、/类继承于Operation类,重写operation方法。减法和除法还要保证除数不能为0等。

MyExGUI类:

界面的布局、按钮事件的监听、倒计时的实现等等。

ArithmeticTest8类,调用MyExGUI。(不知道把所有东西都写在MyExGUI是不是正确的做法)

技术难点:
随机产生100以内的正整数
随机产生加减符号
减法为负值的算式要剔除

任务一
随机产生一组(10个)算题---产生算式,剔除不够减,循环产生
任务二
显示一组算题,选择、解答界面,提交按钮,同步计时(秒)
任务三
显示对错,统计正确性,统计时间

代码规范

根据eclipse的代码规范来编写

具体程序设计

主要功能说明

输入用户名后可以点击开始做题按钮,出题时每次出十题,提交后会显示答案。可以选择重做或再次开始做题(不同的题)

输入用户名后可以点击查看记录按钮,查看自己历次做题记录。

每次做题时会有倒计时显示,需要在120s内做完,如果时间到了还没提交则会自动提交。

主要代码:

Operation 类

package 四则运算;

import java.io.File;

import java.io.FileNotFoundException;

import java.io.FileWriter;

import java.io.IOException;

import java.io.PrintWriter;

 

public abstract class Operation {

    protected int op1,op2,remainder,usersRemainder,n,correctAnswer,usersAnswer,maxInt=1;

    protected String ch;

    protected long minRange,maxRange;

 

    public Operation(String ch,int n) {

        super();

        this.ch = ch;

        this.n = n;

    }

 

    public abstract void operation();

    public abstract void isNumRight();

    public abstract void setRange();

 

    protected void getRanNum()

    {

        op1 = (int)(Math.random()*Math.pow(10,n));

        op2 = (int)(Math.random()*Math.pow(10,n));

    }

 

    public void setUsersAnswer(int usersAnswer,int usersRemainder) //throws Exception

    {

        /*setRange();

        if(usersAnswer < minRange || usersAnswer > maxRange)

            throw new NumberTooBigException("答案范围应为"+minRange+"到"+maxRange);*/

        this.usersAnswer = usersAnswer;

        this.usersRemainder = usersRemainder;

    }

 

    public void setUsersAnswer(int usersAnswer) //throws Exception

    {

        setUsersAnswer(usersAnswer,0);

    }

 

    public String isCorrect()

    {

        if(usersAnswer == correctAnswer)

            return "回答正确";

        else

            return "回答错误";

    }

 

    public String printQuestion()

    {

        getRanNum();

        isNumRight();

        return op1+" "+ch+" "+op2+" =";

    }

 

    public String ptintQA()

    {

        operation();

        return "答案:"+op1+" "+ch+" "+op2+" = "+correctAnswer;

    }

 

    public void writeToFile(File aFile)

    {

        try

        {

            PrintWriter out = new PrintWriter(new FileWriter(aFile,true));

            out.println("题目:"+op1+" "+ch+" "+op2);

            out.println("你的答案:"+usersAnswer + "    "+ "正确答案:"+correctAnswer);

            out.close();

        }catch(FileNotFoundException e){

            System.err.println("File not found!" );

        }catch(IOException e2){

            e2.printStackTrace();

        }       

}}

 

运行截图

 

 

 

总结

实现提前先做好计划,写代码时认真规范,做好复审和测试工作。

 

工作时间比

口算题卡开发

预计时间

实际记录

计划

10

10

  • 明确相关需求和其他因素确立方向

10

10

开发

86

73

  • 需求分析(整合相关材料)

12

8

  • 生成设计文档

8

10

  • 设计审复(和搭档审核设计文档)

12

7

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

8

3

  • 具体设计

16

13

  • 具体编码

21

22

  • 代码复审

9

10

报告

7

5

  • 测试报告

3

3

  • 计算工作量

2

1

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

2

1

总共花费的时间

103

93

标签:10,ch,int,void,亚文,193,usersAnswer,public,算题
来源: https://www.cnblogs.com/group6/p/14826894.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有