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