C/C++及其相关
-
Visual C++程序设计基础实训张清战本书根据教育部最新制订的高等职业教育培养目标和课程教学改革的基本要求编写而成,是高职高专各专业计算机程序设计课程教材及相关培训教材。本书以Windows XP为系统平台,以Visual C++ 6.0中文版为软件环境,考虑到高职高专学生学习编程语言的需要,突出高等职业教育、职业资格签定和就业岗位培训等教育特点。本书为《Visual C++程序设计基础教程》的实训教材,旨在培养学生的专业技术应用能力和职业操作技能。.本书适用于高职高专的理工科学生,尤其适合于C++语言的初学者,还可供普通高校及成人高校理工科学生、计算机等级考试考生、计算机培训班学员和C++语言自学者使用。... -
C++面向对象程序设计(美)朱海滨, (美)周孟初编著本书系统地讨论了利用C++语言进行面向对象程序设计的基本概念、原理、方法和语言机制。本书“原理第一、语言第二”的独特编写方法可以尽量避免读者在用C++学习面向对象程序设计时经常出现的问题,即,利用C++语言编写出非面向对象的程序。本书力图用日常生活实例引入面向对象的基本概念和原理,从而使具有一定生活常识和经验的读者更易于接受。本书基于项目、逐步学习的方法能使读者更愿意编写可运行的C++程序——从实践中学习。这样,本书虽主要面向计算机相关专业的读者编写,但相关工科专业(如电子工程和工业工程)的读者仍然能够根据少量计算机专业基础理解本书内容,并通过本书学习用C++编写面向对象的程序。本书可作为计算机相关专业面向对象程序设计课程的教材,亦可作为其他工科专业学习面向对象程序设计的教材,同时还可以作为程序员或软件工程师的程序设计参考书。本书系统地讨论了利用C++语言进行面向对象程序设计的基本概念、原理、方法和语言机制。本书“原理第一、语言第二”的独特编写方法可以尽量避免读者在用C++学习面向对象程序设计时经常出现的问题,即,利用C++语言编写出非面向对象的程序。本书力图用日常生活实例引入面向对象的基本概念和原理,从而使具有一定生活常识和经验的读者更易于接受。本书基于项目、逐步学习的方法能使读者更愿意编写可运行的C++程序——从实践中学习。这样,本书虽主要面向计算机相关专业的读者编写,但相关工科专业(如电子工程和工业工程)的读者仍然能够根据少量计算机专业基础理解本书内容,并通过本书学习用C++编写面向对象的程序。本书可作为计算机相关专业面向对象程序设计课程的教材,亦可作为其他工科专业学习面向对象程序设计的教材,同时还可以作为程序员或软件工程师的程序设计参考书。 -
面向对象技术与Visual C++学习指导甘玲, 邱劲编著《面向对象技术与Visual C++学习指导》是《面向对象技术与Visual C++》的配套教材。全书共分10章,前8章与原教材前8章对应,第9章与原教材后4章对应,新增第10章综合实例。每章包括知识要点、习题精解、思考题解答、典型应用、常见错误、练习及解答。通过问题分析、解题思路、程序代码、运行结果、结果分析、程序说明、编程技巧,以及实例的设计思想、实现步骤等方面展开解析,全方位地给以学习指导。本书概念清晰、覆盖面广、实用性强、文字精炼、表述清楚、便于学习。作者总结多年教学实践经验编写本书,它可以作为C++/Visual C++课程的辅导教材,大学本科生、研究生的参考书以及读者的自学读物。 -
计算机科学(美)弗罗占(Forouzan, B.A.), (美)吉尔博格(Gilberg, R.F.)著;李海峰译本书采用结构化、循序渐进方法讲解编程基本原理。基于较早培养良好习惯的原则,本书通过强调结构化编程原则和软件工程原理介绍了计算机科学知识。本书所有完整的程序都采用连贯的风格,作者详细分析了这些程序,深入解释了编程风格和标准,在介绍具体的C++语言实现之前,通常都会总结相关的原理和原则,便于读者理解和掌握核心概念。本书特色扩展了对类的介绍,安排整章内容介绍模板、继承和异常处理重新编写了书中的程序,反映了C++的风格和功能增加了对字符串的介绍,反映了最新的ISO字符串类大量练习题为学生提供了练习编程的机会配套网站提供源代码下载:http://compsci.brookscole.com -
实用C语言程序设计教程陈建铎本书以目前微型机上流行的ANSI?C为版本,兼顾集成化环境Turbo?C编译程序,全面系统地介绍C语言基本语法和程序设计方法。内容包括:程序设计及C语言概述、C语言中的表达式、结构化程序设计、数组、函数、指针、结构体与共用体、输入输出与数据文件、C语言预处理程序、图形处理、综合实例,并突出了在工程中的应用。附录中介绍了C语言的字符集、保留字、库函数等。每章安排有适量练习题,以便学生练习与实践。?本书注重实用性和操作性,内容循序渐进,语言通俗易懂;例题丰富实用,易于边学边上机实践。本书可作为理工科大学本科教材,亦可供大专和高职类院校的学生使用。?本书配有电子教案,读者可从中国水利水电出版社网站(http://www.waterpub.?com.cn/softdown/)免费下载。 -
C语言程序设计上机指导与练习刘怀亮内容简介 全书共分为两部分,第一部分主要是C语言程序设计重点内容讲解、典型例题解析、知识点小结和各类习题解答;第二部分是实验指导,给出各部分的实验目的、实验内容与步骤。本书主要内容包括C语言程序设计开发环境,基本数据类型,运算符与表达式,顺序结构程序设计,选择结构程序设计,循环结构程序设计,函数,数组,指针,编译预处理,结构体、共同体和枚举类型,位运算和文件方面的内容。 本书语言通俗易懂,系统性强,例题和习题的选用既实用又丰富,例题配有详细的分析过程,强调编程技能的培养。 本书是一本面向中职中专院校的C语言程序设计上机指导教材,既可作为2005年出版的《C语言程序设计》配套教材,也可单独使用。 本书可作为中等职业学校计算机相关专业的教材、教学辅助用书,计算机等级考试、计算机专业自学考试和各类计算机培训教材,同时也可作为计算机相关专业技术人员的参考书。 http://www.cnbook.net/php/bookmsg.php?id=2023目录第一部分习题解析 第1章绪论2 1.1重点内容讲解2 1.2典型例题解析2 知识点小结3 习题一3 一、选择题3 二、填空题4 三、综合题4 第2章基本数据类型5 2.1重点内容讲解5 2.1.1标识符、常量和变量5 2.1.2数据类型5 2.2典型例题解析7 知识点小结8 习题二8 一、选择题8 二、填空题9 三、综合题9 第3章运算符与表达式10 3.1重点内容讲解10 3.1.1运算符的种类10 3.1.2表达式的概念11 3.1.3运算符的优先级和结合性11 3.2典型例题解析11 知识点小结13 习题三13 一、选择题13 二、填空题15 三、综合题15 第4章顺序结构程序设计17 4.1重点内容讲解17 4.2典型例题解析17 知识点小结19 习题四19 一、选择题19 二、填空题20 三、综合题20 第5章选择结构程序设计22 5.1重点内容讲解22 5.1.1if语句22 5.1.2switch语句23 5.2典型例题解析24 知识点小结25 习题五25 一、选择题25 二、填空题28 三、综合题29 第6章循环结构程序设计31 6.1重点内容讲解31 6.1.1while语句31 6.1.2do-while语句31 6.1.3for语句32 6.1.4循环结构的嵌套32 6.1.5break语句33 6.1.6continue语句33 6.1.7goto语句33 6.2典型例题解析34 知识点小结39 习题六39 一、选择题39 二、填空题42 三、综合题43 第7章函数45 7.1重点内容讲解45 7.1.1C语言函数的分类45 7.1.2函数的定义45 7.1.3函数返回值46 7.1.4函数的调用46 7.1.5变量的作用范围46 7.1.6变量存储类别47 7.1.7内部函数和外部函数47 7.2典型例题解析47 知识点小结49 习题七50 一、选择题50 二、填空题53 三、综合题54 第8章数组56 8.1重点内容讲解56 8.1.1一维数组56 8.1.2字符数组56 8.1.3二维数组56 8.1.4数组和函数56 8.2典型例题解析57 知识点小结60 习题八60 一、选择题60 二、填空题65 三、综合题65 第9章指针68 9.1重点内容讲解68 9.1.1指针与指针变量68 9.1.2指针和函数68 9.1.3指针和数组69 9.2典型例题解析70 知识点小结72 习题九74 一、选择题74 二、填空题79 三、综合题79 第10章编译预处理84 10.1重点内容讲解84 10.1.1宏定义84 10.1.2文件包含84 10.1.3条件编译84 10.2典型例题解析85 知识点小结85 习题十86 一、选择题86 二、填空题87 三、综合题88 第11章结构体、共同体和枚举类型89 11.1重点内容讲解89 11.1.1结构体89 11.1.2链表90 11.1.3共同体90 11.1.4枚举类型90 11.2典型例题解析90 知识点小结91 习题十一91 一、选择题91 二、填空题93 三、综合题94 第12章位运算96 12.1重点内容讲解96 12.1.1按位与96 12.1.2按位或96 12.1.3按位异或96 12.1.4求反运算96 12.1.5左移运算96 12.1.6右移运算96 12.1.7位运算赋值运算符97 12.1.8位段97 12.2典型例题解析97 知识点小结97 习题十二98 一、选择题98 二、填空题98 三、综合题99 第13章文件100 13.1重点内容讲解100 13.1.1文件类型指针100 13.1.2文件的打开100 13.1.3文件的关闭101 13.1.4文件的读写101 13.1.5文件的定位101 13.1.6文件检测函数101 13.2典型例题解析101 知识点小结102 习题十三102 一、选择题102 二、填空题103 三、综合题104 第二部分实验指导 第14章实验一——TurboC2.0 实验环境106 14.1实验目的106 14.2实验内容106 14.2.1TurboC2.0的安装和启动106 14.2.2运行一个C语言程序的 一般过程106 14.2.3TurboC2.0主菜单的介绍107 14.2.4几个简单的TurboC实验程序111 第15章实验二——基本数据类型、 运算符与表达式113 15.1实验目的113 15.2实验内容与步骤113 第16章实验三——顺序结构程序设计116 16.1实验目的116 16.2实验内容与步骤116 第17章实验四——选择结构程序设计119 17.1实验目的119 17.2实验内容与步骤119 第18章实验五——循环结构程序设计127 18.1实验目的127 18.2实验内容与步骤127 第19章实验六——函数134 19.1实验目的134 19.2实验内容与步骤134 第20章实验七——数组146 20.1实验目的146 20.2实验内容与步骤146 第21章实验八——指针及其运算151 21.1实验目的151 21.2实验内容与步骤151第22章实验九——编译预处理157 22.1实验目的157 22.2实验内容与步骤157第23章实验十——结构体、共同体 和枚举类型160 23.1实验目的160 23.2实验内容与步骤160 第24章实验十一——位运算170 24.1实验目的170 24.2实验内容与步骤170 第25章实验十二——文件172 25.1实验目的172 25.2实验内容与步骤172 第26章实验十三——C语言综合实验一182 26.1实验目的182 26.2实验内容与步骤182 第27章实验十四——C语言综合实验二200 27.1实验目的200 27.2实验内容与步骤200 -
全国计算机等级考试二级等级考试研究专家组编著本书根据教育部考试中心制定的2004年版《全国计算机等级考试考试大纲(二级c++语言程序设计)》编写而成。全书内容紧扣考试大纲,以典型考题的解析为主,重点突出、具有针对性。 本书共分为15章,每章分为3部分:第1部分为考试大纲要求的知识重点;第2部分为常见类型题目及解析;第3部分为习题和答案。本书最后部分为两套全真模拟笔试试卷和两套最新的笔试真题。本书的特点是:例题典型、解析详细清楚、易学易懂、针对性强。 本书配套光盘中,附有C什语言程序设计考试的笔试和上机模拟环境,以及本书上机指导部分的源程序,供读者进行实战演练。 本书可作为全国计算机等级考试(二级c抖语言程序设计)的辅导书,也可作为各高校、计算机培训班及自学者学习二级c++语言程序设计的参考书籍。 -
Visual C++ Visual Basic串并口开发技术工程应用实例导航求是科技 编著本书是《VisualC++串口通信技术与工程实践》作者求是科技推出的又一力作,凝聚了作者在工控领域多年的开发经验和心得体会。.针对工控领域串并口开发的特点,从实用角度出发,仔细筛选了7个串井口技术的工程案例。旨在通过实例的讲解,让读者进一步掌握串井口相关技术,达到在实际的工程项目中有所参考的目的。本书选择的7个案例都取材于实际的工程项目:有的是抽取了串口或并口为核心的一部分模块,有的是将项目稍加改动,使其通用性更强。..本书介绍的7个串并口案例都是最具代表意义的技术在实际工程中的应用,对应的程序内容取自于实际应用的项目(其中有的是全部,有的是以串、井口技术为主线的部分模块)。本书可以帮助读者掌握串井口技术的具体应用方法,并获得更多的行业项目的解决方案。本书专业性和实用性较强,对于利用vlsualC++/VisualBasic进行串井口通信的项目开发具有很高的参考价值。本书适合中高级程序员、软件开发人员和系统分析人员阅读和参考。... -
Visual C++程序设计教程梁建武本书主要介绍Visual?C++?6.0编程技术,主要内容包括:Visual?C++?6.0集成开发环境;程序开发基础;构造应用程序框架;MFC类库基础;菜单、工具栏与状态栏;对话框;控件与功能函数;高级控件;绘图与打印;访问数据库和文件读写;MFC的进程和线程;串口通信程序的开发;动态链接库。通过这些内容的学习,会使用户充分领略到Visual?C++事件驱动可视编程的威力所在。?本书内容实例丰富、讲解清晰、力求避免代码复杂冗长。简短的实例特别有助于初学者仿效理解、把握问题的精髓和对应用程序框架的整体认识;它的配套实训教材能让读者学会怎样开发一个大型的程序实例。?本书为高等学校计算机或相关专?VisualC++程序设计的教材或参考书,也可供广大工程技术人员学习参考。?本书配有电子教案,书中所有程序全部运行通过,读者可以从中国水利水电出版社网站(www.waterpub.com.cn/softdown/)上免费下载电子教案和书上例题对应的源程序?代码。 -
C++程序设计教程王珊珊 等编著本书凝聚了作者十余年的C/C++程序设计语言教学经验。其间又历经两年的试用,几易其稿,最终才得以面世。全书详细讲解了C++程序设计的基础知识,注重培养读者面向对象的实际编程能力。 本书特色 ■注重对读者算法思路的逻辑训练。 ■针对教学重点和难点,配有丰富的例题和习题。初学者在学习完相关章节的内容后,拿到题目,即能够独立编程,而不至于无从下手。 ■本书配有如下教学资料:本书全部例题的源代码、全部习题的解答、各章教学所用的PowerPoint讲稿。如果教师选用本书做教材,则可登录华章网站获取上述资料。 第一部分 面向过程的程序设计第1章 C++概述 1 1.1 计算机语言与程序 1 1.1.1 机器语言与程序 1 1.1.2 汇编语言与程序 1 1.1.3 高级语言与程序 2 1.2 从C到C++ 2 1.3 程序设计方法 3 1.3.1 结构化程序设计方法 3 1.3.2 面向对象的程序设计方法 3 1.4 简单的C++程序介绍 4 1.5 程序开发的步骤 5 习题1 5 第2章 数据类型、运算符和表达式 7 2.1 保留字和标识符 7 2.1.1 保留字 7 2.1.2 标识符 7 2.2 C++的基本数据类型 7 2.3 常量和变量 9 2.3.1 常量 9 2.3.2 符号常量 10 2.3.3 变量 11 2.4 基本运算符和表达式 11 2.4.1 C++运算符及表达式简介 11 2.4.2 算术运算符和算术表达式 12 2.4.3 运算优先级和结合性 12 2.4.4 关系运算符和关系表达式 13 2.4.5 逻辑运算符和逻辑表达式 13 2.4.6 位运算符和位运算表达式 13 2.4.7 自增、自减运算符和表达式 15 2.4.8 赋值运算符和赋值表达式 15 2.4.9 逗号运算符和逗号表达式 16 2.4.10 sizeof( ) 运算符和表达式 16 2.4.11 逻辑表达式运算优化时的副作用 16 2.5 类型转换 17 2.5.1 赋值时的自动类型转换 17 2.5.2 各种类型运算量混合运算时的自动类型转换 18 2.5.3 强制类型转换 19 习题2 19 第3章 简单的输入/输出 20 3.1 传统的输入/输出函数实现方法 20 3.2 cin 21 3.2.1 输入十六进制或者八进制数据 23 3.2.2 输入字符数据 24 3.3 cout 26 3.3.1 输出八进制数、十六进制数和用科学计数法表示的数 28 3.3.2 输出字符或字符串 29 3.4 总结 29 习题3 30 第4章 C++的流程控制 31 4.1 算法概述 31 4.1.1 算法的作用和类别 31 4.1.2 算法的设计原则 32 4.1.3 算法的表示工具 33 4.1.4 结构化程序设计中基本结构的表示 34 4.2 C++程序的结构和语句 36 4.3 选择结构语句的使用 38 4.3.1 if语句 38 4.3.2 if语句的嵌套使用 41 4.3.3 条件运算符 42 4.3.4 开关语句 43 4.4 循环结构语句的使用 46 4.4.1 goto语句及标号的使用 46 4.4.2 while语句 47 4.4.3 for语句 47 4.4.4 do-while语句 49 4.4.5 break语句和continue语句 50 4.4.6 循环的嵌套 51 4.5 控制语句的应用举例 52 习题4 57 第5章 函数 58 5.1 概述 58 5.2 函数的定义与调用 58 5.2.1 函数的定义 58 5.2.2 函数的调用 60 5.2.3 函数的参数 62 5.3 函数的原型说明 63 5.4 函数的嵌套调用和递归调用 64 5.4.1 函数的嵌套调用 64 5.4.2 函数的递归调用 68 5.5 内联函数 71 5.6 函数重载 72 5.6.1 参数类型不同的重载函数 72 5.6.2 参数个数不同的重载函数 72 5.7 使用C++系统函数 73 5.8 作用域和存储类别 74 5.8.1 作用域 74 5.8.2 存储类别 77 5.9 程序的多文件组织 82 5.9.1 内部函数和外部函数 82 5.9.2 多文件组织的编译和连接 83 习题5 84 第6章 编译预处理 85 6.1 宏定义 85 6.1.1 不带参数的宏定义 85 6.1.2 带参数的宏定义 87 6.2 "文件包含"处理 89 *6.3 条件编译 90 习题6 92 第7章 数组 93 7.1 数组的定义及应用 93 7.1.1 一维数组的定义及使用 93 7.1.2 一维数组做函数参数 96 7.1.3 多维数组的定义及使用 105 7.1.4 二维数组名用做函数参数 107 7.2 字符数组的定义及应用 111 7.2.1 字符数组的定义 111 7.2.2 字符数组的初始化 112 7.2.3 字符数组的使用 112 7.2.4 字符串和字符串结束标志 112 7.2.5 字符数组的输入/输出 113 7.2.6 字符串处理函数 115 7.2.7 字符数组应用举例 117 习题7 119 第8章 结构体、共用体和枚举类型 121 8.1 结构体的定义及应用 121 8.1.1 结构体类型的定义 121 8.1.2 结构体类型变量的定义 122 8.1.3 结构体类型变量及其成员的引用 123 8.1.4 结构体数组 126 8.2 共用体的定义及应用 129 8.2.1 共用体类型及其变量的定义 129 8.2.2 共用体类型变量的引用 129 8.2.3 共用体数据类型的特点 130 8.3 枚举类型 131 8.3.1 枚举类型的定义 131 8.3.2 枚举类型变量的定义 131 8.3.3 枚举类型变量的使用 131 习题8 133 第9章 指针和引用 135 9.1 指针和指针变量 135 9.1.1 指针的概念 135 9.1.2 指针变量的定义 135 9.1.3 有关指针的运算符 & 和 * 135 9.1.4 指针变量的初始化 136 9.1.5 直接访问和间接访问 136 9.1.6 地址值的输出 138 9.2 指针做函数参数 139 9.2.1 基本类型量做函数参数 139 9.2.2 指针变量做函数参数 140 9.2.3 从被调函数中返回信息的几种方法 141 9.3 指针和指向数组的指针 142 9.3.1 指针和一维数组 142 9.3.2 一维数组元素指针做函数参数 145 9.3.3 指针和字符串 148 9.3.4 多维数组指针(二维数组) 151 9.4 指针数组 155 9.4.1 指针数组的定义和使用 155 9.4.2 使用指针数组处理二维数组 155 9.4.3 利用字符指针数组处理字符串 156 9.4.4 指针数组做 main 函数的参数 158 9.5 指向指针的指针 159 9.6 指针和函数 159 9.6.1 函数指针 159 9.6.2 返回指针值的函数(指针函数) 162 9.7 指针小结 162 9.8 引用和其他类型的指针 163 9.8.1 引用类型变量的说明及使用 163 9.8.2 引用和函数 164 9.8.3 const类型量 165 9.9 存储空间的动态分配和释放 167 9.9.1 new和delete运算符 167 9.9.2 使用new和delete运算符的注意事项 168 9.10 链表及其应用 169 9.10.1 结构体及指针 169 9.10.2 链表概念的引入 170 9.10.3 有关链表的算法 171 习题9 176 第二部分 面向对象的程序设计第10章 类和对象 179 10.1 类和对象的定义 179 10.1.1 从结构体到类 179 10.1.2 类和对象的定义形式 179 10.1.3 对象成员的访问 180 10.1.4 成员函数的定义 181 10.1.5 对象的存储空间 183 10.1.6 定义类和对象的有关说明 183 10.2 初始化对象、撤销对象 185 10.2.1 构造函数和析构函数 185 10.2.2 缺省构造函数和缺省析构函数 190 10.2.3 拷贝构造函数和缺省拷贝构造函数 191 10.2.4 拷贝构造函数的调用时机 193 10.2.5 利用构造函数进行类型转换 195 10.3 成员函数的特性 196 10.3.1 内联函数和外联函数 196 10.3.2 成员函数的重载 197 10.4 构造函数和对象成员 199 10.5 this指针 201 习题10 202 第11章 类和对象的其他特性 211 11.1 静态成员 211 11.1.1 静态数据成员 211 11.1.2 静态成员函数 212 11.2 友元 213 11.2.1 友元函数 213 11.2.2 一个类的成员函数可作为另一个类的友元函数 215 11.2.3 友元类 216 习题11 216 第12章 继承和派生 218 12.1 继承的基本概念 218 12.2 单一继承 218 12.2.1 公有继承(派生) 219 12.2.2 私有继承(派生) 222 12.2.3 保护继承(派生) 223 12.2.4 private成员和protected成员的区别 223 12.3 多重继承 223 12.4 基类成员的初始化 225 12.4.1 基类的构造函数和析构函数的调用顺序 225 12.4.2 对象成员构造函数和析构函数的调用顺序 226 12.5 二义性和支配规则 228 12.5.1 二义性(访问冲突) 228 12.5.2 支配规则 231 12.6 虚基类 232 12.7 访问基类成员和访问对象成员的成员 235 12.7.1 访问对象成员的成员 235 12.7.2 访问基类成员 236 12.8 赋值兼容 237 习题12 238 第13章 多态性 244 13.1 函数重载 244 13.2 运算符重载 245 13.2.1 运算符重载的几点说明 245 13.2.2 运算符重载的两种方式 246 13.2.3 类型转换函数-将本类对象转换成其他类对象 258 13.2.4 其他运算符的重载 259 13.2.5 字符串类 269 13.3 静态联编 275 13.4 动态联编和虚函数 276 13.4.1 虚函数的定义和使用 276 13.4.2 虚析构函数 280 13.5 纯虚函数和抽象类 282 习题13 290 第14章 输入/输出流 296 14.1 输入/输出基本概念 296 14.1.1 输入/输出流 296 14.1.2 文本流、二进制流和数据文件 296 14.1.3 缓冲 296 14.2 输入/输出流类体系 297 14.2.1 基本输入/输出流类体系 297 14.2.2 用运算符重载实现标准设备的输入/输出 298 14.2.3 缺省的输入/输出格式 299 14.3 输入/输出格式控制 301 14.3.1 使用成员函数进行格式控制 301 14.3.2 使用操纵算子进行格式控制 305 14.4 使用成员函数实现输入/输出 307 14.4.1 输出函数 308 14.4.2 输入函数 308 14.5 重载插入和提取运算符 311 14.6 文件流类 315 14.6.1 文件流类体系 315 14.6.2 文件的打开和关闭 315 14.6.3 文本文件的读写 318 14.6.4 二进制文件的读写 323 14.7 文件的随机访问 325 14.8 输入/输出流的出错处理 327 习题14 329 第15章 模板 331 15.1 概述 331 15.2 函数模板 332 15.2.1 定义函数模板 333 15.2.2 模板函数的重载 336 15.2.3 函数模板的重载 338 15.2.4 多重数据类型参数的模板函数 339 15.3 类模板 341 15.3.1 定义类模板 341 15.3.2 类模板的友元函数 346 15.3.3 类模板的特殊处理 349 15.4 总结 350 习题15 351 附录A ASCII码表 352 附录B 常用库函数 353 参考文献 356 前言 编写背景教育部高教司早在"八五"期间已经把计算机基础教学纳入高校的重要基础课程中,提出了"加强工科非计算机专业计算机基础教学工作的几点意见",对计算机基础教学的地位和任务(培养目标)、课程体系和教学内容、教学方法和手段、师资和教材建设以及基础硬件设施的建设等多方面提出了指导性的意见。其中最重要的一点是提出了计算机基础教学的三层次教学模式(即计算机文化基础、计算机技术基础和计算机应用基础)和课程体系。高级程序设计语言类课程属于课程体系的第二个层次。经过多年的教学实践,教育部高教司于2003年又提出了"进一步加强高校计算机基础教学的几点意见(征求意见稿)"(俗称计算机基础教育白皮书),针对计算机基础教学的现状与发展,提出了计算机基础教学改革的指导思想;按照分类、分层次组织教学的思路,提出了计算机基础课教学内容的知识结构与课程设置。在附件中给出了六门计算机基础教学的典型核心课程,并给出了这六门课程的教学大纲。这六门课程包括:大学计算机基础、计算机程序设计基础(含C和C++)、计算机硬件技术基础(微机原理与接口、单片机原理与应用)、数据库技术与应用、多媒体技术与应用、网络技术与应用。另外,全国高校计算机基础教育研究会成立了"高等院校计算机基础教育改革课题研究组"。该研究组于2004年出版了课题报告《中国高等院校计算机基础教育课程体系2004》(简称CFC 2004),对国内计算机基础教育进行了全面的总结和系统研究,是指导计算机教育改革的重要文件。本书正是依据上述"白皮书"中给出的"计算机程序设计基础(C++)"的大纲编写而成,同时也满足CFC 2004中所给的C++语言的主要内容。 编写内容和教学要求目前,各大专院校非计算机专业,尤其是电类专业,普遍选用程序设计语言C++作为程序设计教学的第一语言。为什么要选用面向对象的程序设计语言C++呢?因为目前市场上绝大部分通用的计算机软件开发工具都是基于面向对象的编程工具,如Visual C++、Delphi、Java和C# .NET等。随着计算机应用的普及,迫切需要大专院校学生具备面向对象的编程能力才能够适应社会的需求。本书就是为了满足这个层次的学生需求而编写的。本书内容是使用面向对象通用软件开发工具的基础。本书第1~9章是结合C++语言的基本语法,介绍传统的面向过程的程序设计。内容包括C++语言基本数据类型、基本运算、基本输入/输出、结构化流程控制语句、函数、编译预处理、数组、结构体、指针和链表等内容,基本上是传统的C程序设计语言的内容。第二部分第10~15章是面向对象的程序设计,以面向对象的三大特点为主线,讲述类和对象的基本概念,类的封装、继承和多态,函数模板和类模板,并讲述了输入/输出流类体系、文件操作等内容。本书作者主张的教学理念是注重程序设计算法的教学,注重对学生算法思路的逻辑训练,而不拘泥于语法要素的细枝末节。本书通俗易懂,各章节配有大量的例题和习题,主要是针对各章的教学难点和重点以及各种算法而设计的。在选择例题和习题时,尽量涵盖目前程序设计语言课程的各种算法类型。使初学者拿到习题后,能够在本书例题中找到相似的例子,这样对于初学者来说,解题就不是一件非常困难的事情了。除了进行课本教学外,教师还可以根据实际情况选择安排课程设计,选用适合不同层次学生的课程设计题目,加强学生动手编制较大规模程序的能力。有关课程设计的书可参考机械工业出版社出版的《C++程序设计课程设计》(ISBN: 7-111-14565-8)。本书第1、2、9~14章由王珊珊编写,第5~8章由臧洌编写,第3、4、15章由张志航编写,全书由王珊珊负责统稿。讲述本书全部内容的建议学时为:理论教学56学时,课程设计16学时(内容另行安排),上机实验60学时。本书的实验环境是Visual C++ 6.0,本书中全部的例题和习题均在该环境中通过编译和运行。本书可能会存在疏漏、不妥和错误之处,恳请广大读者指正。联系方法作者电子邮件地址:shshwang@nuaa.edu.cn(王珊珊)coralwang2002@yahoo.com. cn(王珊珊)zangliwen@yahoo.com.cn(臧洌)zqwzzh@nuaa.edu.cn(张志航) 作 者 2005年10月20日于南京航空航天大学
