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

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

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

1.实验内容

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

2. 实验过程及结果

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

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

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

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

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

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

  • 问题1:在做前两个实验的时候,最大的阻挠是在TDD测试的时候,弹出来一个红色框框,如图:
    1320922-20180424204533271-1705232403.png
    然后手贱点开了,后来导致所有的程序中有汉字的都不能运行,出现了乱码。

  • 问题1解决过程:这个问题的出现完全是个意外。后来问了学长,老师,没解决。学长让我重新建个项目,然后我就发现了问题所在,就是如图所示:
    1320922-20180424210248521-2143257515.png
    后来老师也找到了原因(。。。我是蒙的),字符集选错了。。

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

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

  • 问题3:还有一个很神奇的现象,如图:
    1320922-20180424213303906-899669161.png

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

  • 问题4:在编写Complex类的时候,出现了如图错误:
    1320922-20180424225410368-144916260.png
    可以考到assertEquals,自动被画上了横线,很显然是括号里的内容写错了

  • 问题4解决方案:一开始在编写类的时候,是考虑到写两个方法,分别得到数的实部和虚部,然后分别计算,再通过toString把结果加上“i”,但存在一个问题就是,因为toString把最后得到的结果变成了字符串类型,致使assertEquals的时候,不能正确测试。后来换了一种思路,代码如图:
    1320922-20180424225912264-494948178.png
    直接调用写好的add方法,将两个数进行计算,但由于对象a和b都是Complex类声明的,所以需要用String.valueOf把他们的结果变成String类,再把预测结果写成String类,就可以通过测试了。

参考资料

转载于:https://www.cnblogs.com/zhouyajie/p/8921515.html

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实验Java 语言基础 1 一. 实验目的 1 二.实验内容 1 三.源程序代码 1 四.实验结果截图 6 五.结果分析 7 实验面向对象程序设计 8 一.实验目的 8 二.实验内容 8 三.源程序代码 8 四.实验结果截图 12 五.结果分析 13 实验三、异常处理程序设计 14 一.实验目的 14 二.实验内容 14 三.源程序代码 14 四.实验结果 17 五.结果分析 18 实验四 图形用户界面程序设计 19 一.实验目的 19 二.实验内容: 19 三.源程序代码(核心代码) 19 四.程序设计思路 23 五.实验结果及分析 23 六.不足之处 26 实验五 多线程程序设计 27 一.实验目的 27 二.实验内容 27 三.源程序代码 27 四.实验结果截图 29 五.结果分析 30 实验六 输入输出流 31 一.实验目的 31 二.实验内容: 31 三.源程序代码 31 四.实验结果截图 36 五.结果分析 37 实验七 使用 TCP 协议的 Socket 网络程序设计 38 一.实验目的 38 二.实验内容 38 三.核心源代码 39 四.实验结果截图 43 五.结果分析 45 实验八 数据库应用 46 一.实验目的 46 二.实验内容 46 三.源程序代码 46 四.实验结果截图 48 五.结果分析 48 附录一:学生信息管理(针对实验四文件操作的改进) 49 一. 目前界面 49 二. 改进展示 50 三. 部分代码 53 四. 总结 54 附录二:多对多聊天室(实验七扩展) 55 一. 思路 55 二. 核心代码 55 三. 截屏展示 58 四. 实验分析 60

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值