新書推薦:

《
关系5.0
》
售價:NT$
612.0

《
翻篇是一种能力
》
售價:NT$
296.0

《
刘伯温与哪吒城:北京建城的传说
》
售價:NT$
449.0

《
文化的故事:从岩画艺术到韩国流行音乐(译林思想史)哈佛大学教授沉淀之作 获奖不断 全球热销 亲历文化史上的15个关键点 从史前艺术到当代韩流的人类文化全景
》
售價:NT$
398.0

《
不结婚的社会:双亲如何成为特权,以及家庭为何很重要
》
售價:NT$
296.0

《
怎样决定大事
》
售價:NT$
510.0

《
蓝色机器:感受海洋引擎的深沉脉动
》
售價:NT$
449.0

《
用科学了解面包的“为什么” (全彩图解版)
》
售價:NT$
449.0
|
編輯推薦: |
本书第一版为普通高等教育“十一五”国家级规划教材,在Visual C 6.0、Visual C 2022和Dev-C 开发环境中进行了严格的测试,可作为高等院校计算机及相关专业C 面向对象程序设计课程的教材。
|
內容簡介: |
全书共分为8章,阐述了C 的特点和开发过程、面向对象程序设计技术、类的定义、对象的创建及访问、友元与静态成员、模板编程方法、运算符重载、C 的继承机制及虚基类、多态性、输入输出流,以及C 中的其他主题。
本书取材新颖,内容丰富,可读性强,教学资源丰富,在充分考虑了学习者对书中部分内容的心理适应的基础上,对于一些容易让人产生畏惧心理的内容作了适当的处理。本书所有程序都在Visual C 6.0、Visual C 2022和DevC 5.11开发环境中进行了严格的测试。
本书可作为高等院校计算机及相关专业“C 面向对象程序设计”课程的教材,也适合作为初学程序设计或有一定编程实践基础、希望突破编程难点的读者的自学教材。此外,相关软件开发人员也可通过本书的学习,迅速提高C 面向对象程序设计的能力。
|
目錄:
|
第1章C 程序设计基础1
1.1C 的发展和主要特点1
1.1.1C 的发展1
1.1.2C 的特点1
1.2第一个C 程序以及C 程序开发过程1
1.2.1第一个C 程序1
1.2.2C 程序开发过程4
1.3C 的常用新特性5
1.3.1C 的输入输出5
1.3.2const定义常量6
1.3.3函数重载7
1.3.4有默认参数的函数9
1.3.5变量的引用11
1.3.6动态分配和释放内存的运算符new和delete16
1.3.7布尔类型18
1.4实例研究: 破解数字谜语19
1.5程序陷阱21
习题122第2章类和对象24
2.1由结构到类的发展24
2.1.1带函数的结构24
2.1.2从结构到类的演化26
2.2面向对象程序设计技术27
2.2.1对象27
2.2.2抽象和类27
2.2.3封装28
2.2.4继承28
2.2.5多态性28
2.3C 类的声明与对象的定义28
2.3.1类的声明28
2.3.2在类体外定义成员函数30
2.3.3定义对象的方法31
2.3.4对象成员的引用33
2.4构造函数34
2.4.1构造函数的定义34
2.4.2用初始化表对数据成员进行初始化和使用默认参数36
2.5析构函数37
2.6构造函数和析构函数的一般执行顺序39
2.7复制构造函数41
2.8用const保护数据46
2.8.1常对象成员46
2.8.2常对象49
2.8.3对象的常引用52
2.9字符串53
2.10友元55
2.10.1友元函数55
2.10.2友元类58
2.11静态成员59
2.11.1静态数据成员59
2.11.2静态成员函数61
2.12this指针63
2.13程序陷阱65
习题266第3章模板75
3.1模板的概念75
3.2函数模板及模板函数77
3.2.1函数模板的声明及生成模板函数77
3.2.2重载函数模板79
3.3类模板及模板类81
3.3.1类模板的声明及生成模板类82
3.3.2在类型形参表中包含常规参数的类模板84
3.4实例研究: 快速排序86
3.5程序陷阱88
习题390第4章运算符重载93
4.1运算符重载的概念93
4.2运算符重载方式96
4.2.1运算符重载为类的成员函数97
4.2.2运算符重载为类的友元函数99
4.2.3运算符重载为普通函数102
4.3典型运算符重载104
4.3.1重载赋值运算符(=)104
4.3.2重载自增1运算符( )和自减1运算符()108
4.3.3重载下标运算符([])111
4.3.4重载函数调用运算符(())112
4.3.5重载输入运算符(>>)和输出运算符(<<)113
4.4程序陷阱116
习题4116第5章继承118
5.1继承与派生118
5.1.1继承与派生的概念118
5.1.2派生类的声明119
5.1.3派生类与基类中的同名成员123
5.2继承方式125
5.2.1公有继承125
5.2.2私有继承128
5.2.3保护成员和保护继承130
5.3派生类的构造函数和析构函数136
5.3.1构造函数136
5.3.2析构函数140
5.4多继承与虚基类142
5.4.1多继承142
5.4.2多继承引起的多义性问题144
5.4.3虚基类146
5.5程序陷阱151
习题5152第6章多态性159
6.1多态性的概念159
6.2虚函数160
6.2.1虚函数的概念160
6.2.2虚析构函数166
6.3纯虚函数和抽象类168
6.4实例研究: 栈的实现172
6.5程序陷阱179
习题6180第7章输入输出流185
7.1C 的输入输出185
7.1.1输入输出的概念185
7.1.2C 的输入输出流185
7.2标准输出流对象cout186
7.2.1cout186
7.2.2格式输出186
7.2.3输出流类成员函数put()190
7.3标准输入流对象cin191
7.3.1cin191
7.3.2输入流类的常用字符输入的成员函数191
7.3.3输入流类的其他常用成员函数193
7.4文件操作与文件流196
7.4.1文件和文件流的概念196
7.4.2文件的打开与关闭操作197
7.4.3对文本文件的操作199
7.4.4对二进制文件的操作204
7.5实例研究: 简单工资管理系统208
7.6程序陷阱219
习题7221第8章C 的其他主题225
8.1类型转换225
8.1.1标准类型之间的转换225
8.1.2类类型的转换226
8.2内置函数228
8.3异常处理232
8.4命令空间239
8.5程序陷阱242
习题8244参考文献246附录A常用C 编译器使用方法247
|
內容試閱:
|
作者使用过数本C 面向对象程序设计的教材,发现不少问题。C 教学的普遍结果是,学生学完了C ,却不会使用目前流行的C 开发工具编写程序。此外,不少教材也存在错误,例如某C 语言经典教材在关于打开文件的代码中出现了类似如下的代码:ofstream outFile; //定义文件变量
if (outFile.open(”test.txt”,ios::app)) //以追加方式打开文件
{//打开文件失败
cout<<”打开文件失败!”< //编译预处理命令
using namespace std; //使用命名空间std
//声明复数数
class Complex
{
private:
//数据成员
double real; //实部
double image; //虚部
public:
//公有函数
Complex(double r=0,double i=0): real(r),image(i){} //构造函数
friend Complex operator (const Complex &z1, const Complex &z2) //复数加法
{ return Complex(z1.real z2.real,z1.image z2.image); }
…
};上面的类声明及相关代码在Visual C 2022和DevC 5.11中都能正常通过运行,但在Visual C 6.0中会出现编译时错误,是Visual C 6.0的一个缺陷(Bug),在Visual C 6.0中将#include //编译预处理命令
using namespace std; //使用命名空间std 改为#include //编译预处理命令后才可正常运行。又如,对于输入运算符“>>”和输出运算符“<<”重载为类的友元函数时,采用标准头文件iostream,在Visual C 6.0、Visual C 2022和DevC 5.11中都不能通过编译,只能在Visual C 6.0中采用传统的头文件iostream.h才能通过编译,但将输入运算符“>>”和输出运算符“<<”重载为普通函数时无任何编译问题。
可惜的是,鲜有教材对具体的编程环境进行详细指导,无形中增加了学生掌握C 的难度。
作者在经过二十多年教学和查阅大量参考资料后编写本书,将全书分为8章。第1章阐述C 的主要特点及C 程序开发过程,详细介绍C 在非面向对象方面的常用新特性。第2章介绍面向对象程序设计技术、C 类的定义、对象的创建以及对象成员的访问、友元与静态成员等基本内容。第3章介绍模板编程方法,并对模板容易出现的编程问题进行详细的讨论。第4章介绍运算符重载,重点对不同C 编译器使用运算符重载时的兼容性问题进行了具体指导。第5章着重介绍C 的继承机制及虚基类。第6章介绍多态性,重点介绍虚函数和抽象类。第7章介绍输入输出流,重点讨论标准输入输出流类、文件操作与文件流类。第8章对C 中的其他主题进行深入阐述,这些主题都是难点,但都不是重点。如果这些内容在前面的章节中加以讨论,对于读者就会因难度过大而较难进入面向对象的思维模式,当读者已具备面向对象的思维习惯以后,再来介绍这些典型问题应该比较合适。
对于初学者,考试时往往会感到茫然而不知所措,因此本书习题包括了选择题、填空题和编译题。这些题目选自于考试题,可供学生期末复习,也可供教师编写试题时参考。
本书在部分章节中还提供了实例研究,主要提供给那些精力充沛的学生深入学习与研究,这些实例包括对正文内容的应用(例如6.4节中栈的实现实际上就是抽象类的一个典型应用)、读者深入学习时可能会遇到的算法(例如3.4节中的快速排序)以及应用所学知识解决实际问题(例如7.5节中的简单工资管理系统就是文件操作实现简单信息管理系统),读者通过对实例研究的学习,可提高实际应用C 面向对象程序设计的能力,虽然有一定的难度,但应比读者的想象更易学习与掌握。
为了尽快提高读者的实际编程能力,本书各章提供了程序陷阱,包括在实际编程时容易出现的问题,也包括正文内容的深入讨论,还包括对C 编译环境中存在的兼容性问题进行实用而具体的指导,这部分内容不管对初学者还是长期编程的人都很有用。
关于C 编译器的问题,在C 之外的任何编程语言中,编译器都没有受到过如此的重视。这是因为C 是一门非常复杂的语言,以至于编译器也难以构造,我们常用的编译器都不能完全符合C 标准,如下介绍一些常用且优秀的C 编译器。
(1) Visual C 编译器。该编译器由微软公司开发,现在流行的是Visual C 6.0、Visual C 2022以及更新版本的Visual C ,特点是集成开发环境用户界面友好,信息提示准确,调试方便,对模板支持最完善。Visual C 6.0对硬件环境要求低,现在安装的计算机最多,但对标准C 兼容只有83.43%。Visual C 2022与更新版本的Visual C 在软件提示信息上做了优化与改进,使其对标准C 的兼容达到了98%以上,但对硬件的要求较高。
(2) GCC编译器。这是一款著名的开源C 编译器,类UNIX操作系统(例如Linux)下编写C 程序的首选,有非常好的可移植性,可以在非常广泛的平台上使用,也是编写跨平台、嵌入式程序很好的选择。GCC 3.3与标准C 的兼容性可达96.15%。现已有一些移植在Windows环境下使用GCC编译器的IDE(集成开发环境),例如DevC 是能够让GCC在Windows下运行的集成开发环境,提供了与专业IDE相媲美的语法高亮、代码提示和调试等功能;根据作者的实际使用,感觉使用GCC编译器的IDE错误信息提示的智能较低,错误提示不太准确,对模板支持较差,但对语法检查较严格,在Visual C 编译器中编译通过的程序可能在GCC编译器的IDE还会显示有错误信息。
本书所有程序都同时在Visual C 6.0、Visual C 2022和DevC 5.11中通过测试。读者可根据实际情况选择适当的编译器。
教师可采取多种方式使用本书讲授C 面向对象程序设计,并可根据读者的背景知识以及课程的学时数进行内容的取舍。为满足不同层次的教学需求,本教材使用了分层的思想,分层方法如下: 没有加“*”及“”的部分是基本内容,适合所有读者学习;加有“*”的部分适合计算机专业的读者作为深入学习的选学部分;加有“”的部分适合于感兴趣的读者研究。
作者为本书提供了全面的教学支持,除了向专业教师提供教学资源外,普通读者可在清华大学出版社官方网站上下载如下教学参考内容:
(1) 提供书中所有例题在Visual C 6.0、Visual C 2022和DevC 5.11开发环境中的测试程序。
(2) 提供教学用PowerPoint课件。
(3) 提供教材中所有习题的参考答案。
(4) 提供至少6套C 语言程序设计模拟试题及其解答,以供学生期末复习,也可供教师出考题时参考。
(5) 提供C程序设计相关的其他资料(例如DevC 软件,流行、免费的C/C 编译器下载网址)。
(6) 线上实训项目与线上习题使用指导。
通过扫描二维码可观看全书所有例题的程序演示视频,其中第一个二维码对应于Visual C 6.0开发环境的程序演示视频,第二个二维码对应于Visual C 2022开发环境的程序演示视频,第三个二维码对应于DevC 5.11开发环境的程序演示视频。
在附录A中介绍Visual C 6.0、Visual C 2022和DevC 5.11开发环境建立工程的步骤,可通过扫描二维码观看具体操作视频。
提供大量的线上实训项目与线上习题。其中,线上实训项目可用于实验项目或课程设计项目,线上习题可用于布置课后习题,所有线上实训项目与线上习题都采用通关方式完成任务,具体包括任务描述和相关知识,编程实践项目还包括编程要求及测试说明,线上习题包括了单项选题关卡、填空题关卡、判断题关卡及编程实践题关卡,不但可用于学生练习,也可供教师出考试题时参考。线上实训项目与线上习题都由线上平台自动测评与打分,学生所得分值可用于过程化考核成绩。
本书第1章和第2章由罗佳编写,第4章、第7章由刘群编写, 第5章和第6章由丁晓峰编写,第3章和第8章及附录由游洪跃编写,全书由游洪跃统稿。作者还要感谢为本书提供直接或间接帮助的每一个朋友,由于你们热情的帮助或鼓励激发了作者写好本书的信心以及写作热情。
本书的出版要感谢清华大学出版社相关编校人员,由于他们为本书的出版倾注了大量热情,也由于他们具有前瞻性的眼光才让读者有机会看到本书。
尽管作者有良好而负责任的严格态度,并尽了最大努力,但限于作者水平,书中难免有不妥之处,因此敬请各位读者不吝赐教,以便作者有一个提高的机会,并在再版时尽力采用你们的意见,尽快提高本书的质量。
作者2024年9月
|
|