数据结构链表实现学生管理实验报告.docx

上传人:b****7 文档编号:9050060 上传时间:2023-02-02 格式:DOCX 页数:11 大小:93.61KB
下载 相关 举报
数据结构链表实现学生管理实验报告.docx_第1页
第1页 / 共11页
数据结构链表实现学生管理实验报告.docx_第2页
第2页 / 共11页
数据结构链表实现学生管理实验报告.docx_第3页
第3页 / 共11页
数据结构链表实现学生管理实验报告.docx_第4页
第4页 / 共11页
数据结构链表实现学生管理实验报告.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

数据结构链表实现学生管理实验报告.docx

《数据结构链表实现学生管理实验报告.docx》由会员分享,可在线阅读,更多相关《数据结构链表实现学生管理实验报告.docx(11页珍藏版)》请在冰豆网上搜索。

数据结构链表实现学生管理实验报告.docx

数据结构链表实现学生管理实验报告

 

计算机科学与技术系

实验报告

 

专业名称计算机科学与技术

课程名称《数据结构》

项目名称链表实现学生管理

班级

学号

姓名

同组人员无

实验日期

 

一、实验目的与要求:

(简述本次实验要求达到的目的,涉及到的相关知识点,实验的具体要求。

(一)实验目的:

应用链表来实现对数据的操作。

(二)实验要求:

用链表实现对数据的,增,删,改,查

(三)实验环境:

VC++6.0.

二、实验内容

#include

#include

#include

#defineError0

#defineOK1

typedefstructnode

{

charname[10];

charstuno[20];

floatscore;

structnode*next;

}LinkList;

/*置空表*/

LinkList*setnull(LinkList*L)

{

L->next=NULL;

returnL;

}

/*创建表*/

LinkList*createList()

{

LinkList*L,*S,*H;

inti=1;

L=(LinkList*)malloc(sizeof(LinkList));

L->next=NULL;

H=L;

while(i<5)

{

printf("请输入第%d个学生的姓名,学号,成绩\n",i);

S=(LinkList*)malloc(sizeof(LinkList));

scanf("%s",(S->name));

scanf("%s",(S->stuno));

scanf("%f",&(S->score));

//scanf("%s%s%f",(S->name),(S->stuno),&(S->score));

/*gets(S->name);

gets(S->stuno);

scanf("%f",&S->score);*/

S->next=NULL;

H->next=S;

H=S;

i++;

}

returnL;

}

/*链表的删除*/

LinkList*deleteList(LinkList*L,charstuno[])

{

if(L->next==NULL)

{

printf("此链表已经为空\n");

returnError;

}

while(L->next!

=NULL)

{

if(strcmp(L->next->stuno,stuno)==0)

{

L->next=L->next->next;

printf("--------------------------------------------------------");

printf("\n删除成功\n");

printf("--------------------------------------------------------");

returnL;

}

else

L=L->next;

}

printf("--------------------------------------------------------");

printf("\n对不起,没有找到你想要删除的学号,删除失败。

\n");

printf("--------------------------------------------------------\n");

returnL;

}

/*链表的增加*/

LinkList*insertList(LinkList*L,charname[],charstuno[],floatscore)

{

LinkList*p;

while(L->next!

=NULL)

L=L->next;

p=(LinkList*)malloc(sizeof(LinkList));

strcpy(p->name,name);

strcpy(p->stuno,stuno);

p->score=score;

p->next=NULL;

L->next=p;

L=p;

returnL;

}

/*链表的查找*/

LinkList*locateList(LinkList*L,charstuno[])

{

inti=1;

if(L->next==NULL)

{

printf("此链表为空,没有任何数据\n");

returnL;

}

while(L->next!

=NULL)

{

if(strcmp(L->next->stuno,stuno)==0)

{

printf("--------------------------------------------------------");

printf("\n第%d个学生的",i);

printf("姓名:

%s,学号:

%s,成绩:

%f\n",L->next->name,L->next->stuno,L->next->score);

printf("--------------------------------------------------------\n");

returnL;

}

L=L->next;

i++;

}

printf("--------------------------------------------------------");

printf("\n没有查到你的学生号。

\n");

printf("--------------------------------------------------------\n");

returnL;

}

/*输出链表*/

intprintList(LinkList*L)

{

LinkList*p;

inti=1;

p=L->next;

if(p==NULL)

{

printf("--------------------------------------------------------");

printf("\n此链表已经为空\n");

printf("--------------------------------------------------------\n");

returnError;

}

while(p!

=NULL)

{

printf("--------------------------------------------------------");

printf("\n第%d个学生的",i);

printf("姓名:

%s,学号:

%s,成绩:

%f\n",p->name,p->stuno,p->score);

printf("--------------------------------------------------------\n");

p=p->next;

i++;

}

returnOK;

}

voidmain()

{

LinkList*L;

intn;

charname[10];

charstuno[10];

floatscore;

printf("\t---------------------------请选择操作方式--------------------------\n");

printf("\t1:

建链表\t2删除表元素\t3:

输出表\t4:

增加表元素\n");

printf("\t5:

查找表元素\t0:

退出\n输入操作数:

");

scanf("%d",&n);

while(n)

{

if(n==1){

L=createList();

}

elseif(n==2){

printf("\n请输入想要删除的学号:

");

scanf("%s",stuno);

deleteList(L,stuno);

}

elseif(n==3)

{

printList(L);

}

elseif(n==4)

{

printf("请输入学生的姓名,学号,成绩:

");

scanf("%s",name);

scanf("%s",stuno);

scanf("%f",&score);

insertList(L,name,stuno,score);

}

if(n==5)

{

printf("请输入你要查找的学号:

");

scanf("%s",stuno);

locateList(L,stuno);

}

printf("\n\t---------------------------请选择操作方式--------------------------\n");

printf("\t1:

建链表\t2删除表元素\t3:

输出表\t4:

增加表元素\n");

printf("\t5:

查找表元素\t0:

退出\n输入操作数:

");

scanf("%d",&n);

}

}三、实验分析与小结

(实验过程中的问题分析、产生的原因以及解决方法;实验结果分析;有待优化思路)

(1)实验结果截图

(2)总结

通过链表,分别实现了对数据的增、删、改、查。

四、其它

 

得分(百分制)

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

当前位置:首页 > 高等教育 > 农学

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

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