中小型超市管理系统.docx
- 文档编号:296692
- 上传时间:2022-10-08
- 格式:DOCX
- 页数:22
- 大小:279.72KB
中小型超市管理系统.docx
《中小型超市管理系统.docx》由会员分享,可在线阅读,更多相关《中小型超市管理系统.docx(22页珍藏版)》请在冰豆网上搜索。
中小型超市管理系统
中小型超市管理系统
秦皇岛广播电视大学
毕业设计说明书(论文)
作者:
汪天伟
系(部):
计算机系
专业班级:
11春计算机信息管理
学号11
题目:
中小型超市管理系统
指导教师:
刘光孟繁伟
12月
一需求分析.........................................................2
(1)行业概念的理解...............................................2
(2)业务流程说明.................................................3
(3)问题解决方案..................................................3
(4)数据流图.....................................................3
二系统设计.........................................................3
二系统设计.........................................................5
(1)系统模块的划分................................................5
(2)数据字典.....................................................5
3、程序的设计与编码................................................9
(1)POS系统的开发................................................9
1.功能及实现方法...................................................9
2.问题讨论:
交易流水号的确定.......................................10
(二)管理信息系统的设计...........................................10
1.界面设计.........................................................10
2.各个功能模块实现的要点和技术....................................11
2.1类继承与重载...................................................1
2.2windows消息机制................................................12
2.3关于权限设置...................................................13
2.4应用Delphi显式事务控制........................................14
2.5存储过程的使用.................................................14
参考书录...........................................................24
中小型超市管理系统
内容摘要:
《中小型超市管理信息系统》是一个比较复杂和全面的管理系统,能够完成中小型超市的大部分业务。
总的来说包括进货管理,物价管理,库存管理,销售管理,供货厂商管理,POS收款机子系统等。
该系统界面朴素一致,但不失美观大方;操作方便,查询功能强大;数据全面、准确。
系统采用了当前比较流行而技术非常成熟地客户机/服务器结构(C/S),前台应用程序用Delphi开发,后台数据库是MicrosoftSQLServer。
关键字:
面向对象的程序设计,继承,WINDOWS消息,存储过程,事务。
一、需求分析
(一)行业概念的理解
POS:
PointOfSells,电子收款机系统,也就是直接与顾客打交道的收银机系统。
定单状态:
用来描述商品进货方式,一般分为定单、日配、自采等。
定单:
表示该商品进货必须先向供货商发出定单,供货商按定单上的商品明细发货,超市则按定单上的商品明细收货。
日配:
指那些每天都要进货的商品或者补货期较短的商品,例如水果,生鲜蔬菜等。
如果按定单,时间不允许而且工作重复烦琐。
自采:
顾名思义,超市自己负责商品的进货。
销售状态:
用来描述某种商品当前的销售状态,一般定义为正常、促销、折扣等,正常表示商品处于正常的售价状态,即按正常的售价销售。
促销:
表示超市把某种商品让利销售,以此来吸引跟多的消费者。
一般低于正常售价甚至成本价。
折扣:
表示某种商品销售情况不好,或者商品有瑕疵,或者保质期快到等情况发生时,使尽快商品销售出去的一种手段。
库存调整:
当非因正常销售发生而实物数量变动时,经过调整库存使其帐面数量与实物数量相符。
日处理:
当一天的销售结束后,开始做日处理。
把当天的销售数据汇总,调整商品库存。
损益:
商品出现损坏,变质,被盗等情况发生时,商品发生损益。
损益经过调整库存得到体现。
商品变价:
商品变价与促销/折扣调整价格是两个不同的概念。
商品变价是指修改商品的正常售价,调整后在一定的时间内不会在发生改变。
价格可能是升高也可能是降低,一般都是由于进价变动引起的。
促销/折扣期:
每一种商品促销/折扣都有一定的期限,即有一定的时间限制。
一种商品不可能无期限的促销/折扣。
当期限超过,商品自动恢复正常售价。
毛利、毛利百分比:
毛利=商品售价-商品进价毛利百分比=(商品售价-商品进价)÷商品售价
商品进价及成本核算:
在成本核算中,商品成本价的确定一般有最后进价,移动加权平均,按商品批次定价等几种方式,由于后两种核算方式较复杂,本系统采用简单的最后进价方式。
(2)业务流程说明
在实际管理中,有三种信息流动,即资金流,单据流和商品实物流。
系统围绕实物流展开,对商品从供应商那里进货到商品销售到顾客手中整个流程进行管理。
简单来说,就是商品的进销存管理。
每个环节经过相应的单据来连接,同时资金发生流动。
在商品管理方面,我们提出部门和商品分类的概念,这种分级管理方式简洁高效。
所谓部门,就是按照商品的基本属性进行分类管理。
例如,超市一般可分为食品部,生鲜部,日用品部等。
部门下面再分类,所谓商品分类,指按商品的具体属性划分,例如,食品部下面能够有糖果饼干类,饮料类等,每个部门和每个商品类别都有相应的负责人负责。
《中小型超市管理信息系统》完全体现了这种管理思想,商品的销售和商品库存都能够按部门级和分类级完成查询等其它操作。
作为一个超市的管理人员,及时了解销售情况是非常必要的,以便及时调整进货或者安排营销策略,把握商机。
而《中小型超市管理信息系统》正好满足了这一要求,能够实时查询前台的销售情况,而且数据准确可信。
(三)问题解决方案
超市系统在运行过程中数据流量是非常巨大的。
有时候会因数据流量过大而使网络发生阻塞,使POS系统发生断网,直接影响销售活动的进行。
这种情况是应该坚决避免的,应该尽量减少网络的数据流量。
这一思想在本系统中的直接体现就是采用日处理和运用本地缓存技术。
日处理的主要目的就是把当天的销售数据整理汇总,更新商品库存表,为第二天的销售做准备。
与日处理不同的另一种处理方式就是每次商品销售完成以后就立即更新库存。
但这样会使得服务器的负荷非常的重,经常会使POS系统发生断网。
POS系统销售商品时所取的商品信息是服务器上的数据,有效的保证了数据的一致性和集中控制。
虽然商品信息来自服务器,但我们使用了本地缓存。
POS系统会把取得的数据暂时的存放在本地的内存,当要读取商品信息时,会先在本地缓存里查找,如果成功的话,就不必访问服务器。
这样一来就有效的减少了网络的数据流量和服务器的负荷。
另外,系统充分利用了客户机/服务器结构的特点,比较复杂的查询更新等操作都用存储过程来实现。
存储过程在服务器端执行完毕仅返回执行结果,能有效的减少网络的通讯流。
(4)数据流图
对整个业务活动进行分析归纳后,我得出如下的数据流图:
数据流程图
二系统设计
(一)系统模块的划分
根据前面所作的需求分析,我把整个系统分为如下几个模块
3、程序的设计与编码
4、有了前面的工作,我们选择就进入编码阶段了。
(一)POS系统的开发系统的开发系统的开发系统的开发
1.功能及实现方法功
POS系统是作为一个单独的程序开发的,主要在POS机上运行,完成商品的交易任务。
销售的商品信息存储在POS_SALE表中。
我们把一次交易放在一个事务提交,保证了数据的完整性和数据的正确性。
界面以灰色调为主,使得收银员长时间工作眼睛不感到疲劳。
收银的操作也很简单方便。
交易流水号自动增加。
当某种商品处于促销或折扣销售状态时,POS系统自动取商品的促销或折扣售价,无需人工干预,而且促销或折扣期结束时,系统能自动识别恢复正常售价。
这一个功能的实现是经过商品视图来完成的。
请看商品视图源码。
前台POS销售时取商品信息时用到的视图:
CREATEVIEWV_SPXX
AS
SELECTNAME,A.GOODS_ID,A.BAR_ID,A.GUIGE,
BUY_PRICE=CASE
WHEN(GETDATE()>B.END_DATEANDGETDATE() WHEN(GETDATE() WHEN(GETDATE() A.FLAG='折扣'THENA.BUY_PRICE2 ELSEA.BUY_PRICE1 END FROMGOODS_INFOA,GOODS_PROMOTE_LOGB WHEREA.GOODS_ID*=B.GOODS_ID 交易是在一个事务里完成的,请看交易完成数据提交的代码: ifform_pos.Database1.InTransactionthen try form_pos.query1.ApplyUpdates;把本地缓存修改的操作提交服务器 form_pos.Database1.Commit;事务提交 form_pos.query1.CommitUpdates;清空本地缓存 Ifform_pos.Database1.InTransaction=falsethen form_pos.Database1.StartTransaction; except form_pos.Database1.Rollback;事务回滚 end; 2.问题讨论问题讨论: 交易流水号的确定 在实际运用中,可能十几台甚至几十台POS机同时工作,也就是存在大量的数据库并发操作。 怎样使交易流水号唯一呢? 我是这样实现的,在每次事务提交之前,比较
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中小型 超市 管理 系统