结对编程-四则运算(挑战出题)
学号 20162327 《程序设计与数据结构》四则运算(挑战出题)
1.需求分析
- 1.每次生成的题目不能有重复
- 2.要能指定生成题目的数量
- 3.要能指定题目包含的运算符数量
- 4.通过命令行参数形式指定题目要求
2.设计思路
- 我们的想法是是在运算符较少的情况下,去除答案相同的题目,在运算符较多的情况下,直接去掉相同的题目。应该还有比这个更好的方法,就是一个数字一个符号的比对,但是能看 到结果但是想不到过程,也是受困于能力吧。
3.实现过程中的关键代码解释
- 完善了上周的代码
public class Achv {
public static void main(String[] args) {
LevelTwo two = new LevelTwo();
LevelOne one = new LevelOne();
LevelThree three = new LevelThree();
Postfix b = new Postfix();
String another = "Y";
Scanner scan = new Scanner(System.in);
while (another.equalsIgnoreCase("Y")){
System.out.println("Which level do you need?");
System.out.println("We have 1 , 2 , 3");
int level = scan.nextInt();
if (level==1||level==2||level==3){
if (level==1){
one.project();
System.out.println("True:"+one.count);
System.out.println("Do you want to try again?(Y/N)");
another = scan.nextLine();
another = scan.nextLine();
}
if (level==2){
two.project();
System.out.println("True:"+two.count);
System.out.println("Do you want to try again?(Y/N)");
another = scan.nextLine();
another = scan.nextLine();
}
if (level==3){
three.Level();
System.out.println("True:"+three.count);
System.out.println("Do you want to try again?(Y/N)");
another = scan.nextLine();
another = scan.nextLine();
}
}
else {
System.out.println("Wrong message");
System.out.println("Do you want to try again?(Y/N)");
another = scan.nextLine();
another = scan.nextLine();
}
}
}
}
- 这是随机生成题目的类
public String project(int b){
Postfix a = new Postfix();
LevelOne one = new LevelOne();
LevelTwo two =new LevelTwo();
if (b==1){
return one.OpOne();
}
if (b==2){
return one.OpTwo();
}
if (b==3){
return two.Pro();
}
if (b==4){
return Four();
}
if (b==5){
return Five();
}
if (b==6){
return six();
}
else
return sevn();
}
4.运行过程截图
5.代码托管地址(参考此链接)
6.遇到的困难及解决方法-配置JDK环境变量
-
1.在下载好JDK的基础上,右击“计算机”选择“属性”,然后选择左边“高级系统设置”选择上面“高级”选项卡,点击右下角“环境变量”按钮。
-
2.首先在下面的系统变量栏目点击新建,变量名填写JAVA_HOME,变量值填写JDK的安装路径,在这里就填写自己的JDK安装路径,刚才上面的截图显示我的是“C:\Program Files\Java\jdk1.6.0_39”。
-
3.在系统变量里点击新建变量名填写CLASSPATH,变量值填写 .;%JAVA_HOME%\lib;%JAVA_HOME%\lib\tools.jar 注意不要忘记前面的点和中间的分号。系统变量配置完毕
-
4.检验是否配置成功 运行cmd 输入 java -version (java 和 -version 之间有空格)
若如图所示 显示版本信息 则说明安装和配置成功。
7.对结对的小伙伴做出评价
- 我的编程伙伴王彪真的很强,有好多地方我似乎都帮不上忙。我只能在一些基础的代码部分做文章,关键代码还是要靠他的帮忙讲解才能够明白。经过这几天的谦虚求教,我真是进步 了不少,伙伴的唠叨和嫌弃也算没有白挨。有这么出色的一个结对伙伴在,我倍感荣幸,我会继续向他学习的。
8.为自己的伙伴打分
- 为结对伙伴王彪打分:70分
- 依据:完成测试
- 我:30分
9.总结
- 经过三周关于四则运算的研究,终于是研究出了点东西。从一开始的懵懂、无助到现在的小有成就,我们经历了一个痛苦又奇妙的过程。我和我的小伙伴一开始是分离的,互不干涉的,但是经过几次有限的合作,我们突然发现灵感是可以的交流的。当然,我就是那个接受灵感的人,因为我的伙伴王彪太强了,我愚蠢的思路完全会被他的想法所遮盖,王彪得设计总是完善而细致,这对于一个计算机方面的新手来说实在是厉害。我也是幸运的,本来对计算机就不怎么感冒,甚至没有兴趣,但自从有了结对编程后,搭档对我的影响是巨大的,在他的引导下,我开始研究不会的代码,也开始向他请教,自己犯懒的毛病也得到了极大的克制自己的水平也不知不觉有了很大的提高。在这里,我要感谢搭档王彪给予我这么多,也希望我们的合作能更加的成熟,共同进步!
PSP
- PSP2.1 | Personal Software Process Stages | 预估耗时(小时) | 实际耗时(小时) |
---|---|---|---|
Planning | 计划 | 50 | 57 |
· Estimate | · 估计这个任务需要多少时间 | 50 | 57 |
· Analysis | · 需求分析 (包括学习新技术) | 5 | 5 |
· Design Spec | · 生成设计文档 | 2 | 2 |
· Design Review | · 设计复审 (和同事审核设计文档) | 4 | 4 |
· Coding Standard | · 代码规范 (为目前的开发制定合适的规范) | 3 | 3 |
· Design | · 具体设计 | 20 | 25 |
· Coding | · 具体编码 | 2 | 2 |
· Code Review | · 代码复审 | 4 | 6 |
· Test | · 测试(自我测试,修改代码,提交修改) | 2 | 2 |
·Reporting | ·报告 | 2 | 2 |
· Test Report | · 测试报告 | ||
· Size Measurement | · 计算工作量 | 1 | 1 |
· Postmortem & Process Improvement Plan | · 事后总结, 并提出过程改进计划 | 2 | 2 |