优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

商场管理系统

以下是资料介绍,如需要完整的请充值下载.
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
  
资料介绍:
系统分析
作为一个商场管理系统,其功能是实现商场中商品的进货销售,库存等管理的系统化、规范化和自动化。本系统主要要完成的功能有:
(1)交易管理:包括进货登记、销货登记、退货登记等。其中进货登记中还包含进货商登记,如过是新的进货厂商,可以直接在此登记入库。进货和销售的主要交易都是在此进行。每次交易(包括进货、销货和退货)都需要对商品名称、生产厂商、商品型号、单价、数量、总金额、交易日期、经手业务员编号等各项记录。在交易过程中,程序的编写尽可能的方便员工进行交易,比如:进货登记时,如果商品编号相同,则自动添加该商品的其它属性;销货登记时,用户只要输入商品编号,该商品的其它属性即可自动出现。退货登记时,只要输入正确的销货编号,其销售信息也将自动列出,尽量的方便了用户的操作,同时对于登陆的员工编号程序也自动的将其列在进货登记、销货登记中,已防止员工进行非正常的交易。
(2)进货统计:包括今日进货统计、本月进货统计、本季度进货统计、本季度进货统计、本年度进货统计等。其中每次进货统计都是按进货厂商和进货总金额统计显示的。使用一个表格显示所选时间段的全部进货数据,包括进货编号、商品名称等。再使用另一个表格显示分别从各个厂商进货的金额,还有一个文本框用于显示次时间段的进货总金额。 [资料来源:www.THINK58.com]
(3)销货统计:包括今日销售统计、本月销售统计、本季度销售统计、本年度销售统计等,其中每次销售统计都是按生产厂商和销售总金额统计显示的。使用一个表格显示所选时间段的全部销售数据,包括销货编号、商品名称等。再使用另一个表格显示分别从各个厂商进货的金额,还有一个文本框用于显示次时间段的销售总金额。
(4)查看数据表:实现各种数据表的浏览,包括进货表,商品库存表、销售表、退货表、员工表、进货商表等。对于员工表管理员还可以对其进行删除或添加用户操作。
(5) 系统管理: 包括更换用户、修改密码、退出系统等。更换用户的操作方便了用户的使用,同时更加方便了管理员对于系统数据的查询,可以做到随时查看,以使管理员对帐目一目了然,同时方便了普通用户的交接班使用本系统。修改密码和退出系统都是对于系统管理的辅助功能,再这里就不详细说明了。
(6) 其它窗体: 包括主窗体、登陆窗体、系统初始化窗体。主窗体就是将各个模块的大意列在菜单中,然后通过每一个菜单将其它的窗体逐个对应的连到主窗体中。登陆窗体为本系统的启动窗体,其功能是让合法的用户使用本系统,已防止其它的非法人员使用该系统。并对登陆的用户做一下权限的区别:分为管理员和普通员工。系统初始化窗体的主要目的是:在本系统的试运行阶段成功后是管理员可以直接把除了员工表以外的所有数据表的内容清零。登陆窗体中设计了一个权限,可以区分是员工登陆还是管理员登陆,如果是管理员则提示是否进行系统初始化,否则直接进入主窗体。 [版权所有:http://think58.com]
其功能模块图请查看附图。
2.2数据库设计
上面提到的各种功能的实现都离不开数据库的支持,因此数据库设计作为本系统设计的一部分不可缺少。开发本系统中使用的数据库系统是Windows Access 2000 。从上面的功能分析不难看出本系统需要建立以下几个数据表:buy表(进货表)、goods表(现存商品表)、sell表(销售表)、retreat表(退货表)、employee表(员工表)、manufacturer表(进货商表)。由于数据量比较小,所以这些数据表都存在一个数据库下:sellsystem.mdb      
下面对各个数据表的结构做一下简单介绍:
在系统的数据库设计中,进货表、销货表、商品库存表和退货表涉及了交易管理三个子菜单的绝大部分数据,是本系统数据库的核心,所以将对其部分表的设置列表显示。
Manufacturer表(进货商表)中包括有厂商编号、厂商名称、联系人姓名、电话、厂商地址等字段,表略。
employee(员工表)中包括有员工编号、员工姓名、员工密码、员工电话、员工地址等字段,表略。
buy表(进货表)中包括有进货编号、商品编号、商品名称、生产厂商、型号、数量、进货价、进货年、进货月、进货日、总金额、业务员编号等。设计该数据表的主要目的是方便管理员的查看,使系统的数据管理能够更加层次化。

本文来自think58

[资料来源:http://think58.com]


系统测试
本章是对商场管理系统进行全面测试,目的在于屏蔽掉系统无法识别的多种非法操作。已防止在用户对本系统进行使用时错误操作造成系统出错。
在本商场管理系统所有界面和功能都已设计完毕后,需要对其进行一下测试,以屏蔽掉许多的非法操作,进一步完善本商场管理系统。具体测试结果如下:
(1)对交易管理模块进行测试:
在进货登记窗体中,发现对于进货编号系统需要对其进行唯一设定,即入库登记时进货编号应是buy(进货表)表中所没有的。所以需要先屏蔽掉该处的非法操作。具体做法是:在窗体级变量中定义一个变量rs_buy,作为对buy(进货表)表的记录集。让记录集连接到一个指定进货编号为进货登记窗体中文本框text2的text属性的值的进货表记录中,如果该记录的编号与正在添加的进货信息中的进货编号一致,则提示用户该编号已无法使用。
其实现主要代码如下所示:
Dim rs_buy As New ADODB.Recordset   ‘ 定义连接buy表的记录集
Dim str_buy As String             ‘ 定义连接SQL的连接字符串
Private Sub Command1_Click()          ‘ 单击商品入库按钮事件 think58

[资料来源:www.THINK58.com]


str_buy = "select * from buy where 进货编号='" & Text1.Text & "'"
rs_buy.Open str_buy, cnn, adOpenStatic, adLockOptimistic 
If rs_buy.EOF = True Then
rs_buy.AddNew          
rs_buy.Fields("进货编号") = Text1.Text
……’将进货信息添加到buy(进货表)表中
rs_buy.Update
rs_buy.Close                               ' 关闭进货表
Else
MsgBox "此进货编号已存在,请重添!", vbOKOnly + vbInformation, "注意"
Text1.Text = ""
Text1.SetFocus
rs_buy.Close
  Exit Sub
End If
End Sub
对于进货信息入库操作中,需要对商品编号进行核对,如果新输入的商品编号为goods表所有,则直接将该添加信息的数量添加到goods表相对应的记录上即可。同时为了方便用户的操作,在输入商品编号的文本框text2的Change事件里设定了关于已存在商品编号的处理:将该商品的其它属性自动添加到该窗体的对应文本框中。进货商信息的添加一样需要屏蔽掉相同的厂商编号。

[资料来源:THINK58.com]


 在销货登记窗体中,销货编号也要保持其唯一性,具体做法与上面所说的屏蔽进货编号大体一致,这里就不在说明了。同时为了方便用户的操作,在输入商品编号的文本框text2的Change事件里设定了关于已存在商品编号的处理:将该商品的其它属性自动添加到该窗体的对应文本框中。进货商信息的添加一样需要屏蔽掉相同的厂商编号。
在退货登记窗体中,先对退货编号的唯一性进行一下设定,具体做法同进货编号唯一性的设定一致,这里也不在详细说明了。
(2)对进货统计模块的测试:
由于本模块中四个字菜单的窗体界面大体一致,所以我只对其一个界面的测试进行一下介绍:在今日进货子菜单中,首先发现在buy表为空的时候,8个命令按纽的点击将产生非法操作,也就是记录集无法实现上下移动。具体修改操作如下:先定义一个窗体集的变量rs_buy,用来对进货表进行操作,将该记录集要打开的SQL语句中添加一个buy表的打开操作,如果打开该窗体发现没有记录,则将8个Command命令按纽的Enable属性设为False。其它三个子菜单的测试也产生了同样的错误,也需要对3个子菜单中的8个Command命令按纽进行相对屏蔽,在这里就不详细介绍了。其相关代码如下所示:
Dim rs_buy As New ADODB.Recordset   ‘ 定义连接buy表的记录集
[资料来源:http://www.THINK58.com]

Dim str_buy As String             ‘ 定义连接SQL的连接字符串
Private Sub mnBuyToday_Click()    ‘ 单击今日进货统计菜单事件
strbuy = "select * from buy where 进货年=" & inty & " and 进货月=" & intm & " and 进货日=" & intd & " "
rs_buy.Open strbuy, cnn, adOpenKeyset, adLockPessimistic
frmBuyall.Adodc1.RecordSource = strbuy  
frmBuyall.Adodc1.Refresh
frmBuyall.DataGrid1.ReBind
If rs_buy.EOF = True Then
frmBuyall.Adodc5.RecordSource = strbuy
frmBuyall.Adodc5.Refresh
frmBuyall.DataGrid5.ReBind