| 作者 |
| 刘春茂、李琪 |
| 丛书名 |
| 出版社 |
| 清华大学出版社 |
| ISBN |
| 9787302515210 |
| 简要 |
| 简介 |
| 内容简介书籍计算机书籍 《C 程序开发案例课堂》以零基础讲解为宗旨,用实例引导读者深入学习,采取【基础入门→核心技术→高级应用→项目开发实战】的讲解模式,深入浅出地讲解C 的各项技术及实战技能。 《C 程序开发案例课堂》第1篇【基础入门】主要讲解C 基本概念、C 的程序结构、数据类型、灵活使用运算符、程序流程控制等;第2篇【核心技术】主要讲解函数的应用、数组与字符串、指针、结构体、共用体和枚举类型、面向对象编程、构造函数和析构函数等;第3篇【高级应用】主要讲解运算符的重载、类的继承、虚函数和抽象类、C 操作文件、异常处理、模板与类型转换、容器和迭代器等;第4篇【项目开发实战】主要讲解开发计算器助手、开发汽车信息管理系统、开发银行交易系统、开发学校职工信息管理系统。 《C 程序开发案例课堂》适合任何想学习C 编程语言的人员,无论您是否从事计算机相关行业,无论您是否接触过C 语言,通过本书学习均可快速掌握C 在项目开发中的知识和技巧。 |
| 目录 |
| 录 第1篇 基 础 入 门 第1章 揭开C 的神秘面纱我的第一个C 程序 3 1.1 认识C 4 1.2 C 的优势 5 1.3 常见的C 开发环境 6 1.4 新手的福音Visual Studio 2017集成环境 8 1.4.1 安装Visual Studio 2017的条件 8 1.4.2 安装Visual Studio 2017 8 1.5 熟悉Visual Studio 2017开发界面 10 1.5.1 创建项目 10 1.5.2 菜单栏 12 1.5.3 工具栏 13 1.5.4 解决方案资源管理器 13 1.5.5 【属性】面板 14 1.5.6 【错误列表】面板 14 1.5.7 【输出】面板 14 1.6 实战演练第一个C 项目 15 1.7 理解C 语言的翻译过程 16 1.8 大神解惑 17 1.9 跟我学上机 18 第2章 零基础开始学习C 的程序结构 19 2.1 分析C 程序的结构 20 2.1.1 #include指令及头文件 20 2.1.2 main函数 21 2.1.3 变量声明和定义 22 2.1.4 函数的声明 24 2.1.5 关于注释 25 2.2 编译前的预处理 26 2.3 输入和输出数据 29 2.3.1 cout输出数据 29 2.3.2 cin读取输入数据 32 2.4 命名空间 33 2.4.1 命名空间的定义 33 2.4.2 using关键字 34 2.4.3 命名空间std 35 2.5 实战演练经典的入门程序 36 2.6 大神解惑 38 2.7 跟我学上机 38 第3章 程序中的数据种类数据类型 39 3.1 标识符 40 3.1.1 保留字 40 3.1.2 标识符命名 41 3.2 变量与常量 41 3.2.1 变量 41 3.2.2 常量 44 3.3 基本变量类型 46 3.3.1 整数类型 46 3.3.2 字符类型 48 3.3.3 浮点数类型 50 3.3.4 布尔类型 51 3.4 查询变量的类型和内存空间大小 52 3.5 自定义数据类型 53 3.6 实战演练对比不同数据类型的长度 57 3.7 大神解惑 57 3.8 跟我学上机 58 第4章 谁来操作数据灵活使用运算符 59 4.1 运算符概述 60 4.1.1 赋值运算符 60 4.1.2 算术运算符 61 4.1.3 关系运算符 62 4.1.4 逻辑运算符 64 4.1.5 自增和自减运算符 65 4.1.6 位逻辑运算符 66 4.1.7 移位运算符 68 4.1.8 三元运算符 69 4.1.9 逗号运算符 70 4.1.10 类型转换运算符 71 4.2 运算符优先级和结合性 72 4.2.1 运算符优先级 72 4.2.2 运算符结合性 73 4.3 实战演练综合运用运算符 75 4.4 大神解惑 76 4.5 跟我学上机 77 第5章 程序的执行方向程序流程控制 79 5.1 顺序语句 80 5.2 条件判断语句 81 5.2.1 if条件 81 5.2.2 if-else条件 82 5.2.3 条件运算符 83 5.3 循环语句 84 5.3.1 for循环 85 5.3.2 while循环 86 5.3.3 do-while循环 87 5.4 多重选择switch语句 88 5.5 跳出循环 90 5.5.1 continue语句 90 5.5.2 break语句 90 5.5.3 goto语句 91 5.6 实战演练流程控制综合应用 92 5.7 大神解惑 95 5.8 跟我学上机 96 第II篇 核 心 技 术 第6章 C 的灵魂函数的应用 99 6.1 函数的基本结构 100 6.1.1 函数的声明、定义和调用 100 6.1.2 参数的传递方式 101 6.1.3 函数的默认参数 103 6.1.4 函数的返回值 104 6.2 变量的作用域 105 6.2.1 局部变量 105 6.2.2 静态局部变量 106 6.2.3 外部变量 107 6.2.4 寄存器变量 108 6.3 特殊函数调用方式递归调用 108 6.4 内联函数 109 6.5 预处理器 110 6.5.1 #define预处理器 110 6.5.2 #define的作用 111 6.5.3 const修饰符 112 6.6 函数的重载 113 6.7 实战演练汉诺塔问题函数 114 6.8 大神解惑 116 6.9 跟我学上机 116 第7章 特殊的元素集合数组与字符串 117 7.1 一维数组 118 7.1.1 一维数组的声明 118 7.1.2 数组初始化 119 7.1.3 数组的操作 120 7.2 二维数组和多维数组 121 7.2.1 二维数组的声明 121 7.2.2 二维数组的使用和存取 122 7.2.3 多维数组 123 7.3 数组与函数 125 7.3.1 一维数组作为函数的参数 125 7.3.2 传送多维数组到函数 126 7.4 字符串类 127 7.4.1 字符串的声明 127 7.4.2 字符串的输入和输出 128 7.4.3 字符串处理 129 7.5 实战演练1判断字符串回文 132 7.6 实战演练2输出斐波那契数列 134 7.7 大神解惑 135 7.8 跟我学上机 136 第8章 灵活调用内存地址指针 137 8.1 指针概述 138 8.1.1 什么是指针 138 8.1.2 为什么要用指针 138 8.1.3 指针的地址 139 8.2 指针变量 139 8.2.1 指针变量的声明 139 8.2.2 指针变量的使用 140 8.3 指针与函数 141 8.3.1 指针传送到函数中 141 8.3.2 返回值为指针的函数 142 8.3.3 函数指针 143 8.4 指针与数组 144 8.4.1 指针的算术运算 145 8.4.2 利用指针存储一维数组的元素 146 8.4.3 利用指针传递一维数组到函数中 147 8.5 指针与字符串 147 8.6 const指针 148 8.7 void指针 149 8.8 指向指针的指针 149 8.9 动态内存配置 150 8.9.1 使用基本数据类型做动态配置 151 8.9.2 使用数组做动态配置 152 8.10 实战演练判断字符串中有多少个整数 153 8.11 大神解惑 155 8.12 跟我学上机 156 第9章 灵活定义数据类型结构体、共用体和枚举类型 157 9.1 结构体 158 9.1.1 结构体的声明 158 9.1.2 结构体变量的初始化与使用 159 9.1.3 结构体数组初始化 161 9.2 将结构体变量作为函数参数 162 9.2.1 将整个结构体传送到函数 162 9.2.2 传送结构体的地址到函数 163 9.3 共用体 164 9.3.1 共用体的定义和声明 164 9.3.2 共用体类型的初始化和使用 165 9.3.3 struct和union的差异 166 9.4 枚举类型 167 9.4.1 枚举类型的定义和声明 167 9.4.2 枚举类型的初始化和使用 168 9.5 实战演练学生信息登记表 169 9.6 大神解惑 172 9.7 跟我学上机 172 第10章 主流的编程思想认识面向对象编程 173 10.1 面向对象编程概述 174 10.1.1 面向对象编程的几个概念 174 10.1.2 面向对象编程与面向过程编程的区别 175 10.2 认识类 175 10.2.1 类的基本概念 175 10.2.2 类的定义 175 10.2.3 类对象的生成 177 10.2.4 类对象指针 178 10.3 成员函数 180 10.4 嵌套类 182 10.5 const成员函数 182 10.6 类成员的访问控制 184 10.6.1 私有成员 184 10.6.2 公有成员 185 10.6.3 保护成员 186 10.7 静态成员 187 10.7.1 静态数据成员 187 10.7.2 静态成员函数 189 10.8 友元函数 190 10.9 实战演练栈类的实现 191 10.10 大神解惑 193 10.11 跟我学上机 194 第11章 类的特殊函数构造函数和析构函数 195 11.1 构造函数初始化类对象 196 11.1.1 什么是构造函数 196 11.1.2 使用构造函数 196 11.2 析构函数清除类对象 198 11.2.1 析构函数的概念 198 11.2.2 析构函数的调用 198 11.3 默认构造函数 200 11.4 重载构造函数 201 11.4.1 重载构造函数的作用 201 11.4.2 重载构造函数的调用 201 11.5 类对象数组的初始化 202 11.5.1 类对象数组调用 203 11.5.2 类对象数组和默认构造函数 204 11.5.3 类对象数组和析构函数 206 11.6 拷贝构造函数 207 11.6.1 拷贝构造函数的概念 207 11.6.2 深拷贝和浅拷贝 208 11.7 实战演练构造函数和析构函数的应用 210 11.8 大神解惑 212 11.9 跟我学上机 212 第III篇 高 级 应 用 第12章 赋予新功能运算符的重载 215 12.1 什么是运算符重载 216 12.1.1 运算符重载的形式 216 12.1.2 可重载的运算符 218 12.2 重载前置运算符和后置运算符 219 12.2.1 重载前置运算符 219 12.2.2 重载后置运算符 221 12.3 插入运算符和析取运算符的重载 222 12.3.1 插入运算符重载 222 12.3.2 析取运算符重载 223 12.4 常用运算符的重载 225 12.4.1 12.4.2 ”运算符的重载 226 12.4.3 =”赋值运算符重载 227 12.5 实战演练重载运算符综合 应用 230 12.6 大神解惑 231 12.7 跟我学上机 232 第13章 实现代码重用类的继承 233 13.1 继承的基本概念 234 13.1.1 基类和继承类 234 13.1.2 简单的基础实例 235 13.2 调用父类中的构造函数 240 13.3 子类存取父类成员 243 13.3.1 私有成员的存取 243 13.3.2 继承与静态成员 244 13.4 多继承 246 13.5 实战演练继承的综合应用 248 13.6 大神解惑 250 13.7 跟我学上机 250 第14章 实现多态性虚函数和抽象类 251 14.1 什么是虚函数 252 14.1.1 虚函数的作用 252 14.1.2 动态绑定和静态绑定 253 14.2 抽象类与纯虚函数 255 14.2.1 定义纯虚函数 255 14.2.2 抽象类的作用 256 14.2.3 虚析构函数 257 14.3 抽象类的多重继承 259 14.4 虚函数表 260 14.4.1 什么是虚函数表 260 14.4.2 继承关系的虚函数表 262 14.5 实战演练抽象类的综合应用 263 14.6 大神解惑 266 14.7 跟我学上机 266 第15章 数据存储C 操作文件 267 15.1 文件的基本概念 268 15.1.1 文件I/O 268 15.1.2 文件顺序读写 271 15.1.3 随机文件读写 271 15.2 文件的打开与关闭 273 15.2.1 文件的打开 273 15.2.2 文件的关闭 275 15.3 文本文件的处理 275 15.3.1 将变量写入文件 275 15.3.2 将变量写入文件尾部 276 15.3.3 从文本文件中读入变量 277 15.3.4 使用get()、getline()和 put()函数 278 15.4 处理二进制文件 280 15.5 实战演练文件操作 282 15.6 大神解惑 284 15.7 跟我学上机 285 第16章 解决问题的法宝异常处理 287 16.1 异常的基本概念 288 16.2 异常处理机制 288 16.3 抛出异常 289 16.4 重新抛出异常 291 16.5 捕获所有异常 292 16.6 未捕捉到的异常 293 16.7 标准异常 294 16.8 异常规范 294 16.9 异常与继承 295 16.10 自定义异常类 296 16.11 捕获多个异常 298 16.12 实战演练异常处理应用 299 16.13 大神解惑 301 16.14 跟我学上机 302 第17章 C 的高级技能模板与类型转换 303 17.1 模板 304 17.1.1 函数模板 304 17.1.2 类模板 305 17.1.3 模板参数 307 17.1.4 模板的特殊化 308 17.1.5 重载和函数模板 309 17.2 类型识别和强制转换运算符 311 17.2.1 运行时类型识别 311 17.2.2 强制类型转换运算符 314 17.3 实战演练模板的综合应用 316 17.4 大神解惑 318 17.5 跟我学上机 318 第18章 控制元素的存储和访问容器和迭代器 321 18.1 STL 322 18.2 迭代器 322 18.3 顺序容器 323 18.3.1 向量 323 18.3.2 双端队列 325 18.3.3 列表 326 18.4 关联容器 327 18.4.1 集合和多集 327 18.4.2 映射和多重映射 329 18.5 容器适配器 330 18.5.1 栈 330 18.5.2 队列 331 18.5.3 优先级队列 332 18.6 实战演练容器的综合操作 333 18.7 大神解惑 338 18.8 跟我学上机 338 第IV篇 项目开发实战 第19章 项目实训1开发计算器助手 341 19.1 需求分析 342 19.2 功能分析 342 19.3 开发前的准备工作 343 19.4 系统代码编写 343 19.4.1 CalculatorAssistant.h和 CalculatorAssistant.cpp文件 344 19.4.2 Complex.h和Complex.cpp 文件 347 19.4.3 Fraction.h和Fraction.cpp 文件 351 19.4.4 main.cpp文件 356 19.5 系统运行 356 19.6 项目总结 358 第20章 项目实训2开发汽车信息管理系统 359 20.1 需求分析 360 20.2 功能分析 360 20.3 开发前的准备工作 362 20.4 系统代码编写 362 20.4.1 Date.h文件 362 20.4.2 DateException.h文件 363 20.4.3 Vehicle.h和Vehicle.cpp 文件 364 20.4.4 VehicleManage.h和 VehicleManage.cpp文件 366 20.4.5 Main.cpp文件 373 20.5 系统运行 376 20.6 项目总结 378 第21章 项目实训3开发银行交易系统 379 21.1 需求分析 380 21.2 功能分析 380 21.3 开发前的准备工作 381 21.4 系统代码编写 382 21.4.1 交易流程处理、余额查询、存款和取款等功能 382 21.4.2 相关设备模拟 388 21.4.3 交易设备、数据库和账户等 具体实现 390 21.4.4 设备处理、交易处理、操作 处理和验证处理等功能 394 21.4.5 主程序运行入口 398 21.5 系统运行 398 21.6 项目总结 399 第22章 项目实训4开发学校职工信息管理系统 401 22.1 需求分析 402 22.2 功能分析 402 22.3 开发前的准备工作 404 22.4 系统代码编写 404 22.4.1 职工信息的数据结构的基类属性和成员方法 404 22.4.2 各人员类的声明、定义 和实现 407 22.4.3 系统职工信息增删改查功能的 声明、定义 413 22.4.4 系统增删改查以及菜单功能的 实现 416 22.4.5 主程序运行入口 432 22.5 系统运行 432 22.6 项目总结 434 |