商品货架管理——C++实现_第1页
商品货架管理——C++实现_第2页
商品货架管理——C++实现_第3页
商品货架管理——C++实现_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

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

文档简介

/head.h(头文件)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); /输出栈中元素/achieve.h(实现文件)#include #include #include head.hvoid InitQueue(Queue&QL, const int ms) /初始化队列QL.Qlist = new intms;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)cerr Queue is full endl;exit(1);if (QL.rearQL.maxsize) /尾指针不能超过maxsizeQL.QlistQL.rear = item;QL.rear = (QL.rear + 1) % QL.maxsize;return true;void OrderQueue(Queue&QL) /大小顺序排队if (QueueEmpty(QL)cout Queue is empty now endl;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)cout Queue is empty endl;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 intMS;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+)cout SL.Slisti endl;cout endl;/main.cpp(主程序文件)#include #include #include achieve.hconst int M = 11;const int N = 10;void main()cout -商品货架管理- endl;Queue q;InitQueue(q, M); /队列初始化int i, t, temp, x; / 用于存储最大值,执行循环,输入的变量cout 按照连续的年月日的格式输入2013年1月1日至今的10个日期 endl;cout 如:2013年1月1日,输入20130101: endl;for (i = 0; i x;if (x20130101 & x20141015)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; i x;if (xtemp&x20141015)InsertQueue(q, x);elsecout 商品时间太旧

温馨提示

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

评论

0/150

提交评论