如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
C++程序设计教程(第二版)第十一章内容1.抽象编程(AbstractProgramming)数据结构抽象编程编程2.编程质量(ProgrammingQuality)易编程性:只是对采用好的编程方法或更高级语言而言,抽象程度越大,越易编程对象化编程在抽象数据类型的创建上做了大量的工作,因而赢得了应用程序编写的方便与快捷安全性:编程在算法设计上是挖空心思的劳动过程,而在运用语言对之描述上应该潇洒自在:容易表达,不容易出错,运行上更安全。好的编程方法能够帮助程序员实现潇洒编程抽象数据类型中可以将大量安全代码嵌入其中,从而使应用编程潇洒自在实现抽象数据类型的过程本身也是使用其他抽象数据类型的应用编程,同样也充满着潇洒与自在可维护性:指局部修改不影响系统全局的总体性能,而系统产生的问题通常可以通过局部维护(修改或更换部件)来解决。模块化编程使程序可拆装,可局部修改,而不影响整体性能与工作,因而可维护性强,过程化编程是将过程模块化,具有一定的可维护性;对象化编程是将数据类型也模块化,从而导致更方便的维护性能可扩充性:指系统扩展时,只增加扩展代码,而对原系统的正常运作只作很少的修改甚至不修改功能扩展的影响:过程化编程,会涉及多处扩展代码与原系统不和谐所带来的修改对象化编程,如果是抽象数据类型的功能扩展,则不会影响原系统的正常运行,而只是支持应用程序中增加的一些扩展代码而已;如果是应用程序功能扩展,那是使用抽象数据类型的抽象代码扩展,其修改量比之低级代码要少效率:前提:代码量大不等于运行量大效率除了看速度,还要看损耗,既要考虑编程方便,又要考虑运行性能(时空效率)1过程化程序代码量少,但对象化程序的代码量相对较多,但不占系统空间2过程化程序编写安全代码代价大,因而不系统,对象化程序可以方便地在抽象数据类型中嵌入安全代码,从而导致了代码量大的问题,如果让过程化程序达到其安全指标,为此增加的代码量比对象化程序更多3.分析Jose’s问题(AnalysistheJose’sProblem)对每个算法步骤,分而治之:例如,环链表操作的复杂性,在循环数中体现初始化和善后处理都必须由程序员一人承担,工作量大,容易产生错误对象化分析:(1)找出类(2)描述类与类之间的关系(3)用类来界定抽象层次,从而组织程序结构候选类的选定:(1)有形的、可视的或描述的东西,像电视、微波炉、桌子等(2)角色,如操作电视的人、小孩等(3)事件,如操作电视的亮度、桌子的易懂等6.程序维护(ProgramMaintenance)7.程序扩展(ProgramExtension)