zoukankan      html  css  js  c++  java
  • 小学生口算题答题系统———计应193第六组栗亚文

    小学生口算题答题系统———计应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

  • 相关阅读:
    JSP指令用来设置整个JSP页面相关的属性
    JSP 生命周期 理解JSP底层功能的关键就是去理解它们所遵守的生命周期
    JSP 开发环境搭建
    JSP(Java Server Pages,即:Java服务器页面
    JSP 国际化
    JSP 调试
    JSP 异常处理
    JSP 自定义标签
    JSP JavaBean
    JSP 标准标签库(JSTL)
  • 原文地址:https://www.cnblogs.com/group6/p/14826894.html
Copyright © 2011-2022 走看看