zoukankan      html  css  js  c++  java
  • 20172304 实验二 《Java面向对象程序设计》 实验报告

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

    • 课程名称:《程序设计与数据结构》
    • 学生班级:1723班
    • 学生姓名:段志轩
    • 学生学号:20172304
    • 实验时间:2018年4月18日
    • 实验名称:《Java面向对象程序设计》
    • 指导老师:王志强老师

    代码链接

    实验内容

    • 初步掌握单元测试和TDD

    • 理解并掌握面向对象三要素:封装、继承、多态

    • 初步掌握UML建模

    • 熟悉S.O.L.I.D原则

    • 了解设计模式

    • 完成蓝墨云上 (1)-(5)实验。

    实验要求

    • 完成实验二《Java面向对象程序设计》中的内容。
    • 其中Eclipse相关的内容参考Intellj IDEA 简易教程换成IDEA实现。

    实验考核规则

    • 每次实验考核3分

    • 不按要求提交实验过程截图会扣一分(本周五次,只要有一个不合格就会扣分)

    • 实验报告认真写的会加1分(主要是遇到的问题和解决过程)

    实验流程

    软件准备:

    • IEDA
    • starUML

    实验内容:

    • 初步掌握单元测试和TDD

    • 理解并掌握面向对象三要素:封装、继承、多态

    • 初步掌握UML建模

    • 熟悉S.O.L.I.D原则

    • 了解设计模式

    实验具体内容

    • 实验一:创建Myunit类,并对Myunit类进行测试实现边界检查。
    • 实验二:学习StringBuffer类并进行测试。、
    • 实验三:让系统支持long型,并添加测试代码。
    • 实验四:设计Complex类(复数类),使其支持加减乘除。还有getter,setter,还有toString方法。
    • 实验五:实现实验二中的代码,使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印。

    实验分析

     实验主要是让我们熟悉TDD和单元测试。
    

    TDD:

    • 明确当前要完成的功能,记录成一个测试列表
    • 快速完成编写针对此功能的测试用例
    • 测试代码编译不通过(没产品代码呢)
    • 编写产品代码
    • 测试通过
    • 对代码进行重构,并保证测试通过(重构下次实验练习)
    • 循环完成所有功能的开发
      S.O.L.I.D;
    • SRP(Single Responsibility Principle,单一职责原则)
    • OCP(Open-Closed Principle,开放-封闭原则)
    • LSP(Liskov Substitusion Principle,Liskov替换原则)
    • ISP(Interface Segregation Principle,接口分离原则)
    • DIP(Dependency Inversion Principle,依赖倒置原则)
      实验一:根据例子给出的Myutil类进行测试。根据TDD原则,先编出测试代码,然后添加方法。根据例子来看应该对不同等级进行测试然后还要进行边界检查。
      实验二:实验二主要是对StringBuffer类进行学习,并测试其中的方法,由于这个类是java中已有的类,所以重点进行测试,通过一些数据的比较得到。
      实验三:由于例子已经给出,只要使系统支持自己学号对6取余后的数字对应的类型就可以了。
      实验四:这个类是自己编写的。我设计了实部与虚部的getter和setter,加减乘除都是小意思。
      实验五:这个实验需要写出类图。只要说明类图中的方法和属性就可了。

    实验结果##

    实验一

    实验二

    实验三

    实验四




    实验五

    实验中遇到的问题

    • 问题:由于老师给的资料很详细,所以本次实验并没有出太大的问题,只是在进行实验四的时候,使用assertEquals比较两个double型数据的时候出现了错误。
    • 问题解决方案:后来请教了张旭升学长,在他的提示下,将double型的比较改成了String类型的比较。

    其他

    经过本次实验,我体会到了就算是基础知识掌握了,也不一定能够搞好编程,有时候编程需要的不仅仅是知识,还有一些灵感,总之编程也需要变通,并不是一成不变的。
    

    参考资料

  • 相关阅读:
    [JZOJ 5788] 餐馆
    [JZOJ 5778] 没有硝烟的战争
    problems_scala
    好迷茫,好迷茫啊
    公布下我的数据库操作层
    关于数据库大并发量(未完成)
    关于http协议头
    管理心得体会
    数据库表分区
    公共的Json操作类
  • 原文地址:https://www.cnblogs.com/15248252144dzx/p/8920934.html
Copyright © 2011-2022 走看看