商品货架管理.docVIP

  • 10
  • 0
  • 约2.79千字
  • 约 8页
  • 2017-06-04 发布于湖北
  • 举报
商品货架管理剖析

洛 阳 理 工 学 院 课 程 设 计 报 告 课程名称 数据结构课程设计 设计题目 商品货架管理 专 业 计算机科学与技术 课 程 设 计 任 务 书 设计题目:商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。 问题描述 商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。针对一种特定商品,实现上述管理过程。 Push函数 cmp函数 Pop函数 详细设计 1 输入模块: 输入商品信息 2 排序模块:按照要求实现商品生产日期排序的功能 3 输出模块:输出商品信息 在这次实验中,我主要采用了栈这一数据结构,通过建立两个栈,一个输入栈, 一个辅助栈,辅助栈在插入的时候将较新商品早的移入,新商品进主栈后将辅助栈的数据移到主栈中,主栈就按生产日期较近的商品在较下位置存放。再编写一个购买程序将栈顶的商品上架,实现产品的出栈。 测试与调试 源程序 #includestdio.h #includestring.h #define size 4 struct information /*定义商品信息*/ { char name[10]; /*名称*/ long date; /*生产日期*/ }; typedef struct/*定义顺序栈*/ { struct information sp[size]; int top; }seqstack; int push(seqstack *s1) { int i=0,t; for(s1-top=0;s1-topsize-1;s1-top++) { printf(输入名称与日期:,s1-top+1); scanf(%s %d,s1-sp[s1-top].name,s1-sp[s1-top].date); } printf(\n); t=--s1-top; printf(商品名|| 日期 :\n); for(s1-top=t;s1-top=0;s1-top--) { printf(%10s,s1-sp[s1-top].name); printf( %10d\n,s1-sp[s1-top].date); } return(t); }//返回s1当前栈顶 } int cmp(seqstack *s1,seqstack *s2,int t) { struct information New; s1-top=t; s2-top=-1; //输入新商品名字和日期 printf(输入商品名:); scanf(%s,New.name); printf(生产日期:); scanf(%d,New.date); printf(\n); while(s1-top!=-1New.date-s1-sp[s1-top].date0) /*比较新旧商品的生产日期*/ { 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\n,New.name,New.date); s1-sp[s1-top].date=New.date; for(;s2-top-1;s2-top--) { s1-top++; strcpy(s1-sp[s1-top].name,s2-sp[s2-top].name); printf(%s %ld\n,s2-sp[s2-top].name,s2-sp[s2-top].date); s1-sp[s1-top].date=

文档评论(0)

1亿VIP精品文档

相关文档