华科C语言课程设计报告.docx
《华科C语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《华科C语言课程设计报告.docx(234页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、华中科技大学计算机科学与技术学院C语言课程设计报告题目:菜市场商品销售管理系统专业:计算机科学与技术专业班级:学号:姓名:成绩:指导教师:完成日期:2016年10月7日目录一、系统需求分析11.1 数据维护功能11.2 数据查询功能11.3 数据统计功能11.4 数据存取功能21.5 辅助功能2二、总体设计22.1 文件模块22.2 数据维护模块32.3 数据查询模块42.4 数据统计模块52.5 帮助6三、数据结构设计6四、详细设计与系统实现114.1 主程序114.1 数据维护114.1.1 分类信息维护124.1.2 基本信息维护154.1.3 销售信息维护194.2 数据查询224.2
2、.1 分类信息查询224.2.2 基本信息查询:234.2.3 销售信息查询254.3 数据统计284.3.1 按类别统计:284.3.2 按品种统计314.3.3 按客户名称统计36五、运行测试与结果分析405.1 输入数据405.2 初始化界面425.3 系统主界面425.4 数据维护界面435.5 数据查询界面:525.6 数据统计界面575.7帮助模块界面62六、总结64七、参考文献65附录1程序源代码66头文件:market.h66main.c 文件:74一、系统需求分析菜市场商品销售管理系统用于管理人员对于菜市场的各类商品销售信息进行管理,主要包括商品分类信息,商品基本信息,商品销
3、售信息等三类信息,以帮助商场管理人员及时了解产品销售情况和变化。菜市场商品销售管理系统要求实现以下几方面的基本功能:1.1 数据维护功能菜市场商品销售管理系统的基本信息主要包括以下三类:(1)商品分类信息:分类编码、分类名称等数据项。(2)商品基本信息:商品编号、商品名称、分类码、产地、单价、售出数量等数据项。(3)商品销售信息:销售编号、商品编号、销售重量、销售金额、销售日期、客户名称等数据项。系统应实现以上三种数据的录入、修改、和删除功能。信息录入时,系统应提供快捷方便的数据录入方式;同时应进行自动数据校验,满足数据的正确性,合理性,有效性和依赖性要求。1.2 数据查询功能系统应实现对三种
4、基础数据的查询功能,提供按多种条件进行查询的方式,具体包括:(1)以分类编码为条件来查找并显示满足条件的商品分类信息。(2)商品名称中文字符子串为条件查找,并显示商品中包含指定子串的商品基本信息。(3)以分类码和单价为条件查找并显示满足条件的商品基本信息。(4)客户名称和销售日期为条件查找并显示满足条件的所有商品销售信息。(5)以商品名称为条件查找并显示满足条件的商品销售信息。上述查询结果中,如果有多条信息被查中,查询结果应生成表格并逐条显示。1.3 数据统计功能在以上三种基础信息的基础上,提供多方面的数据统计功能,并生成表格输出,具体包括:(1)按类别统计各类商品某年(如肉类、鱼类等)销售总
5、重量、销售总额、按销售总额降序排序后、输出分类名称、销售总重量、销售总额。(2)以所输入的年份为条件、按商品名称(如猪肉、大豆等)统计该年度内所售各种商品销售总重量、销售金额、按售总重量降序排序后、输出商品名称、分类名称、售出总重量、销售金额。(3)按客户名称统计所购某类商品(如肉类、鱼类等)的总重量、消费总金额、输出客户名称、所购各类商品总重量、消费总金额。(4)按客户名称统计所购某种商品(如猪肉、豆角等)的总重量、消费总金额、输出客户名称、所购各种商品总重量、消费总金额。(5)按商品类别统计某客户购买情况、输出分类名称、购买总重量、消费总金额。(6)按商品品种统计某客户购买情况、输出分类名
6、称、商品名称、购买总重量、消费总金额。1.4 数据存取功能以上三种信息在程序运行时,以链表结构形式存在于内存中,并且数据的存储采用动态存储的分配方式。同时,在外存上以数据文件形式对数据进行存储,且保证数据在内存和外存两种存储介质上内容的一致性。1.5 辅助功能帮助功能,主要是对系统的操作方式进行介绍,以及一些方便操作,提供良好人机交互界面的辅助功能。二、总体设计菜市场商品销售管理系统由五大功能模块组成:文件模块,数据维护,数据查询,数据统计,帮助系统。功能结构如图2.0。文件上 计图2.0菜市场商品销售管理系统的功熊模块下面为这五个模块及其子模块的功能的介绍。2.1 文件模块文件模块的功能包括
7、一系列与系统启动和系统既然的话运行相关的环境维护和数据保障操作,它包括六个子模块:界面初始化、数据保存、数据备份、数据恢复、退出系统。功能结构如图2.1。文件图2.1文件模块的子模块划分(1)界面初始化子模块:用于设置控制台窗口显示模式,将屏幕窗口设置为80列和25行文本字符界面,设置窗口标题栏,清屏并显示系统菜单栏和系统状态栏。(2)数据加载子模块:用于将分别放在多个数据文件中的基础数据读入内存,并构造数据链表,同时输出数据加载相关提示信息。(3)数据保存模块:用于将链表数据按缺省路径分别保存到各个数据文件。(4)数据备份子模块:用于将存放在多个数据文件中的基础数据按缺省路径转储到一个数据文
8、件中,供用户在系统数据被破坏或丢失后用来恢复系统。(5)数据恢复子模块:与数据备份子模块在功能上相对应,能从一个备份数据文件恢复得到备份时间点的系统数据,并将恢复出来的数据加载到内存中,用于提高系统的安全性和可靠性。(6)退出系统子模块:释放程序运行过程中申请的动态存储区,关闭控制台标准输入和输出设备句柄。清除屏幕窗口信息,结束系统运行。2.2 数据维护模块数据维护模块完成对三种基础数据信息的录入、修改和删除功能,保证数据的准确性,完整性华为有效性。该模块按信息种类划分为分类信息维护、基本信息维护、销售信息维护三个子模块。如图2.2。数据维护图2.2数据维护模块的子模块划分分类信息维护、基本信
9、息维护、销售信息维护三个子模块分别用于录入、删除和修改分类信息、基本信息和销售信息。同时,系统将这三种数据存入数据链表,并在子模块结束运行时分别保存到分类信息数据文件,商品基本信息数据文件和商品销售信息数据文件,以保持在内存和外存上两种存储介质上数据内容的一致性。2.3 数据查询模块数据查询模块提供对系统三类基础数据信息按多种条件查询的功能,按信息种类分为分类信息查询,基础信息查询和销售信息查询三个子模块。如图2.3。(1)分类信息查询:可分为两个子模块,提供按分类编码查询分类信息的功能和输出全部分类信息的功能。(2)基础信息查询:可分为三个子模块,提供按商品名称中的关键字模糊查询商品基本信息
10、的功能,按分类码与单价查询基本信息的功能和输出全部基本信息的功能。(3)销售信息查询:可分为三个子模块,提供按客户名称和销售日期查询销售信息的功能,按商品名称精确查询销售信息的功能和输出全部销售信息的功能。其中,输出全部分类信息,基本信息和销售信息的功能主要用于测试系统运行是否正确。数据查询分类信息查询输出全部 按编码查询按客户名称和销售日期1销售信息杳.南按商品名称查询输出全部图2. 3数据查询模块的子模块划分2.4 数据统计模块图2. 4数据统计模块的子模块划分数据统计数据统计模块提供对三种基础数据进行多方面统计的功能。按照统计条件,该模块按类别统计,按品种统计和按客户姓名统计三个模块。每
11、个模块根据统计的范围又各自分为2个子模块,共计6种不同的统计方式。如图2.4。(1)统计各类商品销售情况:年度各分类销售情况:按类别统计某年销售总重量、销售总额,按销售总额降序排序后,以表格形式输出分类名称、销售总重量、销售总额。某客户各分类购买情况:统计用户给出的客户的各类商品消费情况,输出类别名称、客户所购各种商品总重量、消费总金额。(2)按品种统计:年度各品种消费情况:统计用户给出的年份的各种商品的销售总重量、销售金额,按售总重量降序排序后,以表格形式输出商品名称、分类名称、售出总重量、销售金额。某客户各品种购买情况:统计用户给出的客户的各种商品消费情况,输出类别名称、商品名称、客户所购
12、各种商品总重量、消费总金额。(3)按客户姓名统计:按查询内容分为三个子模块,查分类名称,查商品名称和查客户姓名。某分类销售情况:按客户名称统计用户给出的分类的购买总重量、消费总金额。输出客户名称、所购各类商品总重量、消费总金额。某商品销售情况:按客户名称统计用户给出的商品的购买总重量、消费总金额。输出客户名称、所购各种商品总重量、消费总金额。2.5 帮助帮助模块为用户使用系统提供帮助信息,同时提供系统版本和版权信息。分为帮助主题子模块和关于市场两个子模块。帮助图2.5帮助模块的子模块划分三、数据结构设计菜市场销售管理系统用于对菜市场商品销售信息进行管理,主要包括商品分类信息、商品基本信息和商品
13、销售信息这三类基础信息数据。此外,系统在运行统计模块时还会结果形成三种生成数据,分别表示按品种统计的销售信息,按类别统计的销售信息和按客户名称统计的销售信息。下面为对本系统所涉及的基础数据和生成数据的数据结构,以及数据在内存和外存中的存储结构的介绍。1 .菜市场商品分类信息表:typedef struct type_node char type_id;/*分类编码*/char name10;/*分类名称*/struct item_node *inext;/*指向商品基本信息支链的指针*/struct type_node *next;/*指向下一结点的指针*/ TYPE_NODE;菜市场商品分类
14、信息表如下:数据结构名称:菜市场商品分类信息表数据结构标识:TYPE_NODE中文字段名数据项标识类型及长度举例分类编码type_idcharT5分类名称namechar105个分类名称:肉类、鱼类、蔬菜、海鲜、杂粮内存中的存储结构:存放在十字交叉链表的主链节点上。每个主链节点除了保存下一个结点的地址外,还保存该分类对应的菜市场商品基本信息链表的头结点地址。如图3.1所示。数据文件中的存储结构:每条信息作为一条记录放到二进制文件。2 .菜市场商品基本信息表: typedef struct item_node /*商品编号*/*商品名称*/*分类码*/*产地(可以简单用文字描述)*/*单价(单位
15、:元/斤)*/*销售总重量“斤” */*指向商品销售信息支链的指针*/*指向下一结点的指针*/int item_id;char name20;char type_id;char producer20;float price;float sale;struct sale_node *snext;struct item_node *next; ITEM_NODE;菜市场商品基本信息表如下:数据结构名称:菜市场商品基本信息表数据结构标识:ITEM_NODE中文字段名数据项标识类型及长度举例商品编号item_idint自增长(顺序增加)商品名称namechar20“猪肉”分类码type_idcharT
16、 表示肉类商品产地producerchar20可以简单用文字描述单价pricefloat18.50单位:元/斤售出数量salefloat指销售总重量“斤二应自动从销售信息表中计算而得,初始值为03.菜市场商品销售信息表typedef struct sale_node int sale_id;int item_id;float weight;float sales_amount;char date 10;char client_name20;struct sale_node *next;/*销售编号*/*商品编号*/*销售重量*/*销售金额*/*销售日期*/*客户名称*/*指向下一结点的指针*/
17、内存中的存储结构:存放在相应分类节点的商品基本信息链结点上。每个结点除了保存下一个结点的地址外,还保存该商品对应的菜市场商品销售信息链表的头结点地址。如图3.1所示。数据文件中的存储结构:每条信息作为一条记录放到二进制文件。 SALE_NODE;菜市场商品销售信息表如下:数据结构名称:菜市场商品销售信息表数据结构标识:SALE_NODE中文字段名数据项标识类型及长度举例销售编号sale_idInt自增长商品编号item_idInt同商品基本信息表中的商品编号销售重量weightfloat销售金额sales_amountfloat销售金额=斤数*单价,应是自动计算销售日期datechar10“2
18、0150222”年(4)+月(2)+日(2)客户名称client_namechar20“张三”内存中的存储结构:存放在相应基本信息节点的商品销售信息链结点上。每个结点保存下一个销售信息结点的地址。如图3.1所示。数据文件中的存储结构:每条信息作为一条记录放到二进制文件。3.1菜市场销售管理系统三个方向的十字交叉链表该系统基础数据部分在内存中以后进先出的方式创建三方向的十字交叉链表。十字交叉链表模型如图3.14 .各类商品消费情况表typedef struct type_stat char type 10;/*分类名称*/float weight;/*总重量*/float sale;/*消费金额
19、*/struct type_stat *next;/*指向下一结点的指针*/ TYPE_STAT;各类商品消费情况表如下:数据结构名称:各类商品消费情况表数据结构标识:TYPE_STAT中文字段名数据项标识类型及长度举例分类名称typechar 10“肉类”总重量weightfloat消费金额salefloat销售金额=斤数*单价,应是自动计算内存中的存储结构:存放在各类商品消费情况单向链表的结点上。每个结点保存下一个销售信息结点的地址。数据文件中的存储结构:不介入外存。 ITEM.STAT;各类商品消费情况表如下:数据结构名称:各类商品消费情况表数据结构标识:ITEM_STAT中文字段名数据
20、项标识类型及长度举例商品名称typechar 20“猪肉”分类名称itemchar 10“肉类”总重量weightfloat消费金额salefloat销售金额=斤数*单价,应是自动计算内存中的存储结构:存放在各种商品消费情况单向链表的结点上。每个结点保存4.各种商品消费情况表typedef struct item_stat char typeflO;char item20; float weight; float sale;struct item_stat *next;/*分类名称*/*商品名称*/*总重量*/*销售金额*/*指向下一结点的指针*/下一个销售信息结点的地址。数据文件中的存储结构
21、:不介入外存。/*客户姓名*/*总重量*/*销售金额*/*指向下一结点的指针*/5 .按客户名称统计的消费情况表 typedef struct client_stat char client20;float weight;float sale;struct client_stat *next; CLIENT_STAT;按客户名称统计的消费情况表如下:数据结构名称:按客户名称统计的消费情况表数据结构标识:CLIENT.STAT中文字段名数据项标识类型及长度举例客户姓名clientchar 20“张三”总重量weightfloat消费金额salefloat销售金额=斤数*单价,应是自动计算内存中的
22、存储结构:存放在各种商品消费情况单向链表的结点上。每个结点保存下一个销售信息结点的地址。数据文件中的存储结构:不介入外存。四、详细设计与系统实现4.0主程序(开始)*加载数据*界面初始化::系统功能模块的选择及运行:退出系统(结束)4.0主程序流程图数据加载,界面初始化,选择及运行系统功能模块,退出系统。如流程图4.0 o4.1 数据维护函数原型:/*维护商品分类信息*/*维护商品基本信息*/ /*维护商品销售信息*/BOOL MaintainTypelnfo(void)BOOL Maintainltemlnfo(void)BOOL MaintainSalelnfo(void)函数功能:进入三
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 华科 语言 课程设计 报告
限制150内