资源描述:
《商品货架管理剖析.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、洛阳理工学院课程设计报告课程名称数据结构课程设计设计题目商品货架管理专业计算机科学与技术课程设计任务书设计题目:商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。设计内容与要求:针对一种特定商品,实现上述管理过程。课程设计评语成绩:指导教师:_______________年月日洛阳理工学院课程设计报告1.问题描述商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。2.基本要求针对一种特定商品,实现上述管理过程。3.数
2、据结构structinformation/*定义商品信息*/{charname[10];/*名称*/longdate;/*生产日期*/};typedefstruct/*定义顺序栈*/{structinformationsp[size];inttop;}seqstack;4.总体设计5洛阳理工学院课程设计报告Push函数cmp函数Pop函数5洛阳理工学院课程设计报告5.详细设计1输入模块:输入商品信息2排序模块:按照要求实现商品生产日期排序的功能3输出模块:输出商品信息在这次实验中,我主要采用了栈这一数据结构,通过建立两个栈,一个输入栈,一个辅助栈,辅助栈在插入的时候将较新
3、商品早的移入,新商品进主栈后将辅助栈的数据移到主栈中,主栈就按生产日期较近的商品在较下位置存放。再编写一个购买程序将栈顶的商品上架,实现产品的出栈。6.测试与调试7.源程序#include#include#definesize4structinformation/*定义商品信息*/{5洛阳理工学院课程设计报告charname[10];/*名称*/longdate;/*生产日期*/};typedefstruct/*定义顺序栈*/{structinformationsp[size];inttop;}seqstack;intpush(seq
4、stack*s1){inti=0,t;for(s1->top=0;s1->toptop++){printf("输入名称与日期:",s1->top+1);scanf("%s%d",s1->sp[s1->top].name,&s1->sp[s1->top].date);}printf("");t=--s1->top;printf("商品名
5、
6、日期:");for(s1->top=t;s1->top>=0;s1->top--){printf("%10s",s1->sp[s1->top].name);printf("%10d",s1->sp[s1
7、->top].date);}return(t);}//返回s1当前栈顶}intcmp(seqstack*s1,seqstack*s2,intt){structinformationNew;s1->top=t;5洛阳理工学院课程设计报告s2->top=-1;//输入新商品名字和日期printf("输入商品名:");scanf("%s",New.name);printf("生产日期:");scanf("%d",&New.date);printf("");while(s1->top!=-1&&New.date-s1->sp[s1->top].date>0)/*比较新旧商品的
8、生产日期*/{s2->top++;strcpy(s2->sp[s2->top].name,s1->sp[s1->top].name);s2->sp[s2->top].date=s1->sp[s1->top].date;s1->top--;}s1->top++;/*将新商品插入货架*/strcpy(s1->sp[s1->top].name,New.name);printf("%s%ld",New.name,New.date);s1->sp[s1->top].date=New.date;for(;s2->top>-1;s2->top--){s1->top++;strcpy
9、(s1->sp[s1->top].name,s2->sp[s2->top].name);printf("%s%ld",s2->sp[s2->top].name,s2->sp[s2->top].date);s1->sp[s1->top].date=s2->sp[s2->top].date;}printf("");return(s1->top);5洛阳理工学院课程设计报告}voidpop(seqstack*s1,intTOP)/*输出插入新商品后的货架商品顺序*/{printf("商品名
10、
11、生产日期:");for(s1