实验三 数组与指针实验

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

实验三数组与指针实验

【实验目的】

1.学习使用数组数据对象。

2.掌握指针的使用方法。

3.学习通过动态内存分配实现动态数组的定义和使用,并体会指针在其中的作用。4.练习通过Debug观察指针的内容及其所指对象的内容。

【实验内容】

1.运行下列程序,观察运行结果。

(1)#include

class ArrayElem

{

int x;

public:

ArrayElem(int i){x=i;} //带参数的构造函数

int getx(){return x;}

};

int main()

{

ArrayElem obs[4] ={-1,-2,-3,-4}; //创建对象数组并初始化

for(int i=0;i<4;i++)

cout<<"obs["<

return(0);

}

(2)#include

class NumClass

{

int num;

public:

void set_num(int val){num=val;}

void show_num(){cout<<"The num is :"<

};

int main()

{

NumClass ob,*p; //声明一个对象和指向对象的指针

ob.set_num(10); ob.show_num(); //通过对象ob直接调用成员函数

p=&ob; //使对象指针p指向对象ob

p->set_num(20);p->show_num(); //通过指针调用成员函数

return(0);

}

(3)#include

class NumClass

{

int num;

public:

void set_num(int val){num=val;}

void show_num(){cout<<"The num is :"<

};

int main()

{

NumClass ob[2],*p; //声明一个对象数组和对象指针

ob[0].set_num(10); ob[1].set_num(20); //通过对象数组名和下标来访问元素

p=&ob[0]; //将对象数组的首元素地址赋给指针

p->show_num(); //通过指针显示数组元素

p++; p->show_num();

return(0);

}

(4)#include

class NumClass

{

int num;

public:

void set_num(int val){num=val;}

void show_num(){cout<<"The num is :"<

};

int main()

{

NumClass *p=new NumClass[2]; //创建一个对象数组

p[0].set_num(10); p[1].set_num(20); //通过指针访问数组元素的成员

p[0].show_num(); p[1].show_num(); //通过指针显示数组元素delete[] p; //删除整个对象数组

return(0);

}

2.编写一个程序,输入N个学生数据,包括学号、姓名、成绩,要求输出这些学生数据并计算平均分。设计一个学生类,包括学号、姓名和成绩数据成员外,还有两个静态变量sum和num,分别存放总分和人数,另有两个普通成员函数setdata()和disp(),分别用于给数据成员赋值和输出数据成员的值,另有一个静态成员函数avg(),它用于计算平均分。在main()函数中定义了一个对象数组用于存储输入的学生数据。

3.用对象数组实现一个简单的银行账户管理系统,完成开户、存款、取款和查询余额等行为。银行账户(Account)类可参考实验二的第2题。

【思考题】

1.数组之间如何赋值?

2.引用和指针有何区别?

3.对那些类型的数据不能使用引用?

4.C++中静态成员有什么作用?静态成员的内存是如何分配的?

5.类的指针成员为何要用new开辟内存空间,这样做的好处是什么?

6.如果你定义了一个类,其指针成员是使用new初始化的,请指出可能出现的3个问题以及如何纠正这些问题。

相关文档
最新文档