代码大全(已破解).pdf

所需积分/C币:34 2019-05-12 15:58:58 5.79MB PDF
收藏 收藏 6
举报

本书从软件质量和编程思想等方面论述了软件构造问题,并详细论述了紧跟潮流的新技术、高屋建瓴的观点、通用的概念,还含有丰富而典型的程序示例。本书中所论述的技术不仅填补了初级与高级编程技术之间的空白,而且也为程序员们提供了一个有关编程技巧的信息来源。本书适合经验丰富、自学成才的程序员阅读,也适合于那些几乎不懂什么编程技巧的新程序员阅读.
前言 前言 近年来,关于软件开发的研宄,进展是非常迅速的,但是开发实践却并非如此。许多程序 仍然是错误百出,充斥着过时的技术,从而无法满足用户需要。软件上业界和学术界的研究者 们,基本上已经解决∫七十年代和八十年代在编程中遇到的问题,并发展∫相应的技术。但是 直到现在,这些技术中的大部分仍然没有在软件编程中广泛采用,其⊥要原因是这些研究成果 主要发表在高度专业性的学术刊物中,普通的程序员们无心顾及。 Sridhar raghavan和 Donald Chand(1989)的研究表明,一项新技术从诞牛到被工业界广泛采用大约需要5到15年的时间 本书的目的就是希望能够缩短新技术推广周期,使广大的程序员们可以迅速地获得软件开发的 最新方法与手段。 本书所面向的对象 木书中所收集的研究和编程经验,将有助」你编写出高质量的软件,并且使得开发周期缩 短。通过阅读本书,你将会对自己过去所犯过的错误有更深刻的理解,并懂得今后如何避兔它 们」。同时,书中所收集的丰富的编程经验也将使你在控制大规模项目和按要求对软件进行修改 和维护时感到得心应于。下面是适合阅读本书的几类人: 经验丰富的程序员 木书适合于想要得到一木全面易用的软件设计指南的那些资深程序员们阅读。由于木书的 中心内容是广人稈序员们所熟知的实现过稈,因此,无论是受过正规训练而已绎验丰富的稈序 员,还是完全靠自学成长起来的程序员,都能容易读懂本书所论述的先进技术和方法。 自学成才的程序员 本书尤其适合于很少受过正式专业训练的程序员阅读。1988年有100,000人加入了程序 员大军,但其中只有40,000人是从计算机专业毕业的木科生,其余则几乎全是靠自学成才的。 同时,还有不计其数的其他各行各业的人员需要在工作中自己动手编一些稈序。无论你所受到 的正规计算机专业训练多或少,本书都将使你对有效的编程方法和技巧有更深刻的理解。 学生 本书不仅适于实践经验丰富但理论基础薄弱的自学者阅读,同时也适于那些理论基础较好 但几乎不懂得什么编程诀窍的毕业生们阅读。新程序员们的某些实践经验来自于经验丰富的同 事.但主要还是靠自己——吃一堑,长一智——获得的,这往往是一个艰而缓慢的过程。通 过本书,可以使你在短时期内获得大量的经验和技巧,从而脱颖而出,所以,不妨一试 本书的主要特点 完备的软件创建参參考本书从质量和编程思想等方面论述了软件构造问题。几乎囊括 了生成子程序、数据的输入输岀与控制结构、调试、代码调整策略与技术等各方面的细节。在 使用本书时不必逐贞阅读每一个细节,只要在需要时查阅你所感兴趣的章节即可。请把本书作 前言 2 为手册而不是作为教科书来使用 方便而实用的检查表中附有用于检查软件的结构设计、设计方法、模块和子程序笭质 量的检查表,以供评估软件质量之用。同时,关丁变量名、控制结构、方案布置、测试用例等 等检查表也将使你获益匪浅。 紧眼潮流的新技术书中论述了许多目前最先进的技术,其中许多还只是刚刚投入应 用。由于本书取材于实践经验和最新研究成果两个方面,因此书中所提供的技术在相当长的时 间内都不会过时 高屋建瓴的观点阅读木书将使你跳出日常琐碎工作的圈子,对软件开发有一个总体上 的把操与认识。繁杂旳日常工作往往使程序员们穷于应付而无暇阅读浩如烟海的书籍与资料, 本书丰富而翔实的第一手资料将弥补这一缺憾,使你对软件开发的策略作岀正确决策而不致陷 入旷日持久的消耗战中 通用的概念无论你用的是 Pascal、C、C+、Ada、 Basic、 Cotran还是 COBOL,都可 以从本书所论述的概念、方法和技巧中获得教益 丰富而典型性的程序示例中含有大约500多个正反两方面的程序示例。之所以引入 这么多的示例,是因为笔者就是从各种例程中吸取了大鄙分的知识、经验与诀窍,因此笔者认 为最好的学习方法是多看例程。例程是用多种语言写成的,因为对」程序员来说,掌握多种语 言是其必不可少的基本素质之一。而且,只有掌握了不受语法规则限制的编程准则,才能真正 有效地提高你的编程效率和质量。为了减轻由于使用多种语言所带来的额外负担,在例程中除 非确有必要,尽量避开了各个语言过于独特的部分。事实上,如果你真正注意每个例程所要说 眀的问题的话,那么不必详细玛解钶个程序段,你也可以清楚地懂得程序的意义。同时,为了 进一步减轻读者的负担,对程序中有意义的部分作了标记。 木书的独特内容 本书关于创建活动的内容是从多个渠道获得的。有关创建活动的资料不仅分布得非常分 散,而且往往没有成文资料,事实上,卓有成效的优秀程序员们所使用的技术并不神秘,但由 于日常事务的繁重和工作任务的重压,稈序员们很少有互相交流切磋的时间,因而,他们往往 缺乏有关编程技巧的有效信息来源 本书中所论述的技术不仅填补了初级与高级编程课本之间的空白,而且也为程序员们提 供了一个有关编程技巧的信息来源。比如当你读过C语言初级教程之后,你可以再读C语言高 级教程,然后再去读C语言级的晑级教程,但读完这些书后,你还能再读什么书呢?你可以 再去读关于PC、 Macintosh或UNIX等硬件或操作系统的书或者其它有关编稈细节的书一一因 为你如果不了解实现环境详情的话是无法充分有效地使用语言和程序的。但这只是讨论了编程 的一个方面,最有效的编程技术是那些不受实现环境及语言限制的技术。其它书往往忽略∫这 一点,但这恰恰是本书的重点 写作本书的目的 需要一本关于软件开发有效技术的书,是软件工程界所公认的。由计算机科学技术委员会 所发表的一份报告认为,提高程序质量和牛产效率的最有效途径是出版一本关于软件开发有效 前言 技术的书,而且这本书应该以手册的形式来组织。 同时,计算机编程技术的发展史也证明急需一本这方面的书,本书正是出于这个目的 才出版的。 创建活动未受到应有的重视 在段时期内,软件丌发与编码被当作是·回事,但随着软件丌发周期中的其它活动被认 识,这一领域内的主要努力全部焦中到∫项目管理、需求分析、设计和测试等方面,创建活动 成了被遗忘的角落 与这种现象相对应的思想是认为创建活动是软件开发中无关紧要的部分。于是,刚入门的 稈序员被派去进行创建工作,为那些已绎由上一阶段设计好的子程序编码。工作几年之后,他 可能会被提升至需求分析或项目管理部门。于是,这位程序员也会自豪地感到他不必再去编码 创建活动是非常重要的 创建活动被忽视的另一个原因是:研究者和程序员们错误地认为与其它丌发活动相比,创 建活动是一相对来说比较机槭的活动,没有什么值得改进的。没有什么比这种想法离事实更远 在小规模项目中,创建活动约占工作量的80%,在中型项目中也要占50%的工作量,而发 生在创建活动中的错误则占总错误的50%到75%。一项会产生50%到75%错误的工作是有许 多待改进之处的。 一些人认为,虽然创建时的错误占到总错误的50%到75%,但修改它们的费用与分析、设 计错误相比要少得多。的确,创建时的错误修改费用与前期工作错误修改费用相比是要少一些 但是绝对数并不少。 Gerald Weinberg曾在1983年报道过三个错误,每个错误的修改费用都高 达数百万美元,而每个错误都是一行编码层次上的代码错误。因此,绝不能以修改费用相对少 为埋由来忽祝创建活动。 具有讽刺意味的是,被忽视的创建活动事实上是唯一任何规模项日都必不可少的活动 需求可以进行猜想而不必分析;结构可以被省略而不必设计。系统测试也可以不进行。但是 如果你想有一个程序的话,你就不得不进行创建活动。 本书的独特性 如果创建活动的重要性是非常明显的话,那么本书恐怕就没有出版的必要了。但事实上几 乎没有什么书详绀论述了这·主题。只有15年前出版过本类似内容的书,讲述的是 ALGOL PL/I、 Ratfor等早已过时的语言中的具体问题。其它偶尔也有几本这方面的书,但却是教授们 针对教学用的演示性项目而写的,没有涉及到真正的工程问题。有些则偏激地推崇新技术而不 冾当地贬低了一些非常实用的成熟技术。总之,就内容的新颍、翔实、丰富和实用来看,目前 似乎还没有与本书相匹敌的关于创建活动的书。 编者 目录 第章欢迎进入软件创建世界 1.1什么是软件创建……………………………………………………1 1.2软件创建的重要性…… 13小结………………………………………………… 第二章利用隐喻对编程进行更深刻的理解……………… 21隐喻的重要性.…… 22如何使用软件隐喻.………… 23通常的软件隐喻………………………………………7 24小结 ·中中·········中··中· 第三章软件创建的先决条件……………………………………………12 31先决条件重要性 …………………12 3.2问题定义先决条件 ………………………16 33需求分析先决条件 34结构设计先决条件 3.5选择编程语言先决条件∴…………………………………26 3.6编程约定……… 4··4········· 9 3.7应花在先决条件上的时间… ………………29 38改变先决条件以适应你的项目∴ 39小结 …………30 第四章建立子程序步骤……… 41建立程序步骤概述.… 4.2程序设计语言(PDL) …………………………………31 43设计子程序……………………………………………………33 44子程序编码…… 。非申 ······;··· 4.5检查子程序 非。··章。·非··。·非。●非看非非 46小结 第五章高质量子程序特点……………………45 5.1生成子程序的原因……………………………………………47 5.2子程序名称恰当… 53强内聚性 54松散耦合性 55了程序长度 ……60 5.6防错性编程………… ···································6 5.7子程序参数 …67 58使用函数… 59宏子程序………………………………………………72 510小结…………… ……………74 第六章模块化设计 75 6.1模块化:内聚性与耦合性… 6.2信息隐蔽……………………………… 7 6.3建立模块的理山… 64任何语言中实现模块………………………………………………85 65 90 第七章高级结构设计……………92 7.1软件改计引论…………………………………………………92 72结构化设计 95 73面向对象………… 98 74对目前流行设计方法的评论……… 102 75往返设计…… …………………………105 76小结 109 第八章生成数据……11 81数据识别 …11 82自建数据类型的原因………………………………………113 83自建类型的准则 115 84使变量说明更容易…………………………………………115 85初始化数据的准则………………………………………120 8.6小结… ………………120 第九章数据名称 …21 91选择名称 。4非。·非。 121 9,2特定数据类型的命名…………………………………………124 93命名约定………………………………………………………………128 94非正式命名约定……………… …129 95匈牙利命名约定……… …132 96短名称… ·垂·布·。。·。。 ……………………136 97要避免的名称… 137 98小结……… 139 第十章变量 ………141 10.1作用域……………………………………………………141 102持久性……… …………………43 10.3赋值时间… ·t···中章中···中··申·p·t 144 10.4数据结构与控制结构的关系…………………………145 105变量功能单一性…………………………………………………146 10.6全局变量…… ……148 107小结……………………………………………………153 第十一章基本数据类型 .·。。·非。非自 l54 111常数… ··· 154 112整型数……… …155 113浮点数 …157 11.4字符和字符串…………………… 15 11.5逻辑变量 161 11.6枚举类型…… 导· 117命名常量……………………………………………………164 l18数组… 。中 ……166 11.9指针……………………………………………………167 11.10小结 175 第十二章复杂数据类型 176 121记录与结构………………………………………………176 122表驱动方法 中·······+···+···.······ …179 12.3抽象数据类型(ADTs) 124小结……………………………………………………198 第十三章顺序程序语句…………………………199 13.1必须有明确顺序的程序语句…………………………………199 132与顺序无关的程序语句……… ··· 201 133小结…………………………………………………207 第十四章条件语句………………… 章非·非非·D 14.1if语句…… ···,··中···中申····曲 208 142case语句… …213 143小结…………………………………………………………216 第十五章循环语句………………………………… 15.1选择循环类型…………………………………………217 152控制循环( Controlling The Loop ……222 153编写循环的简单方法一一从里到外· ··非·······非。●。非非 154循环与数组的关系 ……………232 155小结 第十六章少见的控制结构 234 16,1goto语句 162 return语句…………… ··························4···· 243 163递归调用… 16.4小结 248 第十七章常见的控制问题………………………249 171布尔表达式… 非···中 49 172复合语句(块)…… 257 173空语句……………………………………………………………257 17.4防止危险的深层嵌套……………………………258 175结构化编程的作用· 导·甲····,Q 17.6用goto模拟结构化结构…… 267 177控制结构和复杂性 269 178小结……………………………271 第十八章布局和风格 ……………272 181基木原则 272 18.2布局技巧………………………………………………………279 183布局风格… ·········· ……………………280 18.4控制结构布局…… 非申···自·非非B。非非。q非···非D自。·非··。音。垂自。。·p非··。自·非非非非 85 18.5单条语句布局… 292 18.6注释布局 ………301 187子程序布局………………………………… l8.8文件、模块和程序布局………… 18.9小结……… 311 第十九章文档 19.1外部文档…… ·····:········· 中·中·*···················*······· 192编程风格作文枓……………………………………………314 193注释还是不注释… ………………3l6 194有效注释的关键…………………………………………318 195注释方法…………………………………………32 196小结……………… 337 第二十章编程工具 …338 201设计工具 ·······+·········· 338 202源代码工具………………………………………………339 20.3执行代码工具…… 343 20.4面向工具的环境· 345 20.5建立自己的编程工具… ··非·······非。●。非非 346 20.6理想编程环境…………………………………347 207小结 …350 第二十一章项目大小如何影响创建 211项目大小………………………………… ………351 212项目大小时开发活动的影响… ··:······················:······· ····●·5 213项目大小对错误的影响… 214项目大小对生产效率的影响… …………………357 215小结…………………………………………………………358 第二十二章创建管理 22.1使用好的代码 ………359 配置管理………………………………………………361 223评估创建计划…………………………………………………364 224度量… ·看 ····.······:···:······· ··,·看·· ………369 225将稈序员视为普通人……………… 非鲁 370 226如何对待上司… 227小结…………………………………………………………………374 第二十三章软件质量概述… 自。d非B。自 375 231软件质量特点……… 232提高软件质量的方法……………………………………………377 23.3各种方法的效果………………………………………………379 234何时应作质量保证…………………………………………381 235软件质量的一般原则 81 23.6小结 第二十四章评审……………………………………………384 241评审在软件质量保证中的地位… ··中··.。。非,·q申 384 242检查… 386 243其它评审方法…………………………………………………389 244小结 ··· ······················ 391 第二十五章单元测试…………………………393 251单元测试在软件质量中的作用…… ··· …393 252单元测试的一般方法………………………………395 253测试技巧………………………………………………………396 254典型错误… ……………404 255测试支持工具… ………408 256提高测试质量 257测试记录 12 258小结…………………………………………412 第二十六章调试 414 26.1概述 非鲁非 ······非非非看·。申··。·非。●·非 ……414 262找错 ………………………………………4l7 26.3修改错误……… 2423 26.4调协心理因素 425 26.5调试工具……… ……427 26.6小结………………………………………………………………430 第二十七章系统集成 43 271集成方法重要性 431 272分段与递增集成…………………………………………………432 273递增集成法… ·+····:···+········→·+ ………………434 274改进的公布法 …………439 275小结……………………… 445

...展开详情
试读 127P 代码大全(已破解).pdf
立即下载 低至0.43元/次 身份认证VIP会员低至7折
    抢沙发
    一个资源只可评论一次,评论内容不能少于5个字
    img
    磊磊cpp
    • GitHub

      绑定GitHub第三方账户获取
    • 签到达人

      累计签到获取,不积跬步,无以至千里,继续坚持!
    • 技术圈认证

      用户完成年度认证,即可获得
    • 分享宗师

      成功上传21个资源即可获取

    关注 私信 TA的资源

    上传资源赚积分,得勋章
    最新推荐
    代码大全(已破解).pdf 34积分/C币 立即下载
    1/127
    代码大全(已破解).pdf第1页
    代码大全(已破解).pdf第2页
    代码大全(已破解).pdf第3页
    代码大全(已破解).pdf第4页
    代码大全(已破解).pdf第5页
    代码大全(已破解).pdf第6页
    代码大全(已破解).pdf第7页
    代码大全(已破解).pdf第8页
    代码大全(已破解).pdf第9页
    代码大全(已破解).pdf第10页
    代码大全(已破解).pdf第11页
    代码大全(已破解).pdf第12页
    代码大全(已破解).pdf第13页
    代码大全(已破解).pdf第14页
    代码大全(已破解).pdf第15页
    代码大全(已破解).pdf第16页
    代码大全(已破解).pdf第17页
    代码大全(已破解).pdf第18页
    代码大全(已破解).pdf第19页
    代码大全(已破解).pdf第20页

    试读已结束,剩余107页未读...

    34积分/C币 立即下载 >