面向对象程序的设计实验报告

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

面向对象程序设计实验报告

学生所在学院:信息科学与工程学院

学生所在班级:

学生:

指导教师:

实验一 C++基础

1.1实验目的

1.了解并熟悉开发环境,学会调试程序;

2.熟悉C++中简单的标准输入输出函数的使用方法;

3.理解const修饰符的作用并学会应用;

4.理解联函数的优缺点并学会其使用场合;

5.理解并学会函数重载;

6.理解并熟练掌握使用new和delete来分配存;

7.理解并熟练掌握引用的使用方法。

1.2实验容

1.2.1程序阅读

1.理解下面的程序并运行,然后回答问题。

#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);

x2=max_def(2,3,4);

d1=max_def(2.1,5.6);

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

cout<<"x1="<

cout<<"x2="<

cout<<"d1="<

cout<<"d2="<

return 1;

}

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

答:输出结果为

问题二:①处调用的是哪个函数?

答:①处调用的是double max_def(double x,double y)函数

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

答:因为调用的int max_def(int x,int y,int z)函数返回值为整型。

2.理解下面的程序并运行,然后回答问题。

#include

int main()

{

int*p1=new

int;------------------------------------------------------①int*p2=new

int(0);-------------------------------------------------------②char*p3=new

char[10];----------------------------------------------------③return 1;

}

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

答:①处:定义一个整型指针动态分配一个整型空间将首地址赋给p1;

②处:定义一个整型指针动态分配一个整型空间,并赋值为0;

③处:定义一个字符型指针动态分配具有10个数组元素的字符数组空间,将

首地址赋给p3。

问题二:该程序存在什么不合理的地方?

答:程序结束时没有释放分配的存储空间。

3. 理解下面的程序并运行,然后回答问题。

#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<<"Before swap:i="<

swap(i,j);

cout<<"After the first swap:i="<

swap(&i,&j);

cout<<"After the second swap:i="<

return 1;

}

问题一:输出结果是什么?

答:

问题二:①处函数调用不能实现两个数的交换,而②可以,原因是什么?答:①处调用的函数形参为整型变量,是值传递,形参的改变不影响实参;

②处调用的函数形参为指针,是址传递,形参的改变会导致实参的改变。问题三:②处调用的是哪个函数?

答:调用的函数是void swap(int*a,int*b)。

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

2.1 实验目的

1.类的定义;

2.类对象的使用;

3.类成员变量的定义和使用;

4.类成员函数的定义和使用;

5.理解类的作用域;

6.理解类的声明;

7.理解类中成员的访问属性;

2.2 实验容

2.2.1程序阅读

1. 理解下面的程序并运行,然后回答后面的问题。

#include

class CDate

{

public:

void Set(int m,int d,int y)

{

month=m;

day=d;

year=y;

}

int IsLeapYear()

相关文档
最新文档