《手机店库存管理信息系统课程设计报告(共46页).doc》由会员分享,可在线阅读,更多相关《手机店库存管理信息系统课程设计报告(共46页).doc(46页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上XXXX大学学生课程设计报告姓名: 院系: 专业: 班级: 实验名称:手机连锁店库存管理系统指导老师: XXXX大学管理实验中心编印目录第一章 绪论1.1 系统开发背景现如今,随着我国经济的飞速发展,手机已经成为了人们在生活中不可或缺的一件物品,平均几乎每人都有一部或两部手机。特别是在近几年的智能手机推出之后,手机的功能越来越全面,不再是单一的电话功能。这使得手机的销售情况较之前几年有了很大的飞跃。越来越多的手机销售门店开启,不管是小型的大型的,一时间手机销售成为热门行业。然而现在有些地方的手机销售管理,包括库存管理还是比较凌乱、没有秩序的,容易产生不必要的损失。目前
2、有些地方的手机经销商的库存管理依然还都是传统的“一本帐,两个人”的畅通管理模式,进货出货以及盘存的管理没有那么的严格、精确,鉴于这样的事实情况,我们决定致力于设计并开发一个手机经销商的手机以及其配件的库存管理系统。1.2 研究目的与意义 手机库存管理涉及手机商品的入库、出库、盘存以及客户要求换货退货等方方面面的因素,如何管理这些信息数据,是一项复杂的系统工程,充分考验着仓库管理员的工作能力,工作量的繁重是可想而知的。 所以我们通过开发一个手机库存管理系统可以使得手机的库存管理能够变得更加的科学化,并能进一步提高库存管理的安全性和效率性,使得库存的管理更加的合理有效,为销售环节提供可靠的库存保证
3、。这对库存信息的规范管理、科学统计和快速查询,减少管理方面的工作量,同时对于调动广大员工的工作积极性,提高企业的生产效率,都具有十分重要的现实意义。第二章 手机库存管理系统分析2.1现行系统分析当前的一些小规模手机经销商所使用的库存管理基本上还是属于传统的“一本账,两个人”,根本没有相应的完善的信息系统,他们以纸质的账单做记录,两个人互相监督。虽然这样做节约了成本,但是管理会比较混乱,效率也会非常低。这么做的结果常常会导致货物堆放得不规范,没有秩序,对于库位的管理也比较混乱,在安全库存的管理上也并没有涉及和考虑,会出现信息不对称的情况。而且如果遇到退货、换货之类的事件在处理上不能做到及时更新库
4、存库位信息。所以目前的库存管理仍然需要完善,需要一个合理有效的信息系统。此外,当前不完善的库存管理还可能会导致账目混乱,对于管理层最后的统计与决策造成一定的困扰与麻烦。所以将其进行信息化、系统化改善是十分有必要的。2.2组织结构分析组织结构如图所示管理层采购部门市部库存部财务部库存部单独组织结构图收货员盘存员出货员库存各人员职能如下:(1)收货员负责货物的点算入库,从厂商处得到货物,根据从采购部得到的应收清单点算货物,并向库存员提出入库申请,同时向采购部回报收货情况。由于手机此类数码产品的特殊性,收货员只用检查货物外包装是否完好,只需将包装不完好的货物退回,将包装完好的货物申请入库即可。(2)
5、出货员负责货物的出库管理。一般的门市部都是向出货员提出领货申请,出货员根据库存报告判断是否有充足货物供给,货物充足就准备提货,如果不充足就向采购部提交缺货单(3)库存员库存系统的核心环节,由出货员和入货员提供的信息对库存量进行修改,实时更新库存报告。另外根据库存报告生成当季的紧俏品以及滞销品清单,以此给予采购部采购意见,以及门市部推销建议。由于手机此类数码产品的特殊性,往往采用“七天包退,十五天包换”的政策,库存员还必须要接受从门市退回的此类产品。另外库存员还要自己生成一张长期积压的商品清单,并按照有关条款将其退回厂家。(4)盘存员根据库存报告,进行实地盘查,确保库存数字与账目数字一直,之后生
6、成盘存单,并汇报给财务,方便财务做账。2.3新系统目标新系统开发的基本目标是方便库存工作人员的信息流通与交流,使得商品的入库、出库等信息更加准确。从而更加有效地提高库存管理的工作效率。使用库存管理信息系统之后可以使库存管理更加科学化,系统化,为销售环节提供坚定的库存保障。2.4手机连锁店库存管理系统功能需求入库,出库,盘存,长期积压货物处理,顾客退货处理。入库基本流程:厂商根据订单送来货物,并给予收货员运货单,收货员根据采购的订单盘点货物,并检查货物,将包装有问题的手机予以退回,并将退货单给到厂商。然后收货员向库存提出入库申请,库存由此修改库存报告,将货物入库。出库门市部将领货申请单给予出货员
7、,出货员查看库存报告,如果没有存货就向门市和采购发送缺货单,如果有存货就向库存提出合格的领货申请,库存复查库存报告,并修改库存报告,将货物出库。盘存盘存员读取库存报告,并进行盘查,最后生成盘存单,将盘存单发给财务长期积压货物处理库存生成长期积压货物清单,而且是两联单,将一个单子发到采购,另一个单子发到厂商,根据采购与厂商签订的协议,退回长期滞销货物。顾客退换货处理 顾客将货物退回到门市,门市按照退货规定,将合格的退货物品退回到仓库中,并按出货流程给顾客换货物。库存员将退货汇总,向厂商发出退货单,厂商检验货物后将可退货货物退回,不可退回返回给库存,发出不可退回清单。2.5 系统业务流程图分析2.
8、5.1 总体业务流程图2.5.2 入库业务流程图 厂商将运货单给收货员,收货员按要求检测,退回不合格货物,生成退货单给厂商,同时收货员根据订单,生成实收货物清单;收货员向库存员提交入库申请;库存员查看并修改库存报告;盘存员读取库存报告,并生成盘存单;财务读取盘存单和库存报告,生成总账。2.5.3 出库业务流程图门市部向出库员提出领货申请单,出货员查看库存报告,如果没货,则生成缺货单,并发给采购部和门市部;如果有货出货员就向库存员提交合格领货申请单;库存员查看并修改库存;盘存员读取库存报告,并生成盘存单;财务读取盘存单和库存报告,生成总账。2.5.4 退货业务流程接到顾客提出的退货请求后,门市将
9、顾客要求退货清单发到库存员,库存员把质量有问题清单给厂商,厂商根据相关规定进行检测,将无法退货货物清单返还给库存员。此外,库存员还需将长期积压的货物清单给厂商,把销量不好的产品退回给厂商。2.6数据流程分析本系统一共分为三层2.6.1第零层数据流程图2.6.2第一层数据流程图2.6.3第二层数据流程图“入库管理”数据流程图: “出库管理”数据流程图: “盘存管理”数据流程图:“退货管理”数据流程图: 2.6.4 第三层数据流程图“退货暂存子系统”数据流程图:“暂处理子系统数据流程图”:2.7 实体关系分析(ER图)总ER图:货物信息实体E-R图货物入库实体E-R图货物出库实体E-R图退货出库实
10、体E-R图退货入库实体E-R图用户信息实体E-R图供应商信息实体E-R图仓库信息实体E-R图第三章 手机库存管理系统设计3.1系统总体结构设计库存管理入库管理出库管理退货管理盘查管理数量检验外包装质量检验库位查询入库处理身份核对管理出库单检查处理库存检验库位查找出库处理退货库位安排退货入库处理退货暂存处理退货处理区域划分初查处理盘查确认复查处理差异处理3.2系统模块结构图 3.3数据库设计 用户信息表字段名数据类型长度主键否描述UserIDbigint8主键用户编号UserNamevarchar20否用户名称UserPwdvarchar20否用户密码UserRightchar10否用户权限货物
11、入库表字段名数据类型长度主键否描述ISIDbigint8主键入库编号GoodsIDbigint8否货物编号GoodsNamevarchar50否货物名称PrNamevarchar100否供应商名称StoreNamevarchar100否仓库名称GoodsSpecvarchar50否货物规格GoodsUnitchar8否计量单位GoodsNumbigint8否入库数量GoodsPricemoney8否入库价格GoodsAPricemoney8否入库总金额ISDatedatetime8否入库日期HandlePeoplevarchar20否经手人ISRemarkvarchar1000否备注货物出库表
12、字段名数据类型长度主键否描述OSIDbigint8主键出库编号StoreNamevarchar100否仓库名称GoodsNamevarchar50否货物名称GoodsSpecvarchar50否货物规格GoodsUnitchar8否计量单位GoodsNumbigint8否出库数量GoodsPricemoney8否出库价格GoodsAPricemoney8否出库总金额OSDatedatetime8否出库日期PGProvidervarchar100否提货单位PGPeoplevarchar20否提货人HandlePeoplevarchar20否经手人OSRemarkvarchar1000否备注退货入
13、库表字段名数据类型长度主键否描述BGIDbigint8主键退货入库编号GoodsNamevarchar50否货物名称StoreNamevarchar100否仓库名称GoodsSpecvarchar50否货物规格GoodsNumbigint8否退货入库数量BGDatedatetime8否退货入库日期HandlePeoplevarchar20否经手人BGPeoplevarchar20否退货人BGUnitvarchar100否退货单位BGRemarkvarchar1000否备注退货出库表字段名数据类型长度主键否描述RGIDbigint8主键退货出库编号BGIDbigint8否退货入库编号StoreN
14、amevarchar100否仓库名称GoodsNamevarchar50否货物名称GoodsSpecvarchar50否货物规格RGNumbigint8否退货出库数量NRGNumbigint8否未退还数量RGDatedatetime8否退还日期HandlePeoplevarchar20否经手人RGPeoplevarchar20否退货出库负责人RGRemarkvarchar1000否备注Editervarchar20否记录修改人EditDatedatetime8否修改日期货物信息表字段名数据类型长度主键否描述GoodsIDbigint8否货物编号GoodsNamevarchar50否货物名称St
15、oreNamevarchar100否仓库名称GoodsSpecvarchar50否货物规格GoodsUnitchar8否计量单位GoodsNumbigint8否货物数量GoodsInPricemoney8否货物入库价格GoodsOutPricemoney8否货物出库价格GoodsLeastbigint8否货物低线存储GoodsMostbigint8否货物顶线存储Editervarchar20否记录修改人EditDatedatetime8否修改日期仓库信息表字段名数据类型长度主键否描述StoreIDbigint8主键仓库编号StoreNamevarchar100否仓库名称StorePeoplev
16、archar20否负责人StorePhonevarchar20否仓库电话StoreUnitvarchar100否所属单位StoreDatedatetime8否建库日期StoreRemarkvarchar1000否备注Editervarchar20否记录修改人EditDatedatetime8否修改日期供应商信息表字段名数据类型长度主键否描述PrIDbigint8主键供应商编号PrNamevarchar100否供应商名称PrPoeplevarchar20否联系人PrPhonevarchar20否联系电话PrFaxvarchar20否传真PrRemarkvarchar1000否备注Editerva
17、rchar20否记录修改人EditDatedatetime8否修改日期3.4系统代码设计计算机管理信息系统设计的基本前提条件是把管理对象数字化或符号化,也就是代码设计。它是数据库系统开发的前提条件,数据库的有力补充,是系统不可缺少的重要内容。编码是指与原来名称对应的编号、符号或记号。它是进行信息交换、处理、传输和实现信息资源共享的关键。编码也用于指定数据的处理方法、区别数据类型,并指定计算机处理的内容等。本系统的代码设计采用的代码设计如下:主要通过图中的两个公共类DataCon.cs和DataOperate.cs来实现大部分的操作,DataCon类主要用来访问SQL S二二数据库并且执行基本的
18、SQL语句,DataOperate类主要用来实现调用SQL存储过程和执行数据验证等功能。在程序开发时,窗体只需要调用相应方法即可。相应代码如下:DataCon.cs类中:#region 建立数据库连接 / / 建立数据库连接. / / 返回SqlConnection对象 public SqlConnection getcon() string M_str_sqlcon = Data Source=(local);Database=db_SMS;User id=sa;PWD=sa; SqlConnection myCon = new SqlConnection(M_str_sqlcon); re
19、turn myCon; #endregion #region 执行SqlCommand命令 / / 执行SqlCommand / / SQL语句 public void getcom(string M_str_sqlstr) SqlConnection sqlcon = this.getcon(); sqlcon.Open(); SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon); sqlcom.ExecuteNonQuery(); sqlcom.Dispose(); sqlcon.Close(); sqlcon.Dispose()
20、; #endregion #region 创建DataSet对象 / / 创建一个DataSet对象 / / SQL语句 / 表名 / 返回DataSet对象 public DataSet getds(string M_str_sqlstr, string M_str_table) SqlConnection sqlcon = this.getcon(); SqlDataAdapter sqlda = new SqlDataAdapter(M_str_sqlstr, sqlcon); DataSet myds = new DataSet(); sqlda.Fill(myds, M_str_ta
21、ble); return myds; #endregion #region 创建SqlDataReader对象 / / 创建一个SqlDataReader对象 / / SQL语句 / 返回SqlDataReader对象 public SqlDataReader getread(string M_str_sqlstr) SqlConnection sqlcon = this.getcon(); SqlCommand sqlcom = new SqlCommand(M_str_sqlstr, sqlcon); sqlcon.Open(); SqlDataReader sqlread = sqlco
22、m.ExecuteReader(CommandBehavior.CloseConnection); return sqlread; DataOperate.cs类中(核心代码):#region 货物入库 / / 货物入库 / / 货物编号 / 货物名称 / 供应商名称 / 仓库名称 / 货物规格 / 计量单位 / 进货数量 / 货物单价 / 经手人 / 备注 / 返回一个int类型的值 public int InsertGoods(int P_int_GoodsID,string P_str_GoodsName,string P_str_PrName,string P_str_StoreNam
23、e, string P_str_GoodsSpec,string P_str_GoodsUnit,int P_int_GoodsNum,decimal P_dml_GoodsPrice,string P_str_HPeople,string P_str_Remark) SqlConnection sqlcon = datacon.getcon(); SqlCommand sqlcom = new SqlCommand(proc_insertInStore, sqlcon); sqlcom.CommandType = CommandType.StoredProcedure; sqlcom.Par
24、ameters.Add(GoodsID, SqlDbType.BigInt).Value = P_int_GoodsID; sqlcom.Parameters.Add(GoodsName, SqlDbType.VarChar, 50).Value = P_str_GoodsName; sqlcom.Parameters.Add(PrName, SqlDbType.VarChar, 100).Value = P_str_PrName; sqlcom.Parameters.Add(StoreName, SqlDbType.VarChar, 100).Value = P_str_StoreName;
25、 sqlcom.Parameters.Add(GoodsSpec, SqlDbType.VarChar, 50).Value = P_str_GoodsSpec; sqlcom.Parameters.Add(GoodsUnit, SqlDbType.Char, 8).Value = P_str_GoodsUnit; sqlcom.Parameters.Add(GoodsNum, SqlDbType.BigInt).Value = P_int_GoodsNum; sqlcom.Parameters.Add(GoodsPrice, SqlDbType.Money).Value = P_dml_Go
26、odsPrice; sqlcom.Parameters.Add(HandlePeople, SqlDbType.VarChar, 20).Value = P_str_HPeople; sqlcom.Parameters.Add(ISRemark, SqlDbType.VarChar, 1000).Value = P_str_Remark; SqlParameter returnValue = sqlcom.Parameters.Add(returnValue, SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.Retur
27、nValue; sqlcon.Open(); try sqlcom.ExecuteNonQuery(); catch (Exception ex) MessageBox.Show(ex.Message); finally sqlcom.Dispose(); sqlcon.Close(); sqlcon.Dispose(); int P_int_returnValue = (int)returnValue.Value; return P_int_returnValue; #region 盘点货物 / / 盘点货物 / / 货物入库编号 / 仓库名称 / 货物名称 / 计量单位 / 盘点数量 /
28、盈亏数量 / 盘点人 / 备注 / 返回一个int类型的值 public int InsertCheck(int P_int_GoodsID, string P_str_SName, string P_str_GName, string P_str_GUnit, int P_int_CKNum, int P_int_PALNum, string P_str_CPeople, string P_str_Remark) SqlConnection sqlcon = datacon.getcon(); SqlCommand sqlcom = new SqlCommand(proc_insertChe
29、ck, sqlcon); sqlcom.CommandType = CommandType.StoredProcedure; sqlcom.Parameters.Add(GoodsID, SqlDbType.BigInt).Value = P_int_GoodsID; sqlcom.Parameters.Add(StoreName, SqlDbType.VarChar, 100).Value = P_str_SName; sqlcom.Parameters.Add(GoodsName, SqlDbType.VarChar, 50).Value = P_str_GName; sqlcom.Par
30、ameters.Add(GoodsUnit, SqlDbType.Char, 8).Value = P_str_GUnit; sqlcom.Parameters.Add(CheckNum, SqlDbType.BigInt).Value = P_int_CKNum; sqlcom.Parameters.Add(PALNum, SqlDbType.BigInt).Value = P_int_PALNum; sqlcom.Parameters.Add(CheckPeople, SqlDbType.VarChar, 20).Value = P_str_CPeople; sqlcom.Paramete
31、rs.Add(CheckRemark, SqlDbType.VarChar, 1000).Value = P_str_Remark; SqlParameter returnValue = sqlcom.Parameters.Add(returnValue, SqlDbType.Int, 4); returnValue.Direction = ParameterDirection.ReturnValue; sqlcon.Open(); try sqlcom.ExecuteNonQuery(); catch (Exception ex) MessageBox.Show(ex.Message); f
32、inally sqlcom.Dispose(); sqlcon.Close(); sqlcon.Dispose(); int P_int_returnValue = (int)returnValue.Value; return P_int_returnValue; #endregion3.5系统的输入输出设计3.5.1输入设计输入数据的正确性直接影像处理结果的正确性,如果输入数据有错误,即使计算和处理过程正确,也无法获得可靠地输出信息。因此,在数据输入设计时要遵循输入量要尽可能的减少,输入过程要尽量简便,输入界面一定要有好,输入数据要尽早检验以便使错误能及时得到纠正等原则。本系统输入媒介和装置
33、:键盘。3.5.2输出设计输出设计在系统设计中占有重要的地位。输出设计的目的是使系统能输出满足用户需要的有用信息。输出时系统产生的结果或提供的信息,对于大多数用户来说,这些是系统开发目的和使用效果评价的标准。输出设计主要包括确定输出内容、选择输出方式和输出格式设计三方面的内容。输出内容要确定输出项目、位数、数据形式(文字、数字);输出格式可以选择表格、图形或者文件等方式;输出方式指输出设备的选择,如打印机、显示器、卡片输出机等。例如将输入设计中的商品(手机)的信息输出,所得界面如图第四章 手机库存管理系统实施在系统分析与系统设计的阶段中,开发人员为新系统设计了它的逻辑模型和物理模型。系统实施阶段的目标就是把系统设计的物理模型转换成可实际运行的新系统。系统实施是按照系统设计报告将新系统付诸实施的过程,一个好的设计方案,只有精心实施,才能带来实际效益,否则会功亏一篑,导致系统开发失败。因此,系统实施阶段的工作对系统质量的好坏有着直接的影响。系统实施阶段既是成功地实现新系统,又是取得用户对新系统信任的关键阶段。4.1系统开发工具的选择4.1.1 Microsoft SQL Server 2005数据库的选择Microsoft SQL Server 2005是管理
限制150内