1 / 46

超市物流管理系统 演示文档

超市物流管理系统 演示文档. 计科 0410308 班 蒲振宇. 开发工具及周期. 开发环境: Windows XP SP2 Windows 2000 Pro 开发平台: Microsoft Visual C++ 6.0 DBMS: SQL Server 2000 建模工具: Office Visio Power Designer 开发周期: 2005 年 11 月 - 12 月. 运行环境. 运行平台: Windows XP/2K/NT CPU : 尚未测试 内存: 尚未测试.

cara
Download Presentation

超市物流管理系统 演示文档

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 超市物流管理系统演示文档 计科 0410308班 蒲振宇

  2. 开发工具及周期 • 开发环境:Windows XP SP2 Windows 2000 Pro • 开发平台:Microsoft Visual C++ 6.0 • DBMS: SQL Server 2000 • 建模工具:Office Visio Power Designer • 开发周期:2005年11月 - 12月

  3. 运行环境 • 运行平台:Windows XP/2K/NT • CPU: 尚未测试 • 内存: 尚未测试

  4. 广泛采用的进销存模型

  5. 系统应用体系结构(基于C/S模式)

  6. 系统功能模块

  7. 系统功能介绍

  8. 启动画面 目的:以进度条的走动,掩盖连接数据库时的延迟感

  9. 登陆及修改密码(1) • 验证身份和接受密码修改前,严格检查输入信息 • 首次使用,通过内置帐号登陆。

  10. 登陆及修改密码(2)

  11. 收银台POS子系统 • 现实中的超市收银台,使用扫描仪读取商品条形码;使用读卡机读取会员卡号。这里用手动输入模拟。 • 每扫描一个商品,将其添入列表,结算时显示总金额,并写入数据库 • 检测商品号及会员卡号的有效性。 • 收银员可随时接受管理人员发来的消息。

  12. 收银台POS子系统(界面)

  13. 采购入库子系统 • 操作基本同POS子系统。每添加一条商品采购信息,填入列表,结算入库时显示总金额,写入数据库。 • 检测商品号的有效性。

  14. 采购入库子系统(界面)

  15. 综合管理子系统 • 提供管理人员各种管理的入口。

  16. (1)商品及库存管理

  17. (1)商品及库存管理(修改)

  18. (2)销售管理

  19. (3)采购管理

  20. (4)会员管理

  21. (4)会员管理(查看消费记录)

  22. (5)员工管理 • 并非一个人事管理系统,只是提供登陆权限 • 首次使用内置帐号后,在此禁用它,并创建自己的帐号。 • 可以在此给收银台发送消息

  23. (5)员工管理(界面)

  24. (5)员工管理(修改)

  25. (6)供销情况分析 • 综合销售记录和采购记录,以柱形图显示其比例。 • 同时显示总供销比例,在架商品供销比例,下架商品供销比例。

  26. (6)供销情况分析(界面)

  27. (7)优惠规则管理 • 管理会员打折情况。 • 设置促销活动,进行全场商品打折。

  28. (8)缺货日志报告 • 后台实时监控商品库存量,如果低于10,则记入缺货日志。 • 可在主界面中,选择预警报告开关。若打开开关,检测到有缺货信息,则发出警告。否则,在后台处理。 • 可在此查看缺货日志,也可刷新和清空。

  29. (8)缺货日志报告(界面)

  30. (8)缺货日志报告(预警) • 如果在主界面中打开预警开关,则检测到有缺货信息,在屏幕右下方出现如下提示信息:

  31. (9)其他功能 • 配置数据源连接:如果修改了数据源信息,或改变了数据库用户密码,需在此重新配置。 • 数据库备份/恢复:可实现增量(完全)备份,数据恢复(目前尚未真正实现)。 • 帮助文件:描述了如何配置数据库,数据源,及一些问题的解决方法。 • 更换界面方案:提供了三种界面。

  32. 系统实现介绍

  33. (1)开发工具及其他 • 本系统采用Microsoft Visual C++ 6.0编写,基于MFC 对话框应用程序。数据库连接采用了ODBC。核心技术为MFC的DDX和RFX数据交换。 • 应用了第三方库Skin++,用于应用程序界面换肤。包含skinplusplus.dll, skinplusplus.lib 和 skinplusplus.h • 数据库中的员工登陆密码采用MD5加密存储,MD5算法实现来自www.csdn.net, 包含CMd5.cpp 和 CMd5.h

  34. (2)数据一致性问题的解决 本系统在以下方面会遇到数据一致性的问题。 • 商品销售后,库存量需要减少; • 商品采购后,库存量需要增加; • 商品被删除后,相关销售、采购记录无对应商品。 • 删除会员后,相关销售记录对应的会员卡号无效。

  35. (2)数据一致性问题的解决 • 对于删除商品:在数据库中不能设置外码约束的级联删除,因为不能破坏真实的供销情况。 • 商品销售、采购后库存量的变换:可通过程序增加一次Update操作,但使得代码难以维护,且容易遗漏。 • 删除会员,可编码更新销售记录的会员字段为空。弊端同上。

  36. (2)数据一致性问题的解决 以上问题,全部通过SQL Server的触发器来完成。 • 商品表上建立Delete触发器,删除商品时,判断库存量是否为0,如果不为0,则拒绝删除。成功删除后,将销售、采购记录表中的商品号字段置空,作为下架商品。

  37. (2)数据一致性问题的解决 • 采购表上建立Insert触发器。当添加数据时,将商品表中相应的商品库存量增加。 • 销售表上建立Insert触发器。当添加数据时,将商品表中相应的商品库存量减少。 • 会员表上建立Delete触发器。当删除记录时,将相应销售表中的记录会员字段置空。

  38. (2)数据一致性问题的解决 • 另外,批量操作全部通过事务方式完成,出现异常即全部回滚,以保证数据一致性。

  39. (3)查询效率问题的解决 • 由于MFC的ODBC类对数据库操作做了封装,不方便进行复杂的SQL查询语句。只有从其他方面考虑。 • 在表中建立合适的索引。 • 涉及到多表(三表或四表)连接查询时,将查询过程写成存储过程。现用于采购管理和销售管理。

  40. (4)数据源连接问题的解决 硬编码连接字符串带来的问题: • 当用户设置的数据源名,数据库用户,和密码与编码中连接信息不一致时,每次运行,都会弹出ODBC数据源选择对话框。 解决方案: • 将连接信息写入配置文件,读取配置项来连接数据源。禁用了Windows ODBC对话框,并提供更改配置文件的功能。 带来的问题:安全性问题(见后)

  41. 数据安全性问题 • 员工登陆密码在数据库中均以MD5加密形式存储,即使得到密文,也无法通过算法推出明文。 • 上篇中的配置文件中以明文形式存储了数据库用户和密码,造成了安全隐患。还没有时间找到一个合适的可逆的加密算法。 • 数据安全还要结合服务器的安全配置等等方面。

  42. 多线程在本系统中的运用 • 在综合管理子系统中,启动了一个后台线程,每20秒扫描一次商品表,检查库存量,如果低于10,则写入缺货日志,并报警(如果打开预警开关) • 程序启动时,启动画面及进度条由辅助线程实现,主线程负责初始化数据库连接。 • 备份/恢复数据库时,由辅助线程显示进度条,并报告完成情况。

  43. 多线程的同步问题 • 后两个应用中,需要两个线程进行同步。但其操作均为单个函数调用,或单个SQL语句执行,无法干预,获得真实进度。只能反复滚动进度条,直到任务完成。 • 这时,需要两个线程分别创建一个事件内核对象,相互通知自己的完成情况,并相互等待,直到都完成。

  44. C++异常处理的使用 • 通过C++异常处理机制来完成错误处理(特别是数据库操作异常),不仅使程序更加清晰,也更有效的捕捉不易发现的错误。

  45. 系统改进设想

  46. 加入连锁店管理,可适用于多连锁店的大型超市。加入连锁店管理,可适用于多连锁店的大型超市。 • 加入商品分类管理,有利于分别实现优惠规则。 • 对于大量的数据流动,一台数据库服务器可能无法负载,可以考虑将数据分布在不同服务器上。

More Related