https://github.com/gsdz/yunsuan.git
一:需求分析
1: 编写小学四则运算测试系统,要求完成两位数的加,减,乘,除四则运算。能根据用户的输入来选择运算种类,用户输入答案后可以判断正误,做完一次测试后,用户可以决定是否继续进行下一次运算。
2:题型选择界面设计,选择加、减、乘、除运算。
3:系统随机产生一百以内的两个数进行运算。
4:练习时,用户从键盘输入结果,正确和错误均有提示,错误的话提示下会有正确的结果。
二:设计流程图
三:核心代码:
package jiedui;
import java.util.Random;
import java.util.Scanner;
public class jiedui {
public static void main(String[] args) {
/**
* 一共循环10次。
*/
int rightNum = 0;//正确次数
int wrongNum = 0;//错误次数
for (int i =1; i <= 10; i++) {
System.out.println("请计算第" + i + "道题:");// 做到第几题,循环输出
int number1 =(int) (Math.random() * 10);
int number2 =(int) (Math.random() * 10);
Random num = new Random();// 生成随机运算符
int index = num.nextInt(3) + 1;
char[] fuhaos = { ‘+‘, ‘-‘, ‘*‘, ‘/‘ };
String fuhao = String.valueOf(fuhaos[index]);
Scanner scan = new Scanner(System.in);
if (fuhao.equals("+")) { // 进行加法运算
System.out.println(number1 + "+" + number2 + "=");
int input = scan.nextInt();
int sum = number1 + number2;
if (sum==input) {
System.out.println("正确");
rightNum++;
} else {
System.out.println("错误");
wrongNum++;
}
System.out.println("正确答案是:" + sum);
}else if (fuhao.equals("-")) { // 进行减法运算
System.out.println(number1 + "-" + number2 + "=");
int input = scan.nextInt();
int sum = number1 - number2;
if (sum==input) {
System.out.println("正确");
rightNum++;
} else {
System.out.println("错误");
wrongNum++;
}
System.out.println("正确答案是:" + sum);
}else if (fuhao.equals("*")) { // 进行乘法运算
System.out.println(number1 + "*" +number2 + "=");
int input = scan.nextInt();
int sum = number1 * number2;
if (sum==input) {
System.out.println("正确");
rightNum++;
} else {
System.out.println("错误");
wrongNum++;
}
System.out.println("正确答案是:" + sum);
}else { // 进行除法运算
System.out.println(number1 + "/" + number2 + "=");
int input = scan.nextInt();
int sum = number1 / number2;
if (sum==input) {
System.out.println("正确");
rightNum++;
} else {
System.out.println("错误");
wrongNum++;
}
System.out.println("正确答案是:" + sum);
}
}
System.out.println("做对" + rightNum + "题");
System.out.println("做错" + wrongNum + "题");
}
}
四:测试结果:
五;psp图
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
30 |
26 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
30 |
26 |
Development |
开发 |
200 |
200 |
·· Analysis |
需求分析 (包括学习新技术) |
40 |
40 |
· Design Spec |
· 生成设计文档 |
30 |
25 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
20 |
15 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
5 |
5 |
· Design |
具体设计 |
350 |
280 |
· Coding |
具体编码 |
150 |
140 |
· Code Review |
· 代码复审 |
10 |
8 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
30 |
30 |
Reporting |
报告 |
33 |
30 |
·· Test Report |
· 测试报告 |
3 |
2 |
· Size Measurement |
计算工作量 |
10 |
10 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
25 |
20 |
六:伙伴的评价
跟我结伴的是201571030331 益西卓嘎。我的伙伴有很独特的想法和主见,此次实验中有了我的伙伴实验的效果和各个方面大大不同,实验中遇到很多困难但我们依然没放弃,一直坚持真的很感谢我的伙伴。
这次的实验中遇到很多困难,因为我跟伙伴的java基础薄弱的问题而没能实现界面。但是和好伙伴一起完成这次作业是跟以往大大不同,有什么问题和她一起解决,实验效率也提高了许多。我发现合作和个人之间有很大区别。