得分:信电工程学院课程设计报告数据汇总系统课程:高级语言程序设计班级:12软件1学号:20120510116姓名:潘焕燚指导教师:丁宾2013年7月1日目录1程序目标及功能---------------------------------------------------------------11.1课题背景-----------------------------------------------------------------11.2系统功能---------------------------------------------------------------31.3设计要求---------------------------------------------------------------32程序功能模块组成及流程图------------------------------------------------42.2系统功能模块-----------------------------------------------------------42.3各模块流程图-----------------------------------------------------------53程序主要数据结构及函数列表---------------------------------------------83.1程序中使用的数据结构----------------------------------------------83.2函数列表--------------------------------------------------------------104程序代码及运行结果-------------------------------------------------------145总结与体会------------------------------------------------------------------32题目:数据汇总题目内容:在数据处理中经常需要对大量数据进行汇总,将相同关键字记录的某些数据项的值叠加起来,生成一个分类汇总表。假设某超级市场销售有m种商品(假设商品的编号为1,2,3,┅┅,m),有n台前台收款机(假设收款机的编号为1,2,3,┅┅,n)进行收款,以记录的形式提供给计算机,每个记录表示某台收款机的一种商品一次交易的数量和销售额。记录由4个域组成:收款机编号、商品编号、销售数量、销售金额。构造一个结构体类型,每次销售数据以一个结构体变量保存在一个数据文件中。本人完成的工作:(1)编写实现将数据记录插入到数据文件的最后的函数;⑵编写以收款机为单位的数据分类处理函数。构造n个单链表,每个链表保存一台收款机的销售记录,这n个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪台收款机。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到n个单链表;(3)编写以商品为单位的数据分类处理函数。构造m个单链表,每个链表保存一种商品的销售记录,这m个单链表的头指针存放在一个指针数组中,通过数组的下标就可以知道是哪种商品。读取数据文件的记录,将所有的销售记录(数据文件中的全部记录)分解插入到m个单链表;(4)统计每台收款机的销售总额;(5)以收款机为单位,将所有收款机按销售总额的递增顺序构造一个单链表并输出。(6)以商品为单位,统计每种商品的销售总额。(7)以商品为单位,将所有销售的商品按销售总额的递增顺序构造一个单链表并输出。(8)设计一个菜单,具有插入数据记录、按收款机统计销售总额、按商品统计销售总额、退出系统等最基本的功能。所采用的数据结构:单链表销售商品数据记录结构定义:typedefstructGoods{intregNum;//收款机编号intgoodsNum;//商品编号intsalesVol;//销售数量doublesalesAmount;//销售单价}Goods;typedefstructGoodsElemType;//用于链表里的数据类型单链表结点定义:typedefstructNode{ElemTypedata;//链表所存的数据structNode*next;//指向下一个结点的指针}*LNode,*LinkList;所设计的函数:[1].将数据记录插入到文件data.dat最后的函数intAddrecord(Goods*goods)算法思想:首先判断参数是否非法,非法则返回FAIL,否则以以二进制的append方式打开文件data.dat;文件指针为空则打开失败返回FAIL,否则将数据记录写入文件,然后关闭文件,返回SUCCESS。流程图:开始参数为空?返回FAIL结束是打开文件失败?是否否把记录写入文件关闭文件,返回SUCCESS[2].以收款机为单位的数据分类处理函数LinkList*SortByReg(intn)算法思想:判断打开文件是否成功,失败则打印“打开文件失败”并返回FAIL,否则分配链表指针数组;然后判断内存是否充足,不足则打印“内存不足”并返回FAIL,否则初始化n个收款机链表,并读相应记录,存到对应的收款机链...