计应191(西) 周伟春 小学生口算题卡

一、计划:

做一个1~6年纪的小学生口算题卡的程序,可以自动生成每组10道100以内的加减乘除题,在学生给出题的答案后,系统则会判断对错,并给予正确的答案。在结束后统计用时和正确率。

二、开发:

(1)分析需求:

典型用户:小学生的家长和学生

实现:①口算题卡软件

②随机产生一组10个以内的加减运算题(减数>被减数)

③要判断结果是否正确

④计算用时和正确率

(2)生成设计文档:

任务一:出题:给出一组10个100以内正整数的加减算式

任务二:答题:界面显示10个题,作答

任务三:统计:答案是否准确,用时以及正确率

(3)设计复审:

和室友一起审核过设计文档,意见一致

(4)代码规范:

按照目前要求的代码规范写的

(5)具体设计:

准备通过JAVA代码来实现

(6)具体编码:

package cn.com;

import java.util.Date;

import java.util.Scanner;

public class MathTi {

public static void main(String[] args) {

Scanner input = new Scanner(System.in);

String name = "wf";

int password = 100527;

int num1 = 0;// 总题数

int num2 = 0;// 对题数

double acc = 0;// 正确率

int time;// 所用时间

System.out.println("******欢迎使用小学生口算题卡系统******");

System.out.println("请输入用户名:");

String username = input.nextLine();

System.out.println("请输入密码:");

int pass = input.nextInt();

if (username.equals(name) && pass == password) {

System.out.println("恭喜你,登陆成功");

Date start = new Date(System.currentTimeMillis());

long starttime = start.getTime();

while (true) {

System.out.println("1,加法运算");

System.out.println("2,减法运算");

System.out.println("3,退出系统");

System.out.print("请输入你的选择");

int choice = input.nextInt();

if (choice == 1) {

for (int i = 1; i <= 10; i++) {

int x = (int) (Math.random() * 100);

int y = (int) (Math.random() * 100);

System.out.print(x + "+" + y + "=");

int z = input.nextInt();

if (z == (x + y)) {

System.out.println("恭喜你,回答正确");

num2++;

} else {

System.out.println("你的答案错误,正确答案为:" + x + "+" + y + "=" + (x + y));

}

num1++;

}

} else if (choice == 2) {

for (int i = 1; i <= 10;) {

int x = (int) (Math.random() * 100);

int y = (int) (Math.random() * 100);

if (x > y) {

System.out.print(x + "-" + y + "=");

int z = input.nextInt();

if (z == (x - y)) {

System.out.println("恭喜你,回答正确");

num2++;

} else {

System.out.println("答案错误,正确答案为:" + x + "-" + y + "=" + (x + y));

}

num1++;

i++;

}

}

}

else if (choice == 3) {

acc = (num2 * 1.0 / num1 * 1.0) * 100;

System.out.println("总题数:" + num1 + "答对的题数:" + num2 + "正确率:" + acc + "%");

Date end = new Date(System.currentTimeMillis());

long endtime = end.getTime();

time = (int) ((endtime - starttime) / (1000));

System.out.println("您的答题时间为:"+time+"秒");

System.out.println("用户已退出,欢迎下次使用");

System.exit(3);

}

else {

System.out.println("没有此选项,请重新选择");

}

}

} else {

System.out.println("用户名或密码输入错误");

}

}

}

(7)测试:

小学生口算题卡

预估时间(min)

实际记录(min)

计划

 25

 45

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

30

25

开发

 45

 30

需求分析(学习新技术,新工具)

30

45

生成设计文档(整体框架的设计,各模块的接口,用时序图等方法)

30

45

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

30

60

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

30

20

具体设计(用伪代码,流程图等方法来设计具体模块)

40

50

具体编码

60

65

代码复审

25

30

测试(自测、修改代码、提交修改)

30

25

报告

 20

 35

测试报告(发现了多少bug,修复了多少)

20

30

计算工作量(多少行代码,多少次签入,多少测试用例,其他工作量)

30

20

事后总结,并提出过程改进计划(包括写文档,博客的时间)

20

30

 

   

个人总结:

在整个实践案例中,我发现自己有很多地方不足,我才知道自己要多加练习,而且很多地方也完善的不是很好,代码也不够完整,不过也让我学习了很多,让我充分认识到自己还有发展的空间,会更加努力学习和练习的。

posted @ 2021-05-31 22:04  计应191西五组  阅读(45)  评论(0编辑  收藏  举报