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

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

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

班级: 1723

姓名: 蒋子行

学号: 20172317

实验教师: 王志强

实验日期: 2018年4月22日

必修/选修: 必修

实验内容Experiment content

  1. Master the basic of unit testing and TDD(Test-driven development)
  2. Understand and master 3 vital elements of object-oriented programming:encapsulation, inheritence, polymorphism
  3. Learn the basis of UML modeling
  4. Acquainted with SOLID principles(SRP, OCP, LSP, ISP, DIP)
  5. Acknowlegde the design pattern
  6. Complete experiment 1-5 from mosoteach

Procedure and the results of the experiments

Experiment 1

实验2 Experiment 2

  • Refer to "积极主动敲代码,使用JUnit学习Java (http://www.cnblogs.com/rocedu/p/4837092.html)" to further study StringBuffer with TDD method
  • Submit your unit test example and the test passed screenshot
  • Screenshot of the result:

Experiment 3

  • Refer to "实验二 Java面向对象程序设计" to expand the exmaples of "design pattern". Experience the application of OCP principle and DIP principle.Understand the "design pattern" preliminarily.
  • Use your student ID to do a remainder calculation, expand the code according to different results:
  • Screenshots of the result(there was some flaws in the original screenshot, the screenshots here are the original screenshot with error and the screenshot of correct output)

    As you can see in the first screenshot, class Double is supposed to print a float, however an integer replaced it.This is because variable value is set to be an int rather than a double

Experiment 4

  • Develop a complex number class Complex in TDD method
  • Screenshot of the result:

Experiment 5

  • Model the code of this whole experiment with StarUML
  • There should be at least 2 classes in the illustration
  • Screenshot of the result:

Problems encountered while experimenting and solutions

  • Problem 1:JUnit? Unit testing? Test-driven development?
  • Solutions of problem 1:Yep, this is it, another bullshit experiment, this is really crazy.This time there are thousands of new concepts and things like that, so I have to find informations about these new things.

    Now the first one is JUnit. At first I thought it might be some kind of third party plugin. Well, actually it is ok to say so, but it is a unit testing framework for Java. According to the internet, JUnit plays an important role in the development of test-driven development. By utilizing JUnit, we can write test code, which can greatly improve our coding efficiency.(Though I don‘t really think so)

    Well.....so, unit testing? The heck is that?According to the internet: "in computer programming, unit testing is a software testing method by which individual units of source code, sets of one or more computer program modules together with associated control data, usage procedures, and operating procedures, are tested to determine whether they are fit for use." Lets explain this in a intuitive way: imagine a factory that assembles tv, each time before a tv is made, it‘s component would be tested, and that process of testing is the so-called "unit-testing".

    Annnd, "test-driven development", which is also known as TDD, is our next object. Test-driven development (TDD) is a software development process that relies on the repetition of a very short development cycle: requirements are turned into very specific test cases, then the software is improved to pass the new tests, only. This is opposed to software development that allows software to be added that is not proven to meet requirements.

  • Problem 2:SOLID?
  • Solutions of problem 2:SOLID is an acronym for five design principles.The five principles are:SRP(single responsibility principle), OCP(open/closed principle), LSP(Liskov substitution principle), ISP(interface segregation principle), DIP(dependency inversion principle).

Other

As if life isn‘t suck already, we have to complete all these nonsense in IDEA? NO, it could be worse, that could be worse.

I don‘t think I learned anything from this experiment, I just do what they told me to do. What a waste of time....

Luckily, it is not a completely meaningless experience. It triggered my thinking on the nature of software development. Here is a question: What can you really do? Are you creating code, or you‘re just writing code. Although I just hate these stuff, they play a vital rule in the process of software design. I am not good at all of these, but my rusty brain can still learn a thing or two, it‘s won‘t cause any loss anyway.

References

SOLID

TDD

Unit testing

原文地址:https://www.cnblogs.com/Chiang-B/p/8965622.html

时间: 2024-10-12 21:15:36

20172317 2017-2018-2 《程序设计与数据结构》实验二报告的相关文章

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

172303 2017-2018-2 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 范雯琪 学号:20172303 实验教师:王志强 助教:张旭升/刘伟康 实验日期:2018年4月17日 必修/选修: 必修 1.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 完成蓝墨云上 (1)-(5)实验. 2.实验过程及结果 过程: 本次实验老师一共设置了5

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

20172329 2017-2018-2 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 王文彬 学号:20172329 实验教师:王志强 实验日期:2018年4月21日 必修/选修: 必修 1.实验内容 初步掌握单元测试和TDD 理解并掌握面向对象三要素:封装.继承.多态 初步掌握UML建模 熟悉S.O.L.I.D原则 了解设计模式 完成实验. 2. 实验过程及结果 一.理解内容 首先,我根据老师所给的几篇博客中大致了解了什么是TDD测试

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

20172330 2017-2018-2 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 李楠 学号:30 实验教师:王志强 实验日期:2018年4月18日 必修/选修: 必修 1.实验内容 1:初步掌握单元测试和TDD 2:理解并掌握面向对象三要素:封装.继承.多态 3:初步掌握UML建模 4:熟悉S.O.L.I.D原则 5:了解设计模式 6:完成蓝墨云上 (1)-(5)实验. 2. 实验过程及结果 实验1:练习单元测试,学会写三种代码(

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

20172303 2018-2019-1 <程序设计与数据结构>实验二报告 课程:<程序设计与数据结构> 班级: 1723 姓名: 范雯琪 学号:20172303 实验教师:王志强 助教:张师瑜/张之睿 实验日期:2018年11月5日 必修/选修: 必修 实验内容 本次实验主要是关于树的应用, 涉及了二叉树.决策树.表达式树.二叉查找树.红黑树五种树的类型,是对最近学习内容第十章和第十一章的一个总结. 节点一 参考教材P212,完成链树LinkedBinaryTree的实现(get

20182327 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182327 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名:赵天昊 学号:20182327 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证. 2. 实验过程及结果 不多说,上

20182319《数据结构与面向对象程序设计》实验二报告

20182319 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 彭淼迪 学号:20182319 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,用规定方法测试验证. 2. 实验过程及结果

# 20182331 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182331 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 高宽让 学号:20182331 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证.(https://www.cnb

20182330 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182330 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 魏冰妍 学号:20182330 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 编写简单的计算器,完成加减乘除模运算. 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. 编写测试代码,测试验证. 2. 实验过程及结果 编写简单计算器,借鉴c语言语法

20182311 2019-2020-1 《数据结构与面向对象程序设计》实验二报告

20182311 2019-2020-1 <数据结构与面向对象程序设计>实验二报告 课程:<程序设计与数据结构> 班级: 1823 姓名: 冷冲 学号:20182311 实验教师:王志强 实验日期:2019年9月16日 必修/选修: 必修 1.实验内容 (1) 编写简单的计算器,完成加减乘除模运算. (2) 要求从键盘输入两个数,使用判定语句选择一种操作,计算结果后输出,然后使用判定和循环语句选择继续计算还是退出. (3) 编写测试代码,测试验证.(https://www.cnbl