
本书是与《C++程序设计教程》配套的实验指导和习题解析教材。全书共分四部分,分别为环境使用、实验指导、习题解析和常用资料。环境使用部分包括Visual C++ 6.0、Visual C++ 2010、C++ Builder 6.0的使用和跟踪、调试程序的方法、帮助的使用方法等内容;实验指导部分提供11个实验、53道题目,从问题分析、算法描述、编程指南、测试指南、问题扩展等方面指导学生完成实验;习题解析对《C++程序设计教程》中的部分习题进行了分析,给出了问题分析、算法描述、编程提示、测试指南、问题扩展等方面的指导;常用资料给出了常见词汇、常见编译错误、常用库函数等实验过程中需要查阅的资料。
本书内容丰富、实用,指导切实、及时;既可作为高等学校计算机程序设计课程的实验用书,也可供程序设计爱好者和相关工程技术人员参考。
程序设计是一门实践性很强的课程。学习程序设计不仅要了解语言的语法,重要的是通过多练来学习计算机解决问题的思路和方法。本书是与《C++程序设计教程》配套的辅导教材。
本书的宗旨是为C++程序设计课程实验提供切实的指导。本书的特色有:
(1) 实用的内容。本书从解决学生在实验中遇到的问题出发,介绍编辑、编译、连接和运行程序的方法,以及调试方法和技巧。书中资料来源于实验过程中同学们常提的问题。
(2) 切实的指导。同学们常反映的问题是:别人的程序能看懂,自己就不知怎样写了。本书加强了问题分析、算法描述和编程提示的指导内容,希望同学们学会分析问题的方法和解决问题的步骤。
(3) 良好的习惯。本书用规范的格式编写算法,输入输出要求意义明确、功能清楚,程序中应有适当的注释,要对程序进行多种角度的测试。希望同学们能养成良好的编程习惯。
(4) 积极地思考。本书在实验题目后面会给出一些思考题、练习题,并在适当的地方给出与程序有关的趣味故事,引导学生去探索更深刻的问题,培养编程的乐趣,发现编程的奥妙。
本书分为四部分。
第1部分是环境的使用,包括Visual C++ 6.0(简称VC6)、Visual C++ 2010(简称VS2010)和C++ Builder 6.0三种环境的使用。这部分的内容不需单独实验,需要时查阅即可。这部分包括了同学们在环境使用中常见的问题。例如:如何解决编译错误,如何单步跟踪程序,如何设置断点,如何在一个工程中编写多个程序等。
第2部分是实验指导。这部分内容与教材的内容相对应,共11个实验。每个实验包含3~8个题目,每个题目从问题分析、算法描述、编程提示、测试指南、问题扩展等方面给出指导。教师可以选择安排在两小时的上机时间内完成2~3个题目,其他题目在课外完成。5、6、7三个实验可以分两次(4学时)上机完成。
第3部分是习题解析,其中给出了对《C++程序设计教程》中绝大部分习题的分析供参考。每个题目的解析内容与实验指导类似,简单的题目没有解析。
第4部分是常用资料。这部分是同学们实验中经常需要查阅的内容,如ASCII编码表,编译、连接常见的英文词汇、错误信息,常用的库函数等。
本书内容丰富、实用,指导切实、及时,是指导而不是答案。本书可作为高等学校计算机程序设计课程的实验用书,也可供程序设计爱好者和相关工程技术人员参考。
本书由赵英良主编,冯博琴教授审阅。实验1~4和习题1~4的解析由赵英良编写,实验5、7、8、9和习题5、7、8、9的解析由卫颜俊编写,实验6、10、11和习题6、10、11的解析由仇国巍编写。本书获得2012年西安交通大学实验教材立项和资助,是西安交通大学本科“十二五”规划教材和西安交通大学“985”工程三期重点建设实验系列教材。本书得到了西安交通大学教务处徐忠锋副处长、冯晓娟等老师以及西安交通大学计算机教学实验中心同事的帮助和支持,在此一并表示感谢;此外,也向参考文献的作者表示感谢。
由于作者学识浅陋,加之时间仓促,书中可能会有不少错误和不当之处,恳请读者批评指正。
编者
第1部分环境的使用1
1.1用Visual C++ 6.0编写控制台应用程序1
1.1.1进入和退出 Visual C++集成开发环境1
1.1.2创建工程、打开已有工程2
1.1.3创建C++程序文件4
1.1.4编译、连接、运行程序5
1.1.5程序的跟踪调试6
1.1.6在一个工程中编辑多个程序文件9
1.1.7使用帮助9
1.2Visual C++ 2010编写控制台应用程序9
1.2.1启动Visual Studio 2010集成开发环境9
1.2.2创建或打开Win32控制台工程10
1.2.3编译、调试及运行程序12
1.3C++ Builder 6.014
1.3.1下载与安装14
1.3.2基本使用14
第2部分实验指导17
2.1实验1显示程序和简单计算程序17
2.1.1显示由“”组成的矩形17
2.1.2计算立方体的周长、表面积和体积18
2.1.3计算简单数学函数的值20
2.1.4按方阵格式显示数据21
2.2实验2简单信息的表示和数据计算23
2.2.1数学函数计算23
2.2.2信息加密24
2.2.3贪心算法找零钱25
2.2.4整数的分离27
2.3实验3运算的流程控制27
2.3.1计算π的近似值28
2.3.2比较字符串大小29
2.3.3找回文数29
2.3.4整数的素数分解30
2.4实验4复杂信息的表达与处理32
2.4.1矩阵转置32
2.4.2用一维数组实现矩阵相乘33
2.4.3反转字符串33
2.4.4去掉字符串开头的多余空格34
2.4.5事件时间表35
2.5实验5划分模块逐层求解——函数37
2.5.1编写求一元二次方程的根的函数37
2.5.2编写函数求一元n次多项式的值37
2.5.3编写函数去掉任意一个字符串头部和尾部的空格39
2.5.4数组的转换40
2.5.5递归实现级数求和41
2.5.6求数组元素的最大值的递归函数42
2.5.7随机生成整副54张扑克牌的函数42
2.5.8验证哥德巴赫猜想44
2.6实验6指针的应用45
2.6.1将字符串形式的时间转换为毫秒45
2.6.2将整数变换为以“,”号分隔的形式46
2.6.3用一个函数求多个实数的平均值、最大及最小值47
2.6.4二分法求方程根的通用函数 48
2.6.5将十进制写法的IP地址转换成二进制写法48
2.6.6统计处理多个学生的成绩50
2.7实验7结构抽象数据封装——类与对象52
2.7.1圆类的设计及使用52
2.7.2三角形类的设计与使用53
2.7.3日期类的设计与使用55
2.7.4用类实现学生信息统计56
2.8实验8取其精华发挥优势——继承58
2.8.1黑白点类和彩色点类58
2.8.2使用类的继承编写管理公民信息和大学生信息的程序59
2.8.3使用类的继承编写日期时间管理程序61
2.9实验9统一接口多种实现——多态62
2.9.1显示不同形状的字符图形,包括矩形、三角形和菱形等62
2.9.2使用继承定义一组形状类64
2.9.3重载运算符实现复数类的四则运算66
2.10实验10文件与输入输出67
2.10.1格式化输出数据67
2.10.2文件中特定单词的统计67
2.10.3分离文本文件中的英文和中文68
2.10.4有格式文本文件的创建及读取70
2.10.5学生成绩信息的处理71
2.10.6读取BMP文件的宽度和高度72
2.10.7用随机文件存储书籍信息72
2.11实验11数据结构与算法73
2.11.1手工操作Hanoi塔73
2.11.2模拟有限长队列75
2.11.3黑白棋游戏77
2.11.4生成地雷阵81
2.11.5表达式计算84
第3部分习题解析88
3.1习题188
3.2习题290
3.3习题392
3.4习题4105
3.5习题5 114
3.6习题6121
3.7习题7128
3.8习题8135
3.9习题9140
3.10习题10145
3.11习题11149
第4部分常用资料153
4.1ASCII字符表153
4.2Visual C++编译错误中的常见词汇155
4.3Visual C++ 6.0编程环境下常见的编译错误156
4.4常用数学库函数157
4.5常用的字符串处理函数158
4.6常用字符串和数的转换函数159
4.7string类的常用方法161
参考文献163