20172318 结对编程项目-四则运算 第一周 阶段总结
Posted m1sty
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了20172318 结对编程项目-四则运算 第一周 阶段总结相关的知识,希望对你有一定的参考价值。
结对对象
- 学号 20172312 20172315
- 姓名 彭霖 胡智韬
- 担任角色
陆大岳 生成题目 编写主类
胡智韬 中缀转后缀 计算
彭霖 分数
需求分析
- 生成分级的题目
目前的代码编写只写了第一级(一个运算符)和第二级(两个运算符),有需要可以再加 - 指定生成题目的数量
放main方法里,用循环解决 - 支持真分数
把运算弄成分数的运算,还在写 - 答案
计算时用数组将每题答案记录并在最后输出 - 正确率
统计回答者的正确题数和题数的比值 - 拓展
去重暂时不会
设计思路
设计calculate类,实现填入生成题目等级,填入题目数量,输出答案和正确率的功能
我写的import java.util.Scanner;
public class calculate {
public static void main(String[] args) {
System.out.println("输入你要生成的题数");
Scanner scan = new Scanner(System.in);
int tishu = scan.nextInt();
System.out.println("输入你要生成题目的等级(输入1或2)");
int dengji = scan.nextInt();
//调用一个循环
double answer;
int zhengquelv=0;
double[] daan=new double[tishu];
if (dengji == 1)
for (int i = 0; i < tishu; i++) {
String a = createquestions.create(1);
String b = a+"=";
System.out.print(b);
answer=scan.nextDouble();
daan[i]=StringToArithmetic.stringToArithmetic(a);
if(answer==daan[i])
zhengquelv++;
}
else if (dengji == 2)
for (int i = 0; i < tishu; i++) {
String a = createquestions.create(2);
String b = a+"=";
System.out.print(b);
answer=scan.nextInt();
daan[i]=StringToArithmetic.stringToArithmetic(a);
if(answer==daan[i])
zhengquelv++;
}
else
System.out.println("题目等级输入错误");
if(dengji==1||dengji==2) {
System.out.println("答案为");
for (double daanwei : daan)
System.out.print(daanwei + " ");
System.out.println("正确率为" + zhengquelv+ "/"+ tishu);
}
}
}设计createquestions类,实现生成题目的功能,支持括号,支持生成分数
我写的,数字只包括十以内,因为计算的程序还没写好,不能进行10以上的计算public class createquestions {
public static String create(int level){
String add = "+", sub = "-", multi = "×", div = "÷";
String result="";
int r1=(int)(Math.random()9+1);
int r2=(int)(Math.random()9+1);
int r3=(int)(Math.random()9+1);
int fenzi1=(int)(Math.random()9+1);
int fenmu1=(int)(Math.random()9+1);
String fenshu1=fenzi1+"/"+fenmu1;
int fenzi2=(int)(Math.random()9+1);
int fenmu2=(int)(Math.random()9+1);
String fenshu2=fenzi2+"/"+fenmu2;
int fenzi3=(int)(Math.random()9+1);
int fenmu3=(int)(Math.random()9+1);
String fenshu3=fenzi3+"/"+fenmu3;
int suiji1=(int)(Math.random()4);
//第一个运算符
int suiji11=(int)(Math.random()3);
//生成括号
int suiji2=(int)(Math.random()4);
//第二个运算符
int suiji31=(int)(Math.random()4);
//生成分数1概率
int suiji32=(int)(Math.random()4);
//生成分数2概率
int suiji33=(int)(Math.random()*4);
//生成分数3概率
if (level==1||level==2) {
if(suiji11==0&&level==2)
result+="(";
if (suiji31==3)
result+=fenshu1;
else
result+=r1;
if (suiji1 == 0)
result+=add;
if (suiji1 == 1)
result+=sub;
if (suiji1==2)
result+=multi;
if(suiji1==3)
result+=div;
if(suiji11==1&&level==2)
result+="(";
if (suiji32==3)
result+=fenshu2;
else
result+=r2;
if(suiji11==0&&level==2)
result+=")";
}
if (level==2){
if (suiji2==0)
result+=add;
if (suiji2 == 1)
result+=sub;
if (suiji2==2)
result+=multi;
if(suiji2==3)
result+=div;
if (suiji33==3)
result+=fenshu3;
else
result+=r3;
if(suiji11==1)
result+=")";
}
return result;
}
}设计StringToArithmetic类,实现中缀转后缀,后缀计算的功能
胡智韬负责,还没支持分数的运算(彭霖负责),半成品,能进行简单的加减乘除
PSP时间统计
PSP2.1 | Personal Software Process Stages | 预估耗时(分钟) | 实际耗时(分钟) |
---|---|---|---|
Planning | 计划 | 55 | 75 |
Estimate | 估计这个任务需要多少时间 | 3 | 5 |
Development | 开发 | 200 | 300 |
Analysis | 需求分析 (包括学习新技术) | 30 | 60 |
Coding Standard | 代码规范 (为目前的开发制定合适的规范) | 30 | 15 |
Design UML | 设计项目UML类图 | 60 | 10 |
Coding | 具体编码 | 200 | 200 |
Code Review | 代码复审 | 20 | 20 |
Test | 测试(自我测试,修改代码,提交修改) | 50 | 50 |
Size Measurement | 计算工作量(实际时间) | 10 | 10 |
Postmortem & Process Improvement Plan | 事后总结, 并提出过程改进计划 | 100 | 100 |
合计 | 758 | 845 |
以上是关于20172318 结对编程项目-四则运算 第一周 阶段总结的主要内容,如果未能解决你的问题,请参考以下文章