zoukankan      html  css  js  c++  java
  • 20172314 2017-2018-2 《程序设计与数据结构》实验报告二

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

    课程:《程序设计与数据结构》

    班级: 1723

    姓名: 方艺雯

    学号:20172314

    实验教师:王志强

    实验日期:2018年4月18日

    必修/选修: 必修

    1、实验内容

    1. 初步掌握单元测试和TDD

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

    3. 初步掌握UML建模

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

    5. 了解设计模式

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

    2、实验要求

    1.没有Linux基础的同学建议先学习《Linux基础入门(新版)》《Vim编辑器》 课程

    2.完成实验、撰写实验报告,实验报告以博客方式发表在博客园,注意实验报告重点是运行结果,遇到的问题(工具查找,安装,使用,程序的编辑,调试,运行等)、解决办法(空洞的方法如“查网络”、“问同学”、“看书”等一律得0分)以及分析(从中可以得到什么启示,有什么收获,教训等)。报告可以参考范飞龙老师的指导

    3、 严禁抄袭,有该行为者实验成绩归零,并附加其他惩罚措施。

    3、实验过程及结果

    • 准备:
      • 下载WhiteStarUML
      • IDEA中安装使用Junit的插件。

    实验一、二

    • 课上完成前两个实验,知道了伪代码、产品代码和测试代码;TDD。伪代码与具体的编程语言无关,用来表明自己的编程思路。产品代码用Java语言编写,测试代码用来证明自己的代码是正确的。此外,程序员对类实现的测试叫单元测试。TDD是指先写测试代码,再写产品代码,测试驱动开发,防止无用代码的产生。
    • 测试成功截图:

    实验三

    • 对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式
      用自己的学号%6进行取余运算,根据结果进行代码扩充,我的学号取余为2,顾为Boolean型。OCP的内容是类函数等应该对扩充开放,对修改封闭。
    • 这个实验仿照Integer增添了boolean的;并仿照IntFactory增添了BooleanFactory。
    • 测试成功截图:

    实验四

    • 以TDD的方式开发一个复数类Complex,要求如下: 定义属性并生成getter,setter ;double RealPart; double ImagePart;要求为:
      // 定义属性:复数有实部和虚部
      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)除法
          public String toString()返回这个复数
      
    • 按照所给要求,将其完善,测试成功截图:

    实验五

    • 使用WhiteStarUML对实验二中的代码进行建模。
    • UML图简介:AnimalTest类依赖Dog类和Cat类,两者有公有方法color,shout。Document抽象类为父类,MyDoc类和Data类继承父类,父类依赖Factory类实现整型和布尔型。
    • 完成结果如图:

    4、实验中遇到的问题和解决过程

    • 问题一:课上在做实验一的时候,明明代码是对的,可是结果总是出错,显示一串“不可映射字符”。

    • 问题一解决:在询问了王老师之后,他说是汉化包的问题,有汉语出现时容易出错,没有解决办法,所以我就把汉语全部更改成英文,就解决了。之后,王老师给出了解决办法,就是在IDEA右下角显示UTF-8的地方换成GBK就可以了。

    • 问题二:在安装插件Junit时,根据博客教程,但显示错误

    • 问题二解决:使用另一种方法,选择图中的Manage repositories 处,由于当时大部分人都出错,当时根据王老师的讲解做好了。

    • 问题三:在实验二中,StringBufferDemo里的代码中有个“assertequals”,不知道是什么意思。

    • 问题三解决:在查找相关资料后得知,他的意思是‘’assertEquals([String message],expected,actual)如果预期值与真实值相等,则运行success,反之Failure。提示预期值是xxx,而实际值是xxx。容易调式。 参考

    5、其他

    感觉这次的任务要学习的很多,按照博客一步一步来是可以完成,但是并不代表我已经全部掌握,如果全部自己做在限定时间内有点难以实现。

    6、参考资料

  • 相关阅读:
    USACO 2017 US Open Contest Gold T1: Bovine Genomics
    自己瞎调的一些曲子
    NOIP前要干的一些事
    【[BJOI2018]链上二次求和】
    【MdOI2020】Path
    【[SDOI2018]旧试题】
    [IOI2018]werewolf狼人
    洛谷p5444 [APIO2019]奇怪装置
    洛谷p4211 [LNOI2014] LCA
    洛谷P2805 [NOI2009] 植物大战僵尸
  • 原文地址:https://www.cnblogs.com/YiYiYi/p/8934246.html
Copyright © 2011-2022 走看看