大数据结构实习报告材料链表维护Word格式文档下载.docx

上传人:b****7 文档编号:22523296 上传时间:2023-02-04 格式:DOCX 页数:26 大小:345.69KB
下载 相关 举报
大数据结构实习报告材料链表维护Word格式文档下载.docx_第1页
第1页 / 共26页
大数据结构实习报告材料链表维护Word格式文档下载.docx_第2页
第2页 / 共26页
大数据结构实习报告材料链表维护Word格式文档下载.docx_第3页
第3页 / 共26页
大数据结构实习报告材料链表维护Word格式文档下载.docx_第4页
第4页 / 共26页
大数据结构实习报告材料链表维护Word格式文档下载.docx_第5页
第5页 / 共26页
点击查看更多>>
下载资源
资源描述

大数据结构实习报告材料链表维护Word格式文档下载.docx

《大数据结构实习报告材料链表维护Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《大数据结构实习报告材料链表维护Word格式文档下载.docx(26页珍藏版)》请在冰豆网上搜索。

大数据结构实习报告材料链表维护Word格式文档下载.docx

三,详细设计

以链式结构的有序表表示某商厦家电部的库存模型,日常的维护包括初始化、插入、删除、更新、打印、查询,其中主函数设计如下:

当输入不同的数字时,主函数将调用不同的功能函数。

主函数设计如下:

voidmain()

intoperate=1;

LNode*L;

printf("

\t\t\t@!

@家电部库存管理系统@!

@\n\n"

);

Init(&

L);

while(operate)

{

printf("

\t************************************************"

\n\t\t1.系统初始化\t2.插入数据\t3.删除数据\t\n\t\t4.更新数据\t5.打印数据\t6.查询数据\n\t\t0.退出系统\n"

\t************************************************\n"

选择您所要执行的操作编号:

"

scanf("

%d"

&

operate);

switch(operate)

{

case0:

\n\n\t---*---*---操作结束,按任意键退出系统!

---*---*---\n\n"

break;

case1:

operate1(&

case2:

operate2(&

case3:

operate3(&

case4:

operate4(&

case5:

operate5(L);

case6:

operate6(L);

default:

printf("

对不起,没有这项操作。

\n"

详细程序设计如下:

#include<

stdio.h>

#include<

malloc.h>

string.h>

#include<

stdlib.h>

#defineTURE1

#defineFALSE0

#defineOK1

#defineERROR0

#defineSEPARATEprintf("

\n\n\n\t***************************************\n\n\n"

#defineCHOOSEprintf("

您是否继续操作(1/0):

"

#defineUPDATEprintf("

将其更新为:

typedefintStatus;

typedefstructsheet

{

intnumber;

//产品编号

charname[20];

//产品名称

charpattern[20];

//产品型号

intprice;

//产品价格

intinventory;

//目前产品库存

}sheet;

//存储产品数据的结构体

typedefstructLNode

sheetdate;

//产品数据域

structLNode*next;

//链表指针域

}LNode,*List;

//链式结构存储

StatusInit(LNode**L)

//初始化链表

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

//开辟头结点空间

(*L)->

next=NULL;

//头指针指向空

date.price=0;

//预设头结点中价格为0,方便价格排序

returnOK;

}

StatusInsert(LNode**L,LNode*N)

//在链表中插入数据为e的新产品数据

LNode*New;

LNode*pre,*p;

p=*L;

pre=*L;

New=(LNode*)malloc(sizeof(LNode));

//开辟新结点空间

New->

date=N->

date;

New->

//新结点初始化

while(p)

{//寻找新产品该插入的位置并插入L中

if(p->

date.price<

=N->

date.price)

pre=p;

p=p->

next;

if(!

p)pre->

next=New;

}

else

New->

next=pre->

pre->

p=NULL;

}

}

StatusDelete(LNode**L,inti)

{//寻找该产品的位置并删除产品数据

LNode*p,*q;

q=p->

while(q->

next&

&

q->

date.number!

=i)

p=p->

q=p->

}//寻找该产品的位置

if(!

q)returnERROR;

p->

next=q->

//删除产品数据

free(q);

StatusPrintdate(sheete)

{//打印某产品数据

编号:

%d\n名称:

%s\n型号:

%s\n价格:

%d\n库存:

%d\n"

e.number,e.name,e.pattern,e.price,e.inventory);

---*---*---*---\n"

StatusUpdatenumber(LNode**L,inti)

{//更新编号为i的产品编号

LNode*p=(*L)->

intj;

sheete;

UPDATE;

scanf("

j);

while(p&

p->

=i)p=p->

//寻找该产品的位置

p)returnERROR;

date.number=j;

//更新产品编号

e=p->

\n\n****产品数据更新****\n"

Printdate(e);

//打印新产品数据

StatusUpdatename(LNode**L,inti)

{//更新编号为i的产品名称

charj[20];

%s"

j);

strcpy(p->

date.name,j);

//更新产品名称

StatusUpdatepattern(LNode**L,inti)

{//更新编号为i的产品型号

date.pattern,j);

//更新产品型号

StatusUpdateprice(LNode**L,inti)

{//更新编号为i的产品价格

date.price=j;

//更新产品价格

StatusUpdateinventory(LNode**L,inti)

{//更新编号为i的产品库存

库存改变量为:

date.inventory=p->

date.inventory+j;

//更新产品库存

StatusCheekdate(LNode*L,inti)

{//查询编号为i的产品是否存在

LNode*p=L->

StatusPrintList(LNode*L)

{//打印整个数据表

e=p->

Printdate(e);

}//边遍历边打印数据

voidoperate1(LNode**L)

{//辅助初始化

(*L));

\n\t----初始化完成----\n"

voidoperate2(LNode**L)

{//辅助插入,实现确认新信息再插入。

LNode*N;

intchoose;

N=(LNode*)malloc(sizeof(LNode));

SEPARATE;

\t****新产品信息****\n"

\n编号:

N->

date.number);

\n名称:

N->

date.name);

\n型号:

date.pattern);

\n价格:

date.price);

\n库存:

date.inventory);

\t****您要插入的新数据****\n"

date.number,N->

date.name,N->

date.pattern,N->

date.price,N->

CHOOSE;

choose);

//确认信息

if(choose)

Insert(&

(*L),N);

//插入

\n\t----数据已插入----\n\n"

elseprintf("

\n\t----数据插入失败----\n\n"

voidoperate3(LNode**L)

{//辅助删除,以编号为索引。

inti,j,choose;

您要删除的产品编号:

i);

j=Cheekdate((*L),i);

//检查数据是否存在

if(j)

\n\n\t****您要删除的数据****\n"

LNode*p=(*L)->

while(p->

CHOOSE;

//确认信息

if(choose)

Delete(&

(*L),i);

//删除

printf("

\t----已删除----\n"

elseprintf("

\t----退出----\n"

\t----数据不存在,删除失败----\n"

voidoperate4(LNode**L)

{//辅助更新,以编号为索引,实现选择性更新。

inti,content,choose;

您要更新的产品编号为:

if(Cheekdate((*L),i))

\n\t\t1.产品编号\t2.产品名称\t3.产品型号\t\n\t\t4.产品价格\t5.产品库存\t6.取消更新\t\t\n"

loop:

您要更新的产品内容为:

content);

switch(content)

Updatenumber(&

Updatename(&

Updatepattern(&

Updateprice(&

Updateinventory(&

break;

对不起,没有此操作项。

CHOOSE;

scanf("

if(choose)gotoloop;

//可选择继续更新

}//选择不同内容更新

对不起,没有这个编号。

\t----更新完毕----\n\n"

voidoperate5(LNode*L)

{//辅助打印

\t----家电数据表----\n\n"

PrintList(L);

voidoperate6(LNode*L)

{//辅助查询,以编号为索引。

inti,j;

您要查询的产品编号是:

j=Cheekdate(L,i);

LNode*p=L->

\t----产品数据----\n"

//打印产品数据

对不起,没有此编号的信息。

{//以链式结构的有序表表示某商厦家电部的库存模型,日常的维护包括初始化、插入、删除、更新、打印、查询。

intoperate=1;

四,运行与测试结果:

以下是进入系统后的主界面:

用户选择所需进行的操作:

假如输入不识别数字,系统会自动提示,如下:

以下是进库操作,插入一中商品:

以下是产品的更新操作演示:

以下是打印所需产品数据的操作:

以下是删除数据的操作:

以下是退出系统的操作:

以下是再次进入系统后,进行一些功能操作的截图:

五,实习体会:

通过本次实习,加深了对线性表的理解,从其定义,存储,以及一些基本操作如:

插入,删除,打印,和查找等操作进行了全面的理解和应用,再遇到困难时通过查询资料和实例来帮助自己完善和改进算法程序,同时也提高了自己设计完整的C语言的程序的能力。

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

当前位置:首页 > 农林牧渔 > 水产渔业

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

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