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


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

    • 课程:《程序设计与数据结构》
    • 班级: 1723
    • 姓名: 范雯琪
    • 学号:20172303
    • 实验教师:王志强
    • 助教:张旭升/刘伟康
    • 实验日期:2018年4月17日
    • 必修/选修: 必修

    1.实验内容

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

    2.实验过程及结果

    过程:

    • 本次实验老师一共设置了5个提交节点分别是:
    节点一
    • 参考IDEA 简易教程完成单元测试的学习
    • 提交最后三个JUnit测试用例(正常情况,错误情况,边界情况)都通过的截图,截图上要有画图加水印,输入自己的学号
    • 本提交点考查JUnit会不会使用,测试用例至少要包含正常情况,错误情况,边界情况的测试
    节点二
    节点三
    • 参考实验二 Java面向对象程序设计
      对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
    • 用自己的学号%6进行取余运算,根据结果进行代码扩充:
      • 0:让系统支持Byte类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
      • 1:让系统支持Short类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
      • 2:让系统支持Boolean类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
      • 3:让系统支持Long类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
      • 4:让系统支持Float类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
      • 5:让系统支持Double类,并在MyDoc类中添加测试代码表明添加正确,提交测试代码和运行结的截图,加上学号水印
    节点四
    • 提交:单元测试代码和运行成功截图及码云上代码链接,截图要加上学号水印
    • 任务:以TDD的方式开发一个复数类Complex,要求如下:
    // 定义属性并生成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)
    
    节点五
    • 使用StarUML对实验二中的代码进行建模,发类图的截图,加上学号水印
    • 类图中至少两个类
    • 类,继承,接口实现,组合在UML中表达

    结果:

    节点一

    节点二



    节点三



    节点四

    码云链接

    节点五

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

    • 问题1:做实验二时,所写的容量显示错误

    • 问题1解决方案:通过测试显示结果修改了容量,但不清楚为什么要这么改。询问张旭升学长后知道了是根据输入的字符数量规定好的。
    • 问题2:UML类图的使用
    • 问题2解决方案:当时做的时候特别匆忙做的特别特别烂...我都不好意思拿节点五的分了。后来又重新写了一遍:为了巩固依照PP9.3的程序写了它的UML类图。
      旧图:

      新图:

      PP9.3:

    其他(感悟、思考等)

    感悟

    • 本周的实验其实很简单,只要照着博客一步一步踏实地做下去就好,但做完发现自己学会了很多东西。首先使用JUnit真的能节省很多时间,然后学会使用UML类图让自己对每个程度的整体结构有了一个非常明晰的认识。

    参考资料

  • 相关阅读:
    tkinter中entry输入控件(四)
    tkinter中button按钮控件(三)
    tkinter中lable标签控件(二)
    tkinter简介(一)
    selenium中的xpath定位
    python实现邮件的发送
    python发送手机动态验证码
    selenium提供的截图功能
    selenium中浏览器及对应的驱动(可下载)
    PHP实现微信提现功能
  • 原文地址:https://www.cnblogs.com/PFrame/p/8934116.html
Copyright © 2020-2023  润新知