编辑推荐
在软考中级资格中,报考热门的,也是在校学生关注的是网络工程师和软件设计师。
在软考初级资格中,报考热门的,也是在校本科生关注的是网络管理员和程序员。
考生一旦通过考试,便有应聘大企业的敲门金砖。
好消息是这四个模块的指定教材,从第1版到现在的第4版历经10年,终于面市了。
更贴近考点,更有利于考生掌握知识点的第4版出版后,相信您会有量级的提高。
内容简介
《程序员教程(第4版)》作为初级职称的软考指定教材,具有比较专业的指导意义。本书根据《程序员考试大纲》的重点内容,阐述了共12章的内容,考生在学习教材内容的同时,还须对照考试大纲,认真学习和复习大纲的知识点。
《程序员教程(第4版)》是在《程序员考试大纲》的指导下,对《程序员教程(第三版)(修订版)》进行再编后完成的。
《程序员教程(第4版)》适合参加相关考试的考生和大学在校生作为教材。
内页插图
目录
第1章 计算机系统基础知识 1
1.1 计算机系统的基本组成 1
1.2 数据的表示及运算 3
1.2.1 计算机中数据的表示 3
1.2.2 校验码 12
1.2.3 逻辑代数及逻辑运算 16
1.2.4 机器数的运算 18
1.3 计算机的基本组成及工作原理 21
1.3.1 总线的基本概念 22
1.3.2 中央处理单元 24
1.3.3 存储系统 28
1.3.4 输入/输出技术 35
1.4 指令系统简介 38
第2章 操作系统基础知识 44
2.1 操作系统概述 44
2.2 处理机管理 47
2.2.1 基本概念 47
2.2.2 进程控制 50
2.2.3 进程通信 50
2.2.4 进程调度 55
2.2.5 死锁 56
2.2.6 线程 58
2.3 存储管理 58
2.3.1 基本概念 59
2.3.2 存储管理方案 60
2.3.3 分页存储管理 61
2.3.4 分段存储管理 63
2.3.5 虚拟存储管理 64
2.4 设备管理 67
2.4.1 设备管理概述 67
2.4.2 设备管理技术 69
2.4.3 磁盘调度 71
2.5 文件管理 72
2.5.1 基本概念 72
2.5.2 文件的结构和组织 73
2.5.3 文件目录 75
2.5.4 存取方法、存取控制 76
2.5.5 文件的使用 77
2.5.6 文件的共享和保护 78
2.5.7 系统的安全与可靠性 79
2.6 作业管理 80
2.6.1 基本概念 81
2.6.2 作业调度 82
2.6.3 人机界面 85
第3章 数据库基础知识 87
3.1 基本概念 87
3.1.1 数据库系统 87
3.1.2 数据库管理技术的发展 88
3.1.3 大数据 90
3.2 数据模型 93
3.2.1 基本概念 93
3.2.2 数据模型的三要素 94
3.2.3 E-R模型 94
3.2.4 基本的数据模型 98
3.3 DBMS的功能和特征 101
3.3.1 DBMS的功能 101
3.3.2 DBMS的特征与分类 102
3.4 数据库模式 104
3.4.1 模式 104
3.4.2 三级模式两级映像 105
3.5 关系数据库与关系运算 106
3.5.1 关系数据库的基本概念 106
3.5.2 关系数据库模式 109
3.5.3 完整性约束 109
3.5.4 关系代数运算 110
3.6 关系数据库SQL语言简介 113
3.6.1 SQL概述 114
3.6.2 SQL数据定义 115
3.6.3 SQL数据查询 119
3.6.4 SQL数据更新 127
3.6.5 SQL的访问控制 129
3.6.6 嵌入式SQL 130
3.7 数据库设计 131
第4章 多媒体基础知识 134
4.1 多媒体的基本概念 134
4.1.1 媒体的分类和特征 134
4.1.2 多媒体计算机系统 135
4.2 音频 140
4.2.1 数字声音基础 140
4.2.2 声音文件格式 145
4.3 图形和图像 146
4.3.1 图像的基础知识 146
4.3.2 图形与图像信息的表示和获取 148
4.3.3 图形图像编码 151
4.4 动画和视频 154
4.4.1 动画的基本概念 154
4.4.2 模拟视频和数字视频 156
4.4.3 视频文件格式 160
4.5 网络多媒体 161
4.5.1 超文本与超媒体 161
4.5.2 流媒体的基本概念 162
第5章 网络基础知识 164
5.1 计算机网络概述 164
5.1.1 计算机网络的组成 164
5.1.2 计算机网络的分类 165
5.2 计算机网络硬件 168
5.2.1 计算机网络互连设备 168
5.2.2 计算机网络传输媒体 173
5.3 TCP/IP协议体系结构 177
5.3.1 OSI/ISO参考模型与TCP/IP体系
结构 177
5.3.2 TCP/IP协议 179
5.3.3 IP地址 182
5.4 Internet基础知识 186
5.4.1 Internet服务 186
5.4.2 因特网接入方式 190
5.4.3 TCP/IP的配置 192
5.4.4 浏览器的设置与使用 193
5.5 局域网基础 196
5.6 网络安全基本概念 201
第6章 程序设计语言基础知识 206
6.1 程序设计语言概述 206
6.1.1 程序设计语言的基本概念 206
6.1.2 程序设计语言的分类和特点 207
6.1.3 程序设计语言的基本成分 211
6.2 语言处理程序基础 217
6.2.1 汇编程序基本原理 217
6.2.2 编译程序基本原理 219
6.2.3 解释程序基本原理 228
第7章 软件工程基础知识 231
7.1 软件工程概述 231
7.1.1 软件生存周期 231
7.1.2 软件生存周期模型 233
7.1.3 软件过程 237
7.1.4 软件工具 239
7.1.5 软件开发环境 242
7.2 软件需求分析 243
7.2.1 软件需求的定义 243
7.2.2 软件需求分析的基本任务 243
7.2.3 需求建模 244
7.3 软件设计 244
7.3.1 软件设计的基本任务 245
7.3.2 软件设计原则 246
7.4 结构化分析与设计方法 249
7.4.1 结构化分析方法 249
7.4.2 结构化设计方法 251
7.4.3 结构化程序设计方法 254
7.5 面向对象分析与设计方法 254
7.5.1 面向对象的基本概念 254
7.5.2 面向对象分析与设计 256
7.5.3 UML概述 257
7.5.4 设计模式 259
7.6 软件测试与运行 261
7.6.1 软件测试的目的及原则 261
7.6.2 软件测试方法 263
7.6.3 软件测试过程 266
7.6.4 软件测试设计和管理 268
7.6.5 软件调试 268
7.6.6 软件运行与维护 269
7.7 软件项目管理 271
7.7.1 软件项目管理概述 271
7.7.2 软件质量与软件质量保证 274
第8章 数据结构与算法 278
8.1 线性结构 278
8.1.1 线性表 278
8.1.2 栈和队列 285
8.1.3 串 291
8.2 数组和矩阵 292
8.3 树和图 296
8.3.1 树 296
8.3.2 图 303
8.4 常用算法 307
8.4.1 算法概述 307
8.4.2 排序算法 312
8.4.3 查找算法 319
8.4.4 字符串处理 328
8.4.5 递归算法 331
8.4.6 图的相关算法 332
第9章 标准化和知识产权基础知识 337
9.1 标准化的基本知识 337
9.1.1 基本概念 337
9.1.2 信息技术标准化 342
9.1.3 标准化组织 345
9.1.4 ISO 9000标准简介 347
9.1.5 能力成熟度模型简介 349
9.2 知识产权基础知识 351
9.2.1 基本概念 351
9.2.2 计算机软件著作权 353
9.2.3 计算机软件的商业秘密权 364
第10章 安全性基础知识 367
10.1 安全性概述 367
10.2 计算机病毒和计算机犯罪概述 369
10.3 网络安全 375
10.4 访问控制 378
10.5 加密与解密 380
第11章 C/C++程序设计 385
11.1 C/C++程序基础 385
11.1.1 C/C++程序基本结构 386
11.1.2 数据类型和运算符 387
11.1.3 基本输入/输出 395
11.1.4 控制语句 399
11.1.5 函数 403
11.1.6 指针与引用 407
11.2 类与对象 412
11.3 继承与多态 420
11.4 输入与输出流库 425
11.5 异常处理 428
11.6 类库 431
11.6.1 string 431
11.6.2 STL 435
11.6.3 vector 436
11.7 C程序设计要点 440
11.7.1 指针与链表 440
11.7.2 递归函数 441
11.7.3 程序错误 442
第12章 Java语言程序设计 452
12.1 Java语言概述 452
12.1.1 Java语言的特点 452
12.1.2 Java开发环境 453
12.2 Java语言基础 453
12.2.1 Java基本数据类型 454
12.2.2 控制结构 460
12.2.3 Java数组与字符串 462
12.3 类与接口 466
12.3.1 类的定义与使用 466
12.3.2 对象的初始化 468
12.3.3 包 470
12.3.4 继承 472
12.3.5 抽象类与接口 474
12.4 异常 480
12.4.1 异常的处理 480
12.4.2 自定义异常 482
12.5 文件输入、输出和流 484
12.5.1 字节流 484
12.5.2 字符流 487
12.5.3 标准输入/输出流 488
12.6 Java小应用程序 490
12.7 Java类库的使用 493
精彩书摘
3)字形码
汉字字形码是表示汉字字形的字模数据,通常用点阵、矢量函数等方式表示,用点阵表示字形时,汉字字形码指的就是这个汉字字形点阵的代码。字形码也称字模码,是用点阵表示的汉字字形码,它是汉字的输出方式,根据输出汉字的要求不同,点阵的多少也不同。简易型汉字为16×16点阵,高精度型汉字为24×24点阵、32×32点阵、48×48点阵等。
字模点阵的信息量是很大的,所占存储空间也很大,以16×16点阵为例,每个汉字就需要32字节用于机内存储。字库中存储了每个汉字的点阵代码,当显示输出时才检索字库,输出字模点阵得到字形。
汉字的矢量表示法是将汉字看作由笔画组成的图形,提取每个笔画的坐标值,这些坐标值就可以决定每一笔画的位置,将每一个汉字的所有坐标值信息组合起来就是该汉字字形的矢量信息。显然,汉字的字形不同,其矢量信息也就不同,每个汉字都有自己的矢量信息。由于汉字的笔画不同,则矢量信息就不同。所以,每个汉字矢量信息所占的内存大小不一样。这与点阵表示法不一样。
同样,将每一个汉字的矢量信息集中在一起就构成了汉字库。当需要汉字输出时,利用汉字字形检索程序根据汉字内码从字模库中找到相应的字形码。
1.2.2校验码
计算机系统运行时,各个部件之间要进行数据交换,为了确保数据在传送过程中正确无误,一是提高硬件电路的可靠性;二是提高代码的校验能力,包括查错和纠错。通常使用校验码的方法来检测传送的数据是否出错。其基本思想是把数据可能出现的编码分为两类:合法编码和错误编码。合法编码用于传送数据,错误编码是不允许在数据中出现的编码。合理地设计错误编码以及编码规则,使得数据在传送中出现某种错误时就会变成错误编码,这样就可以检测出接收到的数据是否有错。
码距是校验码中的一个重要概念。所谓码距,是指一个编码系统中任意两个合法编码之间至少有多少个二进制位不同。例如,4位8421码的码距为1,在传输过程中,该代码的一位或多位发生错误,都将变成另外一个合法编码,因此这种代码无差错检验能力。下面简单介绍常用的三种校验码:奇偶校验码(Parity Codes)、海明码(Hamming Code)和循环冗余校验(Cyclic Redundancy Check,CRC)码。
……
前言/序言
全国计算机技术与软件专业技术资格(水平)考试从实施至今已有二十余年,在社会上产生了很大的影响,对我国软件产业的形成和发展做出了重要的贡献。为了适应我国计算机信息技术发展的需求,人力资源和社会保障部、工业和信息产业部决定将考试的级别拓展到计算机信息技术行业的各个方面,以满足社会上对计算机信息技术人才的需要。
编者受全国计算机专业技术资格考试办公室委托,对《程序员教程(第三版)(修订版)》一书进行再编,以适应新的考试大纲要求。在考试大纲中,要求考生掌握的知识面很广,每个章节的内容都能构成相关领域的一门课程,因此编写本书的难度很高。考虑到参加考试的人员已有一定的基础,所以本书中只对考试大纲中所涉及的知识领域的要点加以阐述,但限于篇幅所限,不能详细地展开,请读者谅解。
全书共分12章,各章的内容安排如下。
第1章 计算机系统基础知识:主要介绍计算机系统硬件组成、数据在计算机中的表示和运算、校验码基础知识和指令系统基础知识。
第2章 操作系统基础知识:主要介绍操作系统的类型和功能等基本概念,进程管理、存储管理、设备管理、文件管理和作业管理等基础知识。
第3章 数据库基础知识:主要介绍数据库管理系统的主要功能和特征、数据库模式、数据模型和ER图、关系运算和SQL等基础知识。
第4章 多媒体基础知识:主要介绍多媒体的基本概念、音频、图形和图像、动画和视频、网络多媒体等基础知识。
第5章 网络基础知识:主要介绍网络的功能、分类、组成和拓扑结构,基本的网络协议与标准,常用网络设备与网络通信设备的作用和特点、局域网(LAN)和互联网(Internet)基础知识。
第6章 程序设计语言基础知识:主要介绍程序设计语言的类型和特点、程序设计语言的基本成分以及编译、解释等基本的语言翻译基础知识。
第7章 软件工程基础知识:主要介绍软件工程和项目管理基础、面向对象分析与设计方法、软件需求分析、软件设计、编码和测试、软件系统运行与维护、软件质量管理等基础知识。
第8章 数据结构与算法:主要介绍线性表和链表、栈、队列、数组、树、图等基本数据结构以及查找、排序等常用算法。
第9章 标准化和知识产权基础知识:主要介绍标准化的基本概念,标准分类、标准的代号及编号等方面的基础知识;知识产权的概念与特点、计算机软件著作权等方面的基础知识。
第10章 安全性基础知识:主要介绍计算机病毒、网络安全、访问控制和加解密基础 知识。
第11章 C/C++程序设计:主要介绍C/C++程序基础、类与对象、继承与多态、输入与输出流库、异常处理和常用STL模板库,以及C程序中常见的问题和错误。
第12章 Java语言程序设计:主要介绍Java程序语言基础和特点、类与接口、异常、文件和输入/输出流、Java小应用程序和Java类库等基础知识。
本书第1章由张淑平编写,第2章、第3章由王亚平编写,第4章由马志欣编写,第5章由严体华编写,第6章由张淑平编写,第7章由褚华编写,第8章由张淑平、陈静玉编写,第9章由刘强编写,第10章由严体华、张淑平编写,第11章由霍秋艳、张淑平编写,第12章由霍秋艳编写,全书由张淑平、霍秋艳统稿。
在本书的编写过程中,参考了许多相关的书籍和资料,编者在此对这些参考文献的作者表示感谢。同时感谢清华大学出版社在本书出版过程中所给予的支持和帮助。
因水平有限,书中难免存在错漏和不妥之处,望读者指正,以利改进和提高。
编 者
2014年2月
程序员教程(第4版) 下载 mobi epub pdf txt 电子书 格式