您好,欢迎来到飒榕旅游知识分享网。
搜索
您的当前位置:首页(完整word版)C++实验综合实验

(完整word版)C++实验综合实验

来源:飒榕旅游知识分享网
(完整word版)C++实验综合实验

实验8 综合实验

[实验目的]

1、全面了解面向对象思想; 2、掌握面向对象程序设计的方法; 3、学会简单的Windows程序设计. [实验要求]

给出以下各实验内容的源程序代码,并把编译、运行过程中出现的问题以及解决方法填入实验报告中,按时上交. [实验学时]

2学时。 [实验内容]

1、用面向对象思想,设计实现一个链表LinkList类。链表中的结点如下面Node结构所定义,

成员函数可以包括构造空链表、插入结点、删除结点、计算链表长度、打印每个结点、生成链表等。测试程序为:将整数2—10中的偶数结点按顺序用链表存储,计算结点的个数并输出每个结点。已知链表的结点类型定义如下: typedef struct Node {

int data;

struct Node *next; }Node,*PNode;

[源程序]

#include第 1 页 共 8 页

(完整word版)C++实验综合实验

#include 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: };

void Linklist::strNode()//构造空链表函数 {

p=new Node;

第 2 页 共 8 页

Node *p;

(完整word版)C++实验综合实验

}

p->next=NULL;

void Linklist::prodlinklist(Node a[])//生成链表 { int i; Node *q; q=new Node; q=p;

for(i=0;inext;

}

q—>next=NULL;

}

int Linklist::lenlist()//计算节点长度 { int i,j=0; Node *q; q=new Node;

q=p;

第 3 页 共 8 页

(完整word版)C++实验综合实验

for(i=0;i〈N;i++) { }

if(q—>next!=NULL) { }

else break;

q=q—〉next; j++;

return(j);

void Linklist::printlist()//打印节点 {

int i;

Node *q; q=new Node; q=p;

if(q->next==NULL) {

cout<〈\"没有节点\"〈for(i=0;i〈N;i++)

第 4 页 共 8 页

(完整word版)C++实验综合实验

}

{ }

if(q->next!=NULL) { }

else {cout<q=q->next;

cout〈〈q-〉data〈<' ';

void Linklist::inserlist(Node &r)//插入节点 {

Node *q; q=new Node; q=p;

while(q->next!=NULL) { }

q—>next=&r; q=q—>next; q->next=NULL;

q=q—〉next;

}

第 5 页 共 8 页

(完整word版)C++实验综合实验

void Linklist::concellist(Node r)//删除结点 { }

void inputdata(Node a[])//输入每个节点数据 {

cout<<”输入数据,当输入为—1时停止\"<〈endl; int i=0;

第 6 页 共 8 页

int i,j=0; Node *q,*s; q=new Node; s=new Node; q=p;

for(i=0;q—>next!=NULL;i++) { }

if(j==0)cout〈<\"没有找到要删除结点”<〈endl;

q=q-〉next;

if(q->data==r。data) { }

s=q->next; q->next=s—〉next; j=1;

(完整word版)C++实验综合实验

}

for(i=0;icin>〉a[i]。data;

if(a[i]。data==-1)break;

void main() {

第 7 页 共 8 页

Linklist p; Node a[N]; int i=2,j;

inputdata(a);//输入每个节点数据 p。strNode();//构造空链表 for(;i<=10;i++) { }

j=p。lenlist();//输出节点个数

cout<<\"结点个数:\"〈if(a[i]。data==—1)break; if(i%2==0)

p.inserlist(a[i]);//插入链表

(完整word版)C++实验综合实验

} [测试数据]

第 8 页 共 8 页

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- sarr.cn 版权所有 赣ICP备2024042794号-1

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务