课程设计报告超市数据汇总

上传人:博****1 文档编号:486196484 上传时间:2022-10-20 格式:DOCX 页数:22 大小:455.25KB
返回 下载 相关 举报
课程设计报告超市数据汇总_第1页
第1页 / 共22页
课程设计报告超市数据汇总_第2页
第2页 / 共22页
课程设计报告超市数据汇总_第3页
第3页 / 共22页
课程设计报告超市数据汇总_第4页
第4页 / 共22页
课程设计报告超市数据汇总_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《课程设计报告超市数据汇总》由会员分享,可在线阅读,更多相关《课程设计报告超市数据汇总(22页珍藏版)》请在金锄头文库上搜索。

1、课程设计报告超市数据汇总系统课程:程序设计基础班级: 150407 学号: 20152476姓名:黄志浩指导教师:孙旸2016年1月12日目录设计题目3选题背景4设计内容5设计思路6程序清单与运行结果7程序清单7运行结果截图15总结、设计结果说明、设计体会19设计题目问题描述:在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。假设某超级市场销售有m种商品(假设商品的编号为1,2,3,m),有n台前台收款机(假设收款机的编号为1,2,3,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域

2、组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。实现要求: 编写实现将数据记录插入到数据文件的最后的函数; 编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表; 编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据

3、文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表; 统计每台收款机的销售总额; 以收款机为单位,将所有收款机按销售总额的非递减顺序构造一个单链表并输出; 以商品为单位,统计每种商品的销售总额; 以商品为单位,将所有销售的商品按销售总额的非递减顺序构造一个单链表并输出; 设计一个菜单,具有上述要求的所有功能、退出系统等最基本的功能。选题背景随着我国改革开放的不断深入、经济飞速的发展,企业要想生存发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的。作为现代社会的一部分,超市必须适应社会的发展,因此实现超市的信息化管理是很有必要的。 在传统的手工管理中,往

4、往是用人工清点的方式来掌握超市中现有的商品,使用手工记账的方式来掌握商品的进货和销售情况。这种方式在商品数量较少、商品库存变换少的情况下,不失为一种较好的方法。但是,在目前的大中型超市中,往往需要处理的商品种类数以千计,而且每天所发生的进货和销售情况纷繁复杂。如果要借助人工来实现这一系列数据的记录和管理,工作量将非常巨大,而且容易出现错误,造成管理上的混乱,更何况还需要对商品的数据进行统计和分析。随着科学技术的不断提高,计算机科学日渐成熟,其强大的功能已被人们所认识,它已进入人类社会的各个领域并发挥着越来越重要的作用。作为计算机应用的一部分,使用计算机对超市信息进行管理有着手工管理所无法比拟的

5、优点,例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高超市管理的效率,也能使超市步入科学化、正规化的管理。基于这些问题,为了使超市管理工作规范化、系统化、程序化,避免超市管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效地查询和修改商品情况,建立一个超市管理系统是非常必要的。设计内容1.实现将数据记录插入到数据文件的最后;2.以收款机为单位的数据分类处理。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全

6、部记录)分解插入到n个单链表;3.统计每台收款机的销售总额;4.以收款机为单位,将所有收款机按销售总额的非递减顺序构造一个单链表并输出;5.以商品为单位的数据分类处理。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表;6.以商品为单位,统计每种商品的销售总额;7.以商品为单位,将所有销售的商品按销售总额的非递减顺序构造一个单链表并输出;设计思路1. 首先将数据通过程序存储到文件中供程序提取并操作。2. 将文件中的数据提取并做成一个单链表。

7、3. 将上一步的单链表分成N个单链表,每个收款机为一个单链表。 N个单链表头指针放在一个指针数组里。4. 查找N个单链表中的数据并计算总金额,同时把总金额存储到一个数组中供下步使用。5. 根据总金额将指针数组排序并输出。6. 以商品为单位,重复3-5步。程序清单与运行结果程序清单#includestdio.h#includemalloc.h#includestring.h#includestdlib.h#define N 3 / 3个收款机 #define M 9 / 9种商品 char acount10=737701995;/管理员账号 char password10=123456;/管理员

8、密码 struct Node* atmN; /存放收款机链表头指针 struct Node* goodsM;/ 商品链表头指针 char n1N=a,b,c;char n2M=1,2,3,4,5,6,7,8,9;float m1N;/每台收款机收款总额 float m2M;/每种商品销售总额 struct shop/结构体数据 char ATM;/ 标号为 a-cchar GOODS; /标号为 1-9float num;float price;float total; ;struct Node/链表 struct shop content;struct Node *next;void add

9、()struct shop data;FILE *fp=NULL;fp=fopen(data.txt,a);if(fp=NULL)printf(文件打开失败!);return;char flag=y;while(flag=y|flag=Y)printf(输入收款机号:(a-c) );rewind(stdin);scanf(%c,&data.ATM);printf(输入商品号:(1-9) ); rewind(stdin);scanf(%c,&data.GOODS);printf(输入销售商品数量:);scanf(%f,&data.num); printf(输入销售价格:);scanf(%f,&d

10、ata.price);data.total=data.num*data.price;fprintf(fp,%c%c%f %f %f,data.ATM,data.GOODS,data.num,data.price,data.total);fputc(n,fp);printf(是否继续 y/Y );rewind(stdin);scanf(%c,&flag); if(flag!=y&flag!=Y)fclose(fp);return;struct Node* creatNode() /提取文件数据 建成一个链表 char ch;FILE *fp=NULL;fp=fopen(data.txt,r);s

11、truct Node *h,*p1,*p2;p2=(struct Node*)malloc(sizeof(struct Node);h=p2;fscanf(fp,%c%c,&p2-content.ATM,&p2-content.GOODS);fscanf(fp,%f%f%f,&p2-content.num,&p2-content.price,&p2-content.total);ch=fgetc(fp);while(!feof(fp)p1=(struct Node*)malloc(sizeof(struct Node);fscanf(fp,%c%c,&p1-content.ATM,&p1-co

12、ntent.GOODS);fscanf(fp,%f,&p1-content.num);fscanf(fp,%f,&p1-content.price);fscanf(fp,%f,&p1-content.total);ch=fgetc(fp);p2-next=p1;p2=p1;ch=fgetc(fp);fclose(fp);p2-next=NULL;if(h=NULL)printf(提取数据失败!);return 0;elsereturn h;void creatatm() /根据收款机建立N个链表 int i=0;struct Node* h;h=creatNode();while(n1i!=N

13、ULL)struct Node *q,*p1=NULL,*p2,*H; p2=(struct Node*)malloc(sizeof(struct Node);H=p2;q=h;while(q) if(q-content.ATM=n1i) p1=(struct Node*)malloc(sizeof(struct Node);p1-content=q-content;p2-next=p1;p2=p1; q=q-next; p2-next=NULL; H=H-next; atmi=H; i+;return;void addtotal() /计算各收款机收款总额并存储总额数据 int i=0;creatatm();float Total=0;struct Node *q;while(icontent.total;q=q-next;m1i=Total;i+;To

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > 总结/计划/报告

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号