c++类和对象实验报告
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验一类和对象
实验课程名:面向对象程序设计(C++)
专业班级:学号:姓名:
实验时间:实验地点:指导教师:
2.设计一个带头结点的单链表类,要求:
(1)生成一个整数线性表,实现将其分解成两个链表,
其中一个全部为奇数,另一个全部为偶数(尽量利
用已知的存储空间)。
(2)设计一个测试主函数,实际运行验证所设计单链表类的正确性。
实验代码:#include
using namespace std;
template
struct Node
{
T data;
Node
};
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 函数类型类名