商品货架管理--C++数据结构_第1页
商品货架管理--C++数据结构_第2页
商品货架管理--C++数据结构_第3页
商品货架管理--C++数据结构_第4页
商品货架管理--C++数据结构_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

/商品货架管理系统,这个是自己刚学完数据结构写的书的一个实验,写的很多,不够简洁,/其实里面也没什么东西,优先级队列之类的也没有用着,就是拿队列进行了个存储和排序/不过是自己初学写出来的,鼓励下自己。O(_)O拿来在大家面前献丑了。/各位大哥大姐可以指教,留言本人百度ID,或者发邮件至:,共同交/流讨论,共同进步。PS:本人就学于东秦,若能给本校学子们提供帮助,实属莫大荣幸。/不过高手也不要笑话咱啊。嘿嘿,进入主题吧。/头文件struct Queue /定义一个队列 int*Qlist;int maxsize;int rear,front;void InitQueue(Queue&QL,const int ms); /初始化void ClearQueue(Queue&QL); /清空队列int QueueEmpty(Queue&QL); /判队空int QueueFull(Queue&QL); /判队满bool InsertQueue(Queue&QL,const int &item); /插入新元素进队void OrderQueue(Queue&QL); /按大小顺序排队 int DeQueue(Queue&QL); /出队列struct stack /定义一个栈int* Slist;int top;int Maxsize; ;void Initstack(stack&SL,const int MS); /栈初始化bool Stackempty(stack&SL); /判栈空bool Stackfull(stack&SL); /栈满void Clearstack(stack&SL); /清空栈int Push(stack&SL, int&item); /新元素推进栈int Pop(stack&SL); /出栈void Traverstack(stack&SL); /输出栈中元素-/实现文件#include #include #include sy3.hvoid InitQueue(Queue&QL, const int ms) /初始化队列QL.Qlist=new int ms; if(!QL.Qlist) cerr给队列分配内存失败。endl; exit(1); QL.rear=0; QL.front=0; QL.maxsize=ms; /各项值,初始化void ClearQueue(Queue&QL) QL.front=QL.rear=0; /清空队列int QueueEmpty(Queue&QL) return QL.rear=QL.front; /判空int QueueFull(Queue&QL) return (QL.rear+1)%QL.maxsize=QL.front; /判满bool InsertQueue(Queue&QL,const int&item) /插入元素进队 if(QueueFull(QL) cerrQueue is fullendl; exit(1); if(QL.rearQL.maxsize) /尾指针不能超过maxsize QL.QlistQL.rear=item; QL.rear=(QL.rear+1)%QL.maxsize; return true; void OrderQueue(Queue&QL) /大小顺序排队 if(QueueEmpty(QL)coutQueue is emptyendl; exit(1); int i,j,item;for(i=0;iQL.rear;i+) for(j=i;jQL.rear;j+) if(QL.QlistiQL.Qlistj)item=QL.Qlisti; QL.Qlisti=QL.Qlistj;QL.Qlistj=item; int DeQueue(Queue&QL) /出队int temp;if(QueueEmpty(QL)coutQueue is emptyendl; exit(1); temp=QL.QlistQL.front;QL.front=(QL.front+1)%QL.maxsize;return temp;void Initstack(stack&SL,const int MS) /栈的初始化SL.Slist=new int MS;if(!SL.Slist)cout给栈分配内存失败。endl;exit(1); SL.Maxsize=MS; SL.top=-1;bool Stackempty(stack&SL) /判空return SL.top=-1;bool Stackfull(stack&SL) /判满return SL.top=SL.Maxsize;void Clearstack(stack&SL) /清空栈SL.top=-1;int Push(stack&SL, int&item) /元素进栈if(Stackfull(SL) return false;SL.top+;SL.SlistSL.top=item;return SL.SlistSL.top;int Pop(stack&SL) /元素出栈if(Stackempty(SL) return false;return SL.SlistSL.top-;void Traverstack(stack&SL) /输出栈for(int i=0;i=SL.top;i+)coutSL.Slistiendl;coutendl;-/主程序文件#include #include #include sy3.hconst int M=11;const int N=10;void main()cout-商品货架管理-endl;Queue q;InitQueue(q,M); /队列初始化int i,t,temp,x; /用于存储最大值,执行循环,输入的变量cout按照连续的年月日的格式输入2010年1月1日至今的10个日期endl;cout如:2010年10月1日,输入20101001:endl;for(i=0;ix;if(x20100101&x20101124)InsertQueue(q,x);else cout日期不合理。请重新输入:x;OrderQueue(q); /将输入的日期排队temp=q.Qlist0; /存储最大(近)的日期stack s;Initstack(s,N); /栈初始化for(i=0;i10;i+) /将排序后的队列推进栈x=DeQueue(q);Push(s,x);cout商品已经按照日期从近到远的时间顺序放入货架。从底部到顶部的顺序为:endl;Traverstack(s); /从底到顶,显示栈元素cout请输入要取商品的数量:x; while(x10) cout要求的商品数量不合理,请重新输入:x;for(i=0;ix;i+) /取x件商品cout取出的商品生产日期有:Pop(s)endl;ClearQueue(q); /清空队列t=s.top;for(i=0;i=t;i+) /将取元素后的栈全部进队列 x=Pop(s);InsertQueue(q,x);t=q.maxsize-q.rear-1;cout现在货架还能放下t件商品endl;cout请输入要放入货架的在temp之后的新商品日期:endl;for(i=q.rear;ix;if(xtemp&x20101124)InsertQueue(q,x);elsecout商品时间太旧,请重新输入:x;OrderQueue(q); /新旧商品日期排序for(i=0;is.Maxsize;i+) /排序后的商品进栈x=De

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论