商品货架管理数据结构课程设计Word下载.docx

上传人:b****5 文档编号:8417140 上传时间:2023-05-11 格式:DOCX 页数:10 大小:17.15KB
下载 相关 举报
商品货架管理数据结构课程设计Word下载.docx_第1页
第1页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第2页
第2页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第3页
第3页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第4页
第4页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第5页
第5页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第6页
第6页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第7页
第7页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第8页
第8页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第9页
第9页 / 共10页
商品货架管理数据结构课程设计Word下载.docx_第10页
第10页 / 共10页
亲,该文档总共10页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

商品货架管理数据结构课程设计Word下载.docx

《商品货架管理数据结构课程设计Word下载.docx》由会员分享,可在线阅读,更多相关《商品货架管理数据结构课程设计Word下载.docx(10页珍藏版)》请在冰点文库上搜索。

商品货架管理数据结构课程设计Word下载.docx

程序中使用的是链栈,链栈的好处是只要还有存储空间就会存储,结构体的next域指向下一个数据域,它的存储空间是随意的,可以连续,也可以不连续。

数组:

数组的存储方式是连续的物理空间,下标即为存储位置,可以高效的运行

【测试情况】

小四宋体,行间距单倍行距

重点内容,每个功能抓图并且给予文字解释

【心得】

通过此次的课程设计让我深刻的了解到了数据结构是很难的,刚开始的写的时候,结构体定义就出错了,以至于后边的函数功能都出错了,就连输入都有错误,我刚开始以为是我的函数写错了呐!

把进栈、出栈函数照着教材上的又重新写了一会,结果发现还是不行,后来请教班里学的比较还好的同学,发现我结构体定义的有问题,我年份用的是int类型,月、日用的是char类型,char类型只能接收一个字符,第二个就不能接收不了,所我的输入总有问题,后来我改成int类型的就没有这种情况了。

后来又想边比较边压栈,弄了一段时间,后来由于时间关系就没实现,就借助数组实现的。

也是一种遗憾。

以后有时间写出来。

此次的课程设计,让我对栈有了更加深入的理解,因为结构体出错时写了好几遍,同时也感谢帮助我的老师和同学们,谢谢给我的帮助,才是顺利的完成此次课程设计。

【源程序】

5号,TimesNew Roman  字体

#include<

stdio.h>

malloc.h>

#defineFALSE0

#defineTRUE1

#defineSIZE3

#defineNUM100

//日期结构体定义

typedefstructDate

{

intyear;

intmonth;

intday;

}Date,*DATE;

//链栈结构体定义

typedefstructNode

Datedate;

structNode*next;

}linkstacknode,*linkstack;

//链栈初始化

voidinitstack(linkstack*S)

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

(*S)->

next=NULL;

}

//链栈进栈

intpush(linkstacknode*S,Datedate)

linkstacknode*temp;

temp=(linkstacknode*)malloc(sizeof(linkstacknode));

if(temp==NULL)return(FALSE);

temp->

date.year=date.year;

date.month=date.month;

date.day=date.day;

next=S->

next;

S->

next=temp;

return(TRUE);

}

//链栈出栈

intPop(linkstacknode*S,Date*date)

temp=S->

if(temp==NULL)return0;

S->

next=temp->

date->

year=temp->

date.year;

month=temp->

date.month;

day=temp->

date.day;

free(temp);

return1;

//链栈输出

voidshow_Date_linkstacknode(linkstacknode*S)

linkstacknode*p=NULL;

p=S->

while(p!

=NULL)

{

printf("

%d:

\n"

p->

date.year,p->

date.month,p->

date.day);

p=p->

}

//删除

voiddelet(linkstacknode*S,Date*date)

inti=0,j=0,n=0;

//temp0,temp1,temp2,

inta[NUM]={0};

intb[NUM]={0};

intc[NUM]={0};

Date*date0=NULL;

date0=(Date*)malloc(sizeof(Date));

while(S->

next!

=NULL)//将栈中元素放在数组中

Pop(S,date);

a[i]=date->

year;

b[i]=date->

month;

c[i]=date->

day;

i++;

//删除元素与栈中元素比较并覆盖删除

for(j=0;

j<

i-1;

j++)

if(a[j]==date->

year)

{

if(b[j]==date->

month)

{

if(c[j]==date->

day)

for(;

i;

{

a[j]=a[j+1];

b[j]=b[j+1];

c[j]=c[j+1];

}

}

//将排好的数组中元素压入到栈中

for(n=0;

n<

n++)

date.year=a[n];

date.month=b[n];

date.day=c[n];

push(S,S->

date);

//a[n]=S->

//b[n]=S->

//c[n]=S->

//push(S,S->

//排序压栈

voidshuru(linkstacknode*S)

inti=0,j=0,n=0,temp0,temp1,temp2;

//日期—年数组

//日期—月数组

//日期—日数组

Date*date=NULL;

date=(Date*)malloc(sizeof(Date));

{

//从大到小排序

if(a[j]<

a[j+1])//将年从大到小排序

temp0=a[j+1];

temp1=b[j+1];

temp2=c[j+1];

a[j+1]=a[j];

b[j+1]=b[j];

c[j+1]=c[j];

a[j]=temp0;

b[j]=temp1;

c[j]=temp2;

elseif(b[j]<

b[j+1])//将月从大到小排序

;

elseif(c[j]<

c[j+1])//将日从大到小排序

voidmenu()

{

printf("

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

);

******************可口可乐**********************\n"

***********日期(年月日)之间用空格隔开***************\n"

**********一个日期(年月日)完成后按回车**************\n"

****************** 1:

产品输入 **********************\n"

***************** 2:

****************** 3:

产品输出 **********************\n"

****************** 4:

退  出 ***********************\n"

voidmain()

chari=0,flag=1,cloise=0;

intm=0;

linkstacknode*S=NULL;

//*S=(linkstacknode*)malloc(sizeof(linkstacknode))

Date*date1=NULL;

initstack(&

S);

flushall();

date1=(Date*)malloc(sizeof(Date));

while(flag)

menu();

请输入选择项:

scanf("

%d"

&

cloise);

switch(cloise)

case1:

printf("

请安输入商品个数:

scanf("

m);

请输入日期(年月日):

for(i=0;

i<

m;

i++)

{

scanf("

%d%d%d"

date->

year,&

month,&

day);

push(S,*date);

}

break;

case2:

请输入日期(年月日):

date1->

delet(S,date1);

case3:

上货后的日期如下:

shuru(S);

show_Date_linkstacknode(S);

case4:

flag=0;

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

当前位置:首页 > 自然科学 > 物理

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2