欢迎来到中国铁道出版社有限公司官网!
$itImage.title$

大学C/C++程序设计案例教程

书      号:9787113097936

丛  书 名:高等学校计算机基础教育规划教材

作      者:刘天立 王乾 孙百瑜

译      者:

开      本:16开

装      帧:平装

正文语种:

出  版 社:中国铁道出版社有限公司

定      价:28

  • 内容简介

    本书是根据教育部计算机基础课程教学指导分委员会《计算机基础课程教学基本要求》有关理工类专业“程序设计基础”课程教学要求组织编写的。全共分为12章,依次为C/C++程序设计基础、数据类型和表达式、控制结构、函数(一)、数组、指针与引用、函数(二)、编译预处理、自定义数据类型、类和对象、继承和多态、C++流等。1~6章主要是C语言的内容;7~9章的内容主要是C++的面向过程部分;10~12章的内容主要是C++的面向对象部分。
  • 前言

    进入21世纪后,计算机基础教育步入了新的发展阶段。信息技术教育在我国中小学中全面开展,计算机教育的起点从大学下移到中小学。面对大学计算机教育不再是零起点的现实,面对其他学科专业教学中对信息技术应用的极大期望,面对社会用人单位对大学生计算机能力和信息素质要求越来越高的现实要求,计算机基础教育的基础性地位越来越受到重视,计算机基础教育的功能定位越来越呈现出“面向应用、突出实践、着眼信息素养”的特点。
    计算机在专业领域中的典型应用主要有两种:一种是直接使用专业软件分析和解决专业领域中的问题;另一种是设计、开发计算机应用系统以解决专业问题。因此,计算机基础教学不仅要培养学生掌握必要的计算机基础知识,熟悉使用现代计算环境,而且要掌握典型的信息处理方法及其应用系统开发的方法。其中,掌握程序设计方法是从事各类系统开发的基础,同时也有助于理解和掌握计算机领域中的大多数概念。
    教育部高等学校计算机基础课程教学指导委员会起草的“计算机基础课程教学基本要求”(以下简称“基本要求”)征求意见稿中,已经把理工类专业“程序设计基础”课程教学基本要求中的内容改成了C/C++的面向过程部分和C++的面向对象部分,以适应各专业领域的应用与科学计算的需要,并建议把“程序设计基础”作为大多数专业的必修课。
    C语言具有结构清晰、语法简练、功能强大、可移植性好等优点。C语言是一种高级语言,同时还具有低级语言的许多特点,不仅可以设计系统软件,也可以设计应用软件。随着计算机应用的不断深入,支持面向对象程序设计的C++语言应运而生。C++不仅保留了C语言高效简洁的特点,更重要的是它支持面向对象的程序设计方法,它的机制独特、功能强大、高效而实用,特别适合开发大型系统。在计算机基础教学领域中,C++蓬勃发展,已成为多数大学理工类非计算机专业程序设计课程的首选语言。
    当前有两种教学模式:
    第一种,先学习C语言,然后学习C++。由于C语言与C++的面向过程部分有很多内容是重复的,所以,虽然这种模式教学效果较好,但耗费的时间比较长,效率不高。
    第二种,C语言和C++作为一门课,前面部分是C语言,后面部分是C++。很多C/C++教材都采用这种模式,C语言和C++界限分明。这种模式教学,学生很难适应从C语言到C++的过渡,导致C语言部分学习效果好,C++部分学习效果不好。
    本书采用的模式与以往的模式不同,本书以C语言内容为主,融入了部分C++的内容,模糊了C和C++的界限。例如,第1章只介绍了简单的I/O流的使用,第2章的变量初始化、强制类型转换,第3章的for语句及以后各章中均有C++的内容。C和C++之间没有故意分离,也没有牵强地穿插在一起,而是根据内容的连贯性,由浅入深,循序渐进,有机结合在一起,从C语言平缓自然地过渡到C++。
    本书的主要特色有:
    第一,本书按照教育部计算机基础课程教学指导委员会起草的“计算机基础课程教学基本要求”征求意见稿中有关理工类专业“程序设计基础”课程教学基本要求组织编写,内容面向应用,突出实践。
    第二,针对各章节的内容,精心设计了很多大小不同的案例,其中两个大型案例“小型计算器”和“学生成绩管理”贯穿了全书的多章内容。
    第三,以程序设计为主,语法教学为辅。本书的第1章开始就是程序实例,首先让读者对程序设计有一个感性认识,然后展开相关知识的阐述。第10章在介绍面向对象程序设计的相关概念之前,也编排了一个面向对象程序的实例,程序和概念相辅相成,能够使读者尽快接受面向对象程序设计的思想方法。
    第四,用通俗的语言和形象的比喻讲解抽象的概念。比如,第2章变量的概念,初学者很容易把变量和代数中的符号混淆,作者在这部分安排了一个例题:交换变量的值,并把这个问题比喻成一杯酒和一杯醋的交换,继而引出了溢出的概念。
    第五,在内容编排上,做了大胆的改革。前6章的程序按C语言的传统风格编写,后6章的程序按C++的风格编写;把算法知识编排在第3章控制结构内;把关系运算、逻辑运算和条件运算编排在选择结构中;函数分成2章等。这种编排,使内容前后连贯,前面刚学到的内容,接下来就要用到,既加深基础知识的理解,又掌握了理论知识的应用。
    这一切的精心设计,都是为了让读者能够轻松、愉快地学会C/C++语言的基础知识,掌握程序设计的基本方法和基本技能。
    本书中所有的语句、程序段、函数、程序等都在Microsoft Visual C++ 6.0集成开发环境下运行通过,其中符合C++编程风格的程序又在Microsoft Visual C++ 2008集成开发环境下运行通过,确保它们都是正确无误的。
    本书共分为12章,依次为C/C++程序设计基础、数据类型和表达式、控制结构、函数(一)、数组、指针与引用、函数(二)、编译预处理、自定义数据类型、类和对象、继承和多态、C++流。其中,1~6章主要是C语言的内容,并有少部分C++的内容;7~9章主要是C++的面向过程部分;10~12章主要是C++的面向对象部分。各章之间的内容连贯有序,衔接自然,成为一个有机的整体。
    近年来,哈尔滨理工大学计算中心在计算机基础教学领域做了很多探索和研究工作,已经出版的《大学计算机基础》得到了多方好评,并被多所院校选用。本书早在两年前就开始了策划工作,在此期间计算中心主任张殿龙老师负责审阅了全书,组织了多次研讨,征求多方意见,并做了很多指导工作。本书由长期从事程序设计教学和科研的一线教师编写,第1、5章由赵丽萍编写,第2、4章由王宏编写,第3、12章由邓颖编写,第6、7章由孙百瑜编写,第9、10章由王乾编写,第8、11章由刘天立编写。全书由刘天立负责统稿。
    在本书编写过程中,贾丽娟做了很多修改工作,李大夜、吴宏伟、朱小菲、孙博文等教师提供了一些有用的材料,并提出了一些修改意见,在此一并表示感谢。
    由于时间仓促,加之编者水平有限,书中疏漏和不足之处在所难免,敬请读者批评指正。
  • 目录

    第1章 C/C++程序设计基础 1
    1.1 程序实例 1
    1.2 C/C++语言概述 3
    1.2.1 C/C++的产生和发展 3
    1.2.2 C/C++的特点 4
    1.3 程序的实现 5
    1.3.1 程序的开发过程 5
    1.3.2 Visual C++ 6.0集成开发环境的使用 6
    1.3.3 Visual C++ 2008集成开发环境的使用 9
    1.4 数据的输入/输出 11
    1.4.1 I/O流 11
    1.4.2 预定义的插入符和提取符 11
    1.4.3 简单的I/O格式控制 14
    1.4.4 案例:输出字符画 15
    小结 16
    习题 16
    第2章 数据类型和表达式 18
    2.1 字符集、标识符与关键字 18
    2.1.1 字符集 18
    2.1.2 标识符与关键字 18
    2.2 数据类型 19
    2.3 常量与变量 20
    2.3.1 常量 20
    2.3.2 变量 21
    2.3.3 符号常量 22
    2.4 基本数据类型 23
    2.4.1 整数数据 23
    2.4.2 实型数据 25
    2.4.3 字符型数据 27
    2.5 运算符与表达式 27
    2.5.1 算术运算符与算术表达式 27
    2.5.2 自增/自减运算 28
    2.5.3 赋值运算符与赋值表达式 29
    2.5.4 逗号运算符与逗号表达式 30
    2.5.5 求字节运算符sizeof 30
    2.5.6 运算符的优先级和结合性 30
    2.6 数据类型转换的规则 31
    2.6.1 类型自动转换 31
    2.6.2 赋值转换 32
    2.6.3 强制类型转换 32
    2.7 案例:学生的总分及平均分计算 32
    小结 33
    习题 33
    第3章 控制结构 35
    3.1 算法 35
    3.1.1 算法的概念 35
    3.1.2 算法的描述 35
    3.1.3 三种基本结构 36
    3.1.4 算法的特性 37
    3.2 顺序结构程序设计 37
    3.2.1 简单语句 37
    3.2.2 复合语句 39
    3.3 选择结构程序设计 39
    3.3.1 关系运算与逻辑运算 40
    3.3.2 条件运算符 42
    3.3.3 if语句 42
    3.3.4 案例:成绩等级判定(一) 44
    3.3.5 switch语句 45
    3.3.6 案例:成绩等级判定(二) 46
    3.4 循环结构程序设计 47
    3.4.1 while循环结构 48
    3.4.2 案例:计算平均成绩(一) 49
    3.4.3 do…while循环结构 50
    3.4.4 for循环结构 51
    3.4.5 案例:计算平均成绩(二) 52
    3.4.6 循环的嵌套 53
    3.5 跳转语句 55
    3.5.1 continue语句 55
    3.5.2 break语句 55
    3.5.3 goto语句 57
    3.6 案例:小型计算器(一) 57
    小结 58
    习题 59

    第4章 函数(一) 61
    4.1 初识函数 61
    4.1.1 函数的分类 61
    4.1.2 函数的定义 63
    4.2 函数的参数和函数的值 64
    4.2.1 形式参数和实际参数 64
    4.2.2 函数的返回值 66
    4.3 函数的调用 66
    4.3.1 函数调用的一般形式 66
    4.3.2 函数调用方式 67
    4.3.3 函数原型 69
    4.3.4 函数调用的执行过程 72
    4.3.5 函数的嵌套调用 72
    4.4 函数的递归调用 73
    4.5 案例:小型计算器(二) 76
    小结 78
    习题 78
    第5章 数组 81
    5.1 一维数组 81
    5.1.1 一维数组的定义 82
    5.1.2 一维数组元素的引用 83
    5.1.3 一维数组的初始化 84
    5.1.4 案例:排序算法 86
    5.2 二维数组 89
    5.2.1 二维数组的定义 89
    5.2.2 二维数组元素的引用 89
    5.2.3 二维数组的初始化 91
    5.2.4 案例:简单学生成绩管理 93
    5.3 字符串与字符数组 95
    5.3.1 字符数组的定义 95
    5.3.2 字符串和字符串结束标志 95
    5.3.3 字符数组的初始化 95
    5.3.4 字符数组的引用 96
    5.3.5 字符数组的输入/输出 97
    5.3.6 字符串处理函数 100
    5.3.7 案例:输入课程的名称按字母顺序排列输出 102
    小结 103
    习题 104

    第6章 指针与引用 107
    6.1 指针 107
    6.2 指针变量 108
    6.2.1 指针变量的定义 108
    6.2.2 指针运算符与指针变量赋初值 109
    6.2.3 指针变量的赋值运算 110
    6.3 指向指针的指针 111
    6.4 指针与数组 112
    6.4.1 指向数组的指针 112
    6.4.2 指针变量的运算 113
    6.4.3 指针与字符串 116
    6.4.4 指针数组 117
    6.4.5 案例:统计学生成绩 118
    6.5 引用 119
    6.6 动态存储分配 120
    6.7 案例:动态存储任意行杨辉三角 122
    小结 123
    习题 123
    第7章 函数(二) 126
    7.1 函数的参数传递 126
    7.1.1 值传递 126
    7.1.2 引用传递 128
    7.1.3 数组名作函数参数 130
    7.1.4 案例:在不同函数中共享数据 133
    7.2 函数与指针 134
    7.2.1 指针函数 134
    7.2.2 指向函数的指针 136
    7.3 内联函数 137
    7.4 函数重载 138
    7.5 带有缺省参数值的函数 140
    7.6 变量的作用域、生存期和存储类别 141
    7.6.1 变量的作用域 141
    7.6.2 变量的生存期与存储类别 143
    7.6.3 内部函数与外部函数 146
    7.7 名字空间 147
    7.8 案例:小型计算器(三) 148
    7.9 案例:学生成绩管理(一) 150
    小结 152
    习题 153
    第8章 编译预处理 154
    8.1 宏定义 154
    8.2 文件包含 159
    8.3 条件编译 160
    小结 162
    习题 163
    第9章 自定义数据类型 165
    9.1 结构体 165
    9.1.1 结构体类型的声明 165
    9.1.2 结构体类型变量 167
    9.1.3 结构体类型变量的初始化 168
    9.1.4 结构体类型变量的引用 169
    9.1.5 结构体类型数组 170
    9.1.6 指向结构体类型数据的指针 173
    9.1.7 结构体与函数 174
    9.2 枚举类型 179
    9.3 用typedef定义类型 181
    9.4 位运算 181
    9.5 案例:学生成绩管理(二) 182
    小结 184
    习题 185
    第10章 类和对象 188
    10.1 面向对象方法的基本特征 188
    10.1.1 一个简单的面向对象的C++程序 188
    10.1.2 基本概念 189
    10.2 类与对象 190
    10.2.1 类的声明 190
    10.2.2 类的成员函数 191
    10.2.3 对象 193
    10.2.4 数据封装 194
    10.3 构造函数与析构函数 195
    10.3.1 构造函数 195
    10.3.2 拷贝构造函数 196
    10.3.3 析构函数 199
    10.4 对象数组和对象指针 200
    10.4.1 对象数组 200
    10.4.2 指向对象的指针 202
    10.4.3 this指针 203
    10.4.4 对象的动态建立与释放 206
    10.5 类的静态成员 207
    10.5.1 静态数据成员 207
    10.5.2 静态成员函数 208
    10.6 类的组合 209
    10.7 友元 210
    10.7.1 友元函数 211
    10.7.2 友元函数为其他类的成员函数 211
    10.7.3 友元类 212
    10.8 案例:小型计算器(四) 214
    10.9 案例:学生成绩管理(三) 215
    小结 217
    习题 217
    第11章 继承和多态 220
    11.1 类的继承 220
    11.1.1 派生类的声明 221
    11.1.2 派生类的生成过程 222
    11.1.3 派生类的构造函数和析构函数 224
    11.1.4 多继承 227
    11.1.5 赋值兼容规则 232
    11.2 多态性 233
    11.2.1 虚函数 234
    11.2.2 纯虚函数与抽象类 236
    11.3 运算符重载 238
    11.3.1 运算符重载为一般函数 238
    11.3.2 运算符重载为友元函数 239
    11.3.3 运算符重载为成员函数 240
    11.4 模板 242
    11.4.1 模板的概念 242
    11.4.2 函数模板的写法 242
    11.4.3 类模板的写法 243
    11.5 案例:人员信息管理 244
    小结 247
    习题 248
    第12章 C++流 249
    12.1 流的概念 249
    12.2 I/O格式的控制 251
    12.2.1 ios类中的格式化常量 251
    12.2.2 ios类中的成员函数 252
    12.2.3 预定义的操纵算子 254
    12.3 文件流 255
    12.3.1 文件的概念 255
    12.3.2 打开及关闭文件 256
    12.3.3 文本文件的访问操作 257
    12.3.4 二进制文件的访问操作 260
    12.4 字符串流 261
    12.5 案例:用文件存储学生成绩 262
    小结 264
    习题 264
    附录A ASCII字符编码一览表 265
    附录B 运算符的优先级和结合性一览表 267
    参考文献 269
  • 作者介绍

    主要著译者顺序姓名学历职称学科专长通讯地址1 刘天立 硕士 副教授 计算机基础教育工作单位 哈尔滨理工大学邮政编码 150080电话 131008745952 工作单位 邮政编码 电话 3 工作单位 邮政编码 电话 审校者(主审者) 学历 工作单位 邮政编码 电话 职称 工作单位 邮政编码 电话
  • 编辑推荐

    本书的主要特色:第一,本书是按照教育部计算机基础课程教学指导分委员会 的《计算机基础课程教学基本要求》 中有关理工类专业“程序设计基础”课程教学要求组织编写,内容面向应用,突出实践。第二,针对各章节的内容,精心设计了很多大小不同的案例,其中两个大型案例小型计算器和学生成绩管理贯穿全书的多章内容。案例能使读者了解C语言和C++的用途,激发他们的学习热情;案例能使读者加深对理论知识的掌握;案例还能使读者学会把理论知识应用到具体的程序设计中去。第三,以程序设计为主,语法教学为辅。本书的第1章开始就是程序实例,首先让读者对程序设计有一个感性认识,然后展开相关知识的阐述。第1章,在介绍面向对象程序设计的相关概念之前,也编排了一个面向对象程序的实例,程序和概念相辅相承,能够使读者尽快接受面型对象程序设计的思想方法。第四,用通俗的语言和形象的比喻讲解抽象的概念。比如,第二章变量的概念,初学者很容易把变量和代数中的符号混淆,作者在这部分安排了一个例题:交换变量的值,并把这个问题比喻成一杯酒和一杯醋的交换,继而引出溢出的概念。再比如,第六章指针的概念,初学者很难接受,作者用一个“大学生找宿舍”的故事引出了指针的概念。第五,在内容编排上,作了大胆的改革。前六章的程序按C语言的传统风格编写,后六章的程序按C++的风格编写;把算法知识编排在第三章控制结构内;把关系运算、逻辑运算和条件运算编排在选择结构;函数分成两章等。这种编排,使内容前后连贯,前面刚学到的内容,接下来就要用到,既加深基础知识的理解,又掌握了理论知识的应用方法。
  • 书评书荐

  • 附件下载

图书推荐