一个三层架构的进销存管理系统设计实习报告姓名:queen日期:2007-10-12目录一、软件需求分析 (2)§1.1 系统设计原则 (2)§1.2 实现目标 (3)二、系统概要设计 (4)§2.1平台要求 (4)§2.2 软件体系结构 (4)三、系统详细设计 (5)§3.1 客户端详细设计 (5)§3.1.1 客户端的功能 (5)1.前台收银系统 (5)2.后台管理系统 (5)§3.1.2 设计细节 (6)§3.2 服务器端详细设计 (13)§3.2.1 服务器端的功能 (13)§3.2.2 设计细节 (13)四、软件实现过程 (16)§4.1 客户端窗体 (16)§4.2 服务器端设置窗体 (17)五、软件测试过程 (19)§5.1 运行环境测试 (19)§5.1.1 任务 (19)§5.1.2 测试过程 (19)§5.1.3 测试结果 (19)§5.1.4 评价 (19)§5.2 软件功能测试 (19)§5.2.1 任务 (19)§5.2.2 测试过程 (19)§5.2.3 测试结果 (20)§5.2.4 评价 (20)一、软件需求分析商品零售业的核心问题是如何高效地管理进货销售调拨和存货等业务.随着商品零售业的发展,商业运作模式日趋多样化,以往的单机版的进销存存在过于简单,自动化程度差,数据安全性差,缺少辅助决策功能等不足,不能适应如今大型超市和连锁经营的需要.§1.1 系统设计原则·先进性系统应包含成熟的网络通信和数据库技术的设计,对于数据库访问应具备容错性.·可靠性数据库系统必须是安全可靠的分布式数据库系统, 能确保数据的一致性和完整性,并使系统免受病毒感染,提供完善的数据备份方案和系统工程崩溃后的恢复手段.·可维护性系统提供强有力的网络,数据库管理,维护和监测功能,能有效地进行网络系统和数据库系统的管理,维护,监视和故障恢复, 使系统保持良好的性能,以方便用户的使用和维护.·可扩充性应用软件实现模块相互独立,控制程序和执行程序相分离,具有高度的程序独立性和数据独立性, 使机构和业务变化的影响至最小,方便了扩充和修改.·安全保密性系统在系统级,数据库级和应用级提供三级权限控制功能,检查用户是否具有合法身份和权限,以防止非用户的入侵或数据的不合法使用,有效地保护数据的安全性。
应用系统的设计应充分地,合理地利用系统提供的多种机制和功能,把商业销售与管理系统建成一个高安全性的系统。
·实用性用户界面直观,友好,各类人员只需经过简单培训即可上手操作。
·其他考虑到大多数大件商品零售企业在企业信息化方面都有不同程度的投资,从保护现有投资的角度出发,客户端应该具有相对较低的平台要求。
§1.2 实现目标·销售数据的及时汇总·进销存业务全部电脑化,提高办公效率和工作质量。
·强化以库存为中心的管理模式,严格控制库存量,降低运作成本。
·以库存,销售,供货商信息为基础,动态地自动产生订货单,既降低库存,又避免缺货。
·以库存,销售信息为基础,动态地自动产生调拨单,确保卖场不断货。
·提供完善合理的供货商结算机制,解决结算难问题·及时提供多种统计报表,为管理人员经营决策提供可靠的分析数据。
·严格的数据保密机制,所有用户均须根据权限进行有限的操作,提高系统安全性。
保护商业机密。
三层架构的进销存管理系统是一个采用三层客户机/服务器结构的网络应用程序。
具有如下优势:数据库服务器集中管理企业数据,克服了单机应用的很多弊端。
系统的应用逻辑由应用程序服务器集中处理,可高效地访问数据库和管理客户连接,并有效地对客户端实施监测。
工作站的工作量较轻,可以利用已有PC机运行,保护了各企业已有的投资。
在程序设计技术方面,三层架构的进销存管理系统向读者展示了高级用户界面设计等Windows程序开发技术的应用,读者可以在阅读中充分体会。
二、系统概要设计§2.1平台要求操作系统:客户端和服务器端均可运行于Windows 2000和Windows XP平台的各个版本上。
开发工具:含MFC支持的Microsoft Visual Studio 6.0。
SQL server 2000§2.2 软件体系结构本系统服务器,客户端都设计成单文档/视图结构。
服务器端包括一个主模块和通信模块,数据库访问模块,在主模块中处理系统业务,对通信模块和数据库访问模块的调度.客户端的结构和服务器端结构类似。
客户端程序的各项功能都是这样添加到文档/视图结构的框架中的。
三、系统详细设计§3.1 客户端详细设计§3.1.1 客户端的功能1.前台收银系统✓支持多种形式经营模式✓支持多种形式促销方式,如打折,变价,赠送等✓支持商品组销售✓支持会员制销售方式✓商品,库存查询功能✓单键商品定义功能✓前台统计✓用户权限管理、✓营业员业绩考核2.后台管理系统✓业务子系统✓维护子系统✓统计子系统✓供货商结算子系统✓领导查询号子系统§3.1.2 设计细节(1) 协议设计本系统的协议设计按照逐级划分的办法编码,协议命令的每一位用一个阿拉伯数字表示该命令对应的类别。
编码规则如下:第一位:1表示发送,2表示接收第二位:大类的编号第三位:小类的编号第四位:小类的操作命令第五位:返回值有关的协议命令的格式和流程如下。
◆采购及订货管理自动订货管理1120:发送查询销售量大于一定数量和小于一定数量的商品及其现有存货量的请求。
2120:返回商品名称,销售量,存货量,生产厂家等缺货超储商品管理1130:发送查询存货量小于一定值和超过一定值的商品的请求。
2130:返回商品名称,存货量。
◆入库、验收、出库及退货管理入库:1210:发送存储供应商资料、商品分类资料、单品资料到“入库单”的请求。
2210:返回存储成功或失败标志1211:发送查询入库单最大编号的请求2211:返回入库单最大编号1212:发送根据商品编号查询商品基本资料的请求2212:返回商品基本资料验收:1220:发送查询最大验收单号请求2220:返回查询结果1221:发送查询入库单的请求2221:返回查询结果1222:发送存储验间单的请求2222:返回存储成功或失败的请求1223:发送更新入库单的请求2223:返回更新成功或失败标志出库:1230:发送查询出库单最大编号的请求2230:返回查询号结果1232:发送存储出库单的请求2232:返回存储成功或失败的请求1233:发送查询送货或收款凭据的请求2233:返回查询结果退货:1240:发送“库房退货”请求,减少商品库存账2240:返回存储成功或失败标志1241:发送“商场退货”请求,减少商品库存账。
2241:返回存储成功或失败标志。
1242:发送“损坏商品退货出库”请求,减少损坏商品数量和金额。
2242:返回存储成功或失败标志。
正常销售1311:发送存储“送货单”请求2311:返回存储成功或失败标志1312:发送为送货和约查询“收款凭证”的请求2312:返回存储成功或失败标志1313:发送根据送货单号查询送货明细的请求2313:返回查询结果1314:发送根据编号查询“收款凭证”字段给送货和约的请求2314:返回查询结果1315:发送查询“送货单”的请求2315:返回查询结果1316:发送修改“送货单”的请求2316:返回修改成功或失败标志预定销售1320:发送存储“订货和约”请求2320:返回存储成功或失败标志13201:发送查询订货和约最大编号的请求23201:返回查得的最大编号值1321:发送查询“订货合约”部分字段的请求2321:返回结果字段1322:发送存储“收款凭证”请求2322:返回存储成功或失败标志13221:发送查询收款凭证最大编号的请求23221:返回查得的发送查询“送货单”的请求1323:发送查询“订货合约”全部字段的请求2323:返回结果字段1311:发送存储“送货单”请求2311:返回存储成功或失败标志13111:发送查询送货单最大编号的请求23111:返回查得的最大编号值尾款收取1331:发送查询“收款凭证”的请求2331:返回查询结果1332:发送修改收款凭证”的请求2332:返回修改成功或失败标志提货1340:发送查询最大调拨单号的请求2340:返回查询号结果1341:发送存储“商品调拨单”的请求2341:返回存储成功或失败标志销售情况查询1350:发送根据关键字模糊查询“送货单”请求2350:返回查询结果盘点管理1410:发送查询剩余商品的请求2410:返回查询结果1411:发送存储“收款凭证”请求2411:返回存储成功或失败标志报表查询1510:发送根据起止日期查询部门销售业绩的请求2510:返回查询结果1511:发送根据起止日期查询营业员销售业绩的请求2511:返回查询结果1512:发送根据起止日期查询供货员销售业绩的请求2512:返回查询结果1513:发送根据起止日期查询号供货商销售业绩的请求2513:返回查询结果1514:发送根据起止日期查询商品销售明细的请求2514:返回查询结果1515:发送根据起止日期查询商品进货明细的请求2515:返回查询结果1516:发送根据起止日期和排行关键字查询商品销售排行的请求2515:返回查询结果1517:发送库存盘点请求2517:返回盘点结果1518:发送滞销商品统计请求2518:返回统计结果1519:发送预付统计请求2519:返回统计结果营业员管理1610:发送查询销售金额的请求2610:返回总金额的一定百分比经理管理1620:发送查询负责的所有营业员销售金额的请求2620:返回总金额的一定百分比安装工管理1630:发送查询安装数量的请求2630:返回结果(2)模块主流程客户端应用程序主模块的主要功能是构建应用程序框架、控制用户权限和管理通信块以及各个功能模块。
主模块的工作流程如下:①客户端程序在服务器端启动后启动,程序首先弹出一个登录对话框,提示用户输登录名和登录密码,经服务器端确认后进入程序的运行界面。
②客户端应用程序是服务的主动请求方。
用户通过菜单或工具栏的快捷按钮激活功能模块,功能模块直接调用通信模块和服务器端联系。
③用户退出功能模块后,主模块重新获得程序的控制权,等待下一个功能模块被激活和操作,直到用户退出客户端程序。
(3)类设计和服务器端程序类似,客户端程序主模块由MFC文档/视图结构的基本类组成。