预览加载中,请您耐心等待几秒...
1/5
2/5
3/5
4/5
5/5

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

《C++面向对象程序设计》实验报告第页共NUMPAGES5页实验8综合实验[实验目的]1、全面了解面向对象思想;2、掌握面向对象程序设计的方法;3、学会简单的Windows程序设计。[实验要求]给出以下各实验内容的源程序代码,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交。[实验学时]2学时。[实验内容]1、用面向对象思想,设计实现一个链表LinkList类。链表中的结点如下面Node结构所定义,成员函数可以包括构造空链表、插入结点、删除结点、计算链表长度、打印每个结点、生成链表等。测试程序为:将整数2-10中的偶数结点按顺序用链表存储,计算结点的个数并输出每个结点。已知链表的结点类型定义如下:typedefstructNode{intdata;structNode*next;}Node,*PNode;[源程序]#include<iostream>#include<stdlib.h>usingnamespacestd;#defineN24typedefstructNode{intdata;structNode*next;}Node,*PNode;classLinklist{public:voidstrNode();//构造空链表voidprodlinklist(Nodea[]);//生成链表intlenlist();//计算节点长度voidprintlist();//打印节点voidinserlist(Node&r);//插入节点voidconcellist(Noder);//删除结点protected:Node*p;};voidLinklist::strNode()//构造空链表函数{p=newNode;p->next=NULL;}voidLinklist::prodlinklist(Nodea[])//生成链表{inti;Node*q;q=newNode;q=p;for(i=0;i<N;i++){if(a[i].data==-1)break;q->next=&a[i];q=q->next;}q->next=NULL;}intLinklist::lenlist()//计算节点长度{inti,j=0;Node*q;q=newNode;q=p;for(i=0;i<N;i++){if(q->next!=NULL){q=q->next;j++;}elsebreak;}return(j);}voidLinklist::printlist()//打印节点{inti;Node*q;q=newNode;q=p;if(q->next==NULL){cout<<"没有节点"<<endl;return;}for(i=0;i<N;i++){if(q->next!=NULL){q=q->next;cout<<q->data<<'';}else{cout<<endl;break;}}}voidLinklist::inserlist(Node&r)//插入节点{Node*q;q=newNode;q=p;while(q->next!=NULL){q=q->next;}q->next=&r;q=q->next;q->next=NULL;}voidLinklist::concellist(Noder)//删除结点{inti,j=0;Node*q,*s;q=newNode;s=newNode;q=p;for(i=0;q->next!=NULL;i++){q=q->next;if(q->data==r.data){s=q->next;q->next=s->next;j=1;}}if(j==0)cout<<"没有找到要删除结点"<<endl;}voidinputdata(Nodea[])//输入每个节点数据{cout<<"输入数据,当输入为-1时停止"<<endl;inti=0;for(i=0;i<N;i++){cin>>a[i].data;if(a[i].da