内容发布更新时间 : 2024/11/13 14:29:00星期一 下面是文章的全部内容请认真阅读。
实验四 数组与指针实验
【实验目的】
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<<\访问数组元素的成员 return(0); }
(2)#include
class NumClass { int num; public: void set_num(int val){num=val;} void show_num(){cout<<\};
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<<\};
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<<\};
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)类可参考实验三的第3题。
【思考题】
1.数组之间如何赋值?
2.运算符“*”和“&”的作用是什么? 3.引用和指针有何区别?
4.对那些类型的数据不能使用引用?
5.使用new和delete运算符需注意些什么? 6.如何区分堆内存与栈内存?