图书前言

内 容 简 介本书包括计算机基础知识、C++程序设计基础和综合应用案例三部分。计算机基础知识部分讲解计算机的基本工作原理;C++程序设计基础部分将理论和算法相结合,循序渐进地介绍C++程序设计语言的语法和相应的算法;第三部分讲解综合应用案例。全书共8章,分别介绍计算与计算机系统基础知识、简单程序和表达式、流程控制、数组、指针与数组、函数、类与面向对象编程、综合应用案例。书中的每个知识点都有相应的实现代码和实例。

本书主要面向广大编程爱好者、从事高等教育的教师、高等学校在读学生及相关领域的广大科研人员。

版权所有,侵权必究。举报: 01062782989,beiqinquan@tup.tsinghua.edu.cn。图书在版编目 (CIP) 数据

 计算机与程序设计基础:C++版/黄庆凤等编著.北京:清华大学出版社,20268

(“国家级一流本科课程”配套教材系列).ISBN 9787302725985

ⅠTP3128

中国国家版本馆CIP数据核字第2026VV5234号

责任编辑: 陈景辉

封面设计: 刘键

责任校对: 申晓焕

责任印制: 刘海龙出版发行: 清华大学出版社

网址: https://www.tup.com.cn,https://www.wqxuetang.com

地址: 北京清华大学学研大厦A座邮编: 100084

社总机: 01083470000邮购: 01062786544

投稿与读者服务: 01062776969, cservice@tup.tsinghua.edu.cn

质量反馈: 01062772015, zhiliang@tup.tsinghua.edu.cn

配套资源下载: https://www.tup.com.cn,01083470236

印装者:  艺通印刷(天津)有限公司

经销: 全国新华书店

开本: 185mm×260mm  印张: 16.5字数: 405千字

版次: 2026年8月第1版印次: 2026年8月第1次印刷

印数: 1~2500

定价: 59.90元

产品编号: 10524701在当今世界,信息技术不仅是推动经济发展的核心引擎,更是重塑国际竞争格局、保障国家安全的关键力量。掌握扎实的计算机基础、精通高效的编程语言、具备解决实际问题的项目能力,已成为培养新时代高素质信息技术人才的基本要求。

本书力求在有限篇幅内,为具备一定数学基础的读者构建完整的知识体系,实现从理论到实践、从基础到高阶的跨越。我们深信,通过本书的学习,读者不仅能快速提升个人技术水平,更能深刻理解信息技术在国家发展全局中的战略意义,从而为投身于网络强国、数字中国建设的伟大事业做好充分准备。

本书主要内容

本书可视为一本以问题为导向的书籍,非常适合具备一定数学基础和计算机基础的读者学习。 读者可以在短时间内学习本书中介绍的所有算法。

全书分为三部分,共有8章。

第一部分是第1章计算与计算机系统基础知识。包括计算与计算机系统、计算机中的信息表示、算法、使用程序设计语言解决问题的基本步骤。

第二部分是C++程序设计基础,包括第2~7章。第2章简单程序和表达式,帮助读者理解C++程序框架。第3章流程控制,包括if分支结构和循环结构,并配有相应的综合实例。第4章数组,是第一个用户自定义数据类型,包括一维数组、二维数组及常用排序和查找算法。第5章指针与数组,帮助读者强化内存分配的概念。第6章函数,包括函数的声明、定义、调用、参数传递及函数重载,帮助读者建立结构化编程的思想,并为下一章面向对象编程做准备。第7章类与面向对象编程,包括从面向过程到面向对象、类和对象的定义和使用、类的高级应用。

第三部分是第8章综合应用案例,此部分帮助读者在学习了C++基础知识的基础上,能够自己独立完成一个课程设计的小项目,设计了基于EasyX图形库和基于QT的最短路径项目。

本书特色

(1)问题驱动,由浅入深。

本书通过分析问题,由浅入深、逐步地对计算机的重要概念及原理进行讲解与探究,为读者更好地掌握C++程序设计基础提供便利和支持。

(2)突出重点,强化理解。

本书结合作者多年的教学经验,针对应用型本科的教学要求和学生特点,突出重点、深入分析,同时在内容方面全面兼顾知识的系统化要求。

(3)注重理论,联系实际。

本书配有大量的综合实例和两个综合应用案例,旨在帮助读者真正地理解和掌握程序设计的原理与实践。

(4)风格简洁,使用方便。

本书风格简洁明快,对于非重点的内容不做长篇论述,以便读者在学习过程中明确内容之间的逻辑关系,更好地掌握操作系统的内容。

配套资源

为便于教与学,本书配有微课视频、源代码、教学课件、教学大纲、教学进度表、习题题库、期末试卷及答案。

(1)获取微课视频方式:先刮开并用手机版微信App扫描本书封底的文泉云盘防盗码,授权后再扫描书中相应的视频二维码,观看教学视频。

(2)获取源代码方式:先刮开并用手机版微信App扫描本书封底的文泉云盘防盗码,授权后再扫描下方二维码,即可获取。

源代码

拓展阅读

(3)其他配套资源可以扫描本书封底的“书圈”二维码,关注后回复本书书号,即可下载。

读者对象

本书主要面向广大编程爱好者,从事高等教育的教师,高等学校的在读学生及相关领域的广大科研人员。

在编写本书的过程中,作者参考了诸多相关资料,在此对相关资料的作者表示衷心的感谢。限于个人水平和时间仓促,书中难免存在疏漏之处,欢迎广大读者批评指正。

作者2026年5月计

(

C

+

+

)目

录第一部分计算机基础知识

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

1.1计算与计算机系统

1.1.1计算

1.1.2计算机系统

1.1.3硬件系统的关键部件

1.1.4操作系统

1.2计算机中的信息表示

1.2.1信息编码

1.2.2数据的进制及转换

1.2.3计算机二进制的优势体现

1.2.4计算机数值的编码表示

1.2.5字符的编码表示

1.3算法

1.3.1算法的概念

1.3.2算法的表示

1.3.3算法优劣的评价标准

1.4使用程序设计语言解决问题的基本步骤

1.5本章小结

1.6习题

第二部分C++程序设计基础

第2章简单程序和表达式

2.1C++语言程序框架

2.2C++语言规则

2.2.1C++的字符集

2.2.2关键字

2.2.3标识符

2.2.4标点符号

2.3C++的数据类型

2.4运算符与表达式

2.4.1基本运算符及其表达式

2.4.2C++的运算符、优先级和结合性

2.4.3语句

2.5类型转换与库函数调用

2.5.1类型转换

2.5.2库函数调用

2.6C++输入输出

2.6.1数据的输入输出

2.6.2输出格式控制

2.7本章小结

2.8习题

第3章流程控制

3.1if分支结构

3.1.1单分支结构

3.1.2双分支结构

3.1.3分支结构的嵌套

3.2switch开关语句

3.3循环结构语句

3.3.1for语句

3.3.2while语句

3.3.3dowhile语句

3.3.43种语句的共性和区别

3.3.5break语句与continue语句

3.4多重循环与常用算法

3.5综合应用

3.6输入输出文件简介

3.7本章小结

3.8习题

第4章数组

4.1一维数组

4.1.1一维数组的定义

4.1.2一维数组的初始化

4.1.3一维数组元素的访问

4.1.4一维数组的应用

4.2二维数组

4.2.1二维数组的定义

4.2.2二维数组的初始化

4.2.3二维数组元素的访问

4.2.4二维数组的应用

4.3字符数组与字符串

4.3.1字符数组的初始化和使用

4.3.2字符数组的输入输出

4.3.3字符串的基本操作

4.3.4字符串的应用

4.4数组的应用

4.4.1约瑟夫问题

4.4.2贪心算法——装船问题

4.5本章小结

4.6习题

第5章指针与数组

5.1指针

5.1.1内存空间的访问方式

5.1.2指针变量的声明与初始化

5.2指针与数组的关系

5.2.1用指针访问数组元素

5.2.2字符指针与字符串

5.3二级指针与数组指针、指针数组

5.3.1二级指针

5.3.2数组指针

5.3.3指针数组

5.4动态内存分配

5.4.1动态内存的申请和释放

5.4.2动态数组

5.4.3动态数组应用举例

5.5本章小结

5.6习题

第6章函数

6.1为什么需要函数

6.1.1函数的作用

6.1.2C++语言中的函数

6.2函数的声明、定义与调用

6.2.1函数声明

6.2.2函数定义

6.2.3函数调用

6.2.4函数的声明、调用与定义实例

6.3变量的存储方式和生存期

6.3.1存储特性与作用域

6.3.2变量的生存期

6.4函数参数传递

6.4.1值传递

6.4.2指针传递

6.4.3引用传递

6.4.4数组参数

6.4.5程序实例

6.5函数嵌套与递归调用

6.5.1嵌套调用

6.5.2递归调用

6.6函数重载及参数默认值设置

6.6.1函数重载

6.6.2带默认形参值的函数

6.7综合应用

6.8本章小结

6.9习题

第7章类与面向对象编程

7.1从面向过程到面向对象

7.2类和对象的定义

7.2.1类的定义

7.2.2对象的定义与使用

7.2.3构造函数与析构函数

7.2.4友元

7.2.5静态成员

7.3类的组合

7.4运算符重载

7.5UML类图

7.6继承与派生

7.6.1派生类的定义

7.6.2同名覆盖与新成员的派生

7.6.3类型兼容与对象替代

7.7多态与虚函数

7.7.1虚函数的定义

7.7.2纯虚函数

7.8本章小结

7.9习题

第三部分综合应用

第8章综合应用案例

8.1EasyX库是什么

8.2EasyX库的使用方法

8.2.1EasyX库的安装

8.2.2使用EasyX库画图的步骤

8.3使用EasyX库制作漂亮的鲜花

8.4Qt是什么

8.4.1信号与槽机制

8.4.2Qt项目文件结构

8.5信号与槽的概念

8.5.1原理说明

8.5.2信号与槽的连接

8.5.3示例代码

8.6使用Qt制作最短路径案例

8.6.1案例选题

8.6.2案例需求分析

8.6.3界面设计

8.6.4详细设计

8.7本章小结

8.8习题

参考文献

附录A22234888910111314141517181819222224242425252631313840414142444446495051515153545761616263656669727982828383838686889393959697100101102104106108108109111111112112112113116116118119119120121123123124125126127128128128129129130131133135137137141143144145147148151154154155158158160161166166167167171171175179191192195199207208209218219221221225226227234234234234235238240240240246246247247248248248249249253253254255