小型自选商场综合管理信息系统设计.docx
小型自选商场综合管理信息系统分析实验内容和要求系统描述小型自选商场综合管理系统应具备进货、销售、库存等基本管理功能,具体要求如下:1能记录每一笔进货,查询商品的进货记录,并能按月进 行统计。2能记录每一笔售货,查询商品的销售情况,并能进行日 盘存、月盘存。3能按月统计某个职工的销售业绩。4在记录进货及售货的同时,必须动态刷新库存。5能打印库存清单,查询某种商品的库存情况。6能查询某个厂商或供给商的信息。7能查询某个职工的基本信息。8收银台操作中,能根据输入的商品编号、数量,显示某 顾客所购商品的清单,并显示收付款情况。范例一1、组织结构1组织结构概况该商场的组织结构如下图。2管理职能分析主管一一全面负责本店的行政与业务管理。采购组一一负责每一笔进货,查询商品的进货记录,并能按月进行统 计;记录进货场商或供给商的信息。销售组一一负责商品的销售,按月统计某个职工的销售业绩,记录职工 的基本信息。库存组一一负责进行日盘存、月盘存能打印库存清单,查询某种商品的 库存情况。2、业务流程分析进货管理:商品进货信息包括商品进货数量、单价、供货商等。商品进货 管理功能完成进货信息登记、修改和删除等。分类查看:可以根据商品类型来查 看某种商品的进货情况。更新库存:进货信息的变动直接关系到库存的变化。进 货分析:列出当日进货量最多的前几项商品和进货量最少的前几项商品。库存分 析:列出当前库存量最多的前几项商品和库存量最少的前几项商品。销售信息管理:商品销售数量、单价、统计日期等。分类查看后:可以根据 商品类型来查看某种商品的销售情况。更新库存:销售信息的变动直接关系到库 存的变化。销售分析:列出当前销售数量最多的前几项商品和销售量最少的前几 项商品。商品基本信息的维护:商品的查询、添加、删除。查询包括进货查询、销售查询和库存查询。供货商信息管理:包括供货商信息的新建、修改和删除等。入库单员商换货仓库超市结顾客更新算中心供给进货*发货单更新订货单缺货通知退货单4正常更新缺货通 知缺货*开缺货单查 看 商 品 数量查 看 库 存 信 息更新仓库信息商品销售信息更新仓库信息货 物 编 号购买商品商品存 量货物上架3、数据流程分析1信息要求库存商品ID名称型号 规格产地单位定价折扣率库存 数量最低 数量供给商IDVar charVar charVar charVar charVar charFloatFloatIntIntVar char售货售货ID商品ID售价数量金额存根号销售日期Var charVar charFloatIntFloatVar charVar char进货进货ID商品ID进价数量金额进货日期Var charVar charFloatIntFloatVar char供给商供给商ID供给商名 称地址联系人联系人Var charVar charVar charVar charVar charVar charVar char日盘存商品ID售价数量金额销售日期Var charFloatIntFloatVar char月盘存商品ID售价数量金额Var charFloatIntFloat2数据流程图4、数据字典重要数据及其简要描述如下表:数据项名称说明商品编号 唯一标识一种商品,形式如:SP00001职工编号唯一标识一名职工,形式如:YG00001客户编号 唯一标识一个客户,形式如:KH00001供给商编号唯一标识一个供给商,形式如:GYS00001销售票号 以此记录以此销售登记,形式如:2012-5-8XS00001入库票号 以此记录以此入库登记,形式如:2012-5-8RK00001毛利销售某种商品获得的利润操作员系统登陆者经手人对某次业务或交易实际上直接操作者仓库名称唯一标识某个仓库警戒上限商品数量的最高限警戒下限商品数量的最低限品种数销售、入库时交易的商品种数结算方式进行交易时所采取的结算方式是否结清记录某笔交易是否结清账款数据存储名称 说明冏品信息表记录冏品的基本信息职工表记录职工的基本信息客户表 记录客户的基本信息供给商表 记录供给商的基本信息仓库表 记录仓库的基本信息库存表 记录库存信息销售登记表 记录销售时的的商品及数量信息销售票号表 记录销售时的客户、经手人、操作员、日期等信息入库登记表 记录入库时的商品及数量信息入库票号表 记录入库时的供给商、经手人、操作员、日期等信息结算方式表用于存储结算方式下面是收银台有关代码:Void SRecord:OnSsaveButton()/TODO:Add your control notification hander code here CSringSaleID=”,GoodsID="2”,Price="2”,Count="2”,Acount="2”,StubNumber=”,Date=”;CString sql;Int gcount=0;Float price=0,account=0;CDataManage dm;/*GoodsID*/m_GoodsID.GetWindowText(GoodsID);if(GoodsID.GetLength()=0)MessageBox(“请输入数据”,”提示”);Return;/*SaleID*/trydm.ConnectDataBase();Recordl->Open(_variant_t("Sale”),_ variant_t(IDispatch *)DataConn,true),adOpenKeyset, adLockOptimistic,adCmdTable);catch(_com_error& e)MassageBox(e.ErrorMassage(),” 提示”);/*/Sql.Format(“select SaleID from Sale”);tryRecord->Open(_variant_t)sql.DataConn.GetInterPtr(),adOpenKeyset,adLockOptimistic,adCmdText);catch(_com_error& e)MassageBox(e.ErrorMassage(),” 提示”)If(Recordl->RecordCount>0)Recordl-> MoveLast();SaleID=(TCHAR*)(_bstr_t)Recordl->GetItem(long)0)->Value;Int saleid=atoi(SaleID);saleid+=1;SaleID.Format("d”,saleid);elseSaleID="2012000T;/*Price*/trydm.ConnectDataBase();Recordl->Open(_variant_t("Sale”),_ variant_t(IDispatch *)DataConn,true),adOpenKeyset, adLockOptimistic,adCmdTable);Catch(_com_error& e)MassageBox(e.ErrorMassage(),” 提示”);/*/Sql.Format(“select SaleID from Sale”);tryRecord->Open(_variant_t)sql.DataConn.GetInterPtr(),adOpenKeyset, adLockOptimistic,adCmdText);catch(_com_error& e)MassageBox(e.ErrorMassage(),” 提示”)If(Recordl->RecordCount>0)Price=(TCHAR*)(_bstr_t)Recordl->GetItem(long)0)->Value;price=(float)atof(Price);elseMassageBox(“库存中没有此种商品”,”提示”);return;/*Count*/m_Count.GetWindowText(Count);gcount=atoi(Count)/*Acount*/account=gcount*price;pay+=acount;/*StubNumber=SaleID*/*Date*/int year,month,day;CString date;CTime t=CTime:GetCurrentTime();year=t.GetYear;month=t.GetMonth();day=t.GetDay();Date.Format("d%d%d”,year,month,day);Acount. Format("f”,acount);m_SRList.InsetItem(100,”);m_SRList.InsetItemText(row,0,GoodsID);Text(row,1,Count);Text(row,2,Acount);row+;/* 销售记录插入 */sql.Format("insertintoSalevalues("s%s%f%d%f%s%s”)”,SaleID,GoodsID,price,gcount,accountSturbNumber,Dat e;)*trydm.ConnectDataBase();Record->Open(_variant_t("Sale”),_variant_t(IDispatch*)DataConn,true),adOpenKeyset,adLockOptimistic,adCmdTable);catch(_com_error& e)-this->MessageBox(e.ErrorMessage(),” 出错提示”);/* 日盘存记录修改*/CString temp1=”,temp2=”;Recordl->raw_Close();sql.Format("select*from DayStorage where GoodsID=%s”,GoodsID);Recordl->Open(_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLockOptimistic,adCmdText);if(Recordl->RecordCount>0)tempi = (TCHAR*)(_dstr_t)Recordl->GetFields()->GetItem(long)2)->Value;temp2 = (TCHAR*)(_dstr_t)Recordl->GetFields()->GetItem(long)2)->Value;int addcount = atoi(tempi);float addacount = (float)atof(temp2);addcount+=gcount;addacount+=account;sql.Format("update DayStorage set GoodsCount=%d,GoodsAcount=%f where GoodsID=%s”,addcount,addacount,GoodsID);trydm.ExecSQL(sql);catch(_com_error &e)this->MessageBox(e.ErrorMessage(),” 出错提示勺;elsesql.Foemat("insetintoDayStoragevalues(%s,%f,%d,%f,%s)”,GoodsID,price,gcount,acount,Date);trydm.ExecSQL(sql);catch(_com_error &e)this->MessageBox(e.ErrorMessage(),” 出错提示勺;月盘存记录修改*/Recordl->raw_Close();sql.Format("select*from MonthStorage where GoodsID=%s”,GoodsID);Recordl->Open(_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLoc kOptimistic,adCmdText);if(Recordl->RecordCount>0)tempi = (TCHAR*)(_bstr_t)Recordl->GetFields()->GetItem(long)2)->Value;temp2 = (TCHAR*)(_bstr_t)Recordl->GetFields()->GetItem(long)3)->Value;int addcount = atoi(tempi);float addacount = (float)atof(temp2);addcount+=gcount;addacount+=account;sql.Format(“update MonthStorage set GoodsCount=%d,GoodsAcount=%f where GoodsID=%s”,addcount,addacount,GoodsID);trydm.ExecSQL(sql);catch(_com_error &e)this->MessageBox(e.ErrorMessage(),” 出错提示勺;elsesql.Foemat("insetintoMonthStoragevalues(%s,%f,%d,%f,%s)”,GoodsID,price,gcount,acount,Date);trydm.ExecSQL(sql);catch(_com_error &e)this->MessageBox(e.ErrorMessage(),” 出错提示勺;库存修改CString temp = "”;Recordl->raw_Close();sql.Format("select Count from Storage where GoodsID=%s”,GoodsID);Recordl->Open(_variant_t)sql,DataConn.GetInterfacePtr(),adOpenKeyset,adLoc kOptimistic,adCmdText);temp = (TCHAR*)(_bstr_t)Recordl->GetFields()->GetItem(long)0)->Value;if(temp.GetLength()>0)Recordl->raw_Close();int tCount=atoi(temp);tCount-=gcount;sql.Format("update Storage set StroageCount=%d whereGoodsID=%s”,tCount,GoodID);try dm.ExecSQL(sql);catch(_com_error &e)-_this->MessageBox(e.ErrorMessage(),” 出错提示勺;m_GoodsID.SetWindowText("”);m_Count.SetWindowText("”);范例二一.背景分析小型超市经营中,商品的出入库管理是一件日常性的工作,超市 的各级管理人员需要及时了解掌握各种商品的入库量、出库量和库存 量,方便合理安排超市经营各个环节的工作,因此,商品库存管理是 超市一项非常重要的工作。系统开发的背景:随着信息的飞速发展,信息化管理已经引入并 应用到各行业管理领域,尤其是对于零售业。放眼四周,各种形式的 百货商场、大型仓储超市、便利店、连锁超市和专卖店等形式的零售 业不断出现、并不断改变、影响着我们的观念和生活方式。而企业假 设想在激烈的市场经济中立足并胜出,就必须拥有一套完善的并 适 合自身特点的信息化管理系统,以实现企业降低成本、及时反馈市场 信息、完善服务质量、提高经济效益、分析市场需求、制定销售计划 和目标等管理目的。那么,如何才能实现一个商场的信息化建设呢? 除了必要的硬件设备外,还必须要有一个优秀的信息管理系统软件的 支持。系统开发的目的:建立一套功能完善的管理信息系统,既能满足 业务人员日常处理的需要,增强企业经营全过程的数字化管理水平; 又能满足管理人员决策分析的需要,提高零售企业包括超市对公司经 营反馈信息的响应速度,从而加快公司资金的流通减少库存的积压, 提高经济效益。系统开发的可行性分析系统的基本环境:超市的目标是以优质的 服务和品种齐全的商品,面向本地区的所有消费者服务,以使经营者 能够实现利润。具体的目标为:最方便地提供消费者所需购买物品, 详细如实地记录物品的品种分类,了解市场发展方向,及时修正进货 信息,修改库存管理方法、结算工作、采购管理方法等,提高工作效 率,节余财力物力资源。超市分市场计划、进货、销售及库存等部分:市场计划部门根据 超市销售情况制定采购计划;进货部门根据市场计划部门的统计,订 购超市经营物品;销售部门主管超市日常销售;库存部门则负责统计 物品库存信息量,为销售部门和市场计划部门提供物品的现存量。长 期以来。超市一直采用人工管理。物品的采购、库存、销售等信息的 管理存在工作量大、工作效率低下、消耗人员过多等问题,从而导致 劳力资本投入量大、市场及消费者的反馈信息不能及时处理等问题。 因此,超市的仓库管理如何实现向智能、高效的管理水平跨越迫在眉 睫。系统规划情况:可行性分析是指在客观条件制约下,对系统开发 的必要性和可行性进行分析论证。它是在项目系统实施前进行的一项 重要工作,对系统能否正常运行、能否从中获得经济效益起着决定性 的作用。系统的可能性是只指研究系统开发的条件是否具备,而系统 的必要性是指客观上是否需要。可能性与必要性相符相成,缺一不可。系统设计的必要性:在市场竞争越来越激烈、规模越来越大、消 费者要求越来越高的今天,如何提高工作质量和管理水平显得越来越重要。由于手工操作的烦琐混乱且容易出错,不易及时统计商品的销 售和库存情况,常常造成管理漏洞,给营业人员和顾客带来不便,因 此迫切需要一套电脑信息管理系统来实现可靠、便捷的管理。四 系统功能为超市物品销售建立数据库并及时更新销售信息,为库存建立数据库 使管理者能够时刻了解超市库存量信息,总结每日经营的物品数量, 反映消费者及市场对物品的需求量。打印报表反馈市场对物品需求情 况,预测市场并为超市进货管理人员提供必要的进货信息。系统的投入影响分析:本系统的开发能够提高工作效率、扩大 服务范围、增加经营者的利润、及时获取信息、减少决策失误、减少 库存积压及提高资金周转率。该系统还能及时提供市场基本信息、供 货商信息、库存信息、销售信息、消费者反馈信息及市场需求信息, 提高决策正确率。并在此基础上通过对各种信息的综合分析,以改良 超市物品种类、提高服务质量、满足不同消费者的购买要求,使超市 的管理向高质量、现代化的方向发展。二:系统分析小型超市管理系统的管理功能结构图分析小型超市管理系统主要包括进货管理,销售管理,库存管理,人事管 理,和财务管理,五个模块,各个模块分工明确,以维持小型超市正 常运行。小型超市管理系统鬻人管IF 库管Hfer mi 隹国4产品销量情况1销售排行日销售额图形化显示月销售统Ar计*日结算7供货商信息管理 r职工信息irm !_商品信息管理 _z库存信息查询 3销售操作 ,寄客退货符 春售信息墨 7进货操当 JT-退货操作胸货信息管理图一:小型超市管理系统的管理功能结构图业务流程图分析通过对超市管理业务的时期调查分析,弄清了超市商品库存管理工作 的业务流程和管理功能,小型超市的业务主要是顾客购买产品,收银 员收钱。将商品的销售情况汇给仓库管理员,仓库管理员确定是否及 时补偿上架商品,以及将商品的库存信息汇总给超市经理,超市经理 对此作出处理,将退货信息和供货信息传输给采购员采购员与供货商 联系,供货商对滞销商品作出处理,和及时补充缺货的商品超市经理商品库存信息单滞销商品 -信息信息 L_>-缺货商品 酬信息单提供货物采购I员退货单酎订货单收据处理滞销货物小票y仓库-管理.员商品销.售信息* 一单一 J收银员图二:业务流程图管理系统顶层数据流分析主要是经理,顾客,操作人员,对小型超市的管理系统的数据流的处理。图三:管理系统顶层数据流图小型超市管理系统一层分析销售管理,人事管理,库存管理和销售管理之间的数据传输,和作出的反馈图四:管理系统一层图小型超市管理系统二层分析对小型超市的职工的信息查询,更新图五:人事管理第一层图库存管理的第二层数据分析对库存商品的信息确实定商品库存信息图六:库存管理的第二层数据t单货订图七:进货管理第二层数据在每一笔交易后,数据的更新销售商品信息销售商品信堕4.2销售信息更新销售商品信 息销售信息销售商品库存信息销售清单图八:销售管理第二层数据小型超市管理系统的子系统流程图分析图九:销售子系统流程图图十:库存管理子系统流程图图十一:进货子系统流程图图十二:人事管理子系统流程图三:实体-联系图该系统的全局实体-联系图如图身份证号、.,性别C姓名x学历年龄银行账号销售数量 /销售单号员工工种、k进货日期进货单号进货名称进货数量条形码员工编号销售、联系电话备注进货总价进货进货单价顾客供货日期n1-eeZ商品m/供货一n供货商银行账号:价格供货商号供货商号联系电话联系人姓名图八:小型超市管理系统的E-R图数据库表设计完成该管理信息系统的数据库总体设计方案,明确数据库中表的 结构,各表中关键字的设置,表与表之间的关系。职工表StaffTable)中文字段名英文字段名字段类型长度主键字段值 约束职工编号staffIDchar6PNOT NULLnamechar6NOT NULL性别sexnchar2NOT NULL年龄agenvarchar6NOT NULL学历diplomanvarchar4NOT NULL工种kindnvarchar10NOT NULL联系phonevarchar12NOT NULL银行账号accountIDnvarchar15NOT NULL身份账号idcardnvarchar18NOT NULL备注otherntext50NULL进货表ImportTable)中文字段名英文字段名字段类型长度主键字段值 约束进货单号importIDchar6pNOT NULL进货日期Import dateDater time8NOT NULL货品名称goodsnamenvarchar50NOT NULL货品价格importpricemoney4NOT NULL进货数量quantityint4NOTNULL进货总价totalmoneymoney4NULL供货商号profferTable中文字段名英文字段名字段类型长度主键字段值 约束供货商号ProfferlDnvarchar6PNOT NULL联系人contactpersonnvarchar8NOT NULL联系Phoneint12NOT NULL银行账号accountIDnvarchar15NULL库存表StoreTable)中文字段名英文字段名字段类型长度主键字段值 约束条形码merchlDchar6P/FNOT NULL库存数量storeNumint4NOT NULL月销售表(MonthSaleTable)中文字段名英文字段名字段类型长度主键字段值 约束编号IDcharchar6PNOT NULL日期datedatetime8FNOT NULL金额amountfloat8NOT NULL四、数据字典数据字典是关于数据信息的集合,是在数据流图的基础上,对其 中出现的每个数据项、数据结构、数据流、处理逻辑、数据存储和外 部实体等进行定义的工具。其作用是在软件分析和设计的过程中,提 供关于数据的描述信息。数据流程图配以数据字典,就可以从图形和 文字两个方面对系统的逻辑模型进行完整的描述。1.数据流的描述数据流编号:D-01数据流名称:入库单简述:进货部的订货单数据流来源:采购部数据流去向:入库单审核模块数据项组成:入库单编号+日期+商品代码+商品名称+入库数量+单价+入库金额+单位+经手人数据流量:约45张/日高峰流量:约65张/日数据流编号:D-11数据流名称:日库存数据简述:根据库存台账统计形成的每日各种商品库存情况的数据或综合查询数据数据流来源:库存统计模块数据流去向:库存日常查询数据流组成:日期+商品代码+商品名称+入库数量+入库金额+出库数量+出库金额+库存数量+库存金额数据流量:约20次/日高峰流量:约35次/日数据流编号:D-12数据流名称:月库存数据简述:根据库存台账统计形成的每月各种商品库存情况的数据或综合查询数据数据流来源:库存统计模块数据流去向:库存月报表数据项组成:年月+商品代码+商品名称+入库数量+入库金额+出库数量+出库金额+库存数量+库存金额数据流量:1次/月高峰流量:1次/月五数据库物理设计数据库物理结构设计的主要任务是:对数据库中的数据,在物理 设备上的存放结构和存取方法进行设计,索引的设计等。数据库的物 理结构依赖于确定的电脑系统,并于选用的DBMS密切相关。物理设 计的任务是为了有效的实现逻辑模式,确定所采取的存储策略。此阶 段以逻辑设计的结果作为输入,结合具体DBMS的特点与存储设备特 性进行设计,选定数据库在物理设备上的存储结构和存取方法。管理信息系统只有通过输出才能为用户服务。信息系统能否为用 户提供准确、及时、实用的信息是评价信息系统好坏的标准之一,也 就是说,输出信息的内容与格式等是用户最关心的部分。因此,在系 统设计中,是先根据管理和用户的需求进行输出设计,然而反过来根 据输出所要求获得的信息进行输入设计。输出设计1输出设计的内容输出设计的内容包括:有关输出信息使用方面的内容;输出方式; 输出设备;输出介质。2输出设计的方法在系统设计阶段,设计人员应给出系统输入的说明,这个说明既 是将来编程人员在软件开发中进行实际输出设计的依据,也是用户评 价系统实用性的依据。因此,设计人员要选择合适的输出方式,并以 清楚的方式表达出来。输出形式主要有报表信息和图形化信息。本系统的输出为表格形式,主要包括用户信息,书籍信息和订单信息。输入设计输入设计的目标是保证向系统输入正确的数据。(1) 输入设计的原则。输入设计应遵循以下原则:最小量原则:这是指在保证满足处理要求的前提下使输人量最 小。由于数据输入与电脑处理比较起来相对慢,在数据录入时,系统 大多数时间都处于等待状态,系统效率将显著降低;同时,数据录入 工作一般需要人的参与,大量的数据录入往往浪费很多的人力资源, 增加系统的运行成本。因此,输入量越少,出错时机越少,花费时间 越少,数据一致性越好。简单性原则:输入的准备、输入过程应尽量容易,以减少错误的 发生。这主要是因为输入设计在为用户提供纠错和输入校检的同时, 就保证了输入过程简单易用,就保证了不会因为过失,纠错而使输入 复杂化,增加用户负担。早检验原则:对输人数据的检验尽量接近原数据发生点,使错误 能及时得到改正。因此输入设计中应采用多种输入校检方法和有效性 验证技术,以减少输入错误。少转换原则:输入数据尽量用其处理所需形式记录,减少不必要 的输入步骤,当步骤不能省时,应仔细验证现有步骤是否完备,以免 数据转换介质时发生错误。本系统的主要输出为文本形式。(2) 输入格式设计输入格式的设计一般是指数据录入人员在终端屏幕上看到的凭 证格式。其设计格式的原则是使录入人员能方便的输入数据,尽量防止操作失误。