- 1、本文档共11页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
西安郵電學院
数据结构课内实验报告
题目 商品货架管理
院系名称: 计算机学院
专业名称: 软件工程专业
班 级:
学生姓名:
学号(8位):
需求分析
商品货架管理:把商品货架看成一个栈, 栈顶商品的生产日期最早, 栈底商品的生产日
期最近,上货时,需要倒货价,以保证生产日期较近的商品在较下的位置。
(1)输入的形式和输入值的范围:输入商品名称和日期如: aa⑵ 输出的形式:商品名称和生产日期 女口: bb(3) 程序所能达到的功能:商品上货时,需要倒货价,以保证生产日期较近的商品在较下 的位置。
(4) 测试数据:
(5) 输入:abbcc输出:ccbba概要设计
数据类型的定义:
struct in formation /* 定义商品信息 */
{
char name[10]; /* 名称 */
long date; /* 生产日期 */
};
typedef struct/* 定义顺序栈 */
{
struct in formati on sp[size];
int top;
}seqstack;
(1) int push(seqstack *s1):
进栈s1栈从栈顶top=0开始,按商品日期从近到晚输入,如先输入输入后输再输出结果;
流程图:
(2) int cmp(seqstack *s1,seqstack *s2,int TOP)
插入新商品,输入新商品名字和日期,
1)旧:0707,0808,新0909,比较新旧商品的生产日期, 当si不为空栈和新商品的日期大
于si栈顶的日期如:20100707>0时,把si栈顶的内容出栈,并进栈道 s2,依次进
行比较,比较结束后,把新产品的数据进栈 si,然后把s2的数据依次从栈顶进展到 S2,。如
图: 新商品0909
2)旧0707,0808,新0606,因为0606-0707>0,直接将新商品进入 si栈;
0606 1
i
si
\
n厶 旷tv p
i
0707
\
0808
0606
3)旧 0606,0909.新 0707,
si
si
0707
流程图:
(3) void pop(seqstack *s1,int TOP)
输出插入新商品后的货架商品顺序。 流程图:
开始
三?详细设计
实现概要设计中定义的所有数据类型, 对每个操作只需要写出伪码算法; 对主程序和其
他模块也都需要写出伪码算法(伪码算法达到的详细程度建议为:按照伪码算法可以在计算
机键盘直接输入高级程序设计语言程序 );画出函数和过程的调用关系图。
struct in formation /* 定义商品信息 */
{
char name[10]; /* 名称 */
long date; /*生产日期 */
};
typedef struct/* 定义顺序栈 */ {
struct in formati on sp[size]; int top;
}seqstack;
int push(seqstack *s1)
{
初始化两个栈中元素商品信息, 一个用于出栈显示,另一个作为原始站参与以下各个操
作输出原来货架上的商品的商品的生产日期是 :原来货架上的商品的栈底商品的生产日期
是设置记录栈顶元素top =1;显示原始货架上的商品信息
int i=0,t;
〃s1栈从栈顶top=0开始,按商品日期从近到晚输入,如先输入再输入for(s1->top=0;s1->top<size-1;s1->top++)
{
prin tf("Please in put the %d's n ame and the date of product ion:",s1->top+1);
scan f("%s %d",s1->sp[s1->top]. name, &s1->sp[s1->top].date);
}
prin tf("\n");
t=--s1->top;
prin tf("Beg in en ter the new goods:\n");
prin tf("Name of goods || Date of product ion :\n ”);
for(s1->top=t;s1->top>=0;s1->top--)
{
prin tf("%9s",s1->sp[s1->top] .n ame);
printf(" %8d\n",s1->sp[s1->top].date);
}
return(t);//返回s1
文档评论(0)