OO结课了,狂喜

  • 哈哈哈哈哈
  • 哈哈哈
  • 哈哈

第十三次作业

  • UML类图

  • 简要分析:
    • 本次作业是对UML类图进行解析,给到的接口里面已经有了很多类了,但是自带的类肯定是没有反应这些类的结构的.所以就自己写了MyClass和MyInterface和MyOperation类.
    • MyClass类内部包括了属性和方法,以及父类,以及实现的接口,以及关联对端,以及各种查询方法
    • MyInterfaces类内部包括了属性和方法,以及实现的接口,以及关联对端,以及各种查询方法
    • MyOperation类内部包括了参数和返回值,以及各种查询方法
    • MyUmlInteraction则负责管理所有的类和接口,以及输入的解析
    • 整体来说这样搞得搞得架构是富有层次性的,实现起来也不难,很多题目要求的查询方法都可以用递归的思想来实现
    • 强测: 被卡了一个t的点,是因为图遍历的时候没有做好标记,算是对算法的复杂度的理解有深刻了.

第十四次作业

  • UML类图

  • 简要分析:

    • 本次作业是对状态图和顺序图进行解析,整体难度不大,基本遍历就能实现.
    • 基于上次作业,由新增加了MyInteraction,MyStateMachine,Mystate类
    • MyInteraction存有所有的顺序图相关的信息
    • MyStateMachine存有状态图的相关信息.
    • MyState存有其可达的状态,可看作状态图中的一个节点.

第十五次作业

  • 不放类图了,和上次的一样
  • 本次作业新增了对UML类图的检验,上次作业除了存储信息上的一些容器选的不合理以外,其他方面都是可以直接使用往MyClass类中新增方法来实现检验规则的.

四个单元的总结

第一单元

第一单元是对表达式的解析,前两次作业是可以用一个公式就可以完成表达式,因子的抽象的,但是第三次作业加了括号以后,就比较难办了,于是看了课件上通过对不同运算的抽象来实现,于是进行了重构.课件上的方法果然好使,代码少了很多,重构起来也很轻松.这个架构对于性能的优化也是有很好的支持,只需要优化每种运算的结构即可.但是wf的检测还是出了大问题.

第二单元

第二单元是电梯多线程,没有了傻瓜电梯,一上来还是有点难搞的.吸取了上一单元的教训,第一次作业便开始好好的设计架构,改了好几个版本,才最后选了一个我觉得设计比较合理的东西交上去了.第二三次作业就稍微轻松一些了,加东西也都比较容易,但是还是出现了线程安全错误.这个单元以后对多线程的安全有了深刻的认识.

第三单元

第三单元是根据已有的助教的JML去实现代码,这一单元的代码体验还是比较容易的,但是第一次还是爆炸了.这单元讲的是契约式编程,但是要自己去写JML,还真是不知道怎么去下手.

第四单元

第四单元是对UML的解析,从架构的层次入手,来读系统进行设计,能够在写代码前就对考虑到其系统的可复用性,可拓展性等且UML独立于语言,在现在用到的也比较多.只可惜我的水平只能够画画图玩一玩了.

对测试的理解与实践的演进

在本学期的学习,除了oo课程的学习以外,也增强了自己做测试的能力.

  • 第一单元采用的测试方法是随机生成数据与python的求导结果进行对比
  • 第二单元采用的测试方法是随机生成数据并对结果的合理性进行检验
  • 第三四单元采用的测试是随机生成数据并与同学对拍

但是强测还是出现了一些问题.互测也发现了不少bug

其次在第三单元了解到了单元测试,虽然在实际中没有用到,但是在架构合理的情况下,单元测试也是保证正确性的很好的方法.

课程收获

  • 对于代码的审美发生了改变.从以前的一坨,到现在能够抽象出类来进行管理,好的设计写出来的代码都是简明的.
  • 除此之外便是提升的敲代码的能力,我一天居然能写一千行代码.
  • 还有就是测试的能力了,以前写过的代码都是直接上评测机,现在不行了,要自己测试了

课程建议

  • 实验课可以不可以不对你写的代码进行纠错[吐血].
  • 没了没了,希望oo助教身体健康,少掉点头发.

线上学习oo

  • 理论课视频看着很容易走神,很难跟的上老师的步伐.虽然可以暂停,但是懒得按下暂停键.
  • 研讨课的话能够学到一些别的同学比较厉害的技术和经验,听到大佬的分享,对我来说很有帮助.
  • 线上做实验惊心动魄,一脸懵*

OO结课了,狂喜的更多相关文章

  1. OO Unit4总结 & 结课总结

    OO Unit4总结 & 结课总结 OO课Unit4 UML解析应用技术回顾 BUAA.1823.邓新宇 2020/6/19 总结本单元三次作业的架构设计 本单元的架构设计主要是两方面. 一方 ...

  2. linux学习第十九天 (Linux就该这么学) 结课了

    今天最后一天课程了,结课了,还有点舍不得那,在些也祝 李老师 事业蒸蒸日上,超来超好, 今天内容是部署了 LNMP 部署动态网站环境(linux  +nginx+mysql+php) 安装文件挺别多, ...

  3. 南方IT学校期末PCB结课项目考试(实操)说明书

    南方IT学校期末结课项目考试(实操)说明书(一) 课程:<印制电路板设计技术>(二) 项目:笔记本电脑电源适配器的印制电路板设计(三) 背景说明:如今笔记本已经进入千家万户,作为给电脑充电 ...

  4. oo作业第四单元总结暨结课总结

    目录 一.第四单元作业架构设计 1.第一次UML作业架构设计 2.第二次UML作业架构设计 二.架构设计和OO方法理解演进 三.测试理解与实践的演进 四.课程收获总结 五.三个具体改进建议 一.第四单 ...

  5. 这是C语言结课前(期末考试之前)写给牛晓霞的一封信!

    致尊敬的牛晓霞老师: 这是黄领衫的感想,也是想告诉你的话! 在老师说要给班里写得好的人发黄领衫的时候,我当时的想法是我很有可能拿到这份奖品的,怎么说呢,算是一种自信吧,或是对自己的态度的认可.虽然我能 ...

  6. 大一C语言结课设计之《学生信息管理系统》

    第一次写这么长的程序,代码仅供參考,有问题请留言. /* ** 学生信息管理系统 ** IDE:Dev-Cpp 4.9.9.2 ** 2014-6-15 */ #include <stdio.h ...

  7. c# 结课小结

    C#总结知识点 模块一:知识点梳理 输入输出表达式---数据类型---变量与常量 ----运算符---语句-----数组与集合---函数--结构体: 模块二:输入与输出 输入:  console.re ...

  8. C#结课报告

    Revision History Date Issue Description Author 18/May/2015 v1.0 Initial creation 邓彪翼 模拟图书馆的查询系统 1.ob ...

  9. 大一C语言结课设计之《简单计算器》

    /*===============================================*\ ** 设计目的:简单计算器,计算形如10*(20.2-30.6)+5.0/2的表达式值 ** 简 ...

随机推荐

  1. NGK Global技术开源,开启跨链全生态

    消息显示,新兴公链项目NGK Global已经完成了自己的开源计划,基于自己创新性的跨链通讯交互方案,开源后的NGK Global将面向全生态节点,提供高效.自由.无边界的公链生态系统. 目前,大家对 ...

  2. 算法型稳定币USDN有什么价值和用途?

    USDN的标签是"数字美元",与大多数稳定资产一样,USDN是一种金融服务产品.基于NGK公链发行的算法型稳定币USDN,USDN是和美元1:1锚定的加密数字货币,1USDN等于1 ...

  3. Mac上的Redis安装和使用

    redis简介 REmote DIctionary Server(Redis) 是一个由 Salvatore Sanfilippo 写的 key-value 存储系统,是跨平台的非关系型数据库. Re ...

  4. 基于3.X版本的脚手架创建VUE项目

    一.基于交互式命令行的方式,创建vue项目 1.命令:vue create 项目名称.项目名称必须是英文的.不要包含中文.特殊的字符和符号.在cmd中输入命令:vue create vue_proje ...

  5. Java基础语法:abstract修饰符

    一.简介 描述: 'abstract'修饰符可以用来修饰方法,也可以修饰类. 如果修饰方法,那么该方法就是抽象方法:如果修饰类,那么该类就是抽象类. 抽象类和抽象方法起到一个框架作用,方便后期扩展的重 ...

  6. vmware-install.pl 如何安装?

    首先在虚拟机上安装vnware-tools工具,如图(工具为vmware workstation):  成功   但是系统屏幕大小并没有适应虚拟机,所以下边这行提示很重要. 打开左侧边栏的VMware ...

  7. Git 提交获取项目与提交项目 记录

    首先去git官网下载版本安装:https://git-scm.com/downloads 在自己生产免密令牌,安装后用git程序导出. 1.自己在桌面或者某盘创建一个文件夹,在文件夹右键找到 GIt ...

  8. POJ-1511(Dijkstra+优先队列优化+向前星)

    Invitation Cards POJ-1511 从这道题我还是发现了很多的问题,首先就是快速输入输出,这里的ios::---这一行必须先放在main函数第一行,也就是输入最开始的前面,否则系统疯狂 ...

  9. MySql学习---数据库基本类型,事务,多表查询

    数据库分类 关系型数据库 行列, 列如Mysql,oracle 通过表和表之间,行和列之间的关系进行数据的存储 非关系型数据库: Redis,MongDb 以对象存储,同过对象的自身属性来决定 表与表 ...

  10. PHP题库1

    选择题11. php中,不等运算符是( B.C ) A ≠    B !=   C <>   D >< 2. 函数的参数传递包括:( A.B ) A 按值传递       B ...