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

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

    课程:《程序设计与数据结构》
    班级: 1723
    姓名: 吴恒佚
    学号:20172321
    实验教师:王志强老师
    实验日期:2018年4月21日
    必修/选修: 必修

    1.实验内容

    • 初步掌握单元测试和TDD

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

    • 初步掌握UML建模

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

    • 了解设计模式

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

    2. 实验过程及结果

    • 过程
      • 1)第一个提交点和第二个提交点内容接近,先IDEA中使用JUnit要安装插件,然后主要考查了JUnit会不会使用(对测试用例的正常情况、错误情况、边界情况进行测试)和测试自己会不会写JUnit测试用例。
      • 2)对设计模式示例进行扩充,体会OCP原则和DIP原则的应用,初步理解设计模式。通过用自己的学号%6进行取余运算,根据结果进行代码扩充。
      • 3)按要求以TDD的方式开发一个复数类Complex(用JUnit进行测试)
      • 4)使用StarUML对实验二中的代码进行建模,类,继承,接口实现,组合在UML中表达。(需要下载StarUML软件)
    • 结果
      • 1)前两个提交点是在课堂上完成的,下载安装 JunitGenerator V2.0 和使用步骤都有老师和助教提示帮助,对JUtil的使用学习得比较容易,实验也比较顺利完成。
      • 2)完成第三个提交点的时候因为审题有误,虽然是成功了,但是做了许多多余的操作。
      • 3)在开发一个复数类Complex的时候,因为已经不熟悉复数的运算公式了,所以在编写运算时多有错漏,最后都一一订正并测试成功了。
      • 4)用StarUML建模算是最容易的一个了,StarUML在群文件里可以找到,然后按照示例图进行操作就完成了。

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

    • 问题1:前两个提交点因为有学长的数次指导,所以遇到的一些不懂怎么操作的问题都很快解决了,只是最后在JUtil用测试MyUtil的时候直接把示意图上的代码照抄了过去,结果有很多错误。

    • 问题1解决方案:当时因为是第一次使用JUtil,不是很清楚错误情况,自己从头把MyUtilTest仔细研究了一遍之后,找出了几个错误并修改了一些数据和字符串,解决起来其实也不是很难。

    • 问题2:解决第三个提交点的时候读题不仔细,原本是 用自己的学号%6进行取余运算,根据结果进行代码扩充: ,但是我当时把六种都做了,然后把输出的数字改成了学号的余数。

    • 问题2解决方案:这个我反应过来的时候已经完成,所以为了得到包含每个关键部分的代码截图,截取了好几张,而且图片包含的内容比较杂乱。

    • 问题3:开发一个复数类Complex的时候不熟悉复数的运算公式,又不想再设置更多的变量,就把一整个运算放在一个式子里,就导致了许多错误。

    • 问题3解决方案:不断的代入测试数据和笔算结果比较,检查式子是否有错误。

    4.其他(感悟、思考等)

    • 前面几个实验几乎都是完全按照博客指示做的,可以说时知其然而不知其所以然,但是实验四有了自己更多的思考,才算是理解了单元测试和TDD。
    • TDD的使用可以检查并大量减少自己所编程序中的错误,特别是边界错误这种自己难以发现的错误。
    • 在编程前画出UML图可以让我们在编程时思路清晰,在做编程项目之前有UML图可以免去在编程中思路不清晰导致的错误。

    5.参考资料

  • 相关阅读:
    javascript中Function、ArrowFunction和GeneratorFunction介绍
    javascript中Function、ArrowFunction和GeneratorFunction介绍
    26个ASP.NET常用性能优化方法
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    xgqfrms™, xgqfrms® : xgqfrms's offical website of GitHub!
    什么是去中心化市场(OpenBazaar)
    去中心化共识
    侧链/楔入式侧链
    零知识证明(Zero Knowledge Proof,ZKP)
  • 原文地址:https://www.cnblogs.com/N-idhogg/p/8920760.html
Copyright © 2011-2022 走看看