小学生五十以内口算题卡程序---计应193第五组于智博

一.  计划:

(1)       让程序自动产生十道题为一组的加减法。

(2)       选择解答界面,同步计时(以秒为单位)。

(3)       最后显示对错,统计正确率,统计十道题计算所用的时间。

二、 开发

(1)       需求分析:作为一位小学生的家长,希望制作一个随机自动出题软件,用以完成50以内的正整数的加减法,以便减轻我的负担。

(2)       生成设计文档

(3)       设计复审

(4)       代码规范:全选中后Ctrl+Shift+F用以正确的缩进

(5)       具体设计:  系统开始后,随机产生10道加减法,答对输出你真棒回答正确,答错输出回答有误并给出正确答案,计算完成后,显示正确题数,正确率以及所花费的时间,系统结束。

(6)       具体编码如下:

 1 package operation;
 2 import java.util.Date;
 3 import java.util.Random;
 4 import java.util.Scanner;
 5 public class PupilOperation {
 6     public static void main(String[] args) {
 7         Scanner scanner = new Scanner(System.in);
 8         String name = "root"; //登录账号
 9         int password = 123456;//登录密码
10         int count = 0;// 记录生产个数
11         int number = 0;// 记录正确个数
12         System.out.println("========欢迎使用小学生五十以内口算题卡程序========");
13         System.out.println("请输入用户名:");
14         String username = scanner.nextLine();
15         System.out.println("请输入密码:");
16         int pass = scanner.nextInt();
17         if (username.equals(name) && pass == password) {
18             System.out.println("登录成功");
19             Date date = new Date();// 记录开始时间
20             while (true) {
21                 int x = (int) (Math.random() * 50);
22                 int y = (int) (Math.random() * 50);
23                 char[] fh = { '+', '-' };
24                 Random random = new Random();
25                 int i = random.nextInt(fh.length);
26                 if (i == 0) {
27                     System.out.println(x + "+" + y + "=");
28                     int sum = scanner.nextInt();
29                     if (sum == (x + y)) {
30                         System.out.println("你真棒回答正确");
31                         number++;
32                     } else {
33                         System.out.println("回答有误正确答案是:" + (x + y));
34                     }
35                 } else {
36                     if (x - y < 0) {
37                         continue;// 为负数时返回
38                     }
39                     System.out.println(x + "-" + y + "=");
40                     int sum = scanner.nextInt();
41                     if (sum == (x - y)) {
42                         System.out.println("你真棒回答正确");
43                         number++;
44                     } else {
45                         System.out.println("回答有误正确答案是:" + (x - y));
46                     }
47                 }
48                 count++;
49                 if (count == 10) {
50                     break;// 跳出循环
51                 }
52             }
53             Date date1 = new Date();// 记录结束时间
54             int time = (int) ((date1.getTime() - date.getTime()) / 1000);
55             System.out.println("正确个数:" + number);
56             System.out.println("正确率:" + (int) ((number / 10.0) * 100) + "%");
57             System.out.println("所花费的时间:" + time + "秒");
58             System.out.println("系统已退出,欢迎下次使用");
59             System.exit(0);
60         } else {
61             System.out.println("用户名或者密码输入错误");
62         }
63     }
64 }

(7)    运行结果如下所示

三.    个人开发程序所用的时间与软件工程师所用的时间表:

算题卡开发阶段

于智博个人所用时间

工程师所用时间

计划

 30

 15

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

8

6

开发

 

 

•需求分析

7

10

•生成设计文档

8

6

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

8

6

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

3

3

•具体设计

11

12

•具体编码

22

21

•代码复审

10

9

•测试(自测,修改代码,提交修改)

26

21

报告

 

 

•测试报告

2

2

•计算工作量

1

1

•事后总结

3

3

四      总结:程序的开发是一个非常庞大且复杂的工程性,系统性的事情,团队成员要不断的磨合,不断的积累经验教训,敢于尝试,及时修正,并迎合客户需求。

posted @ 2021-05-30 00:45  Xiao旋  阅读(190)  评论(0编辑  收藏  举报