加入VIP
程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版

编辑点评:全国计算机技术与软件专业技术资格(水平)考试指定用书

依据2018年审定通过的程序员考试大纲大纲编写,程序员教程第5版涵盖程序员(初级)岗位所要求的主要知识及应用技术。通过程序员考试的考生可以获得由人力资源和社会保障部、工业和信息化部认可的职业资格证书,本考试为初级资格认证。

程序员教程第5版pdf免费阅读

程序员教程第5版pdf图片预览

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(1)

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(2)

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(3)

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(4)

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(5)

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(6)

内容简介

本书作为全国计算机技术与软件专业技术资格(水平)考试(简称“软考”)的初级职称指定教材,具有比较权威的指导意义。本书根据《程序员考试大纲》(2018年审定通过)的重点内容,组织了共11章的内容,考生在学习教材内容的同时,还须对照考试大纲,认真学习和复习大纲要求的知识点。本书是在《程序员考试大纲》的指导下,对《程序员教程(第4版)》进行再编后完成的。本书适合参加相关考试的考生和在校大学生作为教材使用。

目录大全

目录

第1章计算机系统基础知识…1

1.1计算机系统的基本组成…1

1.2数据的表示及运算…3

1.2.1计算机中数据的表示…3

1.2.2校验码…13

1.2.3逻辑代数及逻辑运算…17

1.2.4机器数的运算…19

1.3计算机的基本组成及工作原理…23

1.3.1总线的基本概念…23

1.3.2中央处理单元…25

1.3.3存储系统…30

1.3.4输入/输出技术…36

1.4指令系统简介…40

1.5多媒体系统简介…44

1.5.1数字声音…45

1.5.2图形与图像…48

1.5.3动画和视频…55

第2章操作系统基础知识…62

2.1操作系统概述…62

2.2进程管理…65

2.2.1基本概念…65

2.2.2进程控制…67

2.2.3进程通信…68

2.2.4进程调度…72

2.2.5死锁…74

2.2.6线程…76

2.3存储管理…76

2.3.1基本概念…76

2.3.2存储管理方案…77

2.3.3分页存储管理…79

2.3.4分段存储管理…80

2.3.5虚拟存储管理…82

2.4设备管理…85

2.4.1设备管理概述…85

2.4.2设备管理技术…86

2.4.3磁盘调度…88

2.5文件管理…89

2.5.1基本概念…89

2.5.2文件的结构和组织…90

2.5.3文件目录…92

2.5.4存取方法、存取控制…93

2.5.5文件的使用…95

2.5.6文件的共享和保护…95

2.5.7系统的安全与可靠性…96

2.6作业管理…98

2.6.1作业管理…98

2.6.2作业调度…99

2.6.3人机界面…102

第3章程序设计语言基础知识…104

3.1程序设计语言概述…104

3.1.1程序设计语言的基本概念…104

3.1.2程序设计语言的分类和特点…105

3.1.3程序设计语言的基本成分…109

3.2语言处理程序基础…116

3.2.1汇编程序基础…116

3.2.2编译程序基础…118

3.2.3解释程序基础…126

第4章数据结构与算法…129

4.1线性结构…129

4.1.1线性表…129

4.1.2栈和队列…137

4.1.3串…143

4.2数组…144

4.3树与二叉树…147

4.3.1树的基本概念…148

4.3.2二叉树…149

4.3.3树和森林…153

4.3.4最优二叉树…156

4.3.5二叉查找树…157

4.4图…158

4.5查找…163

4.5.1顺序查找与折半查找…164

4.5.2树表查找…167

4.5.3哈希表及哈希查找…170

4.6算法…173

4.6.1算法概述…173

4.6.2排序算法…177

4.6.3递归算法…187

4.6.4字符串运算…188

4.6.5图的相关算法…191

第5章软件工程基础知识…199

5.1软件工程概述…199

5.1.1软件生存周期…199

5.1.2软件生存周期模型…201

5.1.3软件过程评估…207

5.1.4软件工具…209

5.1.5软件开发环境…211

5.2软件需求分析…212

5.2.1软件需求的定义…212

5.2.2软件需求分析的基本任务…213

5.2.3需求建模…213

5.3软件设计…214

5.3.1软件设计的基本任务…214

5.3.2软件设计原则…216

5.4结构化分析与设计方法…219

5.4.1结构化分析方法…219

5.4.2结构化设计方法…221

5.4.3结构化程序设计方法…223

5.5面向对象分析与设计方法…224

5.5.1面向对象的基本概念…224

5.5.2面向对象分析与设计…227

5.5.3UML概述…228

5.5.4设计模式…232

5.6软件测试与运行…235

5.6.1软件测试的目的及原则…235

5.6.2软件测试方法…238

5.6.3软件测试过程…241

5.6.4软件测试设计和管理…242

5.6.5软件调试…243

5.6.6软件运行与维护…243

5.7软件项目管理…245

5.7.1管理范围…245

5.7.2成本估算…246

5.7.3风险分析…247

5.7.4进度管理…248

5.8软件质量与软件质量保证…250

5.8.1软件质量特性…250

5.8.2软件质量保证…252

第6章数据库基础知识…254

6.1基本概念…254

6.1.1数据库系统…254

6.1.2数据库管理技术的发展…255

6.1.3大数据…257

6.2数据模型…260

6.2.1数据模型的基本概念…260

6.2.2数据模型的三要素…261

6.2.3E-R模型…261

6.2.4基本的数据模型…265

6.3DBMS的功能和特征…267

6.3.1DBMS的功能…267

6.3.2DBMS的特征与分类…268

6.4数据库模式…270

6.4.1模式…270

6.4.2三级模式两级映像…272

6.5关系数据库与关系运算…272

6.5.1关系数据库的基本概念…272

6.5.2关系数据库模式…275

6.5.3完整性约束…276

6.5.4关系代数运算…276

6.6关系数据库SQL语言简介…280

6.6.1SQL概述…280

6.6.2SQL数据定义…281

6.6.3SQL数据查询…285

6.6.4SQL数据更新…293

6.6.5SQL的访问控制…295

6.6.6嵌入式SQL.296

6.7数据库设计…297

第7章网络与信息安全基础知识…300

7.1计算机网络概述…300

7.1.1计算机网络的组成…300

7.1.2计算机网络的分类…301

7.1.3ISO/OSI参考模型…304

7.2计算机网络硬件…305

7.2.1计算机网络互连设备…305

7.2.2计算机网络传输媒体…311

7.3TCP/IP.314

7.3.1TCP/IP模型…314

7.3.2TCP/IP协议…315

7.3.3IP地址…318

7.4Internet基础知识…322

7.4.1Internet服务…322

7.4.2因特网接入方式…327

7.4.3TCP/IP的配置…328

7.4.4浏览器的设置与使用…329

7.5局域网基础知识…332

7.6信息安全基础知识…337

7.7网络安全概述…341

第8章标准化和知识产权基础知识…346

8.1标准化基础知识…346

8.1.1软件工程标准化…346

8.1.2能力成熟度模型简介…348

8.2知识产权基础知识…349

8.2.1基本概念…349

8.2.2计算机软件著作权…351

8.2.3计算机软件的商业秘密权…363

第9章C程序设计…366

9.1C语言基础…366

9.1.1数据类型…366

9.1.2运算符与表达式…372

9.1.3输入/输出…375

9.2控制语句…377

9.3函数…381

9.4指针…385

9.4.1指针的定义…385

9.4.2指针与数组…387

9.4.3指针与函数…389

9.4.4指针与链表…393

9.5常见的C程序错误…395

第10章C程序设计…407

10.1C程序基础…407

10.1.1数据类型…407

10.1.2运算符、表达式和语句…409

10.1.3基本输入/输出…410

10.1.4函数…412

10.1.5类与对象…415

10.2继承与多态…423

10.3异常处理…428

10.4标准库…430

10.4.1I/O流库…431

10.4.2string.434

10.4.3STL.438

10.4.4vector443

第11章Java程序设计…447

11.1Java语言概述…447

11.2Java语言基础…448

11.2.1Java基本数据类型…449

11.2.2控制结构…455

11.2.3Java核心类…458

11.3类与接口…462

11.3.1类的定义与使用…462

11.3.2对象的初始化…464

11.3.3包…466

11.3.4继承…468

11.3.5抽象类与接口…471

11.4异常…478

11.4.1异常的处理…478

11.4.2自定义异常…480

11.5输入、输出和流…483

11.5.1字节流…483

11.5.2字符流…486

11.5.3标准输入/输出流…487

11.6Java类库的使用…489

11.6.1基本类型的包装类型…489

11.6.2泛型和集合类…493

前言阅读

全国计算机技术与软件专业技术资格(水平)考试从实施至今已有二十余年,在社会上产生了很大的影响,对我国软件产业的形成和发展做出了重要的贡献。为了适应我国计算机信息技术发展的需求,人力资源和社会保障部、工业和信息产业部决定将考试的级别拓展到计算机信息技术行业的各个方面,以满足社会上对计算机信息技术人才的需要。

编者受全国计算机专业技术资格考试办公室委托,对《程序员教程(第4版)》一书进行再编,以适应新的考试大纲要求。在考试大纲中,要求考生掌握的知识面很广,每个章节的内容都能构成相关领域的一门课程,因此编写本书的难度很高。考虑到参加考试的人员已有一定的基础,所以本书中只对考试大纲中所涉及的知识领域的要点加以阐述,但限于篇幅所限,不能详细地展开,请读者谅解。

全书共分11章,各章的内容安排如下。

第1章计算机系统基础知识:主要介绍计算机系统硬件组成、数据在计算机中的表示和运算、校验码基础知识、指令系统和多媒体系统基础知识。

第2章操作系统基础知识:主要介绍操作系统的类型和功能等基本概念,进程管理、存储管理、设备管理、文件管理和作业管理等基础知识。

第3章程序设计语言基础知识:主要介绍程序设计语言的类型和特点、程序设计语言的基本成分以及编译、解释等基本的语言翻译基础知识。

第4章数据结构与算法:主要介绍线性表和链表、栈、队列、数组、树、图等基本数据结构以及查找、排序等常用算法。

第5章软件工程基础知识:主要介绍软件工程和项目管理基础、面向对象分析与设计方法、软件需求分析、软件设计、编码和测试、软件系统运行与维护、软件质量管理等基础知识。

第6章数据库基础知识:主要介绍数据库管理系统的主要功能和特征、数据库模式、数据模型和ER图、关系运算和SQL等基础知识。

第7章网络与信息安全基础知识:主要介绍网络的功能、分类、组成和拓扑结构,基本的网络协议与标准,常用网络设备与网络通信设备的作用和特点、局域网(LAN)和互联网(Internet)基础知识,以及信息安全、网络安全基础知识。

第8章标准化和知识产权基础知识:主要介绍标准化的基本概念和知识产权的概念与特点、计算机软件著作权和商业秘密权基础知识。

第9章C程序设计:主要介绍C程序基础、语句、函数、指针与简单C程序中常见错误。

第10章C程序设计:主要介绍C程序基础、类与对象、继承与多态、输入与输出流库、异常处理和常用STL模板库。

第11章Java程序设计:主要介绍Java程序语言基础和特点、类与接口、异常、文件和输入/输出流以及Java类库等基础知识。

本书第1章由张淑平、马志欣编写,第2章由王亚平编写,第3章和第4章由张淑平编写,第5章由褚华、霍秋艳编写,第6章由王亚平编写,第7章由严体华编写,第8章由刘强编写,第9章由张淑平、覃桂敏编写,第10章由张淑平、宋胜利编写,第11章由霍秋艳编写,全书由张淑平、覃桂敏统稿。

在本书的编写过程中,参考了许多相关的书籍和资料,编者在此对这些参考文献的作者表示感谢。同时感谢清华大学出版社在本书出版过程中所给予的支持和帮助。

因水平有限,书中难免存在欠妥之处,望读者指正,以利改进和提高。

免费在线试读

第5章软件工程基础知识  

软件是计算机系统中的重要组成部分,它包括程序、数据及相关文档。软件工程是指应用计算机科学、数学及管理科学等原理,以工程化的原则和方法来解决软件问题的工程,其目的是提高软件生产率、提高软件质量、降低软件成本。  

软件工程涉及软件开发、维护、管理等多方面的原理、方法、工具与环境,限于篇幅,本章不能对软件工程做全面的介绍。根据程序员级考试大纲的要求,本章着重介绍软件开发过程中的基本方法和内容。

5.1软件工程概述  

早期的软件主要指程序,程序的开发工作主要依赖于开发人员的个人技能和程序设计技巧。当时的软件通常缺少与程序有关的文档,软件开发的实际成本和进度常常与预计的相去甚远,软件的质量得不到保证。随着计算机应用的需求不断增长,软件的规模也越来越大,然而软件开发的生产率远远跟不上计算机应用的迅速增长。此外,由于缺少好的方法指导和工具辅助,同时又缺少相关文档,使得大量已有的软件难以维护。上述这些问题严重地阻碍了软件的发展,20世纪60年代中期,人们把上述软件开发和维护过程中所遇到的各种问题称为“软件危机”。  

1968年,在德国召开的NATO(NorthAtlanticTreatyOrganization,北大西洋公约组织)会议上,首次提出了“软件工程”这个概念,希望用工程化的原则和方法来克服软件危机。在此以后,人们开展了软件过程模型、开发方法、工具与环境的研究,提出了瀑布模型、演化模型、螺旋模型和喷泉模型等开发过程模型,出现了面向数据流方法、面向数据结构方法、面向对象方法等开发方法,以及一批CASE(ComputerAidedSoftwareEngineering,计算机辅助软件工程)工具和环境。5.1.1软件生存周期  同任何事物一样,一个软件产品或软件系统也要经历孕育、诞生、成长、成熟、衰亡的许多阶段,一般称为软件生存周期。把整个软件生存周期划分为若干阶段,每个阶段的任务相对独立,而且比较简单,便于不同人员分工协作,从而降低了整个软件开发工程的困难程度。目前划分软件生存周期阶段的方法有许多种,软件规模、种类、开发方式、开发环境以及开发时使用的方法论都会影响软件生存周期阶段的划分。在划分软件生存周期阶段时应该遵循的一条基本原则,就是使各阶段的任务彼此间尽可能相对独立,同一阶段各任务的性质尽可能相同,从而降低每个阶段任务的复杂程度,简化不同阶段之间的联系,有利于软件开发的组织管理。  

1.问题定义  问题定义阶段必须回答的关键问题是:“要解决的问题是什么?”通过问题定义阶段的工作,系统分析员应该提出关于问题性质、工程目标和规模的书面报告。问题定义阶段是软件生存周期中最简短的阶段,一般只需要一天甚至更少的时间。  

2.可行性分析  这个阶段要回答的关键问题是:“对于上一个阶段所确定的问题有行得通的解决办法吗?”可行性分析阶段的任务不是具体解决问题,而是研究问题的范围,探索这个问题是否值得去解,以及是否有可行的解决办法。  

3.需求分析  需求分析阶段的任务不是具体地解决问题,而是准确地确定软件系统必须做什么,确定软件系统的功能、性能、数据和界面等要求,从而确定系统的逻辑模型。  

4.总体设计  这个阶段必须回答的关键问题是:“概括地说,应该如何解决这个问题?”  

首先,应该考虑几种可能的解决方案。系统分析员应该使用系统流程图或其他工具描述每种可能的系统,估计每种方案的成本和效益,还应该在充分权衡各种方案的利弊的基础上,推荐一个较好的系统(最佳方案),并且制定实现所推荐的系统的详细计划。总体设计阶段的第二项主要任务就是设计软件的结构,也就是确定程序由哪些模块组成以及模块间的关系。通常用层次图或结构图描绘软件的结构。  

5.详细设计  

总体设计阶段以比较抽象概括的方式提出了解决问题的办法。详细设计阶段的主要任务就是对每个模块完成的功能进行具体描述,也就是回答下面这个关键问题:“应该怎样具体地实现这个系统呢?”。因此,详细设计阶段的任务不是编写程序,而是设计出程序的详细规格说明,该说明应该包含必要的细节,程序员可以根据它们写出实际的程序代码。通常采用HIPO(层次加输入/处理/输出图)或PDL语言(过程设计语言)描述详细设计的结果。  

6.编码和单元测试  编码阶段就是把每个模块的控制结构转换成计算机可接受的程序代码,即写成某种特定程序设计语言表示的源程序清单,并仔细测试编写出的每一个模块。  

7.综合测试  综合测试阶段的关键任务是通过各种类型的测试(及相应的测试)使软件达到预定的要求。最基本的测试是集成测试和验收测试。所谓集成测试,是根据设计的软件结构,把经过单元测试检验的模块按某种选定的策略装配起来,在装配过程中对程序进行必要的测试。所谓验收测试,是按照规格说明书的规定(通常在需求分析阶段确定),由用户(或在用户积极参与下)对目标系统进行验收。  

通过对软件测试结果的分析可以预测软件的可靠性;反之,根据对软件可靠性的要求,也可以决定测试和调试过程什么时候可以结束。应该用正式的文档资料把测试计划、详细测试方案以及实际测试结果保存下来,作为软件配置的一个组成部分。  

8.维护  

维护阶段的关键任务是,通过各种必要的维护活动使系统持久地满足用户的需要。通常有改正性、适应性、完善性和预防性四类维护活动。其中,改正性维护是指诊断和改正在使用过程中发现的软件错误;适应性维护是指修改软件以适应环境的变化;完善性维护是指根据用户的要求改进或扩充软件使它更完善;预防性维护是指修改软件为将来的维护活动预先做准备。  

每一项维护活动都应该准确地记录下来,作为正式的文档资料加以保存。

5.1.2软件生存周期模型  软件生存周期模型是一个包括软件产品开发、运行和维护中有关过程、活动和任务的框架,覆盖了从该系统的需求定义到系统的使用终止(IEEE标准12207.0—1996)。把这个概念应用到开发过程,即软件过程模型,可以发现所有生存周期模型的内在基本特征:描述了开发的主要阶段;定义了每一个阶段要完成的主要过程和活动;规范了每一个阶段的输入和输出(提交物);提供了一个框架,可以把必要的活动映射到该框架中。  

软件过程是生产一个最终满足需求并且达到工程目标的软件产品所需的步骤。《计算机科学技术百科全书》中指出,软件过程是软件生存周期中的一系列相关的过程。过程是活动的集合,活动是任务的集合。软件过程有3层含义:一是个体含义,即指软件产品或系统在生存周期中的某一类活动的集合,如软件开发过程、软件管理过程等;二是整体含义,即指软件产品在所有上述含义下的软件过程的总体;三是工程含义,即指解决软件过程的工程,应用软件工程的原则、方法来构造软件过程模型,并结合软件产品的具体要求进行实例化,以及在用户环境下的运作,以此进一步提高软件生产率,降低成本。

程序员教程第5版pdf免费阅读截图

程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(7)程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(8)程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(9)程序员教程第5版电子书下载-程序员教程第5版pdf免费阅读高清扫描版插图(10)

评分及评论

无用户评分

来评个分数吧

  • 5 分
    0
  • 4 分
    0
  • 3 分
    0
  • 2 分
    0
  • 1 分
    0

评论