- 22
- 0
- 约1.01万字
- 约 19页
- 2018-08-02 发布于贵州
- 举报
数据结构课程的设计校园超市商品销售统计系统
《数据结构》课程设计报告
目录
TOC \o 1-3 \h \u HYPERLINK \l _Toc14062 1.需求分析 PAGEREF _Toc14062 1
HYPERLINK \l _Toc17264 1.1 问题描述 PAGEREF _Toc17264 1
HYPERLINK \l _Toc8312 1.2 设计内容 PAGEREF _Toc8312 1
HYPERLINK \l _Toc6701 2.概要设计 PAGEREF _Toc6701 1
HYPERLINK \l _Toc29011 2.1 数据结构算法选择 PAGEREF _Toc29011 1
HYPERLINK \l _Toc31487 2.2 算法要点归纳 PAGEREF _Toc31487 1
HYPERLINK \l _Toc23763 2.3 下面是针对本程序专门定义的数据结构类型 PAGEREF _Toc23763 4
HYPERLINK \l _Toc30272 2.4 各组织结构与功能分析 PAGEREF _Toc30272 5
HYPERLINK \l _Toc31472 3 测试结果及其分析 PAGEREF _Toc31472 6
HYPERLINK \l _Toc4325 4 小结 PAGEREF _Toc4325 8
HYPERLINK \l _Toc24105 参考文献 PAGEREF _Toc24105 9
HYPERLINK \l _Toc5994 附录:程序源代码 PAGEREF _Toc5994 9
PAGE \* MERGEFORMAT
PAGE \* MERGEFORMAT 8
1.需求分析
1.1 问题描述
设计一系统,实现超市定期对销售各商品的记录进行统计,可按商品的编号、单价、销售量或销售额做出排名。
1.2 设计内容
在本设计中,首先从数据文件中读出各商品的信息记录,存储在顺序表中。各商品的信息包括:商品编号、商品名、单价、销出数量、销售额。商品编号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按商品编号进行排序时,可采用基数排序法。对各商品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。
2.概要设计
2.1 数据结构算法选择
本设计主要采用了顺序表。共用四种排序方法:冒泡排序法,快速排序法,堆排序法,基数排序法。
2.2 算法要点归纳
冒泡排序:
冒泡排序的算法思想是:通过无序区中相邻元素关键字间的比较和位置的交换,使关键字最小的元素如气泡一般逐渐往上“漂浮”直至“水面”。
整个算法是从最下面的元素开始,对每两个相邻元素的关键字进行比较,且使关键字较小的元素换至关键字较大的元素之上,使得经过一趟冒泡排序后,关键字最小的元素到达最上端。接着,再在剩下的元素中找关键字次小的元素,并把它换在第二个位置上。依次类推,一直到所有元素都有序为止。
图 SEQ 图 \* ARABIC 1:冒泡排序算法思想
快速排序:
快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字,则可分别对这两部分记录继续进行排序,以达到整个序列有序。
图 SEQ 图 \* ARABIC 2:快速排序算法思想
堆排序:
堆排序只需要一个记录大小的辅助空间,每个待排序的记录仅占有一个存储空间。它的基本思想是:首先按大根堆的定义将R[1…n]调整为堆(这个过程为初始建堆),交换R[1]和R[n](将最大元素R[1]归位,放到排序序列的最后);然后,将R[1…n-1]调整为堆,交换R[1]和R[n-1];如此反复进行,直到交换了R[1]和R[2]为止。
图 SEQ 图 \* ARABIC 3:堆排序算法思想
4.基数排序:
基数排序是属于“分配式排序”,基数排序法又称“桶子法”。顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O(nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。
图 SEQ 图 \* ARABIC 4:基数排序算法思想
2.3 下面是针对本程序专门定义的数据结构类型
1.商品信息的元素类型定义:
? typedef?struct?node?
{?
char?num[4];?? /*商品编号*/?
? char?name[
原创力文档

文档评论(0)