小学生口算题卡——计应193第六组何培歌
一. 计划
使用java语言编写小学生口算题卡系统,实现加减法运算
二. 开发
1. 需求分析:
作为一名一年级学生家长,我希望制作一个出题软件,完成100以内的加减法运算,以便减轻我的负担。
2. 技术难点:
(1) 随机产生100以内的正整数
(2) 要剔除减法为负值的运算
(3) 加法减法任意选择
3.任务
(1)实现登录功能(用户名,密码)
(2)随机产生一组100以内的加减法算式,循环产生
(3)显示一组算题,同步计时(秒)
(4)显示对错,错误的给出正确答案,统计得分
4.代码规范
符合代码规范
5.具体设计
需要用户名和密码登录小学生口算题卡系统,然后选择加法或减法运算,最后退出系统显示得分积所用时间
6.具体编码
import java.util.Date; import java.util.Scanner; public class Count { private static String time; public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); String name="hpg"; int pass=123456; 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=sc.nextLine(); System.out.println("请输入密码:"); int password = sc.nextInt(); if(username.equals(name)&&password == pass) { System.out.println("恭喜你,登陆成功"); Date date = new Date(System.currentTimeMillis()); long startMillis = date.getTime(); while(true) { System.out.println("1,加法运算"); System.out.println("2,减法运算"); System.out.println("3,退出系统"); System.out.print("请输入你的选择:"); choice = sc.nextInt(); switch(choice) { case 1: System.out.print("请输入你要完成的题目数:"); num = sc.nextInt(); for(i = 1;i <= num;i ++) { x = (int)(Math.random() * 100); y = (int)(Math.random() * 100); System.out.print(x + "+" + y + "="); z = sc.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 = sc.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 = sc.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 ++; } }
6.代码复审
7.测试报告
8.事后总结
写代码时总是出错,修改了很多次,所以做时要提前做好计划,避免做时无从下手,要进行多次代码复审和测试工作
工作时间比
口算题卡开发 |
预估时间 |
实际所用时间 |
计划 |
15 |
10 |
|
15 |
10 |
开发 |
89 |
93 |
|
10 |
8 |
|
8 |
10 |
|
10 |
8 |
|
8 |
5 |
|
10 |
15 |
|
20 |
25 |
|
8 |
10 |
|
15 |
12 |
报告 |
11 |
10 |
|
3 |
3 |
|
3 |
2 |
|
5 |
5 |
总共花费时间 |
115 |
113 |