20172308 2017-2018-2 《程序设计与数据结构》实验2报告

课程:《程序设计与数据结构》
班级: 1723
姓名: 周亚杰
学号:20172308
实验教师:王志强
实验日期:2018年4月17日
必修/选修: 必修

1.实验内容

  • 初步掌握单元测试和TDD
  • 理解并掌握面向对象三要素:封装、继承、多态
  • 初步掌握UML建模
  • 熟悉S.O.L.I.D原则
  • 了解设计模式
  • 完成蓝墨云上 (1)-(5)实验。

2. 实验过程及结果

  • 实验1:认识编程中三种码:伪代码、产品代码、测试代码;对编写的类进行测试,这个实验实验中我们共完成了三种测试:测试正常、测试异常、测试边界
    实验结果:

    实验1代码链接

  • 实验2:以 TDD的方式研究学习StringBuffer:学习使用StringBuffer类,用API查阅StringBuffer类方法,并测试(
    实验2代码链接
    实验结果:

  • 实验3:对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式,用自己的学号%6进行取余,让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确:(实验3代码链接
    实验结果:

  • 实验4:以TDD的方式开发一个复数类Complex:主要难点体现在复数类的编写上(实验4代码链接
    实验结果:

  • 实验5:用UML代码进行建模:主要难点体现在画图软件的使用上,不太好上手。通过百度和多次尝试,画图如图:

3. 实验过程中遇到的问题和解决过程

  • 问题1:在做前两个实验的时候,最大的阻挠是在TDD测试的时候,弹出来一个红色框框,如图:

    然后手贱点开了,后来导致所有的程序中有汉字的都不能运行,出现了乱码。

  • 问题1解决过程:这个问题的出现完全是个意外。后来问了学长,老师,没解决。学长让我重新建个项目,然后我就发现了问题所在,就是如图所示:

    后来老师也找到了原因(。。。我是蒙的),字符集选错了。。

  • 问题2:在TDD测试的时候,发现import一个类之后,其中的方法还是不能用,如图:

  • 问题2解决方案:很明显是我的import写错了,应该是直接写包名及其下的类,即import experiment.MyUtil;。这是个很小的问题,但问题是以往所写的要不就是把类都放在一个包下面不用import的,要不就是在包名前面写了Java的,然后自动认为import的时候都得写java,如果不是用的IDEA可以直接生成声明,在Linux里写的话,我可能会疯掉。

  • 问题3:还有一个很神奇的现象,如图:

  • 问题3解决方案:当然一眼就能看出来我把package的名字写错了,没有具体写到程序所在的文件夹名,于是就出现了上面的情况:自动又给我生成了一个test文件夹,然后把我的代码程序放在了TTD测试代码下面了。这个问题虽然是一个简单的错误产生的,但是如果直接看到这种情况的话,我可能一下子想不到解决方法,所以在这里记录一下。修正后的代码如图:

  • 问题4:在编写Complex类的时候,出现了如图错误:

    可以考到assertEquals,自动被画上了横线,很显然是括号里的内容写错了

  • 问题4解决方案:一开始在编写类的时候,是考虑到写两个方法,分别得到数的实部和虚部,然后分别计算,再通过toString把结果加上“i”,但存在一个问题就是,因为toString把最后得到的结果变成了字符串类型,致使assertEquals的时候,不能正确测试。后来换了一种思路,代码如图:

    直接调用写好的add方法,将两个数进行计算,但由于对象a和b都是Complex类声明的,所以需要用String.valueOf把他们的结果变成String类,再把预测结果写成String类,就可以通过测试了。

参考资料

20172308 实验二《Java面向对象程序设计 》实验报告的更多相关文章

  1. 20145213《Java程序设计》实验二Java面向对象程序设计实验报告

    20145213<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装,继承,多态 初步掌握UML建模 熟悉S.O. ...

  2. 20145206《Java程序设计》实验二Java面向对象程序设计实验报告

    20145206<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  3. 20145308刘昊阳 《Java程序设计》实验二 Java面向对象程序设计 实验报告

    20145308刘昊阳 <Java程序设计>实验二 Java面向对象程序设计 实验报告 实验名称 Java面向对象程序设计 实验内容 初步掌握单元测试和TDD 理解并掌握面相对象三要素:封 ...

  4. 实验二Java面向对象程序设计实验报告(2)

    实验二 Java面向对象程序设计 实验概述: 课程:程序设计与数据结构 班级:1623班 姓名: 邢天岳 学号:2309 指导老师:娄老师 王老师 实验日期:2017.4.16 实验名称: Java面 ...

  5. 实验二 Java面向对象程序设计实验报告

    实验二 Java面向对象程序设计 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D原则 5.了解设计模式 实验 ...

  6. 20145326《Java程序设计》实验二Java面向对象程序设计实验报告

    20145326<Java程序设计>实验二Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O. ...

  7. 20155217 实验二 Java面向对象程序设计 实验报告

    20155217 实验二 Java面向对象程序设计 实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模 ...

  8. 20145219 《Java程序设计》实验二 Java面向对象程序设计实验报告

    20145219 <Java程序设计>实验二 Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S. ...

  9. 20162305 实验二 Java面向对象程序设计 实验报告

    20162305 实验二 Java面向对象程序设计 实验报告 实验内容 1.初步掌握单元测试和TDD 2.理解并掌握面向对象三要素:封装.继承.多态 3.初步掌握UML建模 4.熟悉S.O.L.I.D ...

  10. 20145239杜文超 《Java程序设计》实验二 Java面向对象程序设计实验报告

    20145239 <Java程序设计>实验二 Java面向对象程序设计实验报告 实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S. ...

随机推荐

  1. 原生JavaScript技巧大收集

    原生JavaScript技巧大收集 地址:http://itindex.net/detail/47244-javascript

  2. ASP.NET Core 如何实现404错误跳转到主页

    假如用户在Web浏览器上敲错了URL,访问了ASP.NET Core站点下一个不存在的URL地址,那么默认情况下ASP.NET Core会返回给浏览器著名的404错误,那么有什么办法可以让ASP.NE ...

  3. 洛谷P4245 【模板】MTT(任意模数NTT)

    题目背景 模板题,无背景 题目描述 给定 22 个多项式 F(x), G(x)F(x),G(x) ,请求出 F(x) * G(x)F(x)∗G(x) . 系数对 pp 取模,且不保证 pp 可以分解成 ...

  4. maven第一天——入门与基本概念

    一.什么是maven? 1.概述 核心点:项目构建.依赖管理.[更新]:源码关联 (如何关联源码:在依赖的jar上右击 maven download source即可) Maven是一个项目管理和综合 ...

  5. 2017-2018-1 20155207&20155308《信息安全技术》实验四-木马及远程控制技术

    2017-2018-1 20155207&20155308<信息安全技术>实验四-木马及远程控制技术 实验目的 剖析网页木马的工作原理 理解木马的植入过程 学会编写简单的网页木马脚 ...

  6. 2017-2018-2 20155327『网络对抗技术』Exp5:MSF基础应用

    2017-2018-2 20155327『网络对抗技术』Exp5:MSF基础应用 基础问题回答 用自己的话解释什么是exploit,payload,encode exploit:使用者利用漏洞进行攻击 ...

  7. 前端- jquery- 总结

    1.jquery与js的区别 (1)javascript的缺点 书写繁琐,代码量大 代码复杂 动画效果,很难实现.使用定时器 各种操作和处理 (2) JavaScript和jquery的定义 Java ...

  8. Oracle GUID转换为String

    Oracle中guid属于Raw(16)类型, 查询的时候如果不使用下面的函数, 程序中得到的是数组(byte[]). 在extjs环境下, 会带来数组的反序列化问题(newtonsoft.json) ...

  9. 洛咕 P3321 [SDOI2015]序列统计

    显然dp就是设\(f[i][j]\)表示dp了i轮,对m取膜是j的方案数 \(f[i][xy\mod m]=f[i-1][x]\times f[i-1][y]\) 这是\(O(nm^2)\)的 像我这 ...

  10. 【Java多线程】Executor框架的详解

    在Java中,使用线程来异步执行任务.Java线程的创建与销毁需要一定的开销,如果我们为每一个任务创建一个新线程来执行,这些线程的创建与销毁将消耗大量的计算资源.同时,为每一个任务创建一个新线程来执行 ...