收藏 分销(赏)

C++实验-综合实验.doc

上传人:a199****6536 文档编号:10506890 上传时间:2025-05-31 格式:DOC 页数:5 大小:35KB
下载 相关 举报
C++实验-综合实验.doc_第1页
第1页 / 共5页
C++实验-综合实验.doc_第2页
第2页 / 共5页
点击查看更多>>
资源描述
《C++面向对象程序设计》实验报告 实验8 综合实验 [实验目的] 1、全面了解面向对象思想; 2、掌握面向对象程序设计的方法; 3、学会简单的Windows程序设计。 [实验要求] 给出以下各实验内容的源程序代码,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交。 [实验学时] 2学时。 [实验内容] 1、用面向对象思想,设计实现一个链表LinkList类。链表中的结点如下面Node结构所定义,成员函数可以包括构造空链表、插入结点、删除结点、计算链表长度、打印每个结点、生成链表等。测试程序为:将整数2-10中的偶数结点按顺序用链表存储,计算结点的个数并输出每个结点。已知链表的结点类型定义如下: typedef struct Node { int data; struct Node *next; }Node,*PNode; [源程序] #include<iostream> #include<stdlib.h> using namespace std; #define N 24 typedef struct Node { int data; struct Node *next; }Node,*PNode; class Linklist { public: void strNode();//构造空链表 void prodlinklist(Node a[]);//生成链表 int lenlist();//计算节点长度 void printlist();//打印节点 void inserlist(Node &r);//插入节点 void concellist(Node r);//删除结点 protected: Node *p; }; void Linklist::strNode()//构造空链表函数 { p=new Node; p->next=NULL; } void Linklist::prodlinklist(Node a[])//生成链表 { int i; Node *q; q=new Node; q=p; for(i=0;i<N;i++) { if(a[i].data==-1)break; q->next=&a[i]; q=q->next; } q->next=NULL; } int Linklist::lenlist()//计算节点长度 { int i,j=0; Node *q; q=new Node; q=p; for(i=0;i<N;i++) { if(q->next!=NULL) { q=q->next; j++; } else break; } return(j); } void Linklist::printlist()//打印节点 { int i; Node *q; q=new Node; 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;} } } void Linklist::inserlist(Node &r)//插入节点 { Node *q; q=new Node; q=p; while(q->next!=NULL) { q=q->next; } q->next=&r; q=q->next; q->next=NULL; } void Linklist::concellist(Node r)//删除结点 { int i,j=0; Node *q,*s; q=new Node; s=new Node; 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; } void inputdata(Node a[])//输入每个节点数据 { cout<<"输入数据,当输入为-1时停止"<<endl; int i=0; for(i=0;i<N;i++) { cin>>a[i].data; if(a[i].data==-1)break; } } void main() { Linklist p; Node a[N]; int i=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<<"结点个数:"<<j<<endl<<"结点:"; p.printlist();//打印链表 } [测试数据] 第 5 页 共 5 页
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传
相似文档                                   自信AI助手自信AI助手

当前位置:首页 > 通信科技 > 开发语言

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2025 宁波自信网络信息技术有限公司  版权所有

客服电话:4009-655-100  投诉/维权电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服