建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx

上传人:b****1 文档编号:14598888 上传时间:2022-10-23 格式:DOCX 页数:15 大小:47.04KB
下载 相关 举报
建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx_第1页
第1页 / 共15页
建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx_第2页
第2页 / 共15页
建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx_第3页
第3页 / 共15页
建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx_第4页
第4页 / 共15页
建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx

《建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx》由会员分享,可在线阅读,更多相关《建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx(15页珍藏版)》请在冰豆网上搜索。

建立一个采用链式存储的线性表表中元素为学生每个学生信息包含姓名学号和成绩三部分对该表实现Word文档格式.docx

#include<

iostream>

iomanip>

usingnamespacestd;

struct

node

{int

num;

char

name[10];

float

score;

*next;

};

class

linked_list

{private:

node*head;

public:

linked_list();

voidprt_linked_list();

voidins_num_linked_list(inti,node*b);

voidins_name_linked_list(charname[],node*b);

intdel_num_linked_list(node);

intdel_name_linked_list(node);

intsear_num_linked_list(int);

voidsear_name_linked_list(node);

voidcount_linked_list();

}

/*建立链表*/linked_list:

:

linked_list()

{node*p,*q;

p=newnode;

q=newnode;

p->

num=101;

strcpy(p->

name,"

aaa"

);

p->

score=98;

q->

num=104;

strcpy(q->

ddd"

q->

score=95;

head=p;

next=q;

next=NULL;

return;

/*输出*/

voidlinked_list:

prt_linked_list()

{node*p;

p=head;

if(head==NULL){cout<

<

"

空链表!

”<

endl;

return;

}elsedo{cout<

num<

"

name<

score<

p=p->

next;

while(p!

=NULL);

/*按学号插入*/

ins_num_linked_list(inti,node*b)

{node*q;

if(head==NULL)

{b->

head=b;

if(head->

num==i)

next=head;

q=head;

while((q->

next!

=NULL)&

&

(((q->

next)->

num)!

=i))q=q->

if(q->

next==NULL){cout<

无此元素"

}b->

next=q->

next=b;

return

/*按姓名插入*/

ins_name_linked_list(charname[],node*b)

if(strcmp(head->

name,name)==0)

head=breturn;

(strcmp((q->

name,name)!

=0))

q=q->

/*按学号删除*/

intlinked_list:

del_num_linked_list(nodex)

return0;

num==x.num)

{p=head->

deletehead;

return1;

}q=head;

=x.num))q=q->

next==0){cout<

链表中无此元素"

p=q->

next=p->

deletep;

return1;

/*按姓名删除*/

del_name_linked_list(nodex)

name,x.name)==0)

name,x.name)!

return

/*按学号查找*/

sear_num_linked_list(inti){node*q;

((q->

=i))

if((q->

=i)

{cout<

cout<

/*按姓名查找*/

sear_name_linked_list(nodex)

}p=head;

while((p->

(strcmp(p->

name,x.name)!

=0))p=p->

if(strcmp(p->

=0)

/*计算*/

count_linked_list()

{floatsum=0,ave;

intn=0;

node*p;

if(p==0)

空链表"

elsewhile(p!

{sum=sum+p->

nxt;

n++;

ave=sum/n;

总分="

sum<

平均分="

ave<

/*主函数*/intmain()

{intmx;

linked_lists1;

while

(1)

{cout<

1.输出2.插入3.删除4.查找5.计算0.退出"

请输入0-5:

;

cin>

>

mx;

switch(mx)

{case1:

s1.prt_linked_list();

break;

case2:

{node*b=newnode;

intmx1;

1.按学号插入2.按姓名插入0.退出"

输入0-2:

cin>

mx1;

switch(mx1)

请输入要插入位置的学号(在此之前一位插入):

i;

请输入要插入的学号、姓名、成绩:

b->

num>

name>

score;

s1.ins_num_linked_list(i,b);

charname[10];

请输入要插入位置的姓名(在此之前一位插入):

name;

s1.ins_name_linked_list(name,b);

s1.prt_linked_list();

case0:

cout<

退出"

}break;

case3:

{intmx2;

nodex;

请输入要删除的:

1.按学号删除2.按姓名删除0.退出"

mx2;

switch(mx2)

{case1:

请输入要删除的学号:

x.num;

s1.del_num_linked_list(x);

请输入删除姓名

x。

name;

s1.del_name_linked_list(x);

case4:

{intmx3;

1.按学号查找2.按姓名查找0.退出"

mx3;

switch(mx3)

inti;

请输入要查找的学号:

break;

s1.sear_num_linked_list(i);

nodex;

请输入要查找的姓名:

x.name;

return0;

cas

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 学科竞赛

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1