自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(12)
  • 收藏
  • 关注

原创 哈工大2023春算法与设计期末试题

哈尔滨工业大学2023春算法设计与分析期末试题

2023-11-15 20:22:47 1369 1

原创 浅谈设计模式

在简单工厂模式中,可以根据参数的不同返回不同类的实例。动态的将新功能附加到对象上。在对象功能的拓展方面,比继承更有弹性。定义一个用于创建对象的接口,让此类决定实例化哪个工厂方法。使一个类的实例化延迟到其子类。用来生产同一等级架构中的任意产品(对于增加新的产品,需要修改已有代码,不灵活)一种遍历访问聚合对象中各个元素的方法,不暴露该对象的内部结构。在不改变数据结构的前提下,增加作用于一组对象元素的新功能。被实例化的对象可以继承同一抽象类,也可以实现同一接口。将一个类的方法接口转换成客户希望的另外一个接口。

2023-05-25 23:51:35 42

原创 面向复用的软件构造技术

操作系统把某些复杂的操作写在一个函数里面,编译成一个组件,随操作系统一起发布,并配上说明文档,程序员只需要简单地调用这些函数就可以完成复杂的工作,让编程变得简单有趣。一个框架是一个可复用的设计构件,它规定了应用的体系结构,阐明了整个设计、协作构件之间的依赖关系、责任分配和控制流程,表现为一组抽象类以及其实例之间协作的方法。通俗易懂来讲,别人写好的代码,或者编译好的程序,提供给你使用,就叫做API。复制已有代码到正在开发的系统进行修改,可定制程度高,对其修改增加了软件的复杂度,且需要对源代码有充分了解。

2023-05-25 23:35:28 63 1

原创 哈工大软件构造复习第七讲

注意:在使用 abstract 关键字修饰抽象方法时不能使用 private 修饰,因为抽象方法必须被子类重写,而如果使用了 private 声明,则子类是无法重写的。父类型中的被重写函数体不为空:意味着对其大多数子类型来说,该方法是可以被直接复用的。对某些子类型来说,有特殊性,故重写父类型中的函数,实现自己的特殊要求。如果父类型中的某个函数实现体为空,意味着其所有子类型都需要这个功能,但各有差异,没有共性,在每个子类中均需要重写。重写时,可以利用super()来复用父类型中函数的功能,并对其进行扩展。

2023-05-20 16:32:47 57 2

原创 哈工大软件构造复习第六讲

根据我们对抽象空间 A 和 rep 空间 R 的新理解,我们可以完善这个定义:抽象值不应该更改但是,只要 rep 值继续映射到相同的抽象值,实现就可以自由地改变它,以便客户端看不到更改。选择某种特定的表示方式R,进而指定某个子集是“合法”的(RI),并为该子集中的每个值做出“解释”(AF)----即如何映射到抽象空间中的值。也可将RI看作:所有表示值的一个子集,包含了所有合法的表示值或者一个条件,描述了什么是“合法”的表示值。:R和A之间映射关系的函数,即如何去解 释R中的每一个值为A中的每一个值。

2023-05-20 15:45:06 27 1

原创 哈工大软件构造复习第五讲

Java中的静态类型声明是一种规约,可据此进行静态类型检查static checking。如果某个具体实现满足规约,就落在其范围内;如果前置条件满足,后置条件必须满足;如果前置条件不满足,方法可以做任何事。一般站在用户(客户端)的角度看,可根据规约判断是否行为等价。更强的规约,表示为更小的区域。(实现的自由度小,面积小)方法前的注释也是一种规约,但需要人工判定其是否满足。是方法结束时必须满足的条件,约束开发者。条件更弱,后置条件更强,spec更强。是使用方法必须满足的条件,约束客户端。

2023-05-20 15:09:32 28 1

原创 哈工大软件构造复习第四讲

(Java是静态类型检查,在编译阶段进行检查,Java不进行动态类型检测)Immutable 不变数据类型,其值不能改变,频繁修改会产生大量临时垃圾。使用Mutable可获得更好的性能,也适合多个模块间共享数据,但不够安全!Immutable好处:安全,但浪费空间。语法、类名/函数名、参数数目、参数类型、返回值类型。非法的参数值、非法的返回值、越界、空指针。(如果mutable改变值不会报错),传mutable参数时进行防御式拷贝。静态类型检查:关于类型检查。动态类型检查:关于值的检查。

2023-05-20 14:38:25 44 1

原创 哈工大软件构造复习第二讲

白盒测试:对程序内部代码结构的测试(一般较早执行)根据程序执行路径设计,进行等价类划分,每条路径至少覆盖一次。黑盒测试:对程序外部表现出来的行为的测试(从spec导出测试用例,检查功能,不考虑内部实现)TDD(Test-driven development):测试优先的编程,测试驱动开发。测试效果:路径覆盖 > 分支覆盖 > 语句覆盖(测试难度也是这个顺序)白盒测试一般由开发人员完成,黑盒测试一般由测试人员完成。函数覆盖、语句覆盖、分支覆盖、条件覆盖、路径覆盖。BVA边界数值分析方法。

2023-05-20 14:07:00 32 1

原创 哈工大软件构造复习第三讲

git的所有操作都是针对对象图进行的,复制项目意味着复制整个对象图,对象图中A->B表示在B的基础上进行变化形成版本A,不同的提交之间可以进行分支或合并。而现在最流行的版本控制工具git则是记录每一本完整的版本,需要的时候直接提取即可,极大地提高了软件的效率。本地的只能用于本地机器,集中式的可以支持多台机器之间进行协作,分布式是上述两者的统一。版本是为软件的任一特定时刻(Moment)的形态指派一个唯一的编号,作为在在整个开发过程中的“身份标识”,而版本控制就是对每次更改的不同版本进行记录,保留备用。

2023-05-20 13:51:09 30 1

原创 哈工大软件构造第一讲复习

内部的质量指标有:代码行数、圈复杂度、低耦合、内聚力、可读性、可理解性、清洁度等。软件构造的多维度视图。

2023-05-20 13:43:31 36 1

原创 HIT软构Lab2心得

本次实验训练抽象数据类型(ADT)的设计、规约、测试,并使用面向对象编程(OOP)技术实现ADT,本文为实验心得。

2023-04-12 14:19:07 102 1

原创 HIT软构Lab1心得

达到右边界时,跳至左边界。当大于两个点时,选择最左下的角作为出发点,通过循环遍历整个点集,查找横纵坐标最小的点。利用git clone 获取代码,根据注释补全代码,实现一系列绘图可能用到的功能:画出正方形、计算正多边形的内角、计算对应内角的正多边形边数、计算角度转移(以某点作为出发点,面向某个方向,要前往指定坐标点,需要转过多少角度)、求解凸包问题、以及绘制自己独特的图形。的语法掌握不好,写代码时总有“心有余而力不足”的感觉,常常需要查阅资料,极大的降低了效率,在以后的学习中会注重巩固自己的基础知识,对。

2023-03-29 17:13:43 115 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除