《小学生题卡APP》——王芳

一、计划:

做一个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)代码复审:

和室友一块看过,意见一致

(8)测试:

 

三:记录用时:

PSP阶段 预计时间(h) 实际时间(h)
计划 0.5 0.5

明确需求和其他相关因素,

估计每个阶段的时间成本

0.5 0.5
开发 15 20
需求分析 0.5 0.5
生成设计文档 0. 5 0.5
设计复审(和同事审核设计文档) 0. 5 0.5
代码规范(为目前的开发制定合适的规范) 0. 5 0.5
具体设计 1 1
具体编码 10 15
代码复审 1 1
 测试(自测,修改代码,提交修改) 1 1
报告 2 3
测试报告 1 1. 5
计算工作量 0.5 1
事后总结,并提出过程改进计划 0.5 0. 5

 

四:测试报告:

已和室友进行测试,运行结果理想

五:计算工作量:

老师给了一个月的时间,对于这个时间而言,工作量不算多

六:事后总结:

纸上谈兵总归只是虚的,在计划的时候感觉就是去实现几个点,感觉一会就能写完,但当你真的去写的时候,才发现并不是那么容易,现在还有百度可以查,老师以及同学可以帮忙,但以后就要靠自己了。所以还是要努力提高自己的技术。

七:提出过程改进计划:

要合理安排时间,对于每个部分进行规划,让过程变得不那么慌乱,而是可以有条理的去完成。

 

posted @ 2021-05-31 21:07  19A3  阅读(183)  评论(0)    收藏  举报