收藏 分享(赏)

超市物流管理系统-数据库课程设计报告(需求分析,数据流图,系统设计).doc

上传人:微传9988 文档编号:2543312 上传时间:2018-09-21 格式:DOC 页数:19 大小:1.24MB
下载 相关 举报
超市物流管理系统-数据库课程设计报告(需求分析,数据流图,系统设计).doc_第1页
第1页 / 共19页
超市物流管理系统-数据库课程设计报告(需求分析,数据流图,系统设计).doc_第2页
第2页 / 共19页
超市物流管理系统-数据库课程设计报告(需求分析,数据流图,系统设计).doc_第3页
第3页 / 共19页
超市物流管理系统-数据库课程设计报告(需求分析,数据流图,系统设计).doc_第4页
第4页 / 共19页
超市物流管理系统-数据库课程设计报告(需求分析,数据流图,系统设计).doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、一、系统定义:当今中国零售业发展正盛,大量超市涌现于各个城市,很大程度上改变了人民的消费方式。大量频繁的物资流通,使得传统低效的人工管理已不合时宜。本系统以一个统一的界面,给收银员、采购员和管理人员提供了不同的操作及管理功能。数据库服务器可配置在独立的服务器上,也可配置在一台运行本系统的计算机上。适用于中小型无连锁店,或连锁店间经济独立的超市的物流管理。二、需求分析:(一)系统综合需求作为一个超市物流管理系统,应该给用户提供方便、友好而简洁的界面进行应用,并对超市的运营过程中物资的流动详细记录归档,并将这些数据进行逻辑上的融合,以便于用户查看、分析及管理。针对中小型超市的运营模式,有三类核心员

2、工:收银员、采购员和管理人员,分别有三个核心功能需要实现,销售功能,采购功能,库存管理和员工管理功能。管理人员的功能应该在此基础上进行扩展,实现销售记录查询,采购记录查询,商品信息查询、添加、删除和修改,以及促销活动的设置。很多超市实行了会员制度,会员享受优惠待遇。所以本系统应该引入会员管理的模块,对会员进行注册、删除、查询、消费跟踪。此外,一个成熟的管理系统不仅应该具有基本的处理、查询功能,还应该有一些分析、后台监控的功能。所以可以将基本的供销数据进行融合,以图形化的界面展示给用户进行供销情况的分析。在后台实时监控商品库存量,当低于某一值时,向前台发出预警通知。最后,本系统中对实际中应该机械

3、化处理的过程,如条形码扫描仪,读卡机等,进行手工操作模拟的简化,加入相应功能模块即可在现实中使用。(二)系统逻辑模型1数据流图:顾 客POS收 银 系 统消 费 清 单收 银 员销 售 商 品 信 息 , 会 员 卡 号应 收 金 额商 品 信 息会 员 信 息优 惠 规 则消费金额库存量减少量采 购 入 库销 售 记 录销售信息采 购 记 录采 购 员当前打折情况采 购 信 息本次采购信息库存量增加量管 理 人 员优 惠 规 则 管 理会 员 管 理销 售 管 理商 品 及 库 存 管 理历 史 采 购 信 息采购记录商 品 信 息 列 表库存商品信息商 品 修 改 信 息商 品 查 询 条

4、 件修改的信息销 售 记 录销 售 查 询 条 件采购查询条件历史销售记录用户查询条件会 员 资 料 , 消 费 清 单会 员 查 询 条 件用户查询条件会员信息优 惠 规 则 修 改 信 息当 前 优 惠 规 则修改的信息打折信息采 购 管 理用 户 查 询 条 件消费清单图 1-1 系统数据流图2数据字典数据库课程设计超市物流管理系统第 3 页 共 19 页项目 组成 类型 来源 去向 存储 者 使用频度 变动频度当前打折情况 管理人 员 收银员(打折信息)(当前优惠规则)数据流 管理人员管理人员-优惠规则会员优惠规则,全场优惠规则数据存储 - -管理人员频繁 有时销售商品信息(销售信息)

5、(历史销售记录)数据流 收银员 管理人 员 -销售记录商品编号,售价,销售数量,销售日期,会员编号,收银员工号 数据存储 - -收银员频繁增加频繁,基本无更改会员信息(会员资料)会员编号,姓名,住址,电话,身份证号,消费金额管理人员,收银员管理人员 -消费清单商品编号,售价,销售数量,销售日期,会员编号,收银员工号数据流收银员 管理人 员 -会员信息会员编号,姓名,住址,电话,身份证号数据存储 - -管理人员频繁增加不频繁,基本无更改商品信息列表 数据流管理人员,采购员,收银员管理人员 -商品信息编号,名称,规格,供应商,售价,库存量 数据存储 - -管理人员频繁增加不频繁,更改不频繁本次采购

6、信息历史采购信息采购信息采购记录数据流 采购员 管理人 员 -采购记录采购编号,商品编号,采购价格,采购数量,采购日期,采购员数据存储 - -采购员有时增加有时,基本无更改表 1.1 系统数据字典三、系统设计:(一)概念结构设计会 员编号姓名住址电话身份证消费金额销 售商 品编号 名称当前售价规格供应商库存量编号售价销售数量销售时间员 工工号姓名职位登陆密码在职情况采 购mnp编号购价采购数量采购时间(二)逻辑结构设计员工信息表 Employee字段名 类型 NULL 其他 备注e_id varchar(10) PK 员工号e_name varchar(10) Index 员工姓名e_pwd

7、varchar(100) Y 登陆密码e_position tinyint(1) 职位(0:管理人员 1:收银员 2:采购人员)e_state bit(1) 在职情况数据库课程设计超市物流管理系统第 5 页 共 19 页会员信息表 Member字段名 类型 NULL 其他 备注m_id bigint(8) PK 会员编号m_name varchar(10) Index 会员姓名m_addr varchar(50) 会员住址m_tel varchar(15) 会员电话m_code varchar(18) 会员身份证号m_consume decimal 会员消费金额商品信息表 Product字段名

8、 类型 NULL 其他 备注p_id bigint(8) PK 商品编号p_name varchar(30) Index 商品名称p_scale varchar(6) 规格p_price decimal 商品当前单价p_manu varchar(30) 供应商p_qty int(5) Index 库存量采购记录表 Buy字段名 类型 NULL 其他 备注b_id bigint(8) PK 采购编号p_id bigint(8) Index,FK 商品编号b_price decimal 购入价格b_qty int(5) 购入数量b_time varchar(19) 采购时间e_id varchar

9、(10) FK 采购员工号销售记录表 Sell字段名 类型 NULL 其他 备注s_id bigint(10) PK 销售编号p_id bigint(8) Index,FK 商品编号s_price decimal 销售价格s_qty int(5) 销售数量s_time varchar(19) 销售时间e_id varchar(10) FK 收银员m_id bigint(8) Y FK,Index 会员编号预警日志表 Warning字段名 类型 NULL 其他 备注w_id int(4) PK 预警编号w_content text 预警内容优惠规则表 Discount字段名 类型 NULL 其他

10、 备注m_all float 所有会员打折数d_all float 全场打折数部分表关系图:数据库课程设计超市物流管理系统第 7 页 共 19 页(三)子模块划分及功能概述采购员管理人员收银员登 陆POS收银系统采购入库商品及库存管理会员管理销售管理采购管理供销情况分析优惠规则管理查看预警日志员工管理系统设置三种权限:收银员、采购员和管理人员。登陆后,可以进入不同的功能模块,在登陆界面可以修改登陆密码。子模块划分如下: 收银台 POS 系统(需要权限:收银员)顾客拿商品到收银台时,首先出示会员卡(如果是会员) ,收银员通过读卡机读取会员卡的会员号,然后通过条形码扫描仪一一扫描商品,获得商品编号

11、,并手动输入购买数量,结算后显示应付金额。在扫描过程中,结算之前,可以取消某项商品的购买信息。收银员还可以在这里看到管理人员发送的通知消息。 采购入库(需要权限:采购员)采购员只能采购数据库中已存在的商品。对每种采购的商品输入采购的商品编号,采购数量,和采购价格,这些商品的信息和采购的信息显示在列表中,结算入库后列表清空,并将数据写入数据库。读 卡 机 读 取卡 号有 无 会 员 卡 有 无 扫 描 商 品 条形 码 添 加 到 列 表 写 入 数 据 库 商品及库存管理(需要权限:管理人员)1. 引入新商品:填写商品的名称,规格,供应商和售价,将商品引入超市。添加后的商品库存量为 0,需要采

12、购。供应商或规格不同的同名商品,应作为不同的商品对待。2. 商品查询:可以根据商品的名称,供应商,库存量进行查询,并可以查看所有商品的信息列表。显示的信息包括编号,名称,规格,供应商和库存量。3. 删除商品:只能删除库存量为 0 的商品,表明不再引进此商品。支持批量删除。4. 修改商品信息:在商品信息列表中选择一行,对其基本信息进行修改。填 写 采 购 信 息 添 加 到 列 表 写 入 数 据 库填 写 商 品 信 息 写 入 数 据 库填 写 正 确 ?否 是填 写 查 询 信 息 搜 索 数 据 库 显 示 结 果查 询 全 部选 择 删 除 对 象 更 新 数 据 库 更 新 显 示

13、结 果多 记 录 删 除是 否选 择 修 改 对 象 更 新 数 据 库 更 新 显 示 结 果修 改 信 息数据库课程设计超市物流管理系统第 9 页 共 19 页 会员管理(需要权限:管理人员)1. 会员注册:填写顾客姓名,住址,电话及身份证号,即可注册成为会员,享受优惠待遇。2. 会员查询:可以按会员的编号和姓名进行查询,并可以查看所有会员的信息列表。显示的信息包括编号,姓名,住址,电话,身份证号和累计消费金额。3. 取消会员身份:删除会员资料,使其会员卡失效。支持批量删除。4. 查看消费记录:在会员信息列表中选择一行,对其详细的消费记录进行查询。 销售管理(需要权限:管理人员)对历史的销

14、售记录进行查看。可以按商品编号,商品名称或日期进行查询,也可以列出所有的销售记录。显示信息包括商品编号,商品名称,商品规格,销售数量,销售价格,收银员和销售时间。填 写 会 员 信 息 写 入 数 据 库填 写 正 确 ?否 是填 写 查 询 信 息 搜 索 数 据 库 显 示 结 果查 询 全 部选 择 删 除 对 象 更 新 数 据 库 更 新 显 示 结 果多 记 录 删 除是 否选 择 查 询 对 象 搜 索 数 据 库 显 示 清 单 员工管理(需要权限:管理人员)1. 增加员工:添加新上岗的员工的信息。需要填写工号,姓名,登陆密码和职位。2. 员工信息列表:列出了所有员工的信息列表

15、。显示的信息包括工号,姓名,职位和在职情况。3. 员工离职:将离职员工的在职情况置为“离职” 。4. 修改员工信息:在员工信息列表中选择一行,修改其基本信息(姓名和职位) 。5. 向收银台发送消息:输入运行本系统的收银台的 IP 和消息,可以向收银员发送通知消息。填 写 查 询 信 息 搜 索 数 据 库 显 示 结 果查 询 全 部填 写 员 工 信 息 写 入 数 据 库填 写 正 确 ?否 是选 择 对 象 更 新 数 据 库 显 示 更 新 结 果选 择 修 改 对 象 更 新 数 据 库 更 新 显 示 结 果修 改 信 息填 写 目 标 IP和消 息 内 容 发 送 消 息 反 馈

16、 发 送 结 果搜 索 数 据 库 显 示 结 果数据库课程设计超市物流管理系统第 11 页 共 19 页 采购管理(需要权限:管理人员)对历史的采购记录进行查看。可以按商品编号,商品名称或日期进行查询,也可以列出所有的采购记录。显示信息包括商品编号,商品名称,商品规格,供应商,采购数量,采购价格,采购时间,采购员和当前库存量。 供销情况分析(需要权限:管理人员)对历史采购及销售数据,用图形的方式显示其供销情况及盈利状况,直观的供管理人员分析。 优惠规则管理(需要权限:管理人员)1. 会员优惠规则:设置对会员购物实行多少折优惠。2. 全场优惠规则:设置促销活动,全场商品打折多少。 缺货报告日志

17、(需要权限:管理人员)后台实时监测商品的库存量,当库存量低于某值时,就发出预警,并记入日志。这里可以查看和清空所有的预警日志。管理员可控制预警开关,如果打开,则发出报警,否则,只在后台写入日志。填 写 查 询 信 息 搜 索 数 据 库 显 示 结 果查 询 全 部搜 集 数 据 库 数据 图 表 显 示 结 果设 置 规 则 写 入 数 据 库 其他附加功能1 修改密码,重新登陆2. 配置数据源连接,将数据源连接信息写入配置文件,避免硬编码数据源名,用户名和密码带来的弊端。3. 帮助文档:解释如何配置服务器及一些常见问题。4. 备份(增量备份和完全备份) ,恢复数据库。四、详细设计(一) 开

18、发平台及工具 开发工具 Microsoft Visual C+ 6.0 DBMS: Microsoft SQL Server 2000 建模工具: Microsoft Visio, Sybase PowerDesigner 第三方库: Skin+换肤库, MD5 加密类说明:为了方便的实现多线程及 Socket 通信等功能,以及个人熟悉程度的因素,选择了 VC 6.0 的开发平台。而在 Windows 平台上为数不多的 DBMS 产品中,Oracle 过于庞大,不利于在低配置的机器上运行;Access 又过于小型,不能负载大量的数据访问请求,所以选择了适中的 MS SQL Server。为了弥

19、补 VC 做界面困难的缺陷,软件用了一个换肤的共享库 Skin+,以 dll形式附带在程序包中。另外在登陆密码的加密存储中,用到了流行的 MD5 加密,算法实现来源于。扫 描 数 据 库 检查 库 存 量查 看 缺 货 日 志 缺 货 日 志显 示写 入 开 启 报 警 ? 报 警是数据库课程设计超市物流管理系统第 13 页 共 19 页(二) 存储过程及触发器作为数据库应用系统,数据的一致性需要得到保证,通过单纯的手工编码方式,工作烦琐,容易出错,而且不易于扩展。采用 DBMS 的外码约束,Unique 约束,触发器的使用来解决这一问题。在查询效率方面,三表及四表连接查询的过程用存储过程实现

20、。对商品,采购,销售表的外码没有强制级联删除和级联修改,因不再进购某种商品,或某雇员辞职,不应该影响过去的采购,销售记录。 查询销售记录的存储过程CREATE PROCEDURE dbo.search_sell_recid varchar(8),name varchar(30),time varchar(30),mid varchar(8)ASIF (mid = )BEGINSELECT P.p_id AS pid, P.p_name AS pname , P.p_scale AS pscale , S.s_qty AS sqty , S.s_price AS sprice , S.s_tim

21、e AS stime ,E.e_name AS ename FROM product P, sell S, employee EWHERE P.p_id like %+id+% and P.p_name like %+name+% and S.s_time like %+time+% and S.p_id = P.p_id and S.e_id = E.e_idORDER BY S.s_id descENDIF (mid BEGIN数据库课程设计超市物流管理系统第 15 页 共 19 页UPDATE member SET m_consume = m_consume + consume WHER

22、E m_id = memberEND 触发器:删除商品时,如果库存量不为 0,则撤销操作。并将相应销售及采购记录的编号字段置空CREATE TRIGGER p_del ON dbo.product FOR DELETEASDECLARE qty intSET qty = (SELECT D.p_qty FROM DELETED AS D)IF (qty 0)BEGINRAISERROR (该商品的库存量不为 0,不能删除,0,1)ROLLBACK TRANSACTIONENDELSEUpdate S SET S.p_id = NULLFROM sell AS S INNER JOIN DELE

23、TED AS DON S.p_id = D.p_idUpdate B SET B.p_id = NULLFROM buy AS B INNER JOIN DELETED AS DON B.p_id = D.p_idCOMMIT TRANSACTION 触发器:删除会员时,将相应销售记录中会员编号字段置空CREATE TRIGGER mem_del ON dbo.member FOR DELETE ASUPDATE sell SET m_id = null WHERE m_id =( SELECT m_id FROM DELETED )(三) 编码设计系统采用 MFC 对话框应用程序以方便开发,

24、 MFC 对常用 API 做了很好的封装。每个对话框对应一个类,每个数据库表对应一个类。根据程序需要,自己再一次做了封装。1. 在数据源连接方面,使用 ini 配置文件来存储 DSN, UID, PWD 的信息,以避免硬编码方式带来的种种问题:不能修改密码,不能换数据库用户等等。主要采用了 GetPrivateProfileString 和 WritePrivateProfileString 两个 Windows API。1. 很多数据需要通过列表框来显示,因此封装了一个 CListStyle 类来设置列表框样式及对其进行通用操作。#ifndef _LISTSET_H_#define _LIS

25、TSET_H_class CListStyleprotected:CListCtrl *m_pList; /列表框控件指针public:CListStyle();void AttachCtrl (CListCtrl *pList); /把对象与列表框关联void SetStyle (void); /设置列表框的 ExStyle/为列表框添加 Header 属性void SetCol (CString *pCol , int *pWidth , int size);/将上两个函数融合void SetStyleAndCol (CString *pCol , int *pWidth , int si

26、ze);/向列表框插入一行数据void InsertItems (int nItem , CString *pItem , int size);#endif2. 由于存储过程不能通过 ClassWizard 创建类,所以手工完成类建立和RFX 数据交换。3. 在需要的地方采用多线程。 程序启动初始化数据库连接时,显示启动画面。 备份数据库时显示进度。 后台监控商品库存量数据库课程设计超市物流管理系统第 17 页 共 19 页(四) 界面设计 登陆界面: 收银台 POS 界面: 采购入库界面: 管理人员主界面:五、参考文献1. Visual C+ .net 2003 程序设计 何炜等 冶金工业出

27、版社 P247-2612. 数据库系统概论(第三版) 萨师煊等 高等教育出版社3. Windows 用户界面开发 美 Everett N. McKay 著 北京大学出版社4. 常州 VC 编程网 http:/ 用 Visual C+开发数据库应用程序5. Microsoft MSDN 关于 MFC ODBC 部分的文档六、课程设计总结这次课程设计我花了一个月的时间来完成,前期做了一些准备工作,了解了一般超市物流管理方面的背景知识,然后再权衡了时间和人力,做了适量简化,并完成了初步的需数据库课程设计超市物流管理系统第 19 页 共 19 页求分析。稍作细化后,便开始设计数据库。而后做了界面设计,

28、完成了程序大部分的主要界面。而在编码方面,我从系统的功能、规模和实用方面考虑,并没有去学习和采用过多花哨的新技术,如.net、分布式等企业级应用。我在规划前,进行了近半个月的时间来学习MFC ODBC 的使用,以及 MFC 中 DDX 和 RFX 数据交换技术,还有 SQL Server 中触发器和存储过程的知识和编写方法。而且在以后的编码过程中,也在不断的学习并解决遇到的问题。在数据库设计时,由于有些仓促,没有深入的考虑外码约束的问题,使得编码阶段,发现了一个重大问题。销售记录和采购记录中对商品号进行了引用,而删除某种商品后,如果设置了级联删除,则记录不能真实体现收支金额;如果不设,则数据库

29、出现不一致现象。基于这种情况,我写了几个将外码字段置空的 DELETE 触发器作为弥补措施。在工程接近完成的时候,我对部分代码做了优化,将一些重复工作加以封装调节;将批处理操作改为以事务方式处理;并将费时的连表查询写成了存储过程。在研究如何把存储过程和 MFC 的 Recordset 类联系起来的过程中,走了很多弯路,想了很多办法都不能成功。在找到解决方案的同时,也在 MSDN 中找到了答案。这次课程设计,我更加深入的了解到软件工程的复杂性,以及前期规划分析的重要性。其实在 MFC 这种面向对象的程序设计中,我的瀑布开发模型并不太合适。而且如果系统再稍微大型一些,以一人之力也难以完成。以后的学习中应该学习一些先进的思想,并多加实践,从写程序和软件架构两个方面都增强自己的能力。

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 中等教育 > 小学课件

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报