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

2019-03-23 11:29

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<<\<

问题一:上述程序的输出结果是什么? 问题二:哪些情况可以参与函数的重载? 问题三:①处调用的是哪个函数?

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

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

#include

int main() {

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

问题一:①、②、③处动态申请内存分别代表什么不一样的意思? 问题二:该程序存在什么隐患?改正该程序使隐患消除。

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()

4

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

{ }

int i = 5; int j = 10;

cout<<\<

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

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

return 1;

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

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

1.2.2 程序设计

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

2.设计一个函数:exchange(float x, float y, float z),当调用exchange(a,b,c)时,将a的内容赋值给b,b的内容赋值给c,c的内容赋值给a,要求采用引用的方式来实现。

1.3 思考题

1.自己设计一个程序,测试const的三种用法:指向常量的指针,常指针,指向常量的常指针。

2.编写一个函数,实现两个字符串变量的交换,要求参数用引用。

5

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

实验二 类和对象—类的构建

2.1 实验目的

1.类的定义; 2.类对象的使用;

3.类成员变量的定义和使用; 4.类成员函数的定义和使用; 5.理解类的作用域; 6.理解类的声明;

7.理解类中private和public权限的声明依据。

2.2 实验内容 2.2.1程序阅读

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

#include

class CDate {

void Set(int m, int d, int y ) { month = m ; day = d ; year = y ; }

int IsLeapYear() { return (year%4 == 0 && year0 != 0)||(year@0 == 0); } public:

void Print() { cout<

int month; int day; int year; };

6


C++面向对象程序设计实验指导书(2).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:通识教育选修课网络课程考试内容答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: