77范文网 - 专业文章范例文档资料分享平台

C++面向对象程序设计实验指导书[1](2)

来源:网络收集 时间:2018-12-29 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

C++面向对象程序设计实验指导书 绪论

实验八 多态性—类型转换与虚函数 (2学时) 实验九 模板类的构造 (2学时) 实验十 C++的I/O流类库 (2学时) 实验十一 C++程序、Windows程序和MFC程序 (3学时) 实验十二 简单单文档MFC程序设计 (3学时) 实验十三 简单对话框程序设计 (3学时) 实验十四 简单数据库程序设计 (3学时) 另外本书还安排了第三部分—综合练习,作为学生提高部分,学生通过第三部分的练习不仅可以巩固前面学到的基本知识,还可以扩充相关方面的程序设计知识,更为重要的是可以让学生自主地设计一个完整的系统,从而达到提高学生综合程序设计能力的目的。

0.3 如何使用本书

面向对象程序设计语言出现的目的就是为了设计大型的软件系统,但是教学过程中很难让学生在课堂上实现一个大型的(甚至是成型)的系统,所以作为教师应该引导学生在实现一个简单的功能性的程序的同时让学生思考,思考如何把这个地方的技术实现到一个复杂的应用系统中去;另外教师要充分利用本书中第二部分的练习,引导学生去思考如何利用C++的相关技术从头到尾设计一个具有实用价值的应用程序。

作为学生如果只是简单地按照本书中提供的步骤一步一步完成某一个程序,而不去思考为什么要这样做的话,那么学生能学到的知识也仅仅是C++的语法而已,并不能真正理解C++面向对象的思想,最终不能设计出好的程序来。所以学生不仅要全部实现本书中的课堂练习,得出正确的结果,而且在完成了程序后还要思考本程序为什么要这样设计,如果换成其它的程序设计语言会怎么实现,只有这样才能够真正理解C++的精髓,从而掌握C++。

另外学生在学习最后四个实验的时候一定不要忘记前面C++语法知识,能否合理地将C++的三大特性运用到MFC的程序设计中是提高程序运行效率,存储效率和程序封装性一个最有效的手段。

学生在设计本实验指导书第三部分程序的时候,需要自己查阅相关方面的技术资料才能完成相关功能,因为安排这部分的目的就是为了提升学生自主学习的能力和综合程序设计能力,因此这部分的内容并没有安排相关理论知识的讲解。另外教师也可以把这部分的内容用于学生课程设计的程序设计题目。

注:本书中所有的程序都采用VC++6.0(英文版)编程环境,并且全部在该环境下编译运行通过!

2

C++面向对象程序设计实验指导书 实验一

实验一 C++基础

1.1 实验目的

1.进一步了解和熟悉VC++6.0开发环境,学会在VC++6.0环境下调试程序; 2.熟悉C++中简单的标准输入输出函数的实用;

3.理解const修饰符的作用,并学会应用const修饰符; 4.理解内置(内联)函数的优缺点并学会使用内置函数; 5.理解和使用函数重载以及带默认参数的函数; 6.使用new和delete进行动态内存管理; 7.理解和使用引用。

1.2 实验内容 1.2.1 程序阅读

1.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include

int max_def(int x, int y) {

return (x>y?x:y); }

int max_def(int x, int y, int z) {

int temp = 0;

return (temp=(x>y?x:y))>z?temp:z; }

double max_def(double x, double y) {

return (x>y?x:y); }

int main() {

int x1 = 0; int x2 = 0;

double d1 = 0.0; double d2 = 0.0; x1 = max_def(5,6);

3

C++面向对象程序设计实验指导书 实验一

}

x2 = max_def(2,3,4); d1 = max_def(2.1,5.6);

d2 = max_def(12.3,3.4,7.8);-----------------------------------------------------① cout<<\<

cout<<\<

问题一:上述程序的输出结果是什么?

问题二:哪些情况可以参与函数的重载?

函数参数的类型不同,或者参数的个数不同,或者二者兼而有之。 问题三:①处调用的是哪个函数?

调用的是def(int x, int y, int z)这个函数。

问题四:②处的输出结果为什么是d2=12,而不是d2=12.3?

因为调用的是def(int x, int y, int z)这个函数,所以输出值为整型。

2.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include

int main() {

int *p1 = new int; -----------------------------------------------------① int *p2 = new int(0); -----------------------------------------------------② char *p3 = new char[64]; -----------------------------------------------------③ delete []p3; return 1;

4

C++面向对象程序设计实验指导书 实验一

}

问题一:①、②、③处动态申请内存分别代表什么不一样的意思?

1处代表new动态分配存放一个整数的内存空间,并将其首地址赋给指针变量p1. 2处代表new动态分配内空间,并将0作为初始值赋给首地址p2。

3处代表new动态分配存放数组的内存空间,并将首地址赋给指针变量p3. 问题二:该程序存在什么隐患?改正该程序使隐患消除。 没有释放动态分配的数组存储空间,同意导致没有足够的内存满足分配要求,导致动态分配空间失败。

3.理解下面的程序,并在VC++6.0下运行查看结果,回答程序后面的问题。

#include

void swap(int a, int b) {

int temp = a; a = b; b = temp; }

void swap(int *a, int *b) {

int temp = *a; *a = *b; *b = temp; }

int main() {

int i = 5; int j = 10;

cout<<\<

swap(i,j); -----------------------------------------------------① cout<<\<

swap(&i,&j); -----------------------------------------------------② cout<<\<

return 1; }

问题一:上述程序的输出结果是什么?

5

C++面向对象程序设计实验指导书 实验一

问题二:①处函数调用后并不能实现两个数的交换,而②处却可以,为什么?

因为1处调用的函数是void swap(int a, int b),i、j将值传给a、b后,a、b值的交换与i、

j无关所以不能实现两个数的交换。2处调用的函数是void swap(int *a, int *b),将i、j地址传给*a、*b,*a、*b交换数值即交换i、j地址,所以i、j值交换了。

问题三:②处调用的是哪个重载函数?

调用void swap(int *a, int *b) 这个函数。

1.2.2 程序设计

1.使用函数重载的方法定义两个重名函数,分别求出整形数平面间两点间距离和双精度平面间两点间距离,如果没有输入第二点的坐标则默认为圆点(0,0)。 #include

int fun_c(int i0,int j0,int i1,int j1) {return (i0-i1)*(i0-i1)+(j0-j1)*(j0-j1); }

double fun_c(double x0,double y0,double x1,double y1) {return (x0-x1)*(x0-x1)+(y0-y1)*(y0-y1); }

int main()

{int i0=1,i1=2,j0=3,j1=4;//(i0,j0) (i1,j1)分别为两个点

double x0=1.1,x1=2.2,y0=3.3,y1=4.4;//(x0,y0) (x1,y1)分别为两个点 cout<<\距离为\cout<<\距离为\ return 0; }

2.设计一个函数:exchange(float x, float y, float z),当调用exchange(a,b,c)时,将a的内容

6

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库C++面向对象程序设计实验指导书[1](2)在线全文阅读。

C++面向对象程序设计实验指导书[1](2).doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/400705.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: