完整word版商品货架管理.docx
- 文档编号:28813187
- 上传时间:2023-07-19
- 格式:DOCX
- 页数:14
- 大小:164.10KB
完整word版商品货架管理.docx
《完整word版商品货架管理.docx》由会员分享,可在线阅读,更多相关《完整word版商品货架管理.docx(14页珍藏版)》请在冰豆网上搜索。
完整word版商品货架管理
合肥学院
计算机科学与技术系
课程设计报告
2014~2015学年第二学期
课程
数据结构与算法
课程设计名称
超市货架管理
学生姓名
许世琨
学号
1304031035
专业班级
13网络工程一班
指导教师
何立新、华珊珊
2015年6月
一:
问题分析和任务定义
Ⅰ、问题描述与分析
[问题描述]
商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。
上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。
[问题分析]
基本思路是先建立两个栈!
在一个栈里放入已有的商品!
然后用一个循环语句对新加入的商品进行个数的确定输入!
然后把第一个栈里的元素出栈与新加入的进行比较新的比旧的大就把旧的放到第二个栈里,小的话就把新的入栈1,完成后把栈2的入栈1。
完成输出。
Ⅱ、任务定义
1、先定义数据日期的结构体--里面包括日期。
2、写进栈和出栈的函数。
3、写倒货函数。
4、函数输出,输出只是单纯的输出,不是求出栈。
二:
功能模块图
1.各个模块的功能描述。
structdata:
定义商品信息
包括商品名和生产日期
Seqstack:
定义顺序栈
putin(seqstack*s1):
输入货架原始商品数据
存放在顺序栈A中
cmp(seqstack*s1,seqstack*s2,intTOP):
输入并比较新商品,以调整其在货架中的位置
借助顺序栈B在栈A上操作
putout(seqstack*s1,intTOP):
输出顺序栈
2.功能模块图
Y
N
三:
详细设计和编码
定义商品信息模块:
structdata
{
charname[10];/*商品名称*/
longdate;/*商品生产日期*/
};
定义顺序栈模块:
typedefstruct
{
structdatasp[size];
inttop;
}seqstack;
输入原始数据模块:
intputin(seqstack*s1)
{
inti=0;
for(s1->top=0;s1->top
{
//此处输入商品生产时间应按照由近到远输入,以确保货架上原始商品已经按要求摆放
printf("请输入第%d件商品名称:
",s1->top+1);
scanf("%s",s1->sp[s1->top].name);
printf("请输入生产日期:
");
scanf("%d",&s1->sp[s1->top].date);
printf("\n");
}
return(--s1->top);
}
处理新商品模块:
intcmp(seqstack*s1,seqstack*s2,intTOP)
{
structdatanew;
s1->top=TOP;
s2->top=-1;
printf("请输入新商品名称:
");
scanf("%s",new.name);
printf("请输入生产日期:
");
scanf("%d",&new.date);
/*比较新旧商品的生产日期*/
while(s1->top!
=-1&&new.date-s1->sp[s1->top].date>0)
{
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);
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);
s1->sp[s1->top].date=s2->sp[s2->top].date;
}
return(s1->top);
}
顺序栈输出模块:
voidputout(seqstack*s1,intTOP)
{
printf("\n\n更新商品后的货架商品顺序为:
\n");
printf("\n商品名称生产日期:
\n\n");
for(s1->top=TOP;s1->top>=0;s1->top--)
{
printf("%s",s1->sp[s1->top].name);
printf("%d\n",s1->sp[s1->top].date);
}
printf("\n\n\n\n");
}
四:
上机调试过程
1.这个程序代码比较少,也比较简单,所以刚开始错误大多是大小写问题,输入格式问题,标点符号问题,括号匹配问题等,简单的检查即可解决。
2.很多不懂的还是请教别的同学的,老是也给于了很多的帮助!
3.输入时会出现格式错误(如下)
图3-1
五:
测试结果及其分析
1.你可以定义你要输入的货架上的商品个数,名称你也可以随意的取,生产日期自己定义
图4-1(输入已有商品)
图4-2(输入新的商品)
图4-3(结果输出)
六:
用户使用说明
1.输入已有的商品个数
2.输入已有商品的名字、日期
3.输入新加入的商品个数
4.输入新加入的商品名字、日期
5.输出结果
七:
参考文献
[1]王昆仑,李红.数据结构与算法.北京:
中国铁道出版社,2006年5月。
[2]《数据结构算法与应用——C语言描述》第一版,SartajSahni著,国防科技大学汪诗林、孙晓东等译,王广芳审校,机械工业出版社。
[3]《算法设计方法》,吴哲辉、崔焕庆、马炳先、吴振寰著,机械工业出版社,2008。
[4]《数据结构与算法分析——C语言描述》(DataStructuresandAlgorithmsAnalysisinC)第二版,MarkAllenWeiss著,天津师范大学冯舜玺译,机械工业出版社。
[5]《数据结构(C语言版)》,严蔚敏、吴伟民著,清华大学出版社。
[6]《C++数据结构原理与经典问题求解》,左飞著,飞思科技产品研发中心监制,电子工业出版社,2008。
[7]《C陷阱与缺陷》作者:
凯尼格 出版社:
人民邮电出版社。
[8]《编程精粹》 作者:
SteveMaguire 出版社:
人民邮电出版社。
八:
附录
#include
#include
#definesize20
structdata//定义商品信息
{
charname[6];//商品名称
longintdate;//商品生产日期
};
typedefstruct//定义顺序栈
{
structdatasp[size];
inttop;
}seqstack;
intpush1(seqstack*s1)
{
inti=0,n;
//先输入n件
puts("输入已有商品的件数:
");
scanf("%d",&n);
for(s1->top=0;s1->top
{
printf("请输入第%d件商品名称:
",s1->top+1);
scanf("%s",s1->sp[s1->top].name);
printf("请输入生产日期:
");
scanf("%d",&s1->sp[s1->top].date);
printf("\n");
}
return(--s1->top);
}
intcmp(seqstack*s1,seqstack*s2,intTOP)
{
intn,i;
structdatanew;
s1->top=TOP;
s2->top=-1;
puts("输入新商品的个数:
");
scanf("%d",&n);
//循环
for(i=0;i printf("请输入新商品名称: "); scanf("%s",new.name); printf("请输入生产日期: "); scanf("%d",&new.date); while(s1->top! =-1&&new.date-s1->sp[s1->top].date>0) //比较新旧商品的生产日期 { 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); 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); s1->sp[s1->top].date=s2->sp[s2->top].date; } } return(s1->top); } voidpop(seqstack*s1,intTOP)//输出插入新商品后的货架商品顺序 { printf("更新商品后的货架商品顺序为: \n"); printf("商品名称生产日期: \n"); for(s1->top=TOP;s1->top>=0;s1->top--) { printf("%s",s1->sp[s1->top].name); printf("%d\n",s1->sp[s1->top].date); } printf("over"); } voidmain() { intTOP=0; seqstackA,B; TOP=push1(&A); TOP=cmp(&A,&B,TOP); pop(&A,TOP); }
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 完整 word 商品 货架 管理