




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要本文根据小型超市管理系统的特点和系统需求,采用面向对象的分析与设计方法进行开发设计,运用软件工程的技术方法对管理信息系统进行了研究,并给出了详细的需求分析,设计与实现方法。主要实现了商品信息管理、员工信息管理、库存管理、统计分析和系统用户权限管理等功能,并根据具体业务特点和用户需求设计了系统界面。小型超市管理系统采用了目前比较流行而技术非常成熟地客户机/服务器结构(C/S),前台应用程序用Delphi开发,后台数据库是MicrosoftSQLServer2018。关键词:中小型超市;管理信息系统;设计;实现
引言零售企业引入超市信息管理系统后,利用计算机记录各种商品的采购、库存、销售等信息,可以使管理者及时掌握经营信息,做出正确的决策,提高经营效率。超市信息管理系统,可以完成商品的进货、销售、库存等管理功能,还可以准确分析超市的盈亏情况,通过每月的盈亏汇总将每个月的盈亏情况记录下来,采用年度汇总的方式对全年的经营状况进行汇总记录。真正实现了超市信息的方便、快捷、简单的管理。超市管理系统继承了传统超市管理系统的优点,弥补了传统超市管理系统在网络服务方面的不足,实现了超市的现代化、快捷、方便的管理。需求分析行业概念的理解POS:PointOfSells,电子收款机系统,也就是直接与顾客打交道的收银机系统。定单状态:用来描述商品进货方式,一般分为定单、日配、自采等。定单:表示该商品进货必须先向供货商发出定单,供货商按定单上的商品明细发货,超市则按定单上的商品明细收货。日配:指那些每天都要进货的商品或者补货期较短的商品,例如水果,生鲜蔬菜等。如果按定单,时间不允许而且工作重复烦琐。自采:顾名思义,超市自己负责商品的进货。销售状态:用来描述某种商品当前的销售状态,一般定义为正常、促销、折扣等,正常表示商品处于正常的售价状态,即按正常的售价销售。促销:表示超市把某种商品让利销售,以此来吸引跟多的消费者。一般低于正常售价甚至成本价。折扣:表示某种商品销售情况不好,或者商品有瑕疵,或者保质期快到等情况发生时,使尽快商品销售出去的一种手段。库存调整:当非因正常销售发生而实物数量变动时,通过调整库存使其帐面数量与实物数量相符。日处理:当一天的销售结束后,开始做日处理。把当天的销售数据汇总,调整商品库存。损益:商品出现损坏,变质,被盗等情况发生时,商品发生损益。损益通过调整库存得到体现。商品变价:商品变价与促销/折扣调整价格是两个不同的概念。商品变价是指修改商品的正常售价,调整后在一定的时间内不会在发生改变。价格可能是升高也可能是降低,一般都是由于进价变动引起的。促销/折扣期:每一种商品促销/折扣都有一定的期限,即有一定的时间限制。一种商品不可能无期限的促销/折扣。当期限超过,商品自动恢复正常售价。毛利、毛利百分比:毛利=商品售价-商品进价毛利百分比=(商品售价-商品进价)÷商品售价。商品进价及成本核算:在成本核算中,商品成本价的确定一般有最后进价,移动加权平均,按商品批次定价等几种方式,由于后两种核算方式较复杂,本系统采用简单的最后进价方式。业务流程说明在实际管理中,有三种信息流动,即资金流,单据流和商品实物流。系统围绕实物流展开,对商品从供应商那里进货到商品销售到顾客手中整个流程进行管理。简单来说,就是商品的进销存管理。每个环节通过相应的单据来连接,同时资金发生流动。在商品管理方面,我们提出部门和商品分类的概念,这种分级管理方式简洁高效。所谓部门,就是按照商品的基本属性进行分类管理。例如,超市一般可分为食品部,生鲜部,日用品部等。部门下面再分类,所谓商品分类,指按商品的具体属性划分,例如,食品部下面可以有糖果饼干类,饮料类等,每个部门和每个商品类别都有相应的负责人负责。《中小型超市管理信息系统》完全体现了这种管理思想,商品的销售和商品库存都可以按部门级和分类级完成查询等其他操作。作为一个超市的管理人员,及时了解销售情况是非常必要的,以便及时调整进货或者安排营销策略,把握商机。而《中小型超市管理信息系统》正好满足了这一要求,可以实时查询前台的销售情况,并且数据准确可信。问题解决方案超市系统在运行过程中数据流量是非常巨大的。有时候会因数据流量过大而使网络发生阻塞,使POS系统发生断网,直接影响销售活动的进行。这种情况是应该坚决避免的,应该尽量减少网络的数据流量。这一思想在本系统中的直接体现就是采用日处理和运用本地缓存技术。日处理的主要目的就是把当天的销售数据整理汇总,更新商品库存表,为第二天的销售做准备。与日处理不同的另一种处理方式就是每次商品销售完成以后就立即更新库存。但这样会使得服务器的负荷非常的重,经常会使POS系统发生断网。POS系统销售商品时所取的商品信息是服务器上的数据,有效的保证了数据的一致性和集中控制。虽然商品信息来自服务器,但我们使用了本地缓存。POS系统会把取得的数据暂时的存放在本地的内存,当要读取商品信息时,会先在本地缓存里查找,如果成功的话,就不必访问服务器。这样一来就有效的减少了网络的数据流量和服务器的负荷。此外,系统充分利用了客户机/服务器结构的特点,比较复杂的查询更新等操作都用存储过程来实现。存储过程在服务器端执行完毕仅返回执行结果,能有效的减少网络的通讯流量。数据流图对整个业务活动进行分析归纳后,我得出如下的数据流图:系统设计系统模块的划分根据前面所作的需求分析,我把整个系统分为如下几个模块:数据字典商品入库单明细ENTER_GOODS_DETAIL字段名称数据类型描述ENTER_DAN_IDint入库单IDGOODS_IDint商品IDQUANTITYnumeric(18,2)入库数量AMOUNTnumeric(18,2)入库金额STATUSchar(4)审核状态WORK_PERSONsmallint操作人员IDWORK_DATEdatetime记帐日期商品信息GOODS_INFO字段名称数据类型描述GOODS_IDint商品IDBAR_IDint商品条形码GUIGEchar(4)规格COST_PRICEmoney进价BUY_PRICE1money正常售价BUY_PRICE2money促销/折扣销售价格LARGE_TYPEsmallint所属部门号SMALL_TYPEsmallint所属类别MAX_STOREnumeric(18,2)最大库存MIN_STOREnumeric(18,2)最小库存GYS_CODEint供应商代码STATUSchar(4)商品进货状态FLAGchar(4)促销/折扣标记BUYERint采购员IDVAR_DATEdatetime登记日期供应商信息GYS_INFO字段名称数据类型描述GYS_CODEint厂商代码NAMEvarchar(20)企业全称ADDRESSvarchar(20)地址TELchar(20)电话号码RELATIONchar(10)联系人TYPEchar(4)类型BANKchar(4)开户行ACCOUNTvarchar(20)帐号MENOvarchar(20)备注部门信息LARGE_TYPE字段名称数据类型描述LARGE_TYPE_IDint部门代码NAMEvarchar(10)部门名称商品分类信息SMALL_TYPE字段名称数据类型描述SMALL_TYPE_IDint商品分类代码NAMEvarChar(10)分类名称人员信息PERSON_INFO字段名称数据类型描述PERSON_IDint人员代码NAMEvarchar(10)姓名SEXchar(2)性别AGEsmallint年龄DUTYchar(8)职务DEGREEchar(8)学历LOGINvarbinary(20)口令MENOvarchar(20)备注前台销售表POS_SALE字段名称数据类型描述GOODS_IDint商品IDBAR_IDvarchar(10)条形码QUANTITYnumeric(18,2)销售数量AMOUNTmoney销售金额CASHERsmallint收银员IDP_NOint交易流水号收银台设置POS_SET字段名称数据类型描述POS_IDsmallint收银台号WORK_PERSONsmallint收银员ID商品变价记录表PRICE_ADJUST字段名称数据类型描述GOODS_IDsmallint商品IDCOST_PRICEsmallint商品进价LAST_PRICE1money当前售价一LAST_PRICE2money当前售价二NOW_PRICE1money所调售价一NOW_PRICE2money所调售价二ADJUST_REASONvarchar(20)变价原因WORK_PERSONint操作员IDWORK_DATEdatatime变价日期库存调整记录表STORE_ADJUST字段名称数据类型描述WORK_DATEdatatime记帐日期GOODS_IDint商品IDQUANTITYnumeric(18,2)调整前数量AMOUNTmoney调整前金额ADJUST_QUANTITYnumeric(18,2)调整数量DJUST_AMOUNTMoney调整金额ADJUST_REASONint调整原因IDWORK_PERSONint操作员ID日处理历史状态DIALY_DAN库存调整原因表STORE_ADJUST_REASON字段名称数据类型描述ADJUST_IDint代号NAMEsmallint摘要商品库存表STORE_DETAIL字段名称数据类型描述GOODS_IDint商品IDQUANTITYnumeric(18,2)数量AMOUNTmoney金额MENOvarchar(10)备注商品促销/折扣记录GOODS_PROMOTE_LOG字段名称数据类型描述WORK_DATEdatatime记帐日期GOODS_IDint商品IDCURRENT_PRICEMoney当前售价PROMOTE_PRICEmoney促销价BEGIN_DATEdatetime开始日期END_DATEdatetime结束日期WORK_PERSONint操作员权限表MENU_FLAG字段名称数据类型描述IDsmallint代号N1…42smallint标志程序的设计与编码实现有了前面的工作,我们选择就进入编码阶段了。POS系统的开发功能及实现方法POS系统是作为一个单独的程序开发的,主要在POS机上运行,完成商品的交易任务。销售的商品信息存储在POS_SALE表中。我们把一次交易放在一个事务提交,保证了数据的完整性和数据的正确性。界面以灰色调为主,使得收银员长时间工作眼睛不感到疲劳。收银的操作也很简单方便。交易流水号自动增加。当某种商品处于促销或折扣销售状态时,POS系统自动取商品的促销或折扣售价,无需人工干预,并且促销或折扣期结束时,系统能自动识别恢复正常售价。这一个功能的实现是通过商品视图来完成的。请看商品视图源码。前台POS销售时取商品信息时用到的视图:CREATEVIEWV_SPXXASSELECTNAME,A.GOODS_ID,A.BAR_ID,A.GUIGE,BUY_PRICE=CASEWHEN(GETDATE()>B.END_DATEANDGETDATE()<B.BEGIN_DATE)ORA.FLAG='正常'THENA.BUY_PRICE1WHEN(GETDATE()<B.END_DATEANDGETDATE()>B.BEGIN_DATE)ANDA.FLAG='促销'THENA.BUY_PRICE2WHEN(GETDATE()<B.END_DATEANDGETDATE()>B.BEGIN_DATE)ANDA.FLAG='折扣'THENA.BUY_PRICE2ELSEA.BUY_PRICE1ENDFROMGOODS_INFOA,GOODS_PROMOTE_LOGBWHEREA.GOODS_ID*=B.GOODS_ID交易是在一个事务里完成的,请看交易完成数据提交的代码:ifform_pos.Database1.InTransactionthentryform_pos.query1.ApplyUpdates;把本地缓存修改的操作提交服务器form_pos.Database1.Commit;事务提交form_pos.query1.CommitUpdates;清空本地缓存ifform_pos.Database1.InTransaction=falsethenform_pos.Database1.StartTransaction;exceptform_pos.Database1.Rollback;事务回滚end;交易流水号的确定在实际运用中,可能十几台甚至几十台POS机同时工作,也就是存在大量的数据库并发操作。怎样使交易流水号唯一呢?我是这样实现的,在每次事务提交之前,比较本机的流水号是否在后台数据库交易流水号中已经存在,如果存在,也就是说已经被别人占用,则重新取出最大交易流水号,然后提交整个事务。事务提交成功以后还要更新本地交易流水号。这是取最大流水号selectmax(P_NO)asp_nofrompos_sale的SQL语句。管理信息系统的设计界面设计本系统采用了带导航栏的多文档窗体设计风格,使操作变的简单直观。当使用某一个功能模块时,只显示相应的菜单,使人不会觉得眼花缭乱。系统完全摈弃那种界面花哨,色彩绚丽等华而不实做法,但和传统的风格有有所区别,传统的风格显得过于呆板。本系统的界面色调一致,简单朴素,但不失美观大方。窗体界面一致,操作也大同小异,丝毫没有杂乱无章的感觉。我首先定义了几个重要的窗体基类,其他的窗体基本上这几个基类的派生类。在使用时在对窗体进行重载。所有的窗体都是在运行时动态加载的。需要运行那个窗体时,程序才加载该窗体,用完后立即释放,这样使用户计算机系统资源得以最少得占用。请看一个窗体得创建例子:enter_dan:=Tenter_dan.Create(Self);入库单录入窗体得创建form_show(enter_dan,555,360,10,2);form_show为自定义函数对所有子窗体显示我自定义了一个函数form_show,减少了工作量和代码量。procedureform_show(form:TForm;fwidth,fheight,fleft,ftop:integer);beginwithformdobeginheight:=fheight;width:=fwidth;Left:=fleft;top:=ftop;Show;end;end;窗体的释放实现,例如释放入库单录入界面窗体:procedureTenter_dan.FormClose(Sender:TObject;varAction:TCloseAction);beginaction:=cafree;在内存中释放掉窗体end;各个功能模块实现的要点和技术这些年来,病毒对计算机网络的入侵越来越严重,导致相关的违法犯罪现象频频发生,在目前大数据发展的背景之下,再加上计算机网络信息所存在的开放性特点,容易出现病毒的入侵,且病毒具有非常强的保存性以及隐藏性。病毒的入侵是对某些介质进行利用来进行传递,而计算机系统的硬盘和软盘就成为了这些病毒最为主要的依附方式,很大程度上导致病毒入侵风险的提高,比如说CIH病毒、熊猫烧香病毒,假如计算机使用者在应用计算机设备的时候,登录的网址或者是下载的东西存在着安全隐患,就会导致病毒入侵的出现。再加上病毒的传染性以及隐秘性是非常高的,如果这些病毒在计算机设备当中出现,对运行的整个环境安全性造成非常大的不利影响。这里我只把我在编码过程中比较重要或者比较有代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 卖车购销合同范本
- 服务贸易合同范本设计
- 砌石头墙合同范本
- 展会活动策划合同范本
- 办学资质租房合同范本
- 学校资料合同范本
- 生鲜借款方式合同范本
- 预防中心静脉血流感染
- 阑尾炎的临床表现
- 学校德育安全教育
- 2025中考道德与法治核心知识点+易错易混改错
- 2025年日语n2考前试题及答案
- 1889-13-15-食堂承包协议工地食堂承包协议书
- T-NYA 007-2023 多味草本足浴包技术规范
- 课题开题报告:教育家精神在当代教育实践中的传承与创新研究
- 防洪防涝知识培训课件
- 高等职业学校办学能力评价的策略及实施方案
- 水上安全教育课件
- PE特种设备焊工理论复习题库(带解析)
- 2025年度全款文化演出门票购买合同4篇
- 2024年全国统一高考英语试卷(新课标Ⅰ卷)含答案
评论
0/150
提交评论