预览加载中,请您耐心等待几秒...
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; #defineN24 typedefstructNode { 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].data==-1)break; } } voidmain() { Linklistp; Nodea[N]; inti=2,j; inp