| 注册
home doc ppt pdf
请输入搜索内容

热门搜索

年终总结个人简历事迹材料租赁合同演讲稿项目管理职场社交

算法与数据结构的商品货架管理课程设计报告(还有程序源代码)

文***品

贡献于2022-12-30

字数:8669



课程设计


课 程: 算法数结构
题 目: 商品货架理
专 业: 计算机类
班 级:
座 号:
姓 名:


2012年 X月 X 日
解决问题
商店货架栈方式摆放商品商品货架成栈栈顶商品生产日期早栈底商品生产日期生产日期越接越栈底出货时栈顶取货天营业结束果货架满需货入货直接商品摆放货架会生产日期越商品越栈顶样需倒货架生产日期越越栈底请编写程序模拟商品销售架倒货架等操作(设5种商品种商品少商品名生产日期两属性)
二算法基思想描述:
天营业开始首先店商品货架(栈)满货物商店总5种商品商品名:abcde商品货架满货物接着天营业结束店天销售出商品应货架补满店输入第种需补货商品商品名天销售出数量然输入补货架商品名生产日期补货架商品货架未销售出货物进行生产日期较补货架货物日期较早直接货架否进行倒货补货样日期较放栈底外申请空栈存储倒出货物第种商品补完货问店否商品需补货需补货第种商品补货程序进行类推进行补货
三设计
1 数结构设计
(1)商品信息:
typedef struct
{
char b存储商品名
商品日期年月日
int year
int month
int day
}Data
(2)商品货架(栈)
#define max 5
typedef struct
{
Data a[max]0栈底位置
int top栈顶
}Stack
(3)商品种类:
Stack *s[5]5种商品

2算法设计:
(1)初始化空栈:
利for循环(商品货架)栈申请空间进行判断否申请空间没申请空间输出提示空间足申请空间top指栈顶初始值-1栈底0位置
(2)货算法设计:
先定义四变量分字符型k1整型k2k3k4存储商品名商品生产日期赋值栈元素属性商品货赋值前先判断top否值输出提示栈满结束该货程序货物满输出提示表示商品货架满输出时货架货物数量利for循环进行商品货直5商品货架全部满
(3)出货(天销售)算法设计:
天营业结束店需销售出商品进行补货需知道商品销售出销售数量店输入天销售出种商品商品名店输入商店没商品名输出提示店次输入商品名接着输入销售数量程序销售数量进行判断否超出栈值(货架容纳货物数量)超出输出提示请店次输入销售数量
(4)补货算法设计:
子函数中先定义四变量分字符型k1整型k2k3k4存储补货架商品名商品生产日期外初始化空栈L存储倒出货物补货架商品生产日期货架未销售出商品进行较日期较早直接货否进行倒货货入件货物进行样程序
(5)倒货:
避免发生入货直接商品摆放货架会生产日期越商品越栈顶样事发生需倒货补货架货物生产日期早货物倒出放入栈L直补货架货物入货栈L货物放回原栈
(6)货架摆放货物印出:
补货完成商品栈货物商品名生产日期印出样检验补货时否日期较放栈底
(7)
模块结构功:

1)int main(void) 程序
2)Stack *initstack() 初始化空栈
3)Stack *onput(Stack *S) 货
4)void *outpush(Stack *S) 出货
5)void backstack(Stack *Sint x) 补货
6)Stack *outstack(Stack *SStack *L) 倒货
7)void Print(Stack *S) 印商品栈货物信息
(8)模块算法描述:
货:
Stack *onput(Stack *S)
{
int j
char k1储存商品名
int k2k3k4储存商品生产日期年月日
for(j0j {
if(S>topmax1)判断栈满
{
printf(栈满\n)栈满入栈
return S
}
S>top++
printf(栈数d S>top)印货物栈数
输入商品名生产日期
fflush(stdin)清缓存区
scanf(c ddd&k1&k2&k3&k4)输入商品信息
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
}
printf(该商品货架满\n)
printf(时该商品货架d商品\n\nS>top+1)
return S
}
出货:
出货
void *outpush(Stack *S)
{
printf(请店输入天c商品销售出数量:S>a[S>top]b)
int xi
fflush(stdin)清缓存区
do{
fflush(stdin)
scanf(d&x)
if(x>max)
printf(该货架没商品请重输\n)
}while(x>max)
for(i1itop
printf(时c商品货架数量剩d件需补货架数量d\n\nS>a[S>top]bS>top+1x)
补货
backstack(Sx)
}
补货:
补货
void backstack(Stack *Sint x)
{

int iii
int temp
char k1储存商品名
int k2k3k4储存生产日期分应年月日
Stack *L
Linitstack()重新申请空栈倒货时存放货物
printf(请输入补货架商品名(字符)空格输入该商品生产日期(年月日)货件回车键结束:\n)
for(i1i {
输入商品名生产日期
fflush(stdin)清缓存区
scanf(c ddd&k1&k2&k3&k4)
if(S>top1)时货架商品直接货
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
}
else{
if(k2a[S>top]year)生产年份补货架货架早直接货架
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
temp1
}
else
{
for(iiS>topii>1&&S>top1ii)
{
temp0标记否货物架
if(k2S>a[S>top]year)生产年份补货架货架样较月份
{
if(k3a[S>top]month) 生产月份补货货架早直接货
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
temp1
if(temp1)break
}
else
{
if(k3S>a[S>top]month)生产月份补货架货架样较生产天日期
{
if(k4a[S>top]day)生产天日期补货货架早相直接货否倒货重新货架
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
temp1
if(temp1)break
}
else
{
倒货
Loutstack(SL)
}
}
else
{
倒货
Loutstack(SL)

}
}
}

if(k2>S>a[S>top]year)时生产年份补货架货架
{
Loutstack(SL)倒货
}

}
if(temp0)
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
}
while(L>top>1)存储L栈中商品架
{
S>top++
S>a[S>top]L>a[L>top]
}
Linitstack()
}
}
}
printf(补货完成\n\n)
Print(S)
}
倒货:
倒货
Stack *outstack(Stack *SStack *L)
{
L>top++
L>a[L>top]S>a[S>top]
S>top
printf(时栈顶数:d\nS>top)
printf(倒货次\n\n)
return L
}
四源程序清单:
#include
#include
#include
#define max 5
typedef struct
{
char b存储商品名
商品日期年月日
int year
int month
int day
}Data
typedef struct
{
Data a[max]0栈底位置
int top栈顶
}Stack
初始化空栈
Stack *initstack()
{
Stack *S
S(Stack *)malloc(sizeof(Stack))申请空间
判断否申请栈空间
if(S)
{
printf(空间足\n)
return NULL
}
else
{
S>top1
return S
}
}
货架摆放货物印出
void Print(Stack *S)
{
printf(c商品货架摆放d货物:\nS>a[S>top]bS>top+1)
while(S>top>1)
{
printf(c ddd\nS>a[S>top]bS>a[S>top]yearS>a[S>top]monthS>a[S>top]day)
S>top
}
}

Stack *onput(Stack *S)
{
int j
char k1
int k2k3k4
for(j0j {
if(S>topmax1)
{
printf(栈满\n)栈满入栈
return S
}
S>top++
printf(栈数d S>top)
输入商品名生产日期
fflush(stdin)清缓存区
scanf(c ddd&k1&k2&k3&k4)
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
}
printf(该商品货架满\n)
printf(时该商品货架d商品\n\nS>top+1)
return S
}
倒货
Stack *outstack(Stack *SStack *L)
{
L>top++
L>a[L>top]S>a[S>top]
S>top
printf(时栈顶数:d\nS>top)
printf(倒货次\n\n)
return L
}
补货
void backstack(Stack *Sint x)
{

int iii
int temp
char k1储存商品名
int k2k3k4储存生产日期分应年月日
Stack *L
Linitstack()重新申请空栈倒货时存放货物
printf(请输入补货架商品名(字符)空格输入该商品生产日期(年月日)货件回车键结束:\n)
for(i1i {
输入商品名生产日期
fflush(stdin)清缓存区
scanf(c ddd&k1&k2&k3&k4)
if(S>top1)时货架商品直接货
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
}
else{
if(k2a[S>top]year)生产年份补货架货架早直接货架
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
temp1
}
else
{
for(iiS>topii>1&&S>top1ii)
{
temp0标记否货物架
if(k2S>a[S>top]year)生产年份补货架货架样较月份
{
if(k3a[S>top]month) 生产月份补货货架早直接货
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
temp1
if(temp1)break
}
else
{
if(k3S>a[S>top]month)生产月份补货架货架样较生产天日期
{
if(k4a[S>top]day)生产天日期补货货架早相直接货否倒货重新货架
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
temp1
if(temp1)break
}
else
{
倒货
Loutstack(SL)
}
}
else
{
倒货
Loutstack(SL)

}
}
}

if(k2>S>a[S>top]year)时生产年份补货架货架
{
Loutstack(SL)倒货
}

}
if(temp0)
{
S>top++
S>a[S>top]bk1
S>a[S>top]yeark2
S>a[S>top]monthk3
S>a[S>top]dayk4
printf(补货成功第d件\ni)
printf(时栈顶数:d\nS>top)
}
while(L>top>1)存储L栈中商品架
{
S>top++
S>a[S>top]L>a[L>top]
}
Linitstack()
}
}
}
printf(补货完成\n\n)
Print(S)
}

出货
void *outpush(Stack *S)
{
printf(请店输入天c商品销售出数量:S>a[S>top]b)
int xi
fflush(stdin)
do{
fflush(stdin)
scanf(d&x)
if(x>max)
printf(该货架没商品请重输\n)
}while(x>max)
for(i1itop
printf(时c商品货架数量剩d件需补货架数量d\n\nS>a[S>top]bS>top+1x)
补货
backstack(Sx)
}

int main(void)
{
Stack *s[5]5种商品
int i
printf(计算机类1102班 郑桂萍 学号:3110307201\n\n)
printf(商店5种商品分abcde\n\n)
for(i0i<5i++)
{
s[i]initstack()初始化栈
printf(请输入货第d种商品名(字符)空格输入该商品生产日期(年月日)货件回车键结束:\ni+1)
s[i]onput(s[i])商品入栈(货)
}
char cyes_no

do
{
fflush(stdin)
printf(请店输入天销售出商品商品名:\n)
fflush(stdin)
scanf(c&c)
switch(c)
{
case 'a'
outpush(s[0])
break
case 'b'
outpush(s[1])
break
case 'c'
outpush(s[2])
break
case 'd'
outpush(s[3])
break
case 'e'
outpush(s[4])
break
default
printf(商店c商品输入错误\nc)
}
do
{
fflush(stdin)
printf(请问店销售出商品?果请Y否N\n)
yes_nogetchar()
if(yes_no'Y'&&yes_no'N')
{
printf(输入错误\n\n)
}
}while(yes_no'Y'&&yes_no'N')
}while(yes_no'Y')
return 0
}
五测试数测试结果:
测试数:
5商品货架货
a 201211
a 201211
a 201122
a 201111
a 201111

b 201222
b 201222
b 201222
b 201222
b 201222

c 201222
c 201222
c 201222
c 201222
c 201222

d 201222
d 201222
d 201222
d 201222
d 201222

e 201222
e 201222
e 201222
e 201222
e 20122
出货:
天销售出商品商品名:
a
销售数量:2
补货
a 201422
a 2009122
测试结果:
商品栈货物信息:
a 2009122
a 201122
a 201211
a 201211
a 201422

否需补货商品:
N
六课程设计总结心体会:
通次课程设计更深刻体会编写程序前首先分析知道功做什等等实现需认真思考分析划分整体成模块逐实现种解决方法调试程序程中需细心耐心
福 建 工 程 学 院

文档香网(httpswwwxiangdangnet)户传

《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
该内容是文档的文本内容,更好的格式请下载文档

下载文档,方便阅读与编辑

文档的实际排版效果,会与网站的显示效果略有不同!!

需要 2 香币 [ 分享文档获得香币 ]

该文档为用户出售和定价!

购买文档

相关文档

数据结构和算法课程设计题目

XX大学课程设计课程名称: 数 据 结 构 与 算 法院(部)名 称: 信息与计算科学学院组长姓名学号 同组人员姓名指导教师姓名: 设 计 时 间: 2010.6.7----2009.6.27一、《数据结构与算法》课程设计参考题目(一)参考题目一(每位同学选作一个,同组人员

文***品 11个月前 上传382   0

数据结构课程设计报告最小生成树Kruskal算法

计算机科学与技术系课程设计报告 2014-2015学年第二学期课程数据结构课程设计名称Kruskal算法求最小生成树学生姓名 学号 专业班级 软件工程指导教师 2014年X月题目:设计程序完成如下功能:对给定过的网和起点,用kruskal算法的基本思想求解其所有的最小生成树1、问题分析和任务定义根据课设题目要求,拟将整体程序分为三大模块

文***品 1年前 上传209   0

数据结构大作业(含源代码)

数据结构大作业作业题目: 职工信息管理系统 姓 名: 学 号: 班 级: 计算机班 指导教师: 日 期: 2010年X月X日 职工信息管理系统(学院计算机科学

文***享 3年前 上传454   0

数据结构课程设计舞伴配对程序

沈阳航空航天大学课 程 设 计 报 告课程设计名称:数据结构课程设计课程设计题目:舞伴配对程序院(系):计算机学院专 业:计算机科学与技术班 级: 学 号:姓 名:指导教师:完成日期:2014年目 录第1章 概要设计 11.1题目的内容与要求 11.2总体结构 2第2章 详细设计 32.1主函数的流程图 32.

文***享 1年前 上传290   0

数据结构课程设计报告——图书管理系统

课程设计报告 课设课题: 课程设计——图书管理系统 学 院: 电 子 信 息 学 院 专 业: 网 络 工 程 姓 名: 班级学号: 指导教师:

文***享 3年前 上传681   0

车牌号管理系统数据结构课程设计报告

XX 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 车牌号管理系统 姓 名: 学 号: 专业班级: 软件工程 系 (院): 计算机工程学院

文***享 3年前 上传431   0

查找算法的程序实现「学生版」

查找算法的程序实现【学生版】【例1】 在数组元素a(1)到a(8)中查找键值为key的数,其顺序查找的VB程序段如下,请在划线处填写正确的语句。for i=1 to 8if ①        then   Text1.text=str(i)  exit forend ifnext iif ②        then text1.text=″在数组中没有找到″+str(key)

文***7 2年前 上传512   0

商品进销存管理系统数据库课程设计报告

数据库原理课程设计方案设计设计题目:商品进、销、存管理系统专 业 计算机科学与技术 班 级 班 学 生 指导老师 2011 年 二 学期商品进、销、存系 统背景说明

文***享 1年前 上传315   0

高校教材管理系统数据结构课程设计

数据结构课程设计题 目: 高校教材管理系统 课 程 设 计 任 务 书一、课程设计题目: 高校教材管理系统 二、课程设计应解决的主要问题: (1) 实现出版社、教材类型等的管理

文***品 3年前 上传780   0

操作系统课程设计编程序模拟银行家算法

课程设计报告书 课程名称: 操作系统原理 题 目: 编程序模拟银行家算法 系 名: 信息工程系 专业班级: 软件 姓 名: 学 号:

文***品 3年前 上传726   0

哈夫曼树应用数据结构课程设计报告

数据结构课程设计报告设计题目:哈夫曼树应用 专 业 : 软件工程 班 级 : 软件 学 生 : 学 号 : 指导教师 : 起止时间 :2011-07-04—2011-07

文***品 2年前 上传472   0

数据结构课程设计报告n维矩阵乘法

设计一个矩阵相乘的程序,首先从键盘输入两个矩阵a,b的内容,并输出两个矩阵,输出ab-1结果。

文***品 4年前 上传712   0

ping程序课程设计实验报告

Windows网络程序设计课程设计 课 程 名 称 ping程序设计 姓   名 系 别 、专 业 计算机科学系网络工程班 导师姓名、职 称

文***品 2年前 上传480   0

数字图像处理车牌识别课程设计matlab实现附源代码

基于matlab的车牌识别系统一、 目的与要求目的:利用matlab实现车牌识别系统,熟悉matlab应用软件的基础知识,了解了基本程序设计方法,利用其解决数字信号处理的实际应用问题,从而加深对理论知识的掌握,并把所学的知识系统、高效的贯穿到实践中来,避免理论与实践的脱离,巩固理论课上知识的同时,加强实践能力的提高,理论联系实践,提高自身的动手能力。同时不断的调试程序也提高了自己独立编程水平

文***享 1年前 上传345   0

操作系统课程设计银行家算法报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级:计科班 专 业:计算机科学与技术 指导教师: 时 间: 2009 XX大学 计

文***品 3年前 上传618   0

合工大页面置换算法操作系统课程设计报告

计算机与信息学院《操作系统综合设计》报告设计题目:页面置换算法学生姓名:学 号:专业班级:计算机科学与技术班2015 年 X月一、设计题目 3二、开发环境与工具 3三、设计原理 31.最佳(Optimal)置换算法 32.先进先出(FIFO)页面置换算法 43.最近最久未使

文***品 3年前 上传557   0

《操作系统 银行家算法》课程设计报告

《操作系统--银行家算法》课程设计报告姓 名: 学 号: 班 级: 计科班 专 业:计算机科学与技术 XX大学 计算机科学与信息学院目 录1 课程设计目的 ………………………………………

文***品 3年前 上传812   0

银行家算法《操作系统》课程设计报告

《操作系统》课程设计报告课题: 银行家算法 专业计算机科学与技术学生姓名班级计算机学号指导教师信息工程学院一、实验要求和实验目的实验目的:本课程设计是学生学习完《操作系统原理》课程后,进行的一次全面的综合训练,通过课程设计,让学生更好地掌握操作系统

文***享 3年前 上传697   0

查找算法的程序实现「教师版」

查找算法的程序实现【教师版】【例1】 在数组元素a(1)到a(8)中查找键值为key的数,其顺序查找的VB程序段如下,请在划线处填写正确的语句。for i=1 to 8if ①        then   Text1.text=str(i)  exit forend ifnext iif ②        then text1.text=″在数组中没有找到″+str(key)

文***7 2年前 上传419   0

数据结构实习报告

数据结构实习报告  一、需求分析1、  程序所实现的功能;2、  程序的输入,包含输入的数据格式和说明;3、  程序的输出,程序输出的形式;4、  测试数据,如果程序输入的数据量比较大,需要给出测试数据;5、  合作人及其分工二、设计说明1、  主要的数据结构设计说明;2、  程序的主要流程图;3、  程序的主要模块,要求对主要流程图中出现的模块进行说明4、  程序的主要函数及其伪代码说明

s***n 8年前 上传1049   0

关于异地开发中的源代码管理问题

关于异地开发中的源代码管理问题最近在带领一个异地的团队在进行.NetB/S系统开发工作。两地相隔1000多公里,两地都有开发人员,源码的统一管理就成了需要解决的问题。针对这个问题,想到如下的解决方法:   一、利用MicrosoftVisualSourceSafe的Internet功能   优点:   1.考虑使用VSS是因为他与MicrosoftVisualStudio集成的很紧密。可以在

晓***1 10年前 上传521   0

数据结构(C语言版)课程设计报告表达式求值说明书

XX大学数据结构课程设计说明书题目: 表达式求值 院 系: 计算机科学与工程学院 专业班级: 计算机班 学 号: 学生姓名: 指导教师:  2013年 X 月X 日

文***享 3年前 上传540   0

数据结构课程设计报告多关键字排序高考排序

XX工 学 院 计算机工程学院课程设计报告设计名称: 数据结构课程设计 选题名称: 多关键字排序 姓 名: 学 号: 专业班级: 网络工程 系 (院): 计算机工程学院

文***享 6个月前 上传190   0

驱动程序实验报告操作系统课程设计报告

操作系统课程设计报告班级: 计科 姓名: 学号: 老师: 时间:2012年X月X日一、设计目的操作系统课程主要讲述的内容是多道操作系统的原理与技术,与其它计算机原理、编译原理、汇编语言、计算机网络、程序设计等专业课程关系十分密切。本课程设计的目的综合应用学生所学

文***享 1年前 上传301   0

设计散列表实现电话号码查找系统数据结构课程设计

XX学院课程设计报告书专 业:计算机科学与技术 课程设计名称:《数据结构课程设计》题 目:设计散列表实现电话号码查找系统班 级: 学    号: 姓    名: 同 组 人 员: 无指 导 老 师: 完 成 时 间: 摘要电话号码的查找系统软件是现在很实用工具,随着时代的发展,信息化得发

文***品 2年前 上传581   0

© 2006-2021 香当网   

  浙公网安备 33018302001162号
浙ICP备09019653号-34