小学生口算题答题系统———计应193第六组郭静
一. 计划
使用java语言编写小学生口算题卡系统
二. 开发
1. 需求分析:
作为一名一年级学生家长,我希望能制作出一个自动出题软件,完成100以内的加减法运算。
2. 基本功能:
(1) 随机产生100以内的正整数
(2) 要剔除减法为负值的运算
(3) 加法减法任意选择
(4) 简单易算
3.步骤
(1)实现登录功能
(2)随机产生一组100以内的加减法算式(循环)
(3)出题,做题的同时开始计时
(4)显示对错,错误的给出正确答案,并统计得分
4.具体设计
需要用户名和密码登录小学生口算题卡系统,然后选择加法或减法运算,最后退出系统显示得分和所用时间
- 具体编码
package com.cn.hnzj; import java.util.Date; import java.util.Scanner; public class Number { private static String time;//所用时间 public static void main(String[] args) { // TODO Auto-generated method stub Scanner src = new Scanner(System.in); String name="guojing"; int pass=513921; int sum1 = 0;//总题数 int sum2 = 0;//对题数 int a,b,i = 1; int c,choice; int num; System.out.println("========欢迎使用小学生口算题卡系统==========="); System.out.println("用户名:"); String username=src.nextLine(); System.out.println("密码:"); int password = src.nextInt(); if(username.equals(name)&&password == pass) { System.out.println("登陆成功"); Date date = new Date(System.currentTimeMillis()); long starttime = date.getTime(); while(true) { System.out.println("1,加法运算"); System.out.println("2,减法运算"); System.out.println("0,退出系统"); System.out.print("请输入你的选择:"); choice = src.nextInt(); switch(choice) { case 1: System.out.print("请输入你要完成的题目数:"); num = src.nextInt(); for(i = 1;i <= num;i ++) { a = (int)(Math.random() * 100); b = (int)(Math.random() * 100); System.out.print(a + "+" + b + "="); c = src.nextInt(); if(c == (a + b)) { System.out.println("真棒!回答正确"); sum2 ++; } else { System.out.println("很遗憾!答案错误,正确答案为:" + a + "+" + b + "=" + (a + b)); } sum1 ++; } break; case 2: System.out.print("请输入你要完成的题目数:"); num = src.nextInt(); for(i = 1;i <= num;) { a = (int)(Math.random() * 100); b = (int)(Math.random() * 100); if(a > b) { System.out.print(a + "-" + b + "="); c = src.nextInt(); if(c == (a - b)) { System.out.println("真棒!回答正确"); sum2 ++; } else { System.out.println("很遗憾!答案错误,正确答案为:" + a + "-" + b + "=" + (a + b)); } sum1 ++; i ++; } } break; case 0: System.out.println("总题数:" + sum1 + "答对的题数:" + sum2); Date star = new Date(System.currentTimeMillis()); long endtime = star.getTime(); double time= ((endtime-starttime)/1000); System.out.println("你答题所用时间为:"+time+"秒"); System.out.println("系统已退出,欢迎下次使用");
6、代码复审
7、运行结果:
8、总结
这个小学生口算系统的存在可以给小学生的家长提供极大的便利;编程不是一次就成的,需要不断的改正和复审!
工作时间比
PSP阶段 |
预估时间 |
实际所用时间 |
计划 |
11 |
10 |
|
11 |
10 |
开发 |
83 |
92 |
|
10 |
8 |
|
5 |
7 |
|
8 |
10 |
|
6 |
5 |
|
8 |
6 |
|
25 |
24 |
|
10 |
12 |
|
11 |
10 |
报告 |
11 |
10 |
|
3 |
3 |
|
3 |
2 |
|
5 |
5 |
总共花费时间 |
105 |
112
|