基于 NET的超市管理系统的设计与实现

更新时间:2024-04-13 18:38:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

XXX毕业设计(论文)

基于.NET的超市管理系统的设计与实现

学生: 学号: 专业: 班级: 指导教师:

XXX计算机学院

二O 一六年六月

基于.NET的超市管理系统的设计与实现

摘要

在市场经济中,销售是超市运作的重要的一个环节,为了能更好地推动销售,获得利益,很多超市都成立了分公司或实行代理制,然后再通过分公司或代理商把各种商品推向最终用户。这些分公司都分散在全国各地,有的甚至是在国外,那么超市间远距离的、频繁的业务信息交流是常态。对于以前的传统方式,主要使用电话、传真等方式传递订货与退货以及其他的业务等信息,总公司需要搜集到各分部的各类信息,并对这些信息加以整理分析,才能更好掌握到整个公司的情况。

这种传统的信息传递与管理方式效率比较低,而且可靠性、安全性和保密性等都不能满足超市实现这种高效管理要求,数据统计时间滞后也是一个问题,所以往往是领导发现运营出现问题时,就已经过了问题出现的时间。就算是没有分部的小超市,这种传统的手工方式管理效率也比较低,同样会存在问题。通过超市管理系统,能够使得各管理者可以更及时的发现已经存在的问题并解决它,这样能更高效的管理。

基于.NET的超市管理系统阐述如下:该项目主要包括资料管理与采购管理,销售管理和库存管理,帐务管理和应收款管理,以及应付款管理,经营分析,零售管理和系统管理十大功能模块。 关键词:SQL;超市管理;C#.NET

I

The design and implementation of supermarket

management system based on.NET

ABSTRACT

In the market economy, sales are an important link in the operation of the supermarket, in order to better promote sales, access to benefits, many supermarkets established branch or agency system is implemented, and then through the branches or agents of the various products onto the end user. These branches are scattered all over the country, and some even in foreign countries, so the distance between the supermarket, frequent business information exchange is the norm. For the traditional way before, the main use of telephone and fax information transfer order and returns and other business, the corporation need to collect all kinds of information of each segment, and the information summarized, in order to better grasp the whole company.

The traditional information transmission and management efficiency is relatively low and reliability, security and confidentiality, etc. cannot satisfy the supermarket to achieve the demand of effective management, the statistical time lag is also a problem, and so is often leading to the discovery of operator, has been the problem of time. Even if there is no branch of small supermarkets, the traditional way of manual management efficiency is relatively low, there will be problems. Through the supermarket management system, can make the managers can more timely found the problems and solve it, so that more efficient management.

Supermarket management system. NET are described as follows: the project mainly includes data management and purchase management, sales management and inventory management. Accounts management and accounts receivable management, and accounts payable management based on, business analysis, retail management and system management and ten functional modules. Keywords: SQL; Invoicing; C#.NET

II

目录

第1章绪论 ························································································1 1.1课题的提出、研究现状及研究意义 ··················································1 1.2课题的研究内容 ··········································································1 1.3小结 ··························································································1 第2章系统需求分析 ············································································2 2.1 需求分析 ···················································································2 2.2 系统UML图例 ···········································································3 2.3小结 ··························································································4 第3章系统设计 ··················································································5 3.1 系统总体结构 ·············································································5 3.2 系统模块设计 ·············································································5 3.2.1资料管理模块详细设计 ····························································5 3.2.2采购管理模块详细设计 ····························································6 3.2.3 库存管理模块详细设计 ····························································6 3.2.4 销售管理模块详细设计 ····························································6 3.2.5 帐务管理模块详细设计 ····························································6 3.2.6 应收款管理模块详细设计 ·························································7 3.2.7 应付款管理模块详细设计 ·························································7 3.2.8 经营分析模块详细设计 ····························································8 3.2.9系统管理模块详细设计 ····························································8 3.3 数据库设计 ················································································8 3.3.1 E-R图 ················································································8 3.3.2 概念设计 ··············································································9 3.3.3 逻辑设计 ··············································································9 3.4小结 ························································································ 11 第4章系统实现 ················································································ 12 4.1 搭建系统框架 ··········································································· 12

III

4.2 系统数据访问层实现 ·································································· 13 4.3主要模块实现 ··········································································· 13 4.3.1 资料管理模块实现 ································································ 13 4.3.2 采购管理模块实现 ································································ 14 4.3.3 经营分析模块实现 ································································ 14 4.3.4 库存管理模块实现 ································································ 15 4.3.5 系统维护模块实现 ································································ 15 4.4小结 ························································································ 15 第5章测试 ······················································································ 16 5.1 测试用例 ················································································· 16 5.2 测试结果 ················································································· 16 5.2.1用户登录 ············································································· 16 5.2.2信息管理 ············································································· 17 5.2.3库存管理 ············································································· 19 5.3小结 ························································································ 20 第6章结论 ······················································································ 21 致谢 ······························································································· 22 参考文献 ························································································· 23 附录 ······························································································· 24 附录A: 主要源程序 ········································································ 24

IV

XXX毕业设计(论文)

第1章 绪论

本章主要讲解这个选题的一些情况。

1.1课题的提出、研究现状及研究意义

在市场经济中,销售是超市运作的重要环节,为了更好地推动销售,不少超市建立了分公司或实行代理制,通过分公司或代理商把产品推向最终用户。这些分公司或代理商大都分布在全国各地,甚至是在国外,远距离频繁的业务信息交流是它的主要特点。对于以前的传统方式,主要使用电话、传真等方式传递订货与退货以及其他的业务等信息,总公司需要搜集到各分部的各类信息,并对这些信息加以整理分析,才能更好掌握到整个公司的情况。

这种信息传递、管理方式效率低下,而且可靠性、安全性和保密性等都不能满足超市实现这种高效管理要求,数据统计时间滞后也是一个问题,所以往往是领导发现运营出现问题时,就已经过了问题出现的时间。即便是没有分部的超市,传统的手工方式管理效率低,也会存在同样的问题。通过超市管理系统,可以更及时的发现并解决问题,把握住机会,更高效的管理。

上述的这些问题,不管是信息管理系统本身发展的问题,还是计算机技术应用发展的问题。我们都必须从新的角度,新的技术方法去思考这些问题。

从课题的现状来看,近年来兴起.NET技术就给我们带来了极大的便利,我们可以利用C#和.NET两者相结合来开发该程序,该超市管理系统在响应速度上因为采用的仍是桌面应用程序开发,所以响应速度快,同时.NET的应用,使得可以较好的去实现数据的实时性及共享性,并且.NET的跨平台传输特性使得该软件的通用性好,实用性也更好。

1.2课题的研究内容

本课题是设计一个基于.NET的超市管理系统。该软件主要包括帐务管理与应收款管理,资料管理与采购管理,销售管理及库存管理,以及应付款管理,经营分析,零售管理和系统管理十大功能模块。

1.3小结

绪论这一章主要是对课题所要研究的内容作了介绍。有了这些,将可以进行后面的需求分析。

1

XXX:基于.NET的超市管理系统的设计与实现

第2章 系统需求分析

这一章主要介绍系统的需求分析,然后分析了系统功能需求与系统的UML图等。

2.1 需求分析

在市场经济中,销售是超市运作的重要的一个环节,为了能更好地推动销售,获得利益,很多超市都成立了分公司或实行代理制,然后再通过分公司或代理商把各种商品推向最终用户。这些分公司都分散在全国各地,有的甚至是在国外,那么超市间远距离的、频繁的业务信息交流是常态。对于以前的传统方式,主要使用电话、传真等方式传递订货与退货以及其他的业务等信息,总公司需要搜集到各分部的各类信息,并对这些信息加以整理分析,才能更好掌握到整个公司的情况。

这种传统的信息传递与管理方式效率比较低,而且可靠性、安全性和保密性等都不能满足超市实现这种高效管理要求,数据统计时间滞后也是一个问题,所以往往是领导发现运营出现问题时,就已经过了问题出现的时间。就算是没有分部的小超市,这种传统的手工方式管理效率也比较低,同样会存在问题。通过超市管理系统,能够使得各管理者可以更及时的发现已经存在的问题并解决它,这样能更高效的管理。

此超市管理系统的这种新的管理模式是基于软件以及高速、大容量的存储设备基础上的,通过使用集中式的数据库,将超市的日常活动操作有机的结合起来,能较好达到数据共享、提高管理效率、降低运营成本、改进自身服务等目的。利用超市管理系统可以提高超市管理的水平比如:

1.能够降低运营成本,提高管理效率; 2.能够降低一些采购成本;

3.能够及时调整各商品的销售策略,减少不必要的损失; 4.能够加快资金周转,实现经济效益; 5.能够强化对于财务的监控,实现经济效益; 6.能够使一些商业数据智能分析; 7.能够更高效决策。

此作为超市管理系统,首先需要系统管理员运用系统来进行添加用户的功能。添加用户后,部门职员就可以登录了,在登录以后可以根据部门赋予其不同的操作权限等,具体功能描述如下:

(1)资料管理模块,用于超市基本资料的维护,包括商品资料,供货商信息,客户资料和采购合同与销售合同以及业务员信息等相关基本信息维护。

2

XXX毕业设计(论文)

(2)库存管理模块,此模块可用于盘点库存以及查询库存信息,库存量不足时产生库存预警和库存预警参数设置,及时更新超市库存信息,以便获取最新库存资料来提供超市管理者决策使用。

(3)采购入库模块,用户进货入库,采购单查询和采购退货的相关处理,在采购的同时应更新应付款信息和增加库存量。

(4)销售模块,可用于商品的销售出库,销售退货处理,销售单的查询等的处理,要注意在销售商品时还必须更新应收款以及减少该商品库存量。

(5)账务管理模块,用于每月的结账,对超市每月的损溢情况进行分析和计算,结账日期设定。

(6)经营分析模块,可动态生成饼图,包括零售量,库存量,销售量和采购量的比例,便于决策者做出正确的商业决策。

(7)系统管理模块,此模块可以提供用户管理与相应登录用户的密码修改,以及数据库备份还有还原等相关功能。

超市管理系统都是把信息管理当做运营的基础,把经营管理作为最终目标,再利用现有的成熟的、先进的计算机方面的技术,加上领导层的商业模式,再对超市的一些有用的经营数据进行采集、储存、加工、处理和分析,最终得到我们需要的有用信息,为各层管理者提供有效的决策依据。

2.2 系统UML图例

根据此前的系统需求分析,可以得到超市管理系统的用例图如图2.1所示:

采购管理<>应付款管理资料管理系统管理员系统维护采购部零售管理<><>销售管理应收款管理<>销售部经营分析库存管理账务管理仓储部高层领导

图2.1 系统用例图

3

XXX:基于.NET的超市管理系统的设计与实现

系统基础模块类图如2.2所示:

<<接口>>jxcmgr<<接口>>Model<<接口>>BLL<<接口>>IDAL<<接口>>DAL<<接口>>DALFactory<<接口>>DBUtility+GetMaxID() : int+Exists() : bool+ExecuteSql() : bool+GetSingle() : int+Query() : unsigned charDBHelperSQ-connectionString : string+GetMaxID() : int+Exists() : bool+ExecuteSql() : bool+GetSingle() : int+Query() : unsigned charDBOracleSQ-connectionString : string+GetMaxID() : int+Exists() : bool+ExecuteSql() : bool+GetSingle() : int+Query() : unsigned charDbHelperMySQ-connectionString : string+GetMaxID() : int+Exists() : bool+ExecuteSql() : bool+GetSingle() : int+Query() : unsigned char

图2.2 系统基础模块类图

2.3小结

这一章先是简单分析了超市这个行业的情况,以此切入论述了选题所要设计的系统的需求。有了需求,下面进行系统的设计。

4

XXX毕业设计(论文)

第3章 系统设计

这一章介绍系统设计,然后再对系统的数据库设计进行了简单分析。

3.1 系统总体结构

根据上一章对超市管理系统的需求分析。得出了系统的总体结构如图3.1所示:

基于.net的超市联网管理系统基于.net的超市管理系统 资料管理库存管理 采购管理 销售管理 账务管理 应收款管理 应付款管理 付付预款款收单单款查 管询理 经营分析 零售管理 系统管理 采购合同维 护商品资料维护供应商资料维 护客户资料维 护仓库资料维 护业务员资料维 护库存转库 库存查询 库存预警 上下限设置 进货入库 退货处理 进货单查询 销售出库 退货处理 销售单查询 结账日期设定 模拟结账 正式结账 历史查询 预收款管理 收收款款单单查 询 零售查询 零售退款 数据管理 用户管理 更改密码

图3.1 系统总体结构图

3.2 系统模块设计

3.2.1资料管理模块详细设计

超市管理的基础资料信息是一个超市最基本、也是极其重要的信息,加入缺乏或丢失了基础资料,比如商品资料信息、供货商信息以及客户信息等,超市管理系统很可能就将不能正常运行。这个资料管理功能模块就是用来维护这些基础信息的。

其工作流程图如图3.2所示:

开始修改选择操作增加查询是否修改是否增加修改成功修改失败显示结果增加成功增加失败结束

图3.2 资料管理

5

XXX:基于.NET的超市管理系统的设计与实现

3.2.2采购管理模块详细设计

采购管理功能模块用于管理超市的采购业务,包含的进货入库,进货单查询,退货处理。

其工作流程图如图3.3所示:

开始进货入库选择操作采购退货选择操作采购查询选择操作确认放弃查询结果确认放弃结束

图3.3 采购管理

3.2.3 库存管理模块详细设计

库存管理功能模块主要用于管理超市的库存信息,包含了库存查询、库存转库、预警设置以及库存上下限报警。

其工作流程图如图3.4所示:

开始库存盘点选择操作库存预警选择操作库存查询选择操作盘点放弃查询结果修改预警放弃修改结束

图3.4 库存管理

3.2.4 销售管理模块详细设计

销售管理功能模块主要用于管理超市的销售,包含了销售出库、销售退货单以及销售单查询。其工作流程图与应收款模块相同(参考图3.3所示)。 3.2.5 帐务管理模块详细设计

帐务管理功能模块主要用于管理超市的结帐业务。商业型的超市一般每个月都要进行一次结帐的操作,来确定该月份所有商品的收支情况,为财务提供数据。

6

XXX毕业设计(论文)

其工作流程图如图3.5所示:

开始正式结账选择操作日期设定选择操作账务查询选择操作确认结账放弃查询结果确认修改放弃修改结束

图3.5 账务管理

3.2.6 应收款管理模块详细设计

应收款管理功能模块主要用于管理超市的应收款业务,包含了预收款管理和收款单及收款单查询三个模块。

其工作流程图如图3.6所示:

开始预收款选择操作收款单选择操作确认收款收款单查询查询结果选择操作放弃确认放弃结束

图3.6 应收款管理

3.2.7 应付款管理模块详细设计

应付款管理功能模块主要用于管理超市的应付款业务,包含了预付款管理、付款单以及付款单查询三个模块。

预付款管理:在该模块中输入进货单号,右侧将自动显示相应的预付款信息,选择进货单号后弹出进货单列表窗口,当选择进货项之后,点击确认付款就可以完成预付款。

付款单:选择进货单号后弹出进货单列表窗口,选择进货项后,点击确认付款即可完成付款。

付款单查询:输入进货单号和供货商名称,查询结果。 其工作流程图与应收款模块相同(参考图3.6所示)。

7

XXX:基于.NET的超市管理系统的设计与实现

3.2.8 经营分析模块详细设计

经营分析功能模块用于统计和分析超市的经营数据,供超市决策者作为决策依据。 经营分析:输入商品条形码和时间段,点击分析即可执行经营分析功能。 3.2.9系统管理模块详细设计

系统管理是每个系统都应该必须具备的功能,包括了数据库管理(备份还原)、用户管理、更改密码模块。

其工作流程图如图3.7所示:

开始用户管理数据库管理选择操作选择操作数据库管理查询结果选择操作添加删除数据备份数据还原结束

图3.7系统管理

3.3 数据库设计

3.3.1 E-R图

E—R图中包含了实体和关系以及属性三种基本成分,通常情况用矩形框代表实体,它们的关系使用连接相关实体的菱形框来表示,一般用圆角矩形或者椭圆形来表示实体之间的属性,然后再用直线把它和它的属性连接起来。

此超市管理系统的E-R模型如图3.8所示

图3.8系统E-R图

8

XXX毕业设计(论文)

3.3.2概念设计

整个系统涉及的实体和属性比较多,篇幅有限不能也不需要逐一列举。使用Microsoft Visio的反向工程功能到系统数据库模型图。如图3.9所示:

业务员清单PK 业务员号每月结帐日期表姓名性别电话手机地址邮编身份证号类别PK 月份全称结帐日期PKFK2FK1 盘点单编号货号仓库号原库存数原库存金额原库存单价新库存数量新库存金额新库存单价制单人调整日期进货单明细PKFK1FK2 编号进货单号货号进货数量进价税价合计扣率税率不含税价税额仓库货物质量 结帐编号结帐日期结帐年月初次结帐备注结帐历史销售单明细PKFK2FK1 销售单PKFK1 编号客户编号销售日期业务员制单人保管员税价合计不含税价税额订单号编号销售单号货号销售数量销售价税价合计扣率税率不含税价税额仓库用户清单PK 用户编号部门姓名性别密码盘点单历史上下限对照表PKFK2FK1 编号货号仓库号原库存数原库存金额原库存单价新库存数量新库存金额新库存单价制单人调整日期 FK1 序号仓库货号上限下限最佳存量备注仓库清单PK 仓库号仓库名类别备注进货单PKFK1 编号供货商号进货日期业务员制单人验收员保管员税价合计不含税价税额订单号零售单明细预付款PK FK1 进货单号 预付款额供货商号预付款日期备注零售单PK采购订单PKFK1 编号供货商号订货日期有效起日有效止日业务员制单人税价合计不含税价税额 交易号交易金额用户编号交易日期数量PKPK交易号货号客户清单PK 客户编号拼音编码简称名称联系人地址邮编区号地区电话传真电报开户行开户行邮编银行帐号税号性质业务员业务部门授信额度应收款PK FK2FK1 编号发票号填票日期销售单号货号客户编号数量销售价金额收款日期详细说明销售日期状态减预收商品清单PK 货号条码拼音编码品名规格单位产地类别进货价销售价1销售价2最低售价PK FK2FK1 供货商清单PK应付款编号发票号填票日期进货单号货号供货商号数量进货单价金额付款日期详细说明进货日期状态减预付 供货商号拼音编码简称名称地址邮编区号地区类型电话传真电报开户行开户行邮编银行帐号税号库房地址库房电话业务员业务部门预收款PKFK1 销售单号客户编号预收款总额预收款日期备注销退货单销售合同PK FK1 编号销售单编号货号退货数量销售价税价合计扣率税率不含税价税额仓库采购合同库存库FK1 货号仓库库存数量库存金额库存单价最新进价FK1FK2 客户编号货号售价付款方式帐期签定日期合同期限FK1FK2 供货商号货号进价付款方式帐期签定日期合同期限进销存汇总表PK FK1 结帐编号年月货号上期结帐数量上期结帐金额借方数量借方金额贷方数量贷方金额本期结存数量本期结存金额备注

图3.9数据库模型图

3.3.3 逻辑设计

逻辑结构设计的主要任务就是把之前概念设计阶段已经设计好的数据库模型图,转换成逻辑结构。转换结果如表3.1 – 3.6所示,其中每张表所包含的字段可参考系统详细设计:

表3.1商品清单表

字段名 货号 条码 拼音编码 品名 单位 产地 类别 进货价 销售价1 销售价2 类型 Char(14) Char(14) Char(40) Varchar(80) Char(6) Char(20) Char(20) Decimal Decimal Decimal 主键 Yes NO NO NO NO NO NO NO NO NO

外键 NO NO NO NO NO NO NO NO NO NO 商品条形码 商品拼音 商品名称 商品计量单位 商品生产地 商品所属类别,例如书籍等 商品进货价格 商品批发价格 商品零售价格 备注 存储货物编号 9

XXX:基于.NET的超市管理系统的设计与实现

表3.2供货商表

字段名 供货商号 简称 拼音编码 地址 电话 开户行 银行账号 业务员 业务部门 类型 Char(14) Varchar(80) Char(40) Varchar(80) Char(14) Varchar(40) Char(20) Char(20) Decimal 主键 Yes NO NO NO NO NO NO NO NO 外键 NO NO NO NO NO NO NO NO NO 供货商编号 供货商简称 供货商拼音编码 供货商单位地址 供货商联系电话 供货商开户的银行 开户银行账号 和该供货商联系的业务员 该业务员所属部门 备注

表3.3进货单表 字段名 编号 供货商号 进货日期 业务员 税价合计 不含税价 订单号 验收员 保管员 类型 Char(14) Char(14) Datetime Char(10) Decimal Decimal Char(20) Char(20) Char(20) 主键 Yes NO NO NO NO NO NO NO NO 外键 NO Yes NO NO NO NO NO NO NO 进货编号 供货商编号做外键 本次进货的时间 处理本次进货事务的业务员 本次进货税后价格 本次进货税前价格 若有提前订单则有订单号 验收本次进货的人员 本次所进货物的保管人员 备注

表3.4客户表

字段名 客户号 简称 拼音编码 地址 电话 开户行 银行账号 业务员 业务部门

类型 Char(14) Varchar(80) Char(40) Varchar(80) Char(14) Varchar(40) Char(20) Char(20) Decimal 主键 Yes NO NO NO NO NO NO NO NO 外键 NO NO NO NO NO NO NO NO NO 客户编号 客户简称 客户拼音编码 客户单位地址 客户联系电话 客户开户的银行 开户银行账号 和该客户联系的业务员 该业务员所属部门 备注 10

XXX毕业设计(论文)

表3.5销售单表

字段名 编号 客户号 销售日期 业务员 税价合计 不含税价 订单号 验收员 保管员 类型 Char(14) Char(14) Datetime Char(10) Decimal Decimal Char(20) Char(20) Char(20) 主键 Yes NO NO NO NO NO NO NO NO 外键 NO Yes NO NO NO NO NO NO NO 销售编号 客户编号做外键 本次销售的时间 处理本次销售事务的业务员 本次销售税后价格 本次销售税前价格 若有提前订单则有订单号 验收本次销售的人员 本次所销售物的保管人员 备注

表3.6用户表

字段名 用户编号 部门 姓名 性别 密码 类型 Char(14) Char(20) Char(10) Char(2) Char(10) 主键 Yes NO NO NO NO 外键 NO NO NO NO NO 备注 用户编码存储,自增字段 用户所属部门 用户姓名 用户性别 用户登录系统的密码 3.4小结

有了系统的总体设计,各模块设计及数据库的总体设计,下一章主要介绍系统的实现。

11

XXX:基于.NET的超市管理系统的设计与实现

第4章系统实现

本章主要对部分系统设计实现的分析及界面截图。

4.1 搭建系统框架

在系统框架搭建时,考虑软件的可维护性以及后期数据库更换的可能,所以,此系统设计框架是基于工厂模式的,三层架构的,因此本超市管理系统的数据库可以采用MSSQL,MYSQL,ORACLE,需要用到时利用C#的反射在运行时实时生成相应的model层对象便可,而且后期维护方便,系统安全性高,工厂模式设计和系统框架如图4.1所示:

图4.1 工厂模式

系统框架图如图4.2所示:

图4.2 系统框架

12

XXX毕业设计(论文)

系统实现视图如图4.3所示:

图4.3 系统实现

4.2 系统数据访问层实现

以下给出数据访问层实现视图,数据访问层是图4.3中的DBUtility。如图4.4所示:

图4.4系统数据访问层实现视图

4.3主要模块实现

4.3.1 资料管理模块实现

资料管理模块主要包括商品资料、供货商维护和业务员信息维护、仓库信息维护与采购合同维护以及销售合同维护六个小模块。实现对商品、供货商、人员、仓库、合同等基本信息的录入与管理。如图4.5所示:

图4.5资料管理模块

13

XXX:基于.NET的超市管理系统的设计与实现

4.3.2 采购管理模块实现

采购管理模块包括三个模块,实现商品采购入库,也可添加商品及供货商。如图4.6所示:

图4.6采购管理模块

4.3.3 经营分析模块实现

“经营分析”功能模块用于统计和分析超市的经营数据,供超市决策者作为决策依据。

经营分析的功能主要是对超市的历史有用数据进行统计分析,通过直观的形式表现出来,图表的形式表现出来是不错的选择。还可以分时段销售对比等。

该部分是本系统的一个难点,采用C#.NET和FLASH的动态交互技术,如图4.7所示:

图4.7经营分析模块

14

XXX毕业设计(论文)

4.3.4 库存管理模块实现

该模块主要是盘点仓库各商品的剩余库存,查询,设置库存预警等功能。如图4.8所示:

图4.8库存管理模块

4.3.5系统维护模块实现

系统维护包括对数据库的备份恢复,用户信息管理和密码更改,如图4.9所示:

图4.9系统维护模块

4.4小结

完成系统的设计实现后,为确保系统能正常高效运行,需要对系统进行测试,下面将进行介绍。

15

XXX:基于.NET的超市管理系统的设计与实现

第5章 测试

软件测试通常是软件开发的最后一个阶段了,这是为了发现程序错误而执行程序的一个过程。它会根据根据软件开发的需求来设计一些测试用例,使用这些测试用例去执行我们的程序,尽量发现程序错误的过程。软件测试是整个软件开发过程中非常重要的一个阶段。目标是在精心设置、控制的环境下执行程序,努力发现程序中的错误,科学的给出程序可靠性的结果。

5.1 测试用例

使用的主要测试用例如下表5.1与表5.2所示:

表5.1用户登录测试用例表 测试项目 用户登 录测试 测试内容 预期结果 用户登录 成功进入系统界面 用户登录 提示错误 实测工作 输入正确用户名和密码 实测结果 进入系统界面 可用的菜单不同 输入错误用户名或密码等 登录出错,提示错误 用户权限 权限不同界面有差别 登录不同权限的账号 表5.2信息管理测试用例表 测试项目 测试内容 信息 管理测试 添加商品、供应商等 删除操作 修改信息 预期结果 成功添加 成功删除 成功修改 实测工作 输入正确格式信息 实测结果 向数据库表中添加相应记录 从数据库中删除对应信息 单击对应的删除按钮 点击相应的修改按钮,修改信息 将更新后的信息写入数据库 5.2 测试结果

对系统菜单测试:为保证各项菜单能够实现其设计的功能,对各菜单进行增、删、查、改等相应的操作,确保其能正确运行。 5.2.1用户登录

(1)在登录框输入错误的用户名或者密码如下图5.1所示:

图5.1登录失败

16

XXX毕业设计(论文)

(2)输入正确的用户名和密码,(管理员登录)管理员账号测试结果如下图5.2所示:

图5.2管理员界面

(3)输入正确的用户名和密码,财务账号测试结果如下图5.3所示:

图5.3财务界面

5.2.2信息管理

主要有商品、供应商、人员、仓库、合同等基本信息的增删改查的测试。这里至列出商品信息的测试。

17

XXX:基于.NET的超市管理系统的设计与实现

(1)新增商品(输入相应信息,验证通过后,点击保存按钮),测试结果如下图5.4所示:

图5.4 新增商品

(2)修改(输入需要修改的信息后保存)如下图5.5所示:

图5.5修改商品信息

18

XXX毕业设计(论文)

(3)删除(选择要删除的记录后点击删除),如下图5.6及图5.7所示:

图5.6删除商品

图5.7 删除成功

5.2.3库存管理

(1)库存查询,默认查询出全部,也可根据商品条形码查询具体的商品,如图5.8所示:

图5.8 库存查询

19

XXX:基于.NET的超市管理系统的设计与实现

(2)库存报警设置,选择一个仓库,点击相应的商品即可设置预警数量。如图5.9所示:

图5.9 库存预警设置

5.3小结

测试通过后,这个系统就算基本完成了,再这个过程中,有许多不会的,有许多要学习总结的,将在下面介绍。

20

XXX毕业设计(论文)

第6章 结论

经过基于.NET的超市管理系统设计与实现的毕业设计的开发,使我对.NET开发平台有了更多的体会。在开发过程中,由于自己过去对.NET的相关知识实践不够;因而实践经验方面确实存在着些许不足。因为开发该软件之前,我查询资料,认识了超市管理的相关专业概念并对该系统的需求做了详细的分析,所以后期系统实现时并未在需求上对系统作过大的改动,这也是该软件能顺利完成的一个主要原因。当然,人无完人,难免会考虑不全,系统还存在着一些不足需要改进,有些功能实现方式还可以优化,代码重用还不够等等。在系统功能上,还有一些是我还没有考虑到的,毕竟对有些业务不熟悉,所以此系统还有二次开发空间。

但是,我觉得学习一个新的技术能学习成能开发出一个用使用意义的系统是不容易的,这也使得我对知识的渴望和追求有了更多的进步。在整个软件的设计与实现过程中体会到最初设计的不易,经历过就会成长,就是收获。首先就是始终要有对项目的兴趣、爱好、激情和积极向上追求的思维;其次必须要有广博的知识、文献和技术人员,可供搜索,能去查阅,联络访问;再次要有不怕困难的决心和恒心,也更要有耐心和信心,面对困难疑惑要静心与细心,一张一弛,才能更好的解决问题;最后最好还要有一定的时间,去针对各个细节,逐个排查解决问题,应付设计各种过程的考验;这里整个系统的设计与实现接近尾声,个人最大的收获就是对软件设计模式以及软件工程的学习。

最后,在调试的时候有比较多的困难;有很多小的地方还需要仔细斟酌,通过这个系统的开发,汇集了这四年来的所学,锻炼了自己的实践能力,特别是整体把握项目的能力。经过这段时间的努力,在导师的细心指导与帮助下,毕业设计最终基本完成了预定的目标。毕业设计的实践,确实学到了课本上没有学到的许多东西,这使得我不仅在知识水平上提高不少,更是在实践动手能力上得到了提高。

由于此次设计时间关系,还有不少方面研究问题没做,这些可以当做自己的发展方向:

1.信息爆炸的时代各类信息瞬息万变,数据信息共享方面的了解。 2.软件的整体设计还不够完善,仍需进步一扩展。

3.与.NET相关的一些安全技术,例如XML加密与XML签名以及SOAP安全性、.NET数据传输过程的数据压缩、传输效率等。

21

XXX:基于.NET的超市管理系统的设计与实现

致谢

本论文最终得以顺利完成,基本达到预期效果,非常感谢XX老师的虚心指导。从论文开始选题到完成,她给予了许多的帮助与指导。

感谢XX老师,她严谨的学风、渊博的知识、诲人不倦的品格将一直感染我、激励着我不断攀向高峰,为大学四年画上一个完美的句号。“厚德达理,励志勤工”,在这里我所学到的知识与为人处事,终将使我受益终生。

人无完人,自己所学的知识还有欠缺,所以在本论文的写作中,我也参照了许多的著作和文章来论证自己的观点,这些优秀的成果及成熟的思路给我很大启发,在此我也向这些学者们作出的成果表示由衷的感谢。同时感谢我的家人、同学的支持,感谢所有关心、帮助和支持我的人,因为有你们我才能飞得更高,走得更远。

本论文虽修改了多次,但由于才疏学浅,难免会有疏漏之处,还望各位老师批评指正。

22

XXX毕业设计(论文)

参考文献

[1]张海藩.软件工程导论第四版[M].北京:清华大学出版社,2003年12月

[2]Scott Seely著,杨涛,王建桥等译.SOAP:XML跨平台web Services开发技术[M].北京:机械工业出版社,2002年4月

[3] 顾宁,刘家茂,柴晓路等编著.Web Services原理与研发实践[M].北京:北京机械工业出版社,2007年9月

[4] Joseph Bustos,Karli Watson著,曹彧译..NET .NET入门经典:C#编程篇[M].北京:清华大学出版社,2003年3月

[5] Angshuman Chakraborti等著,唐云深,赵世华等译..NET Framework专业项目实例开发[M].北京:中国水利水电出版社,2003年6月

[6] Scott Allen等著,C#数据库参考手册,郝启堂,张哲峰译[M].北京:清华大学出版社,2003年2月

[7]微软公司著.NET框架2.0类库参考手册[M].北京:清华大学出版社,2004年1月 [8]Jeffrey Richte著.Microsoft.NET Frameworks[M].北京:清华大学出版社,2006年4月

[9]李勇平,陈峰波编著.ASP.NET(C#)基础教程[M].北京:清华大学出版社,2006年2月

[10]莫勇腾,王毅编著.深入浅出设计模式[M].北京:人民邮电出版社,2007年12月 [11]萨师煊,王珊编著.数据库系统概论(第三版)[M].北京:高等教育出版社,2000年2月

[12] 牛丽平,郭新志等编著.UML面向对象设计与分析基础教程[M].北京:清华大学出版社,2007年7月

23

XXX:基于.NET的超市管理系统的设计与实现

附录

附录A: 主要源程序 超市管理系统的源程序

//-------------------------------------------------------------------------- //加密与解密 publicclassDESEncrypt {

public DESEncrypt() { }

#region ========加密======== ///加密

publicstaticstring Encrypt(string Text) {

return Encrypt(Text,\); }

///加密数据

publicstaticstring Encrypt(string Text,string sKey) {

DESCryptoServiceProvider des = newDESCryptoServiceProvider(); byte[] inputByteArray;

inputByteArray=Encoding.Default.GetBytes(Text); des.Key =

ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, \).Substring(0, 8)); des.IV =

ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, \).Substring(0, 8));

System.IO.MemoryStream ms=new System.IO.MemoryStream();

CryptoStream cs=newCryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray,0,inputByteArray.Length); cs.FlushFinalBlock();

StringBuilder ret=newStringBuilder(); foreach( byte b in ms.ToArray())

24

XXX毕业设计(论文)

{

ret.AppendFormat(\,b); }

return ret.ToString(); } #endregion

#region ========解密======== ///解密

publicstaticstring Decrypt(string Text) {

return Decrypt(Text,\); }

///解密数据

publicstaticstring Decrypt(string Text,string sKey) {

DESCryptoServiceProvider des = newDESCryptoServiceProvider(); int len;

len=Text.Length/2;

byte[] inputByteArray = newbyte[len]; int x,i;

for(x=0;x

{ i = Convert.ToInt32(Text.Substring(x * 2, 2), 16); inputByteArray[x]=(byte)i; } des.Key =

ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, \).Substring(0, 8)); des.IV =

ASCIIEncoding.ASCII.GetBytes(System.Web.Security.FormsAuthentication.HashPasswordForStoringInConfigFile(sKey, \).Substring(0, 8));

System.IO.MemoryStream ms=new System.IO.MemoryStream();

CryptoStream cs=newCryptoStream(ms,des.CreateDecryptor(),CryptoStreamMode.Write); cs.Write(inputByteArray,0,inputByteArray.Length); cs.FlushFinalBlock();

returnEncoding.Default.GetString(ms.ToArray()); } #endregion }

//--------------------------------------------------------------------------

25

XXX:基于.NET的超市管理系统的设计与实现

//经营分析模块代码 namespace jxcmgr {

publicpartialclassFrmJYFX : Form {

public FrmJYFX()

{InitializeComponent();} string goodid = \; //商品ID int stock, pfsold, retail, buy = 0;

BLL.商品清单 goodlist = new jxcmgr.BLL.商品清单(); BLL.库存库 bllstock = new jxcmgr.BLL.库存库();

BLL.进货单明细 bllindetails = new jxcmgr.BLL.进货单明细(); BLL.销售单明细 bllsolddetails = new jxcmgr.BLL.销售单明细(); BLL.零售单明细 bllretail = new jxcmgr.BLL.零售单明细(); protectedstaticFrmJYFX instance = null; publicstaticFrmJYFX GetInstance() { if (instance == null) {

instance = newFrmJYFX(); } return instance; }

#region //下拉列表操作

privatevoid lbgoodspell_Click(object sender, EventArgs e) {lbgoodspell.Visible = false;}

privatevoid lbgoodspell_SelectedIndexChanged(object sender, EventArgs e) {this.tbcode.Text = this.lbgoodspell.SelectedItem.ToString();} privatevoid lbgoodspell_KeyDown(object sender, KeyEventArgs e) {

KeyDownListBox(tbcode, lbgoodspell, e); } ///

/// listbox键盘事件,(共用) ///

publicvoid KeyDownListBox(TextBox textbox, ListBox listbox, KeyEventArgs e) {

if (e.KeyCode == Keys.Enter)

26

XXX毕业设计(论文)

{

if (listbox.SelectedItem != null) {

textbox.Text = listbox.SelectedItem.ToString(); listbox.Visible = false; textbox.Focus(); listbox.Items.Clear(); } }

elseif (e.KeyCode == Keys.Up && listbox.SelectedIndex == 0) {

listbox.Items.Clear(); listbox.Visible = false; textbox.Focus(); }

if (e.KeyCode == Keys.Back) {

textbox.Focus(); } } #endregion

#region // 商品拼音码文本框变化 ///

///商品拼音码文本框变化 ///

privatevoid tbcode_TextChanged(object sender, EventArgs e) {

GetGoodsNameForSpellcode(tbcode, lbgoodspell); } ///

///通过拼音码获取商品名称 ///

publicvoid GetGoodsNameForSpellcode(TextBox textbox, ListBox listbox) {

if (string.IsNullOrEmpty(textbox.Text)) {

listbox.Items.Clear(); listbox.Visible = false;

27

XXX:基于.NET的超市管理系统的设计与实现

} else

{

if (goodlist.GetModelList(\拼音编码like '\ + textbox.Text.Trim().ToString().Trim() + \) != null) {

listbox.Items.Clear();

for (int i = 0; i < goodlist.GetModelList(\拼音编码like '\ + textbox.Text.Trim().ToString().Trim() + \).Count; i++) {

listbox.Items.Add(goodlist.GetModelList(\拼音编码like '\ + textbox.Text.Trim().ToString().Trim() + \)[i].品名);

} } if (listbox.Items.Count > 0) {

listbox.Visible = true; } else

listbox.Visible = false; } } #endregion

#region //经营分析

privatevoid btnfenxi_Click(object sender, EventArgs e) //经营分析事件,生成FLASH {

goodid =

goodlist.GetGoodsIdByName(tbcode.Text.Trim().ToString().Trim()).ToString(); if (goodid==\) {

MessageBox.Show(\商品不存在!\,\提示\); return; }

stock = GetStockCount(); // 计算库存数量 buy = GetBuyCount(); //计算采购数量 pfsold = GetSoldCount(); //计算批发销售数量 retail = GetRetailCount();//计算零售数量

WriteToXML(); //将要分析的商品相应值写入XML文件中 }

28

XXX毕业设计(论文)

///

///将数据写入XML文件 ///

publicvoid WriteToXML() {

flash.Movie = \; flash.Update(); flash.Refresh();

XmlDocument XmlDoc = newXmlDocument();

XmlDoc.Load(Application.StartupPath + \); XmlNode pietitle = XmlDoc.SelectSingleNode(\);

pietitle.InnerText = \商品—\ + tbcode.Text.Trim() + \经营分析图,170,40,16,true,0xEEEEEE\; XmlNode pienum = XmlDoc.SelectSingleNode(\);

pienum.InnerText = stock + \ + buy + \ + retail + \ + pfsold; XmlDoc.Save(Application.StartupPath + \); flash.Movie = Application.StartupPath + \; } ///

///计算库存数量 ///

privateint GetStockCount() {

decimal stockcount = 0;

stockcount = Convert.ToDecimal(bllstock.GetModelList(\货号=\ + goodid.Trim())[0].库存数量); //库存数量

returnConvert.ToInt32(stockcount); } ///

///获取进货数量 ///

privateint GetBuyCount() {

decimal buycount = 0;

DataSet ds = bllindetails.Analasy(goodid, tbdate1.Text.Replace(\, \).Trim(), tbdate2.Text.Replace(\, \).Trim()); //进货数量 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {

buycount += Convert.ToDecimal(ds.Tables[0].Rows[i][0].ToString().Trim());

29

XXX:基于.NET的超市管理系统的设计与实现

}

returnConvert.ToInt32(buycount); } ///

///获取批发销售数量 ///

privateint GetSoldCount() {

decimal soldcount = 0;

DataSet ds = bllsolddetails.Analasy(goodid, tbdate1.Text.Replace(\, \).Trim(), tbdate2.Text.Replace(\, \).Trim()); //批发销售数量 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {

soldcount += Convert.ToDecimal(ds.Tables[0].Rows[i][0].ToString().Trim()); }

returnConvert.ToInt32(soldcount); } ///

///获取零售销售数量 ///

privateint GetRetailCount() {

decimal soldcount = 0;

DataSet ds = bllretail.Analasy(goodid, tbdate1.Text.Replace(\, \).Trim(), tbdate2.Text.Replace(\, \).Trim()); //零售数量

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {

soldcount += Convert.ToDecimal(ds.Tables[0].Rows[i][0].ToString().Trim()); }

returnConvert.ToInt32(soldcount); } #endregion } }

//--------------------------------------------------------------------------

30

XXX:基于.NET的超市管理系统的设计与实现

}

returnConvert.ToInt32(buycount); } ///

///获取批发销售数量 ///

privateint GetSoldCount() {

decimal soldcount = 0;

DataSet ds = bllsolddetails.Analasy(goodid, tbdate1.Text.Replace(\, \).Trim(), tbdate2.Text.Replace(\, \).Trim()); //批发销售数量 for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {

soldcount += Convert.ToDecimal(ds.Tables[0].Rows[i][0].ToString().Trim()); }

returnConvert.ToInt32(soldcount); } ///

///获取零售销售数量 ///

privateint GetRetailCount() {

decimal soldcount = 0;

DataSet ds = bllretail.Analasy(goodid, tbdate1.Text.Replace(\, \).Trim(), tbdate2.Text.Replace(\, \).Trim()); //零售数量

for (int i = 0; i < ds.Tables[0].Rows.Count; i++) {

soldcount += Convert.ToDecimal(ds.Tables[0].Rows[i][0].ToString().Trim()); }

returnConvert.ToInt32(soldcount); } #endregion } }

//--------------------------------------------------------------------------

30

本文来源:https://www.bwwdw.com/article/znkp.html

Top