学号20192311 实验三 《数据结构与面向对象程序设计》实验报告

学号 20192311 《数据结构与面向对象程序设计》实验三报告
课程:《程序设计与数据结构》
班级: 1923
姓名: 张源峰
学号:20192311
实验教师:王志强
实验日期:2020年10月8日
必修/选修: 必修
1.实验内容
初步掌握单元测试和TDD
理解并掌握面向对象三要素:封装、继承、多态
初步掌握UML建模
完成蓝墨云上 (1)-(5)实验。
2. 实验过程及结果
第一个提交点
代码,测试代码,运行结果见图
第二个提交点
代码和运行结果见图
测试代码(太长截图不够2333)
import org.junit.Test;
public class StringBufferDemoTest extends
TestCase {
StringBuffer a=new
StringBuffer("StringBuffer");
StringBuffer b=new
StringBuffer("StringBufferStringBuffer");
StringBuffer c=new
StringBuffer("StringBufferStringBufferString
Buffer");
@Test
public void testcharAt() throws Exception{
assertEquals('S',a.charAt(0));
assertEquals('g',a.charAt(5));
assertEquals('r',a.charAt(11));
}
@Test
public void testcapacity() throws Exception{
assertEquals(28,a.capacity());
assertEquals(40,b.capacity());
assertEquals(52,c.capacity());
学号 20192311 《数据结构与面向对象程序设计》实验三报告 课程:《程序设计与数据结构》 班级: 1923 姓名: 张源峰 学号:20192311 实验教师:王志强 实验日期:2020年10月8日 必修/选修: 必修

1.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装、继承、多态 初步掌握UML建模 完成蓝墨云上 (1)-(5)实验。

实验过程及结果 第一个提交点 代码,测试代码,运行结果见图
第二个提交点 代码和运行结果见图 测试代码(太长截图不够2333) import org.junit.Test; public class StringBufferDemoTest extends TestCase { StringBuffer a=new StringBuffer("StringBuffer"); StringBuffer b=new StringBuffer("StringBufferStringBuffer"); StringBuffer c=new StringBuffer("StringBufferStringBufferStringBuffer"); @Test public void testcharAt() throws Exception{ assertEquals('S',a.charAt(0)); assertEquals('g',a.charAt(5)); assertEquals('r',a.charAt(11)); } @Test public void testcapacity() throws Exception{ assertEquals(28,a.capacity()); assertEquals(40,b.capacity()); assertEquals(52,c.capacity()); } @Test public void testlength() throws Exception{ assertEquals(12,a.length()); assertEquals(24,b.length()); assertEquals(36,c.length()); } @Test public void testindexOf() throws Exception{ assertEquals(0,a.indexOf("Str")); assertEquals(5,a.indexOf("gBu")); assertEquals(9,a.indexOf("fer")); } } 第三个提交点 abstract class Data { abstract public void DisplayValue(); } class Integer extends Data { int value; Integer() { value=20; } public void DisplayValue(){ System.out.println (value); } } class Double extends Data { double value; Double() { value=20; } public void DisplayValue(){ System.out.println (value); } } abstract class Factory { abstract public Data CreateDataObject(); } class IntFactory extends Factory { public Data CreateDataObject(){ return new Integer(); } } class DoubletFactory extends Factory { public Data CreateDataObject(){ return new Double(); } } class Document { Data pd; Document(Factory pf){ pd = pf.CreateDataObject(); } public void DisplayData(){ pd.DisplayValue(); } } 测试代码和运行结果见图

第四个提交点 代码和运行结果见图 测试代码 import junit.framework.TestCase; import org.junit.Test; import static junit.framework.TestCase.assertEquals; public class ComplexTest extends TestCase { Complex c1 = new Complex(0, 3); Complex c2 = new Complex(-1, -1); Complex c3 = new Complex(2,1); @Test public void testgetRealPart() throws Exception { assertEquals(-2.0, Complex.getRealPart(-2.0)); assertEquals(3.0, Complex.getRealPart(3.0)); assertEquals(0.0, Complex.getRealPart(0.0)); } @Test public void testgetImagePart() throws Exception { assertEquals(-3.0, Complex.getImagePart(-3.0)); assertEquals(5.0, Complex.getImagePart(5.0)); assertEquals(0.0, Complex.getImagePart(0.0)); } @Test public void testComplexAdd() throws Exception { assertEquals("-1.0+2.0i", c1.ComplexAdd(c2).toString()); assertEquals("2.0+4.0i", c1.ComplexAdd(c3).toString()); assertEquals("1.0", c2.ComplexAdd(c3).toString()); } @Test public void testComplexSub() throws Exception { assertEquals("1.0+4.0i", c1.ComplexSub(c2).toString()); assertEquals("-2.0+2.0i", c1.ComplexSub(c3).toString()); assertEquals("-3.0 -2.0i", c2.ComplexSub(c3).toString()); } @Test public void testComplexMulti() throws Exception { assertEquals("3.0 -3.0i", c1.ComplexMulti(c2).toString()); assertEquals("-3.0+6.0i", c1.ComplexMulti(c3).toString()); assertEquals("-1.0 -3.0i", c2.ComplexMulti(c3).toString()); } @Test public void testComplexComplexDiv() throws Exception { assertEquals("-1.5 -1.5i", c1.ComplexDiv(c2).toString()); assertEquals("1.2+0.6i", c1.ComplexDiv(c3).toString()); assertEquals("-0.6 -0.6i", c2.ComplexDiv(c3).toString()); } } 最后一个提交点见图

实验过程中遇到的问题和解决过程 问题一:第一个提交点照着教程敲出了一模一样的代码没有通过 解决方法:发现教程的代码缺少负数的判定,补上解决
问题二:第二个提交点测试部分失败 解决方法:发现第一个测试测试字符位置时将单引号打成双引号

其他(感悟、思考等)

参考资料 《Java程序设计与数据结构教程(第二版)》

《Java程序设计与数据结构教程(第二版)》学习指

posted @ 2020-10-13 14:25  20192311张源峰  阅读(98)  评论(1编辑  收藏  举报