当前位置:首页 > 《C++程序设计》上机指导与补充习题
5.设计一个职工类Employee。数据成员包括字符串型的name(姓名)、street(街道地址)、city(市)、province(省)、postalcode(邮政编码)。要求用成员函数实现以下功能: (1)创建职工对象时,可以按不同方式指定职工信息。 (2)动态地设置职工对象信息。 (3)在屏幕上打印职工信息。 (4)在主函数中测试该类。
6.需要求3个三角形的体积,请编写一个基于对象的程序。数据成员包括三角形的三边长a、b、 c。要求用成员函数实现以下功能: (1) 定义构造函数完成长方柱的初始化; (2) 求三角形的周长; (3) 求三角形的面积; (4) 输出三角形信息。
7.下面是一个整型数组类intArray的声明,请给出该类所有数据成员的类外定义。 class intArray {public:
intArray(int size);//构造函数
intArray(const intArray &x);//复制构造函数 ~intArray();//析构函数
bool Set(int i, int elem);//设置第i个数组元素的值,设置成功返回true,失败返回false bool Get(int i, int &elem); //获取第i个数组元素的值,获取成功返回true,失败返回false int Length( ) const;//获取数组的长度 void ReSize ( int size ); //重置数组 void Print();//输出数组 private:
int *element; //指向动态数组的指针 int arraysize; //数组的当前长度 };
8.下面是一个整型链表类intList的声明,请给出该类所有数据成员的类外定义。 class intList {protected:
struct Node{ Node * next; int data; };
Node * pFirst; public:
intList();//构造函数
~intList(); //析构函数
//向链表的第i个位置插入一个元素,插入成功返回true,失败返回false bool Insert(int i, int elem) ;
//删除链表的第i个位置的元素,删除成功返回true,失败返回false bool Remove(int i, int &elem) ;
int * Find(int elem)const; //查找值为elem的元素,返回指向该元素的指针 int Length( ) const;//返回链表长度
void Printlist();//输出链表 };
9.下面是一个整型堆栈类intStack的声明,请给出该类所有数据成员的类外定义。 class intStack {public:
intStack (int size=10);//构造函数 ~intStack ();//析构函数
bool Push(int elem);//入栈操作 bool Pop(int &elem); //出栈操作
int Length( ) const; //获取栈中元素的个数 private:
int *data; //指向动态数组的指针 int top; //栈顶指针 int size; //堆栈的容量 };
实验四、继承与组合(6学时) 一、实验目的
1.了解继承在面向对象程序设计中的重要作用。 2.进一步理解继承与派生的概念。
3.掌握通过继承派生出一个新的类的方法。 4.了解虚基类的作用和用法。 5.掌握类的组合
二、实验内容
1.请先阅读下面的程序,写出程序运行的结果,然后再上机运行程序,验证自己分析的结果是否正确。 (1)
#include
A(){cout<<\
virtual ~A(){cout<<\ };
class B:public A { public: B(int i)
{ cout<<\
buf=new char[i]; }
virtual ~B()
{ delete []buf;
cout<<\ } private:
char *buf; };
void fun(A *a)
{ cout<<\ delete a; }
int main()
{ A *a=new B(15); fun(a); return 0;
} (2)
#include
class B:private A{ private: int i,j; A Aobj; public: B(int a,int b,int c,int d):A(a,b),i(c),j(d) ,Aobj(1,1){ cout<<\ void Add(int x1,int y1,int x2,int y2) { A::Add(x1,y1); i+=x2; j+=y2; } void display(){ A::display(); Aobj.display();
cout<<\ } ~B(){cout<<\ };
int main() { B b(1,2,3,4); b.display(); b.Add(1,3,5,7); b.display(); return 0; } (3)
#include
class B:public virtual A{ private: int y; A Aobj; public: B(int a,int b,int c):A(a),y(c),Aobj(c){ cout<<\ int f(){ A::f(); Aobj.f(); return ++y; } void display(){ cout< class C:public B{ public: C(int a,int b,int c):B(a,b,c),A(0){ cout<<\}; class D:public C,public virtual A{ public: D(int a,int b,int c):C(a,b,c),A(c){ cout<<\
共分享92篇相关文档