ImageVerifierCode 换一换
格式:DOCX , 页数:20 ,大小:40.14KB ,
资源ID:17028252      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17028252.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(算法与数据结构的商品货架管理课程设计报告还有程序源代码Word下载.docx)为本站会员(b****3)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

算法与数据结构的商品货架管理课程设计报告还有程序源代码Word下载.docx

1、让店主输入第一种需要补货的商品的商品名和今天销售出去的数量。然后,输入要补上货架的商品名和生产日期并将要补上货架的商品与在货架上未销售出去的货物进行生产日期的比较。若是要补上货架的货物日期比较早就直接上货架。否则进行倒货再补货,这样就能将日期比较近的放在栈底。用另外申请的一个空栈来存储倒出的货物。第一种商品补完货后,再问店主是否还有其他商品需要补货。如需补货按第一种商品补货的程序来进行。以此类推进行补货。三、设计1. 数据结构的设计(1)商品信息:typedef struct char b;/存储商品名 /商品日期年、月、日 int year; int month; int day;Data;

2、(2)商品货架(栈)#define max 5 Data amax;/0为栈底位置 int top;/栈顶Stack;(3)商品种类:Stack *s5;/5种商品2.算法设计: (1)初始化空栈: 利用for循环为每个(商品货架)栈申请空间,并进行判断是否有申请到空间,若没有申请到空间就输出提示“空间不足!”,若是有申请到空间,top指向栈顶,初始值为1,栈底是0的位置。(2)上货的算法设计: 先定义四个变量分别是字符型的k1,整型的k2,k3,k4用来存储商品名和商品的生产日期,再赋值给栈元素的各个属性,即将商品上货。再赋值前先判断top是否是最大值,若是就输出提示“栈满”并结束该上货程序

3、。当货物上满后输出提示表示商品的货架上满了并输出此时货架上货物的数量,利用for循环进行下一个商品的上货,直至将5个商品的货架全部上满。(3)出货(即当天的销售)的算法设计:一天的营业结束了,店主需要为有销售出去的商品进行补货。因此需要知道是哪个商品有销售出去以及其销售的数量,让店主输入今天有销售出去的一种商品的商品名,若是店主输入此商店没有的商品名就输出提示,并让店主再次输入商品名,接着要输入销售的数量,程序要对销售的数量进行判断是否超出了栈的最大值(即货架上所能容纳货物的最大数量),若是超出输出提示,并请店主再次输入销售的数量。(4)补货的算法设计:在此子函数中先定义四个变量分别是字符型的

4、k1,整型的k2,k3,k4用来存储要补上货架的商品名和商品的生产日期,另外再初始化一个空栈L,用来存储倒出来的货物。将要补上货架的商品的生产日期与在货架上未销售出去的商品进行比较。若是日期比较早则可直接上货,否则要进行倒货再上货。每入一件货物都要进行这样的程序。(5)倒货:为避免发生入货直接将商品摆放到货架上,会使生产日期越近的商品越靠近栈顶这样的事发生,因此需要倒货。将比要补上货架的货物的生产日期要早的货物倒出放入栈L,直至将要补上货架的货物入货,则可再把栈L内的货物再放回原栈。(6)将货架上摆放的货物打印出来:补货完成后,要将各个商品栈内的货物的商品名以及其生产日期打印出来,这样可以检验

5、补货时是否有将日期比较近的放在栈底。(7)模块结构及功能:1)int main(void) /主程序2)Stack *initstack() /初始化空栈3)Stack *onput(Stack *S) /上货4)void *outpush(Stack *S) /出货5)void backstack(Stack *S,int x) /补货6)Stack *outstack(Stack *S,Stack *L) /倒货7)void Print(Stack *S) /打印商品栈内货物信息(8)主要模块算法描述: 上货: Stack *onput(Stack *S) int j; char k1;/

6、储存商品名 int k2,k3,k4;/储存商品生产日期年、月、日 for(j=0;jtop=max-1)/判断栈满 printf(栈满!n);/栈满不能入栈 return S; S-top+;栈数%d ,S-top);/打印货物所在的栈数 /输入商品名和生产日期 fflush(stdin);/清除缓存区 scanf(%c %d/%d/%d,&k1,&k2,&k3,&k4);/输入商品信息aS-top.b=k1;top.year=k2;top.month=k3;top.day=k4;该商品的货架满了!此时该商品的货架上共有%d个商品nntop+1);出货:/出货void *outpush(St

7、ack *S)请店主输入今天%c这个商品销售出去的数量:top.b); int x,i; do%dx); if(xmax)该货架上没有这么多商品!请重输! while(xmax); for(i=1;itop-;此时%c这个商品的货架的数量剩下%d件需要补上货架的数量为%dnntop.b,S-top+1,x);/补货 backstack(S,x);补货:void backstack(Stack *S,int x) int i,ii; int temp;/储存生产日期分别对应年月日 Stack *L; L=initstack();/重新申请一个空栈用来倒货时存放货物请输入要补上货架的商品名(一个字

8、符)空一格并输入该商品生产日期(年/月/日)每上货一件以回车键结束:i+)top=-1)/此时货架上无商品可以直接上货补货成功第%d件!,i);此时的栈顶数为:%dn else if(k2top.year)/若生产年份要补上货架的比货架上的早则直接上货架 temp=1; else for(ii=S-top;ii-1&top!=-1;ii-) temp=0;/用来标记是否有货物上架 if(k2=S-top.year)/若生产年份要补上货架的与货架上的一样则比较月份 if(k3top.month)/若生产月份要补上货架的与货架上的一样则比较生产当天日期 if(k4top.day)/若生产当天日期要

9、补上货的比货架上的早或是相同则直接上货否则要倒货重新上货架 /倒货 L=outstack(S,L); if(k2top.year)/此时生产年份要补上货架的比货架上的近/倒货 if(temp=0) while(L-top-1)/将存储在L栈中的商品上架top=L-aL-top-;补货完成!nn Print(S);倒货:Stack *outstack(Stack *S,Stack *L) L-top=S-top;倒货一次! return L;四、源程序清单:#includestdlib.hconio.h/初始化空栈Stack *initstack() Stack *S; S=(Stack *)m

10、alloc(sizeof(Stack);/申请空间 /判断是否申请到栈空间 if(!S)空间不足! return NULL;top=-1;/将货架上摆放的货物打印出来void Print(Stack *S)%c这个商品的货架上摆放了%d个货物: while(S-1)%c %d/%d/%dntop.year,S-top.month,S-top.day);/上货Stack *onput(Stack *S)top=max-1)int main(void) Stack *s5; int i;计算机类1102班 郑桂萍 学号:3110307201nn商店共有5种商品,分别是a,b,c,d,enn for

11、(i=0;5; si=initstack();/初始化栈请输入要上货的第%d种商品名(一个字符)空一格并输入该商品生产日期(年/月/日)每上货一件以回车键结束:,i+1); si=onput(si);/将商品入栈(上货) char c,yes_no; do请店主输入今天有销售出去一个商品的商品名:%cc); switch(c) case a: outpush(s0); break;b outpush(s1);c outpush(s2);d outpush(s3);e outpush(s4); default:商店无%c此商品!输入错误!,c);请问店主还有销售出去的商品么?如果有请按Y,否则按Nn yes_no=getchar(); if(yes_no!=Yyes_no!N)输入错误nn while(yes_no! while(yes_no= return 0;五、测试数据及测试结果:测试数据:5个商品货架上货:a 2012/1/1a 2011/2/2a 2011/1/1b 2012/2/2c 2012/2/2d 2012/2/2e 2012/2/2

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

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