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

posted @ 2021-05-30 01:20  繁星似水  阅读(262)  评论(0编辑  收藏  举报