欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    数据结构课程设计校园超市商品销售统计系统汇总.docx

    • 资源ID:11412211       资源大小:193.81KB        全文页数:19页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    数据结构课程设计校园超市商品销售统计系统汇总.docx

    1、数据结构课程设计校园超市商品销售统计系统汇总目录1.需求分析 11.1 问题描述 11.2 设计内容 12.概要设计 12.1 数据结构算法选择 12.2 算法要点归纳 12.3 下面是针对本程序专门定义的数据结构类型 42.4 各组织结构与功能分析 53 测试结果及其分析 64 小结 8参考文献 9附录:程序源代码 91.需求分析1.1 问题描述 设计一系统,实现超市定期对销售各商品的记录进行统计,可按商品的编号、单价、销售量或销售额做出排名。1.2 设计内容 在本设计中,首先从数据文件中读出各商品的信息记录,存储在顺序表中。各商品的信息包括:商品编号、商品名、单价、销出数量、销售额。商品编

    2、号共4位,采用字母和数字混合编号,如:A125,前一位为大写字母,后三位为数字,按商品编号进行排序时,可采用基数排序法。对各商品的单价、销售量或销售额进行排序时,可采用多种排序方法,如直接插入排序、冒泡排序、快速排序,直接选择排序等方法。在本设计中,对单价的排序采用冒泡排序法,对销售量的排序采用快速排序法,对销售额的排序采用堆排序法。2.概要设计2.1 数据结构算法选择本设计主要采用了顺序表。共用四种排序方法:冒泡排序法,快速排序法,堆排序法,基数排序法。2.2 算法要点归纳1.冒泡排序: 冒泡排序的算法思想是:通过无序区中相邻元素关键字间的比较和位置的交换,使关键字最小的元素如气泡一般逐渐往

    3、上“漂浮”直至“水面”。整个算法是从最下面的元素开始,对每两个相邻元素的关键字进行比较,且使关键字较小的元素换至关键字较大的元素之上,使得经过一趟冒泡排序后,关键字最小的元素到达最上端。接着,再在剩下的元素中找关键字次小的元素,并把它换在第二个位置上。依次类推,一直到所有元素都有序为止。图 1:冒泡排序算法思想2.快速排序:快速排序是对冒泡排序的一种改进。它的基本思想是:通过一趟排序将待排记录分割成独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字,则可分别对这两部分记录继续进行排序,以达到整个序列有序。图 2:快速排序算法思想3.堆排序:堆排序只需要一个记录大小的辅助空间,每个待排

    4、序的记录仅占有一个存储空间。它的基本思想是:首先按大根堆的定义将R1n调整为堆(这个过程为初始建堆),交换R1和Rn(将最大元素R1归位,放到排序序列的最后);然后,将R1n-1调整为堆,交换R1和Rn-1;如此反复进行,直到交换了R1和R2为止。图 3:堆排序算法思想4.基数排序:基数排序是属于“分配式排序”,基数排序法又称“桶子法”。顾名思义,它是透过键值的部份资讯,将要排序的元素分配至某些“桶”中,藉以达到排序的作用,基数排序法是属于稳定性的排序,其时间复杂度为O(nlog(r)m),其中r为所采取的基数,而m为堆数,在某些时候,基数排序法的效率高于其它的比较性排序法。图 4:基数排序算

    5、法思想2.3 下面是针对本程序专门定义的数据结构类型1.商品信息的元素类型定义: typedefstructnode charnum4; /*商品编号*/ charname10; /*商品名称*/ floatprice; /*单价*/ intcount; /*销售数量*/ floatsale; /*本商品销售额*/ DataType;2.存储商品信息的顺序表的定义: typedefstruct DataTyperMaxSize; intlength;SequenList;2.4 各组织结构与功能分析各商品信息在设计系统中的主要功能:按照各商品信息排序,根据要求所需的排序算法对商品编号、商品名称

    6、、单价、销售量和销售额进行一个排序。图 5:功能分析图 3 测试结果及其分析图 6:输入商品编号、商品名称、商品单价和商品销售量图 7:按商品编号排序图 8:按商品名称排序图 9:分别按商品单价和商品销出数量排序图 10:按商品销售额排序4 小结通过这次课设,我学会了如何把数据结构的知识应用到实践当中,同时也进一步加深了对c/c+语言语法的应用,以及深刻的掌握了数据结构和c/c+语言的结合运用。 在编程过程中,遇到了许多问题,在一次次的运行错误后,问题被一步步改正,也从中学到了许多知识。虽然我的程序还不够完善,还需加以改进以实现更多的功能,但是我会尽我最大的努力去完成它,我相信我会努力去把程序

    7、做的更加完美。参考文献1王昆仑,李红等编著. 数据结构与算法. 北京:中国铁道出版社,2007.2苏仕华等编著. 数据结构课程设计. 北京:机械工业出版社 ,2005.3苏仕华编著. 数据结构与算法解析. 合肥:中国科学技术大学出版社,2004.4郭嵩山等著. 国际大学生程序设计竞赛例题解. 北京:电子工业出版社,2008.5刘大有,唐海鹰等编著. 数据结构. 北京:高等教育出版社,2001.6徐孝凯编著.数据结构实用教程. 北京: 清华大学出版社,1999.7严蔚敏,陈文博编著. 数据结构及算法教程. 北京: 清华大学出版社,2001.8刘振安,刘燕君等编著. C 程序设计课程设计. 北京:

    8、 机械出版社,2004.9胡学钢. 数据结构与算法设计指导. 北京: 清华大学出版社, 1999.附录:程序源代码#include#include#include#define maxsize 100 /该超市商品最大种类typedef struct node /商品信息的存储结构类型定义 char num10; /商品编号 char name30; float price; /单价 int count; /销售量 float sale; /销售额DataType;typedef struct /存储商品信息的顺序表的定义 DataType rmaxsize; int length; int

    9、type;SqList;void number(SqList *L) /按商品编号排序 int i,j; char num110,name130; float price1,sale1; int count1; for(i=0;itype;i+) for(j=i+1;jtype;j+) if(strcmp(L-rj.num,L-ri.num)0) strcpy(num1,L-rj.num); strcpy(L-rj.num,L-ri.num); strcpy(L-ri.num,num1); strcpy(name1,L-rj.name); strcpy(L-rj.name,L-ri.name)

    10、; strcpy(L-ri.name,name1); price1=L-rj.price; L-rj.price=L-ri.price; L-ri.price=price1; count1=L-rj.count; L-rj.count=L-ri.count; L-ri.count=count1; sale1=L-rj.sale; L-rj.sale=L-ri.sale; L-ri.sale=sale1; printf(t按商品编号排序后:n); printf(t商品编号 商品名称 单价 销出数量 销售额n); for(i=0;itype;i+) printf(t%st%st%ft%dt%fn,

    11、L-ri.num,L-ri.name,L-ri.price,L-ri.count,L-ri.sale);void nam(SqList *L) /按商品名称排序 int i,j; char num110,name130; float price1,sale1; int count1; for(i=0;itype;i+) for(j=i+1;jtype;j+) if(strcmp(L-rj.name,L-ri.name)0) strcpy(num1,L-rj.num); strcpy(L-rj.num,L-ri.num); strcpy(L-ri.num,num1); strcpy(name1,

    12、L-rj.name); strcpy(L-rj.name,L-ri.name); strcpy(L-ri.name,name1); price1=L-rj.price; L-rj.price=L-ri.price; L-ri.price=price1; count1=L-rj.count; L-rj.count=L-ri.count; L-ri.count=count1; sale1=L-rj.sale; L-rj.sale=L-ri.sale; L-ri.sale=sale1; printf(t按商品编号排序后:n); printf(t商品编号 商品名称 单价 销出数量 销售额n); for

    13、(i=0;itype;i+)printf(t%st%st%ft%dt%fn,L-ri.num,L-ri.name,L-ri.price,L-ri.count,L-ri.sale);void pric(SqList *L)/按商品单价排序 int i=0,j; char num110,name130; float price1,sale1; int count1; for(i=0;itype;i+) for(j=i+1;jtype;j+) if(L-rj.priceL-ri.price) strcpy(num1,L-rj.num); strcpy(L-rj.num,L-ri.num); strc

    14、py(L-ri.num,num1); strcpy(name1,L-rj.name); strcpy(L-rj.name,L-ri.name); strcpy(L-ri.name,name1); price1=L-rj.price; L-rj.price=L-ri.price; L-ri.price=price1; count1=L-rj.count; L-rj.count=L-ri.count; L-ri.count=count1; sale1=L-rj.sale; L-rj.sale=L-ri.sale; L-ri.sale=sale1; printf(t按商品编号排序后:n); prin

    15、tf(t商品编号 商品名称 单价 销出数量 销售额n); for(i=0;itype;i+) printf(t %st %st %ft %dt %fn,L-ri.num,L-ri.name,L-ri.price,L-ri.count,L-ri.sale);void coun(SqList *L)/按商品销出数量排序 int i=0,j; char num110,name130; float price1,sale1; int count1; for(i=0;itype;i+) for(j=i+1;jtype;j+) if(L-rj.countL-ri.count) strcpy(num1,L-

    16、rj.num); strcpy(L-rj.num,L-ri.num); strcpy(L-ri.num,num1); strcpy(name1,L-rj.name); strcpy(L-rj.name,L-ri.name); strcpy(L-ri.name,name1); price1=L-rj.price; L-rj.price=L-ri.price; L-ri.price=price1; count1=L-rj.count; L-rj.count=L-ri.count; L-ri.count=count1; sale1=L-rj.sale; L-rj.sale=L-ri.sale; L-

    17、ri.sale=sale1; printf(t按商品编号排序后:n); printf(t商品编号 商品名称 单价 销出数量 销售额n); for(i=0;itype;i+) printf(t%st%st%ft%dt%fn,L-ri.num,L-ri.name,L-ri.price,L-ri.count,L-ri.sale);void sales(SqList *L)/按商品销售额排序 int i=0,j; char num110,name130; float price1,sale1; int count1; for(i=0;itype;i+) for(j=i+1;jtype;j+) if(L

    18、-rj.saleL-ri.sale) strcpy(num1,L-rj.num); strcpy(L-rj.num,L-ri.num); strcpy(L-ri.num,num1); strcpy(name1,L-rj.name); strcpy(L-rj.name,L-ri.name); strcpy(L-ri.name,name1); price1=L-rj.price; L-rj.price=L-ri.price; L-ri.price=price1; count1=L-rj.count; L-rj.count=L-ri.count; L-ri.count=count1; sale1=L

    19、-rj.sale; L-rj.sale=L-ri.sale; L-ri.sale=sale1; printf(t按商品编号排序后:n); printf(t商品编号 商品名称 单价 销出数量 销售额n); for(i=0;itype;i+) printf(t %st %st %ft %dt %fn,L-ri.num,L-ri.name,L-ri.price,L-ri.count,L-ri.sale);void menu() printf(ttt销售记录排序n); printf(t-n); printf(t| 1)按商品编号 |n); printf(t| 2)按商品名称 |n); printf(t

    20、| 3)按商品单价 |n); printf(t| 4)按商品销出数量 |n); printf(t| 5)按商品销售额 |n); printf(t| 0)退出系统 |n); printf(t-n); printf( 请选择);int main() SqList *L; int n,i,m; char num110,name130; float price1,sale1; int count1; FILE *fp; L=(SqList*)malloc(sizeof(SqList); fp=fopen(medince.txt,w); /创建文件 if (!fp) printf(Sorry! File

    21、 open error!n); exit(0); printf(请输入商品种类数(type=n; for (i=0; ilength=0; fp=fopen(medince.txt,r); if (!fp) printf(Sorry! File open error!); exit(0); for(i=0;iri.num,L-ri.name,&L-ri.price,&L-ri.count,&L-ri.sale); /从文件中读信息 L-length+; fclose(fp); printf(t商品编号 商品名称 单价 销出数量 销售额n); for(i=0;itype;i+) printf(t

    22、%st%st%ft%dt%fn,L-ri.num,L-ri.name,L-ri.price,L-ri.count,L-ri.sale); while(1) menu(); scanf(%d,&m); switch(m) case 1: /按商品编号排序 number(L); break; case 2: /按商品名称排序 nam(L); break; case 3: /按单价排序 pric(L); break; case 4: /按销出数量排序 coun(L); break; case 5: /按销售额排序 sales(L); break; case 0: /退出系统 exit(0); break; default: printf(Sorry!输入有误!); break;


    注意事项

    本文(数据结构课程设计校园超市商品销售统计系统汇总.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开