×
高等学校计算机专业面向项目实践规划教材C++程序设计案例实践教程/朱林

高等学校计算机专业面向项目实践规划教材C++程序设计案例实践教程/朱林

1星价 ¥37.2 (6.3折)
2星价¥37.2 定价¥59.0
暂无评论
图文详情
  • ISBN:9787302512653
  • 装帧:一般胶版纸
  • 册数:暂无
  • 重量:暂无
  • 开本:其他
  • 页数:379
  • 出版时间:2017-02-01
  • 条形码:9787302512653 ; 978-7-302-51265-3

本书特色

1.本书内容广泛、案例丰富,其中的例题、习题及实践案例都来源于一线教学。2.内容由浅入深地向前推进。3.本书每个知识点精讲后都给出了相应的任务实践,给出技能训练要点和任务实现,这些代码不仅能够与理论知识点无缝对接,而且短小精炼,方便读者自行尝试完成。 下载课件、获取课件密码、各种资源包以及人工客服,请关注清华社官方微信服务号qhdxcbs_js,一站式帮您解决各种图书问题。

内容简介

本书写作的出发点是让C++能真正做好数据结构的基础,打算从应用开发和数据存储的角度来写,贯穿全书打算安排两条线,一是应用线:拿一个管理系统的开发贯穿全书,先从提示页面的显示再到增删改查各功能的实现,先在DOS窗口下显示功能及操作,很后再拿MFC美化界面。二是数据存储线:先讲变量如何在内存中存储,再讲数组在内存中的存储,在此处讲清楚物理相邻的存储结构(数组)有什么缺点,从而过度到与指针结合的逻辑相邻的存储结构---链表,讲解链表如何能解决操作数组时存在的缺点,然后在输入输出流中讲数据存放在文件中该如何操作,对比与数据存放在内存中(数组、链表)的不同,然后讲清楚文件存储是一种很初的数据仓库模型,从而引入简单的Access数据库的用法(在很后MFC美化界面时加入),为学生学习以后的数据库知识打下基础。

目录

第1章 C++概述 1 1.1 C++语言简介 1 1.2 本章知识目标 2 1.3 程序 3 1.4 C++程序基本结构 3 1.5 C++程序的调试与运行 4 1.5.1 用Visual C++开发环境运行程序 5 1.5.2 用VS建立 C++控制台程序 9 1.6 本章实践任务 12 1.6.1 任务需求说明 12 1.6.2 技能训练要点 12 1.6.3 任务实现 12 本章小结 13 课后练习 13 第2章 C++程序设计基础 15 2.1 本章简介 15 2.2 本章知识目标 15 2.3 数据类型 16 2.4 关键字与标识符 17 2.5 变量与常量 18 2.5.1 变量 18 2.5.2 常量 19 2.6 数据的输入与输出 22 2.6.1 数据的输出 22 2.6.2 数据的输入 24 2.7 运算符与表达式 25 2.7.1 算术运算符及算术表达式 26 2.7.2 关系运算符及关系表达式 26 2.7.3 逻辑运算符及逻辑表达式 28 2.7.4 赋值运算符及赋值表达式 29 2.7.5 逗号运算符及逗号表达式 30 2.7.6 自增、自减运算符及表达式 30 2.7.7 sizeof运算符 32 2.8 类型转换 32 2.8.1 自动类型转换 33 2.8.2 强制类型转换 33 2.9 流程控制 34 2.9.1 选择结构语句 34 2.9.2 循环结构语句 39 2.9.3 跳转语句 46 2.10 构造数据类型 48 2.10.1 数组 48 2.10.2 结构体 62 2.10.3 枚举类型 69 2.11 本章任务实践 70 2.11.1 任务需求说明 70 2.11.2 技能训练要点 70 2.11.3 任务实现 70 本章小结 71 课后练习 71 第3章 函数 78 3.1 本章简介 78 3.2 本章知识目标 78 3.3 函数定义 78 3.3.1 函数定义格式 78 3.3.2 函数的形参、实参和返回值 79 3.4 函数调用 80 3.5 具有缺省参数值的函数 81 3.6 函数的原型说明 82 3.7 函数的嵌套与递归调用 83 3.7.1 函数的嵌套调用 83 3.7.2 函数的递归调用 84 3.8 内联函数 86 3.9 函数的重载 87 3.10 函数与数组 88 3.10.1 数组元素作函数的参数 88 3.10.2 数组名作函数的参数 89 3.11 变量的作用域与存储属性 91 3.11.1 局部变量 91 3.11.2 全局变量 92 3.11.3 C++的存储属性 93 3.12 编译预处理 94 3.12.1 文件包含 94 3.12.2 宏 95 3.12.3 条件编译 99 3.13 本章任务实践 100 3.13.1 任务需求说明 100 3.13.2 技能训练要点 101 3.13.3 任务实现 102 本章小结 107 课后练习 107 第4章 指针和引用 113 4.1 本章简介 113 4.2 本章知识目标 113 4.3 指针与指针变量 113 4.4 指针运算 116 4.4.1 赋值运算 116 4.4.2 关系运算 117 4.4.3 算术运算 117 4.5 指针与数组 118 4.5.1 指针与一维数组 118 4.5.2 指针与二维数组 121 4.5.3 指向整个一维数组的指针变量 123 4.5.4 指针与字符串 124 4.6 指针数组 126 4.7 指向指针的指针变量 128 4.8 指针与函数 129 4.8.1 返回值为指针的函数 129 4.8.2 指向函数的指针 129 4.8.3 函数调用的参数传递方式 129 4.8.4 指针或数组名作为函数参数 133 4.9 动态分配内存空间 134 4.10 链表 137 4.11 本章任务实践 145 4.11.1 任务需求说明 145 4.11.2 技能训练要点 149 4.11.3 任务实现 149 本章小结 156 课后练习 156 第5章 类和对象 162 5.1 本章简介 162 5.1.1 软件开发方法 162 5.1.2 面向对象方法的由来和发展 162 5.1.3 面向对象语言 163 5.2 本章知识目标 164 5.3 对象和类 164 5.3.1 对象和类的概念 164 5.3.2 类的确定和划分 165 5.4 类的声明 166 5.5 构造函数和析构函数 169 5.5.1 构造函数 169 5.5.2 拷贝构造函数 170 5.5.3 构造函数的重载 173 5.5.4 析构函数 174 5.6 对象应用 177 5.6.1 成员对象 177 5.6.2 对象数组 179 5.6.3 对象指针 180 5.7 静态成员 181 5.7.1 静态成员数据 182 5.7.2 静态成员函数 183 5.8 友元函数和友元类 184 5.8.1 友元函数 184 5.8.2 友元成员 187 5.8.3 友元类 188 5.9 本章任务实践 190 5.9.1 任务需求说明 190 5.9.2 技能训练要点 191 5.9.3 任务实现 191 本章小结 198 课后练习 199 第6章 继承和多态 204 6.1 本章简介 204 6.2 本章知识目标 204 6.3 继承的基本知识 205 6.3.1 基类与派生类的定义 205 6.3.2 三种继承方式 207 6.4 单一继承与多重继承 211 6.4.1 多重继承派生类构造函数的构建 211 6.4.2 多重继承派生类析构函数的构建 214 6.4.3 多重继承的二义性 215 6.5 多态性 219 6.5.1 编译时多态和运行时多态 219 6.5.2 虚函数 219 6.6 抽象类 223 6.6.1 纯虚函数 223 6.6.2 抽象类及使用 223 6.7 本章任务实践 225 6.7.1 任务需求说明 225 6.7.2 技能训练要点 225 6.7.3 任务实现 226 本章小结 229 课后练习 229 第7章 运算符重载 236 7.1 本章简介 236 7.2 本章知识目标 236 7.3 运算符重载的概念与规则 236 7.3.1 运算符重载的概念 236 7.3.2 运算符重载的规则 237 7.4 运算符重载为类的成员函数和友元函数 237 7.4.1 运算符重载为类的成员函数 237 7.4.2 运算符重载为类的友元函数 239 7.5 “++”和“--”的重载 240 7.6 流插入运算符和流提取运算符的重载 243 7.7 转换函数 244 7.8 本章任务实践 246 7.8.1 任务需求说明 246 7.8.2 技能训练要点 246 7.8.3 任务实现 247 本章小结 249 课后练习 250 第8章 文件与流类库 255 8.1 本章简介 255 8.2 本章知识目标 255 8.3 输入输出流 255 8.3.1 输入输出流的含义 255 8.3.2 C++的基本流类体系 256 8.3.3 标准的输入输出流 256 8.4 文件操作 257 8.4.1 文件输入输出流 257 8.4.2 文件关联与打开 257 8.4.3 文件关闭 258 8.5 文件读写 258 8.5.1 文本文件的读写 258 8.5.2 二进制文件的读写 259 8.5.3 文件的随机读写 262 8.6 本章任务实践 265 8.6.1 任务需求说明 265 8.6.2 技能训练要点 265 8.6.3 任务实现 266 本章小结 277 课后练习 277 第9章 模板与异常处理 281 9.1 本章简介 281 9.2 本章知识目标 281 9.3 模板 281 9.3.1 模板的概念 281 9.3.2 函数模板 282 9.3.3 类模板 284 9.4 异常处理 288 9.4.1 异常处理概述 288 9.4.2 异常处理的实现 289 9.5 本章任务实践 291 9.5.1 任务需求说明 291 9.5.2 技能训练要点 291 9.5.3 任务实现 291 本章小结 293 课后练习 294 第10章 使用MFC开发应用系统 298 10.1 本章简介 298 10.2 本章知识目标 298 10.3 MFC类及应用程序框架 298 10.3.1 MFC应用程序概述 298 10.3.2 MFC类的层次结构 299 10.3.3 MFC应用程序框架 300 10.4 消息与命令的处理 307 10.5 MFC对话框和常用控件 315 10.5.1 对话框分类 315 10.5.2 对话框编辑器和控件 315 10.6 Access数据库 328 10.6.1 Access简介 329 10.6.2 Access数据库的基本操作 329 10.7 MFC ODBC数据库连接 344 10.7.1 MFC ODBC的构成 344 10.7.2 MFC ODBC类 345 10.7.3 MFC ODBC数据库操作 348 10.8 本章实践任务 360 10.8.1 任务需求说明 360 10.8.2 技能训练要点 360 10.8.3 任务实现 360 本章小结 373 课后练习 373 附录A ASCII表 375 附录B 运算符优先级与结合性表 376 附录C 常用典型类库函数 377 参考文献 380
展开全部

节选

第3章 函 数 3.1 本章简介   函数是C++程序的构成基础。C++程序都是由一个个函数组成的,即便是*简单的程序,也有一个main()函数。一个C++程序无论多么复杂,规模有多么大,*终都落实到每个函数的设计和编写上。   在C++中,函数是构成程序的基本模块,每个函数具有相对独立的功能。C++的函数有三种:主函数(即main()函数)、C++提供的库函数和用户自己定义的函数。合理地编写用户自定义函数,可以简化程序模块的结构,便于阅读和调试,是结构化程序设计方法的主要内容之一。本章主要讲解函数的定义和使用、变量的作用域和存储类别、编译预处理指令等方面的内容。 3.2 本章知识目标   (1)掌握C++函数的定义方法和调用方法,了解函数中形参、实参、返回值的概念,熟悉函数调用时参数间数据传递的过程。   (2)掌握函数的嵌套调用,根据函数的嵌套调用掌握递归算法的本质与编程方法。   (3)了解重载函数、内联函数、带默认值的函数的作用与用法。   (4)了解变量的作用域和生存期的相关知识,熟悉局部变量、全局变量的概念和用法;了解变量的四种存储类别(自动、静态、寄存器、外部)。   (5)掌握数组作为函数参数的编程方法,进一步了解其参数传递的本质。   (6)了解编译预处理指令的种类和用法。 3.3 函数定义   3.3.1 函数定义格式   函数与变量一样,需要先定义,后使用。函数可以分为无参函数和有参函数两类。   1.无参函数   定义无参函数的一般格式为:    ( ) { … } //函数体定义      其中type为函数返回值的类型,它可以是标准数据类型或导出的数据类型。函数名必须符合标识符构成的规则。通常,函数名应能反映函数的功能。函数体由一系列语句组成,它定义了函数要完成的具体操作。函数体为空时,称这种函数为空函数。当函数定义在前调用在后且函数返回值为整型时,可省略函数的返回值类型;当函数没有返回值时,必须指定其类型为void。当函数仅完成某种固定操作时,可将函数定义为无参函数。例如:    void print_title( ) { cout      该函数实现输出一行信息:“C++程序示例”。   2.有参函数   定义有参函数的一般格式为:    ( 《 arg2, ...》) { … } //函数体定义      其中,在函数名后的括号中给出的参数列表要依次列出参数的类型和参数的名字(形式参数变量名),每一个参数之间用逗号隔开。例如,求两个整数中的大数,可将函数定义为:    int max(int x, int y) {return ( x > y ?x : y); }   3.3.2 函数的形参、实参和返回值   1.函数的形参和实参   在定义函数时,函数名后的圆括号中所列举的参数,称为形式参数(简称为形参)。一个函数所定义的全部形式参数称为形参表。C++对于有参函数的定义并没有限制形参的个数。例如,定义一个带有三个形参的函数f:    float f(float x, float y, int m) { … } //函数体      其中,x、y、m即为形式参数。   在形参表中列举的每一个参数,都必须依次说明参数的类型和参数的名字,对于同类型的参数也要分别说明其类型。如上面定义的函数中的x和y均为实型,不能写成以下形式:    float f(float x, y, int m) //错误 { … }      函数调用时在函数名后圆括号中依次列出的参数称为实际参数(简称为实参),列举的所有实参称为实参表。实参通常可以是一个值也可以是一个可以求出值的表达式,函数调用时将值传递给对应的形参。在实参表中,每一个实参的类型必须与对应形式参数的类型相匹配(或相兼容)。通常,要求实参在类型和个数上要与形参一一对应。有一种特殊情况可以使得实参个数不唯一,即具有默认值的函数。   2.函数的返回值   函数调用时,将实参值赋给形参后,立即执行函数体,一直执行到return语句或执行完函数体的*后一个语句时,结束函数执行。函数执行完后,函数可以不返回任何值,也可以返回一个值给调用者。函数是否需要返回值由函数自身的功能决定,比如一个用来求值的函数,如果编程者只想让值输出给用户看,则可以在被调函数中写一个输出语句将该值输出就行了,没必要将它返回给主调函数;而如果被调函数求出的值需要在主调函数中被用到,则一定要写一个返回值将其返回到主调函数中。   当函数要返回一个值时,在函数体中须使用return语句来返回函数计算出的值。可以在函数体内每一个结束函数执行的出口处设计一个return 语句(较为典型的比如分支语句),因此,一个函数体中可以有多个return 语句。return 语句的一般格式为:    return ;      在函数调用期间,当执行到该语句时,首先求出表达式的值,并将该值的类型转换成函数定义时所规定的返回值类型后,返回到主调函数相应的地方继续执行。 3.4 函数调用   在C++的源程序中,除main函数外,任一函数均不能单独构成一个完整的程序,因为main函数是程序执行的入口点,所以自定义函数的执行都是通过main函数直接或间接的调用来实现的。调用一个函数,就是把程序控制转去执行该函数的函数体,执行完以后再返回回来。数据流程是:   (1)在主程序中,先给实参赋值。   (2)通过函数调用,将数据从主调函数传递到被调函数。   (3)被调函数的形参带值后,即可进行相应的数据处理和运算。   (4)如果有返回值,通过return语句带回到主调函数。   无参函数的函数调用语句一般格式为:( );。   有参函数的函数调用语句一般格式为:();。   当函数有返回值时,函数调用可以作为一个函数调用语句来实现,也可以出现在表达式中,把执行函数体后返回的值参与表达式的运算。对于没有返回值的函数,函数调用只能通过函数调用语句来实现。   例3-1 输入两个实数,求出其中的大数。设计一个函数max求出两个实数中的大数。    #include float max(float x, float y) //A { return ( x > y ?x : y); } void main( ) { float a,b; cout cin >>a>>b; cout }      程序中的B行调用函数max,并将该函数的返回值输出。将以上程序输入计算机,并经编译、连接,生成可执行程序。执行该程序并输入以下两个数:    6.7 9.2    则程序的输出为: 两个数中的大数为:9.2   图3-1给出了函数的调用及执行过程。当 执行B行中的函数调用时,控制转去执行A处的函数体,即执行max函数定义中的语句,当执行完函数后(执行到return语句或已到达函数定义中的结束符"}"),返回到main函数,接着计算表达式的值或执行函数调用语句后面的语句。 3.5 具有缺省参数值的函数   在定义函数时,可给函数的参数指定缺省值。调用函数时若给出了相应实参的值,则函数使用实参值;若没有给出相应的实参,则使用缺省值。这种函数称为具有缺省参数值的函数。下面用例子来说明具有缺省参数值函数的定义及调用。

预估到手价 ×

预估到手价是按参与促销活动、以最优惠的购买方案计算出的价格(不含优惠券部分),仅供参考,未必等同于实际到手价。

确定
快速
导航