资源描述
单击此处编辑母版标题样式,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,*,超市物流管理系统课件,开发工具及周期,开发环境:,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,: 尚未测试,内存: 尚未测试,广泛采用的进销存模型,系统应用体系结构,(,基于,C/S,模式,),系统功能模块,系统功能介绍,启动画面,目的:以进度条的走动,掩盖连接数据库时的延迟感,登陆及修改密码(,1,),验证身份和接受密码修改前,严格检查输入信息,首次使用,通过内置帐号登陆。,登陆及修改密码(,2,),收银台,POS,子系统,现实中的超市收银台,使用扫描仪读取商品条形码;使用读卡机读取会员卡号。这里用手动输入模拟。,每扫描一个商品,将其添入列表,结算时显示总金额,并写入数据库,检测商品号及会员卡号的有效性。,收银员可随时接受管理人员发来的消息。,收银台,POS,子系统(界面),采购入库子系统,操作基本同,POS,子系统。每添加一条商品采购信息,填入列表,结算入库时显示总金额,写入数据库。,检测商品号的有效性。,采购入库子系统(界面),综合管理子系统,提供管理人员各种管理的入口。,(,1,)商品及库存管理,(,1,)商品及库存管理(修改),(,2,)销售管理,(,3,)采购管理,(,4,)会员管理,(,4,)会员管理(查看消费记录),(,5,)员工管理,并非一个人事管理系统,只是提供登陆权限,首次使用内置帐号后,在此禁用它,并创建自己的帐号。,可以在此给收银台发送消息,(,5,)员工管理(界面),(,5,)员工管理(修改),(,6,)供销情况分析,综合销售记录和采购记录,以柱形图显示其比例。,同时显示总供销比例,在架商品供销比例,下架商品供销比例。,(,6,)供销情况分析(界面),(,7,)优惠规则管理,管理会员打折情况。,设置促销活动,进行全场商品打折。,(,8,)缺货日志报告,后台实时监控商品库存量,如果低于,10,,则记入缺货日志。,可在主界面中,选择预警报告开关。若打开开关,检测到有缺货信息,则发出警告。否则,在后台处理。,可在此查看缺货日志,也可刷新和清空。,(,8,)缺货日志报告(界面),(,8,)缺货日志报告(预警),如果在主界面中打开预警开关,则检测到有缺货信息,在屏幕右下方出现如下提示信息:,(,9,)其他功能,配置数据源连接:如果修改了数据源信息,或改变了数据库用户密码,需在此重新配置。,数据库备份,/,恢复:可实现增量(完全)备份,数据恢复(目前尚未真正实现)。,帮助文件:描述了如何配置数据库,数据源,及一些问题的解决方法。,更换界面方案:提供了三种界面。,系统实现介绍,(,1,)开发工具及其他,本系统采用,Microsoft Visual C+ 6.0,编写,基于,MFC,对话框应用程序。数据库连接采用了,ODBC,。核心技术为,MFC,的,DDX,和,RFX,数据交换。,应用了第三方库,Skin+,,用于应用程序界面换肤。包含,skinplusplus.dll, skinplusplus.lib,和,skinplusplus.h,数据库中的员工登陆密码采用,MD5,加密存储,,MD5,算法实现来自,包含,CMd5.cpp,和,CMd5.h,(,2,)数据一致性问题的解决,本系统在以下方面会遇到数据一致性的问题。,商品销售后,库存量需要减少;,商品采购后,库存量需要增加;,商品被删除后,相关销售、采购记录无对应商品。,删除会员后,相关销售记录对应的会员卡号无效。,(,2,)数据一致性问题的解决,对于删除商品:在数据库中不能设置外码约束的级联删除,因为不能破坏真实的供销情况。,商品销售、采购后库存量的变换:可通过程序增加一次,Update,操作,但使得代码难以维护,且容易遗漏。,删除会员,可编码更新销售记录的会员字段为空。弊端同上。,(,2,)数据一致性问题的解决,以上问题,全部通过,SQL Server,的触发器来完成。,商品表上建立,Delete,触发器,删除商品时,判断库存量是否为,0,,如果不为,0,,则拒绝删除。成功删除后,将销售、采购记录表中的商品号字段置空,作为下架商品。,(,2,)数据一致性问题的解决,采购表上建立,Insert,触发器。当添加数据时,将商品表中相应的商品库存量增加。,销售表上建立,Insert,触发器。当添加数据时,将商品表中相应的商品库存量减少。,会员表上建立,Delete,触发器。当删除记录时,将相应销售表中的记录会员字段置空。,(,2,)数据一致性问题的解决,另外,批量操作全部通过事务方式完成,出现异常即全部回滚,以保证数据一致性。,(,3,)查询效率问题的解决,由于,MFC,的,ODBC,类对数据库操作做了封装,不方便进行复杂的,SQL,查询语句。只有从其他方面考虑。,在表中建立合适的索引。,涉及到多表(三表或四表)连接查询时,将查询过程写成存储过程。现用于采购管理和销售管理。,(,4,)数据源连接问题的解决,硬编码连接字符串带来的问题:,当用户设置的,数据源名,,,数据库用户,,和,密码,与编码中连接信息不一致时,每次运行,都会弹出,ODBC,数据源选择对话框。,解决方案:,将连接信息写入配置文件,读取配置项来连接数据源。禁用了,Windows ODBC,对话框,并提供更改配置文件的功能。,带来的问题:,安全性问题(见后),数据安全性问题,员工登陆密码在数据库中均以,MD5,加密形式存储,即使得到密文,也无法通过算法推出明文。,上篇中的配置文件中以明文形式存储了数据库用户和密码,造成了安全隐患。还没有时间找到一个合适的可逆的加密算法。,数据安全还要结合服务器的安全配置等等方面。,多线程在本系统中的运用,在综合管理子系统中,启动了一个后台线程,每,20,秒扫描一次商品表,检查库存量,如果低于,10,,则写入缺货日志,并报警(如果打开预警开关),程序启动时,启动画面及进度条由辅助线程实现,主线程负责初始化数据库连接。,备份,/,恢复数据库时,由辅助线程显示进度条,并报告完成情况。,多线程的同步问题,后两个应用中,需要两个线程进行同步。但其操作均为单个函数调用,或单个,SQL,语句执行,无法干预,获得真实进度。只能反复滚动进度条,直到任务完成。,这时,需要两个线程分别创建一个事件内核对象,相互通知自己的完成情况,并相互等待,直到都完成。,C+,异常处理的使用,通过,C+,异常处理机制来完成错误处理(特别是数据库操作异常),不仅使程序更加清晰,也更有效的捕捉不易发现的错误。,系统改进设想,
展开阅读全文