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

  • 36
  • 0
  • 约9.19千字
  • 约 11页
  • 2021-12-10 发布于上海
  • 举报
洛 阳 理 工 学 院 课 程 设 计 报 告 【问题描述】 商品货架可以看成一个栈,栈顶商品的生产日期最早,栈底商品的生产日期 最近。上货时,需要倒货架,以保证生产日期较近的商品在较下的位置。 【基本要求】 针对一种特定商品,实现上述管理过程。 【测试数据】 小四宋体,行间距单倍行距,每段缩进两个字符 【算法思想】 第一:先定义数据日期的结构体——里面包括年、月、日 第二:写进栈、出栈函数 第三:写倒货函数 基本思想就是借助三个一维数组分别装载年 (a[]) 、月(b[]) 、日(c[]) , 然后出栈并将所有元素放到这三个数组中,一个生产日期的年、月、日数组的下 标必须必须相同否则就乱了。再将数组中元素按生产日期较近进行排序,最后一 步将数组中的元素压到原来的栈中即可。 第四:函数输出,输出只是单纯的输出,不要求出战,故需要另写一个函数 第五:主函数因为可以循环使用,故用 switch —case 语句即可实现 【模块划分】 进栈、出栈、倒货、输出和主函数 【数据结构】 栈:程序中使用的是链栈,链栈的好处是只要还有存储空间就会存储,结构 体的 next 域指向下一个数据域,它的存储空间是随意的,可以连续,也可以不连 续。 数组:数组的存储方式是连续的物理空间,下标即为存储位置,可以高效的 运行 【测试情况】 小四宋体,行间距单倍行距 重点内容,每个功能抓图并且给予文字解释 【心得】 通过此次的课程设计让我深刻的了解到了数据结构是很难的,刚开始的写的 1 洛 阳 理 工 学 院 课 程 设 计 报 告 时候,结构体定义就出错了,以至于后边的函数功能都出错了,就连输入都有错 误,我刚开始以为是我的函数写错了呐!把进栈、出栈函数照着教材上的又重新 写了一会,结果发现还是不行,后来请教班里学的比较还好的同学,发现我结构 体定义的有问题,我年份用的是 int 类型,月、日用的是 char 类型, char 类型 只能接收一个字符,第二个就不能接收不了,所我的输入总有问题,后来我改成 int 类型的就没有这种情况了。后来又想边比较边压栈,弄了一段时间,后来由 于时间关系就没实现,就借助数组实现的。也是一种遗憾。以后有时间写出来。 此次的课程设计,让我对栈有了更加深入的理解,因为结构体出错时写了好 几遍,同时也感谢帮助我的老师和同学们,谢谢给我的帮助,才是顺利的完成此 次课程设计。 【源程序】 5 号, Times New Roman 字体 #include stdio.h #include malloc.h #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; 2 洛 阳 理 工 学 院 课 程 设 计 报 告 //链栈初始化 void initstack(linkstack *S) { *S=(linkstacknode*)malloc(sizeof(linkstacknode)); (*S)-next=NULL; } //链栈进栈

文档评论(0)

1亿VIP精品文档

相关文档