ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:17.77KB ,
资源ID:18080457      下载积分:1 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-18080457.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(商品货架管理数据结构课程设计.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

商品货架管理数据结构课程设计.docx

1、商品货架管理数据结构课程设计洛 阳 理 工 学 院课 程 设 计 说 明 书课程名称 数据结构 设计课题 商品货架管理 专 业 计算机科学与技术 班 级 xxx 学 号 xxx 姓 名 xxx 完成日期 2014年6月14日 课 程 设 计 任 务 书设计题目: 商品货架管理 _设计内容与要求:小四号宋体,行间距固定值12磅每段缩进两个字符注:如果题目太长行间距可以缩小,总之,这一页不可以分成两页。商品货架管理设计内容:商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。设计要求:针对一种特定商品,实现上述管理过程。

2、 指导教师:王伟静 2014 年 6 月5日课 程 设 计 评 语成绩: 指导教师: 年 月 日【问题描述】商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。【基本要求】针对一种特定商品,实现上述管理过程。【测试数据】小四宋体,行间距单倍行距,每段缩进两个字符【算法思想】第一:先定义数据日期的结构体里面包括年、月、日第二:写进栈、出栈函数第三:写倒货函数 基本思想就是借助三个一维数组分别装载年(a)、月(b)、日(c),然后出栈并将所有元素放到这三个数组中,一个生产日期的年、月、日数组的下标必须必须相同否则就乱了。

3、再将数组中元素按生产日期较近进行排序,最后一步将数组中的元素压到原来的栈中即可。第四:函数输出,输出只是单纯的输出,不要求出战,故需要另写一个函数第五:主函数因为可以循环使用,故用switchcase 语句即可实现【模块划分】进栈、出栈、倒货、输出和主函数【数据结构】栈:程序中使用的是链栈,链栈的好处是只要还有存储空间就会存储,结构体的next域指向下一个数据域,它的存储空间是随意的,可以连续,也可以不连续。数组:数组的存储方式是连续的物理空间,下标即为存储位置,可以高效的运行【测试情况】小四宋体,行间距单倍行距重点内容,每个功能抓图并且给予文字解释【心得】通过此次的课程设计让我深刻的了解到了

4、数据结构是很难的,刚开始的写的时候,结构体定义就出错了,以至于后边的函数功能都出错了,就连输入都有错误,我刚开始以为是我的函数写错了呐!把进栈、出栈函数照着教材上的又重新写了一会,结果发现还是不行,后来请教班里学的比较还好的同学,发现我结构体定义的有问题,我年份用的是int类型,月、日用的是char类型,char类型只能接收一个字符,第二个就不能接收不了,所我的输入总有问题,后来我改成int类型的就没有这种情况了。后来又想边比较边压栈,弄了一段时间,后来由于时间关系就没实现,就借助数组实现的。也是一种遗憾。以后有时间写出来。此次的课程设计,让我对栈有了更加深入的理解,因为结构体出错时写了好几遍

5、,同时也感谢帮助我的老师和同学们,谢谢给我的帮助,才是顺利的完成此次课程设计。【源程序】5号,Times NewRoman字体#include #include #define FALSE 0#define TRUE 1#define SIZE 3#define NUM 100/日期结构体定义typedef struct Date int year; int month; int day; Date,*DATE;/链栈结构体定义typedef struct Node Date date; struct Node *next;linkstacknode,*linkstack;/链栈初始化void

6、 initstack(linkstack *S) *S=(linkstacknode*)malloc(sizeof(linkstacknode); (*S)-next=NULL;/链栈进栈int push(linkstacknode *S,Date date) linkstacknode *temp; temp=( linkstacknode *)malloc(sizeof(linkstacknode); if(temp=NULL) return(FALSE); temp-date.year=date.year; temp-date.month=date.month; temp-date.da

7、y=date.day; temp-next=S-next; S-next=temp; return (TRUE); /链栈出栈int Pop(linkstacknode *S,Date *date) linkstacknode *temp; temp=S-next; if(temp=NULL) return 0; S-next=temp-next; date-year=temp-date.year; date-month=temp-date.month; date-day=temp-date.day; free(temp); return 1;/链栈输出void show_Date_links

8、tacknode(linkstacknode *S) linkstacknode *p=NULL; p=S-next; while(p!=NULL) printf(%d:%d:%d:n,p-date.year,p-date.month,p-date.day); p=p-next; /删除void delet(linkstacknode *S,Date *date) int i=0,j=0,n=0;/temp0,temp1,temp2, int aNUM=0; int bNUM=0; int cNUM=0; Date *date0 = NULL; date0= (Date *)malloc(si

9、zeof(Date); while(S-next!=NULL)/将栈中元素放在数组中 Pop(S,date); ai=date-year; bi=date-month; ci=date-day; i+; /删除元素与栈中元素比较并覆盖删除 for(j=0;jyear) if(bj=date-month) if(cj=date-day) for(;ji;j+) aj=aj+1; bj=bj+1; cj=cj+1; /将排好的数组中元素压入到栈中 for(n=0;ndate.year = an; S-date.month = bn; S-date.day = cn; push(S,S-date);

10、 /an=S-date.year; /bn=S-date.month; /cn=S-date.day; / push(S,S-date); /排序压栈void shuru(linkstacknode *S) int i=0,j=0,n=0,temp0,temp1,temp2; int aNUM=0;/日期年 数组 int bNUM=0;/日期月 数组 int cNUM=0;/日期日 数组 Date *date = NULL; date= (Date *)malloc(sizeof(Date); while(S-next!=NULL)/将栈中元素放在数组中 Pop(S,date); ai=dat

11、e-year; bi=date-month; ci=date-day; i+; /从大到小排序 for(j=0;ji;j+) if(ajaj+1) /将年从大到小排序 temp0=aj+1; temp1=bj+1; temp2=cj+1; aj+1=aj; bj+1=bj; cj+1=cj; aj=temp0; bj=temp1; cj=temp2; else if(bjbj+1) /将月从大到小排序 temp0=aj+1; temp1=bj+1; temp2=cj+1; aj+1=aj; bj+1=bj; cj+1=cj; aj=temp0; bj=temp1; cj=temp2; else

12、 if(cjcj+1) /将日从大到小排序 temp0=aj+1; temp1=bj+1; temp2=cj+1; aj+1=aj; bj+1=bj; cj+1=cj; aj=temp0; bj=temp1; cj=temp2; /将排好的数组中元素压入到栈中 for(n=0;ndate.year = an; S-date.month = bn; S-date.day = cn; push(S,S-date); void menu() printf(*n); printf(* 可 口 可 乐 *n); printf(*n); printf(n); printf(* 日期(年月日)之间用空格隔开

13、 *n); printf(* 一个日期(年月日)完成后按回车 *n); printf(n); printf(*1:产品输入*n); printf(*2:产品输入*n); printf(*3:产品输出*n); printf(*4:退出*n); printf(n);void main() char i=0,flag=1,cloise=0; int m=0; linkstacknode *S=NULL; /*S=(linkstacknode*)malloc(sizeof(linkstacknode) Date *date = NULL; Date *date1 = NULL; initstack(&

14、S); flushall(); date= (Date *)malloc(sizeof(Date); date1= (Date *)malloc(sizeof(Date); while(flag) menu(); printf(请输入选择项:n); scanf(%d,&cloise); switch(cloise) case 1: printf(请安输入商品个数:n); scanf(%d,&m); printf(请输入日期(年月日):n); for(i=0;iyear,&date-month,&date-day); push(S,*date); break; case 2: printf(请输入日期(年 月 日):n); scanf(%d%d%d,&date1-year,&date1-month,&date1-day); delet(S,date1); break; case 3: printf(上货后的日期如下:n); shuru(S); show_Date_linkstacknode(S); break; case 4: flag=0; break; .忽略此处.

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2