您好,欢迎访问三七文档
当前位置:首页 > 商业/管理/HR > 市场营销 > C++实验-综合实验
《C++面向对象程序设计》实验报告第1页共5页实验8综合实验[实验目的]1、全面了解面向对象思想;2、掌握面向对象程序设计的方法;3、学会简单的Windows程序设计。[实验要求]给出以下各实验内容的源程序代码,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交。[实验学时]2学时。[实验内容]1、用面向对象思想,设计实现一个链表LinkList类。链表中的结点如下面Node结构所定义,成员函数可以包括构造空链表、插入结点、删除结点、计算链表长度、打印每个结点、生成链表等。测试程序为:将整数2-10中的偶数结点按顺序用链表存储,计算结点的个数并输出每个结点。已知链表的结点类型定义如下:typedefstructNode{intdata;structNode*next;}Node,*PNode;[源程序]#includeiostream#includestdlib.husingnamespacestd;#defineN24typedefstructNode{intdata;structNode*next;}Node,*PNode;classLinklist{public:voidstrNode();//构造空链表《C++面向对象程序设计》实验报告第2页共5页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;iN;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;iN;i++){if(q-next!=NULL){《C++面向对象程序设计》实验报告第3页共5页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;iN;i++){if(q-next!=NULL){q=q-next;coutq-data'';}else{coutendl;break;}}}voidLinklist::inserlist(Node&r)//插入节点{Node*q;q=newNode;q=p;while(q-next!=NULL){q=q-next;}《C++面向对象程序设计》实验报告第4页共5页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;iN;i++){cina[i].data;if(a[i].data==-1)break;}}voidmain(){Linklistp;Nodea[N];《C++面向对象程序设计》实验报告第5页共5页inti=2,j;inputdata(a);//输入每个节点数据p.strNode();//构造空链表for(;i=10;i++){if(a[i].data==-1)break;if(i%2==0)p.inserlist(a[i]);//插入链表}j=p.lenlist();//输出节点个数cout结点个数:jendl结点:;p.printlist();//打印链表}[测试数据]
本文标题:C++实验-综合实验
链接地址:https://www.777doc.com/doc-2435273 .html