c++类和对象实验报告

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

实验一类和对象

实验课程名:面向对象程序设计(C++)

专业班级:学号:姓名:

实验时间:实验地点:指导教师:

2.设计一个带头结点的单链表类,要求:

(1)生成一个整数线性表,实现将其分解成两个链表,

其中一个全部为奇数,另一个全部为偶数(尽量利

用已知的存储空间)。

(2)设计一个测试主函数,实际运行验证所设计单链表类的正确性。

实验代码:#include

using namespace std;

template

struct Node

{

T data;

Node *next; //此处也可以省略

};

template

"<

L1.Insert(4, 17);

cout<<"插入元素后链表为:";

L1.PrintList( );

L1.Delete(8);

cout<<"删除第8个元素后链表变为:";

L1.PrintList( );

return 0;

}

实验结果:

3.设计一个不带头结点的单链表类,要求:

(1)不带头结点单链表类的成员函数包括取数据元素个

数、插入元素、删除所有值为k的元素、取数据元素。

(提示:要考虑在第一个数据元素结点前插入和删除第

一个数据元素结点时与在其他位置插入和删除其他

位置结点时的不同情况。)

(2)设计一个测试主函数,实际运行验证所设计循环单链表类的正确性。

实验代码:

#include

using namespace std;

cout<<"在链表第5个位置插入元素17后链表变为:";

L.PrintList();

L.Delete(8);

cout<<"删除第8个元素后链表变为:";

L.PrintList();

return 0;

}

实验结果为:

4.设计一个带头结点的循环单链表类,实现约瑟夫环问题;

问题描述:设编号为1,2,…,n(n>0)个人按顺时针方向围坐-圈,每人持有一个正整数密码。开始时任意给出一个报数上限值m从第一个人开始顺时针方向自1起顺序报数。报到m时停止报数,报m的人出列,将他的密码作为新的m值,从他在顺时针方向上的下一个人起重新自1起顺序报数.如此下去,直到所有人全部出列为止。要求设计一个程序模拟此过程,并给出出列人的编号序列。

测试数据:

n=7,7个人的密码依次为3,1,7,2,4,8,4

初始报数上限值m=20

实验代码:

#include

using namespace std;

struct Node//定义一个接点包含编号,密码,指针变量{

int num;

int code;

p->data=0;

i=0;

}

cout<

}

int main()

{

CirList list;

list.inputcode();

list.Done();

return 0;

}

实验结果:

*5.设计一个带头结点的循环双向链表类,要求:

(1)带头结点循环双向链表类的成员函数包括:取数据

元素个数、插入、删除、取数据元素。

(2)设计一个测试主函数,实际运行验证所设计循环双向链表类的正确性

实验代码:

实验结果:*6.设计一个单链表实现一元多项式求和问题。要求:(1)设计存储结构表示一元多项式;

(2)设计算法实现一元多项式相加。

实验代码:#include

using namespace std;

struct Node

{

int e;

int x;

Node *next;

};

class LinkList

{

public:

LinkList(){first=new Node;first->next=NULL;}

LinkList(int a[],int b[],int n); //建立有n个元素的单链表

void PrintList(LinkList &L); //遍历单链表,按序号依次输出各元素

friend void function (LinkList &La,LinkList &Lb,LinkList &Lc);//友元函数,多项式的加减

private:

Node *first; //单链表的头指针

};

LinkList ::LinkList(int a[],int b[],int n)//生成多项式

{

first=new Node; //生成头结点

k->x=q->x;

o->next=k;

o=k;

p=q;

q=q->next;

}

}

if(q)o->next=q;

if(s)o->next=s;

}

实验结果:

三、结论

1)在类中有私有成员与共有成员,一般将类函数作为共有成员而把数据作为私有成员。

2)类中的私有成员只能被类函数引用,但友元函数可以引用类的私有成员,友元函数定义为:friend 函数类型函数名,一般在类中定义。

3)类模板用于类的定义相同只有类的成员类型不同,定义形式为:Template 类名{};在类外定义函数时:template

函数类型类名::函数名(){}。

相关文档
最新文档