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

    小学生口算题答题系统———计应193第六组童白雪

    一, 计划

    设计一款自动生成适用于小学生练习口算的小程序,完成日常的加减口算练习。

    二, 开发

    1, 分析需求

    一年级的小学生家长希望开发一款可以自动生成100以内加减法并且可以自动修改题目的小程序,完成孩子的日常学习练习,还可以减轻家长的工作量。

    2, 技术难点

    (1) 随机生成100以内的数字进行加减法的题目

    (2) 口算过程进行计时

    3, 目标效果

    (1) 用户通过账户密码进行登入

    (2) 随机产生一百以内的加减法题目

    (3) 对口算过程继续计时

    (4) 自动批改答案

    (5) 对错误题目进行总结

    4, 代码实现

    import java.util.Date;
    
    import java.util.Scanner;
    
    public class SwitchFor {
    
    public static void main(String[] args) {
    
    Scanner input = new Scanner(System.in);
    
    int m1 = 12345;
    
    int pass;
    
        int sum1 = 0;//总题数
    
    int sum2 = 0;//错题数
    
    int x,y,i = 1;
    
    int z,choice;
    
    int time;
    
    int num;
    
    System.out.println("欢迎使用一年级小学生口算题卡系统");
    
    System.out.println("请输入账号:");
    
    String username=input.nextLine();
    
    System.out.println("请输入密码:");
    
    pass = input.nextInt();
    if(username.equals(username)&&pass == pass)
    
    {System.out.println("恭喜你,登陆成功!");
    
    Date date = newDate(System.currentTimeMillis());
    
    long startMillis = date.getTime();
    
    while(true)
    
    {
    
    System.out.println("1,加法运算");
    
    System.out.println("2,减法运算");
    
    System.out.println("3,退出系统");
    
    System.out.print("请输入你的选择");
    
    choice = input.nextInt();
    switch(choice)
    
    {  
    
    case 1:
    
     
    
    System.out.print("请输入题目数量:");
    
    num = input.nextInt();
    
    for(i = 1;i <= num;i ++)
    
    {
    
    x = (int)(Math.random() * 100);
    
    y = (int)(Math.random() * 100);
    
    System.out.print(x + "+" + y + "=");
    
    z = input.nextInt();
    
    if(z == (x + y))
    
    {
    
    System.out.println("恭喜你,回答正确");
    
    sum2 ++;
    
    }
    
    else
    
    {
    
    System.out.println("答案错误,正确答案为:" + x + "+" + y + "=" + (x + y));
    
    }
    sum1 ++;
    
    }
    
    break;
    
    case 2:
    
    System.out.print("请输入题目数量:");
    
    num = input.nextInt();
    
    for(i = 1;i <= num;)
    
    {
    
     x = (int)(Math.random() * 100);
    
    y = (int)(Math.random() * 100);
    
    if(x > y)
    
    {
    
    System.out.print(x + "-" + y + "=");
    
    z = input.nextInt();
    
    if(z == (x - y))
    
    {
    
    System.out.println("恭喜你,回答正确");
    
    sum2 ++;
    
    }
    
    }
    
    else
    
    {
    
    System.out.println("答案错误,正确答案为:" + x + "-" + y + "=" + (x + y));
    
    }
    
        sum1 ++;
    
    i ++;
    
    }
    
    break;
    
    case 3:
    
    System.out.println("总题数:" + sum1  + "答对的题数:" + sum2);
    
    Date star = new Date(System.currentTimeMillis());
    
    long endMillis = star.getTime();
    
     
    
     double usertime= ((endMillis-startMillis)/1000);
    
     System.out.println("你答题所用时间为:"+usertime+"秒");
    
    System.out.println("系统已退出,欢迎下次使用");
    
    System.exit(0);
    
    break;
    
    default:
    
     
    
    System.out.println("选择错误。请重新选择");}
    
    }
    
    }
    
     
    
    else
    
    {
    
    System.out.println("密码输入错误,请重新输入:");
    
    }
    
    i++;
    
    }
    
    }

    5, 效果展示

     

    三, 总结

    主要时间主要花费在答题部分,首先这一部分的构思不够明确,所以在开发的时候浪费了很多时间

     

    工作时间比

    口算题卡开发

    预估花费时间

    实际花费时间

    计划

    15

    10

    • 明确相关需求和其他因素,估计每个阶段的时间成本

    15

    10

    开发

    89

    85

    • 需求分析

    9

    8

    • 生成设计文档

    8

    10

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

    10

    7

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

    9

    5

    • 具体设计

    18

    10

    • 具体编码

    25

    25

    • 代码复审

    10

    10

    • 测试

    8

    8

    报告

    10

    5

    • 测试报告

    5

    3

    • 计算工作量

    2

    1

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

    3

    1

    • 总共花费时间

    122

    108

  • 相关阅读:
    并发编程三要素:原子性,有序性,可见性
    【华为云技术分享】【Python成长之路】来聊聊多线程的几位“辅助”
    【华为云技术分享】根因分析
    【华为云技术分享】浅谈服务化和微服务化(下)
    【华为云技术分享】浅谈服务化和微服务化(上)
    【华为云技术分享】STM32 GPIO的原理、特性、选型和配置
    【华为云技术分享】快速理解spark-on-k8s中的external-shuffle-service
    【华为云技术分享】如何设计高质量软件-领域驱动设计DDD(Domain-Driven Design)学习心得
    【华为云技术分享】唐老师带你秒懂大数据,以及Spark和Flink在干啥咧
    【华为云技术分享】昇腾AI处理器软件栈--总览
  • 原文地址:https://www.cnblogs.com/group6/p/14826888.html
Copyright © 2011-2022 走看看