定 价:18 元
丛书名:普通高校本科计算机专业特色教材精选·算法与程序设计
- 作者:朱金付、柏毅、郑雪清、何铁军等
- 出版时间:2009/9/1
- ISBN:9787302200383
- 出 版 社:清华大学出版社
- 中图法分类:TP312
- 页码:
- 纸张:胶版纸
- 版次:1
- 开本:16
本书是为学习程序设计语言C++的读者准备的,与同期出版的《C++程序设计》一书配套使用,也可以与其他介绍C++的教材配套使用。本书旨在引导学生如何从课题(题目)出发,经过思考分析,设计出符合要求的C++程序,并且上机调试通过。书中还介绍了在Visual C++ 6.0环境下调试程序的方法和技巧。全书设计了25个实验,每个实验分为三个部分:概述、案例和实验指导。概述部分简述实验内容和实验目的。案例部分详细描述了完整的课题,包括课题内容、课题分析、完整的源代码和对本课题的思考。每个实验的实验指导部分设计了2~3个课题。这些课题的难度,所代表的概念、技巧或算法各不相同,供不同能力的读者选做。每个实验的案例和读者课题都是经过精心设计的,所构思的对课题的分析和思考,引导读者从不同的角度去审视课题,从而设计出不同的、各具特色的程序。
本书是为没有学习过程序设计语言的读者而编写的。可以作为大专院校理工科学生学习C++语言的教材,也可以作为计算机二级考试的参考书
计算机语言是现代大学生的必修课。C++是一种重要的计算机语言,它特别适合开发大型系统程序,它的机制独特,功能强大,高效而实用,引导着程序设计的潮流。在计算机基础教学领域,C++教学蓬勃发展,大有迅速取代C语言的势头。
Windows是当前最流行的程序设计工作平台,而Microsoft Visual C++是最常用的Windows平台下的C++程序设计集成环境之一。本书中的实验就是以Visual C++为平台展开的,当然多数课题实验也可以在其他C++环境下进行。
本书作者都是从事高校计算机语言教学的专家,也有着大型软件设计的经验。对高等教育熟悉,对C++的深刻理解,对大学生心理、思维习惯、学习困惑的了解,是编写这本书的基础。学生在学习C++课程的过程中,听课一般听得懂,课后看书也可以看懂,但是动手编程时,往往无从下手,不知所措。很多参加等级考试的学生未能通过,都是因为机试考不好。编写本书的目的就是试图帮助学生解决这一难题。
全书设置了25个实验,涵盖了《C++程序设计》一书从面向过程到面向对象部分的全部内容。每个实验分为三个部分:概述、案例和实验指导。概述部分简述实验内容和实验目的。案例部分详细地描述了一个完整的课题,包括课题内容、课题分析、完整的源代码和对本课题的思考。案例向读者展示对本类课题的认识、分析和思考,力图使学生能举一反三,完成其他课题。每个实验的实验指导部分设计了2~3个读者课题,由读者完成。这些课题的难度,所代表的概念、技巧或算法不同,供不同能力的读者选做。读者可以做其中之一,也可以全做。书中对这些课题给出了分析,作为读者完成这些实验的引导和启示。每个实验的案例和读者课题都是经过精心设计的,所构思的对课题的分析和思考,引导读者从不同的角度去审视课题,从而可以设计出不同的、各具特色的程序。
本书在第一个实验就介绍了VC++的集成环境,从实用的角度出发,略去了一些暂时用不着的部分,减轻了读者的学习负担。在第二个实验介绍了VC++环境下调试程序的方法和技巧。为了增强学生的分析能力,书中还专门介绍如何将N-S图转换为C++程序。
在日常的教学活动和作者自己开发软件的过程中,都遇到过不少实验问题,学生上机所出现的问题以及存在的困惑,都给了作者许多有益的启发,也是编写本书的动力。但是本书作者对C++的实验的理解尚有局限性,加上本书成书仓促,书中难免有许多不足甚至是错误之处,恳请广大读者不吝指正,以利于在再版时修正。
本书由朱金付、柏毅、郑雪清、何铁军、徐冬梅、朱萍等老师合作编写。朱敏教授审阅了全书并做了大量的指导工作。
实验1 熟悉Visual C++下项目文件的创建1
1.1 概述1
1.2 Visual C++集成开发环境介绍及项目文件的创建1
1.3 实验指导6
1.3.1 表达式求解6
1.3.2 整除与求余数运算符6
1.3.3 条件运算符7
1.3.4 sizeof运算符7
实验2 选择结构9
2.1 概述9
2.2 Visual C++ 6.0单步(Step Over)调试方法9
2.3 案例11
案例1 使用N-S图分析程序11
案例2 将N-S图转换成C++程序11
2.4 实验指导13
2.4.1 变量排序13
2.4.2 三角形类型判别14
2.4.3 货价计算14
实验3 循环结构15
3.1 概述15
3.2 Visual C++6.0断点设置和变量监视15
3.3 案例17
案例3 用递推法求阶乘多项式和17
3.4 实验指导19
3.4.1 整数的逆序转换193.4.2 输出图形19
3.4.3 猴子吃桃19
3.4.4 判断降序数20
实验4 流程控制综合实验21
4.1 概述21
4.2 案例21
案例4 枚举法示例21
案例5 递推迭代法22
4.3 实验指导23
4.3.1 求亲密对数23
4.3.2 求满足12+22+32+…+n2<10000的n的最大值23
4.3.3 计算分数序列之和23
4.3.4 利用级数展开式计算cosx24
4.3.5 求方程的解24
C++实验指导书目录 实验5 函数的定义和调用25
5.1 概述25
5.2 Visual C++ 6.0的函数调试25
5.3 案例27
案例6 求亲密对数27
5.4 实验指导28
5.4.1 求400以内的素数28
5.4.2 哥德巴赫猜想28
5.4.3 求质因子之和28
5.4.4 变量排序29
实验6 递归函数31
6.1 概述31
6.2 Visual C++ 6.0的Call Stack31
6.3 案例33
案例7 用递归法进行进制转换33
6.4 实验指导34
6.4.1 整数十二进制逆序输出34
6.4.2 递归求公约数34
6.4.3 递归求级数35
6.4.4 求n阶勒让德多项式的值35
实验7 编译预处理实验37
7.1 概述37
7.2 Visual C++6.0的多文件组织37
7.3 案例39
案例8 宏定义示例39
7.4 实验指导39
7.4.1 计算梯形的面积39
7.4.2 输出Fibonnaci数列各项的值40
7.4.3 计算圆、矩形、梯形的面积40
实验8 一维数组的基本处理41
8.1 概述41
8.2 案例41
案例9 根据期中成绩和期末成绩计算学生最终成绩41
8.3 实验指导43
8.3.1 统计数组元素中正数、负数和零的个数43
8.3.2 统计学生平均成绩43
8.3.3 上浮策略的冒泡排序44
实验9 一维、二维数组应用45
9.1 概述45
9.2 案例45
案例10 二路归并排序45
9.3 实验指导48
9.3.1 二维数组处理48
9.3.2 用冒泡法对二维数组排序48
9.3.3 堆栈处理50
实验10 字符数组应用51
10.1 概述51
10.2 案例51
案例11 字符串统计51
10.3 实验指导53
10.3.1 字符串复制53
10.3.2 字符串拼接54
10.3.3 删除相同字符55
实验11 结构体类型及其应用57
11.1 概述57
11.2 案例57
案例12 学生成绩统计57
11.3 实验指导59
11.3.1 商品结构体类型变量的定义和使用59
11.3.2 定义二维坐标点结构体类型并计算矩形面积60
实验12 类与对象的概念与设计61
12.1 概述61
12.2 案例61
案例13 定义复数类61
12.3 实验指导63
12.3.1 定义图书类63
12.3.2 定义商品类63
实验13 指针的定义与使用65
13.1 概述65
13.2 案例65
案例14 查找子串65
13.3 实验指导67
13.3.1 使用指针输入10个实数67
13.3.2 求两集合的交集67
13.3.3 构造回文68
实验14 指针算法的综合应用71
14.1 概述71
14.2 案例71
案例15 二叉树遍历71
14.3 实验指导74
14.3.1 质因子分解74
14.3.2 线性表处理75
实验15 链表程序设计77
15.1 概述77
15.2 案例77
案例16 单向链表合并77
15.3 实验指导81
15.3.1 单向链表应用--插入排序81
15.3.2 单向链表应用--高考录取处理82
实验16 构造函数定义与使用83
16.1 概述83
16.2 案例83
案例17 学生类的声明及其对象的初始化83
16.3 实验指导85
16.3.1 日期类的声明和对象的定义85
16.3.2 集合类的声明和对象的定义85
16.3.3 职工类的声明和对象的定义86
实验17 构造函数和析构函数87
17.1 概述87
17.2 案例87
案例18 含有指针成员学生类的声明及其对象的初始化87
17.3 实验指导89
17.3.1 通讯录类的声明和对象的定义89
17.3.2 线性表类的声明和对象的定义90
实验18 继承与派生的概念与设计93
18.1 概述93
18.2 案例93
案例19 由基类在校人员类派生学生类93
18.3 实验指导95
18.3.1 由基类圆类派生圆柱体类95
18.3.2 由在校人员类作为基类派生教师类96
18.3.3 由学生类、课程类作为基类,共同派生选课类96
实验19 继承与派生的应用99
19.1 概述99
19.2 案例99
案例20 由基类在校人员类派生研究生类和教师类99
案例21 虚基类的应用101
19.3 实验指导103
实验20 虚函数的概念与应用105
20.1 概述105
20.2 案例105
案例22 虚函数的定义和使用105
案例23 纯虚函数的应用108
20.3 实验指导108
实验21 运算符重载的概念与应用(一)111
21.1 概述111
21.2 案例111
案例24 用函数成员实现圆类对象间的直接运算111
案例25 用友元函数实现圆类对象间的直接运算113
21.3 实验指导114
21.3.1 三维坐标类对象间的直接运算114
21.3.2 用函数成员实现线性表对象间的直接运算114
21.3.3 用友元函数实现线性表对象间的直接运算116
实验22 运算符重载的概念与应用(二)117
22.1 概述117
22.2 案例117
案例26 利用友元运算符实现字符串类对象间的直接运算117
22.3 实验指导120
22.3.1 用类型转换函数计算学生类对象的平均成绩120
22.3.2 利用成员运算符实现字符串类对象间的直接运算120
实验23 文本文件的输入输出程序设计121
23.1 概述121
23.2 案例121
案例27 对磁盘文件的读写处理(数值数据)121
案例28 对磁盘文件的读写处理(字符数据)124
23.3 实验指导126
23.3.1 数值数据文本文件的读写操作126
23.3.2 字符数据文本文件的读写操作127
实验24 二进制文件的输入输出程序设计129
24.1 概述129
24.2 案例129
案例29 binary型学生数据文件的简单管理129
24.3 实验指导134
24.3.1 二进制文件与文本文件之间的转换134
24.3.2 通过移动文件的指针来实现文件的随机存取135
实验25 模板的概念与应用137
25.1 概述137
25.2 案例137
案例30 从二维数组中找最大元和最小元的函数模板137
案例31 结构体模板与类模板的应用139
25.3 实验指导140
25.3.1 函数模板与函数重载140
25.3.2 结构体模板与类模板141