初步掌握单元测试和TDDhtml
理解并掌握面向对象三要素:封装、继承、多态java
初步掌握UML建模git
熟悉S.O.L.I.D原则编程
了解设计模式设计模式
完成蓝墨云上 (1)-(5)实验。数据结构
(1).完成5个实验,课上完成两个,课下完成三个。ide
public class MyUtil{ public static String percentage2fivegrade(int grade){ //若是成绩小于0,转成“错误” if ((grade < 0)) return "错误"; //若是成绩小于60,转成“不及格” else if (grade < 60) return "不及格"; //若是成绩在60与70之间,转成“及格” else if (grade < 70) return "及格"; //若是成绩在70与80之间,转成“中等” else if (grade < 80) return "中等"; //若是成绩在80与90之间,转成“良好” else if (grade < 90) return "良好"; //若是成绩在90与100之间,转成“优秀” else if (grade <= 100) return "优秀"; //若是成绩大于100,转成“错误” else return "错误"; } }
接下来就是完成实验测试,使用Junit完成上述的三个测试。实验项目一代码连接1,实验项目一代码连接2函数
(3).进行第二个实验:学习使用StringBuffer类,从API文档上查阅了StringBuffer类的一些方法,并完成相关测试,使用JUnit完成了单元测试,实验项目二代码连接,下图是实验结果:
单元测试
(4).第三个实验:在这里读错了题目,觉得是要将所列的类都要进行代码补充,后来改了回来,对本身学号%6取余结果为2,故完成了(2)Boolean类,在MyDoc中也添加了测试代码,这里经学长指正作了修改,参见问题6。修改后代码连接学习
(5).第四个实验:以TOD的方式开发复数类,并完成这些要求:
// 定义属性并生成getter,setter double RealPart; double ImagePart; // 定义构造函数 public Complex() public Complex(double R,double I) //Override Object public boolean equals(Object obj) public String toString() // 定义公有方法:加减乘除 Complex ComplexAdd(Complex a) Complex ComplexSub(Complex a) Complex ComplexMulti(Complex a) Complex ComplexDiv(Complex a)
作这个实验花的时间比较长,对复数运算还算清楚,但在编写代码时也花了力气设计出来代码,实验四代码连接1,实验四代码连接2.最后实验结果以下:
问题1:在使用Junit时切换了字符集,遇到字符集错误,也就是乱码了,致使之前的许多程序也不能再运行,具体见下图:
问题1解决方案:这里是在课上,就随即问了学长,学长也没有解决,但注意到了学长在调换字符集,后面本身就是乱尝试,当把字符集切换成US-ASCII时,终于又调了回来,后来课上老师也给出了解决方案,但好像是不太同样。
问题2:一个小错误,在使用Junit进行测试时,有三个测试,但只有两个测试显示经过,另一个始终没有反应,不显示经过或失败。
问题2解决方案:后来还上去找老师问了问,老师检查完看出了编写错误,把test写成了text,致使那个测试始终没有运行,修改以后正常。到如今还在犯拼写错误,之后本身再想老师学长问问题时必定要多检查几遍,不要出现编写错误去让别人检查。
问题3:就是关于实验项目四中的Complex编写,先是小问题,return语句始终加红线错误,不明白是错在哪里了,见下图:
public RationalNumber add(RationalNumber op2) { int commonDenominator = denominator * op2.getDenominator(); int numerator1 = numerator * op2.getDenominator(); int numerator2 = op2.getNumerator() * denominator; int sum = numerator1 + numerator2; return new RationalNumber(sum,commonDenominator); }
这时便发现了个人错误在哪,个人return语句中缺乏new运算符,加上以后,语句变为return new Complex(RealPart,ImagePart);
,这样红线消失,继续编写。
double realpart = Realpart ;
这条语句,而是直接这样的语句:RealPart = RealPart*obj.RealPart-ImagePart*obj.ImagePart; ImagePart = RealPart*obj.ImagePart+ImagePart*obj.RealPart; return new Complex(RealPart,ImagePart);
这样的错误是什么呢,就是我把作完操做、已经发生改变的RealPart代入到了下面的一条语句,而下面的语句须要的是我最初的那个RealPart,这里就发生了错误,因而就新建一个变量,让它等于最初的RealPart,而后把它用到下面的这条语句中,这时就能够保证咱们想要的结果了。
问题5:遇到的还有这个问题,就是两个结果是同样,可是那个预测结果和实际结果显示出来的包是不同的,也就是两个数据类型不一样,测试不经过。
问题5解决方案:这个在蓝墨云上进行了提问,班主任的解答是这样,可是并无给出答案,如何修改,最后是看了下别人的最后的这个类型转换,我也去查了查这个类型转换,最后是修改了这个语句assertEquals(3.0+"+5.0i",String.valueOf(a.ComplexAdd(c)));
这样就测试经过,实验完成。查到的数据类型转换,已附到参考连接中
问题6:蓝墨云实验提交后,实验三学长指出其中存在的错误,按照学号取余20172302%6 = 2,我对应的应该是Boolean类,按照需求,Boolean类应对应Boolean类型的值。
问题6解决方案:这里对学长提出的进行了改正,将数据类型改成了Boolean类型,完成修改,修改后截图:
这周的实验花了不少时间,幸亏书上的章节并非很难,那个完成的比较快,才有时间去完成这些实验,每次实验都是比较费力劳神的感受,并且这一次一下留了5个实验,感受任务量有点大,最主要的有的实验本身怎么作就是有错误,而别人那不须要调就能够直接进行,这就比较心急,越作越慌,此次实验作到后面还算好一点,但第四个实验作了很久才弄出来.
后记:后面再翻看其余同窗码云时,发现本身实验四编写的较为麻烦一些,之后要注意简化代码,同时实验三也是出现了错误,后作修改。