小型自选商场综合管理系统系统设计及实施
小型自选商场综合管理系统设计及实施
1. 系统设计
系统功能模块设计:
(1)商品信息模块
最新商品浏览:将最新的增加的前3条商品显示出来。
商品分类浏览:按商品类别信息浏览商品。
商品名称快速搜索:按商品名称快速搜索所需商品,并可进行模糊查询。
(2)购物功能模块
添加商品到购物车:用户选中商品并添加到购物车。
用户填写订单:用户填写商品数量等购买信息。
商品购买、结账、购物信息查看:购买数量小于商品库存数量购买成功,
账户余额大于 所购商品金额,结账成功。用户查看购物车。
(3)用户信息管理模块
注册新用户:新用户进行注册,并进行账户充值。
登录:购物时需要登录系统。输入用户名、密码进行验证。
修改密码:取消旧密码,保存新密码。
个人详细资料修改:对用户个人信息进行修改。
账户充值:用户查询余额并对账户进行充值。
查看购物车:用户对在本网站所购商品情况进行查看。
(4)系统管理模块
用户信息浏览:管理员浏览用户注册的个人信息并确认其账户的充值金
额。
商品信息管理:对库存的商品进行增加、删除、修改。
商品销售信息查询:可按月、日进行销售记录查询、
2. 系统实施:
开发环境:
(1)操作系统:Windows 7。
(2)web 开发工具:JSP 、Html 等。
(3)脚本语言:Vb 、Javascript 。
(4)数据库:access 数据库
代码设计1:
Option Explicit
Public LoginSucceeded As Boolean
Private Sub cmdCancel_Click()
'设置全局变量为 false
'不提示失败的登录
LoginSucceeded = False
Me.Hide
End Sub
Private Sub cmdOK_Click()
'检查正确的密码
If Not IsNull(Me.DCboUserName.SelectedItem) Then
If txtPassword = Me.DCboUserName.BoundText Then
'将代码放在这里传递
'成功到 calling 函数
'设置全局变量时最容易的
LoginSucceeded = True
strCurUser = Me.DCboUserName.Text
Me.Hide
Else
MsgBox "无效的密码,请重试!", , "登录"
txtPassword.SetFocus
SendKeys "{Home}+{End}"
End If
Else
MsgBox "请选择用户名!", , "登录"
Me.DCboUserName.SetFocus
End If
End Sub
代码设计2:
Option Explicit
Private rsSys As ADODB.Recordset
Private cmSys As ADODB.Command
Private Sub MDIForm_Load()
Dim strSQL As String
strSQL = "select offline from r_parameter"
Set rsSys = New ADODB.Recordset
rsSys.Open strSQL, DEjxc.Conjxc, adOpenDynamic, adLockOptimistic
rsSys.MoveFirst
If rsSys!offline Then
Me.mnuAct_dj.Enabled = False
Me.mnuSql.Enabled = False
Me.mnuReport.Enabled = False
Me.mnuSys_trans.Enabled = False
Me.mnuSys_start.Enabled = True
Me.mnuSys_begqty.Enabled = True
Else
Me.mnuAct_dj.Enabled = True
Me.mnuSql.Enabled = True
Me.mnuReport.Enabled = True
Me.mnuSys_trans.Enabled = True
Me.mnuSys_start.Enabled = False
Me.mnuSys_begqty.Enabled = False
End If
rsSys.Close
Set cmSys = New ADODB.Command
cmSys.ActiveConnection = DEjxc.Conjxc
cmSys.CommandType = adCmdText
End Sub
Private Sub MDIForm_QueryUnload(Cancel As Integer, UnloadMode As Integer) Call mnuExit_Click
If intNumWindows > 0 Then
Cancel = True
End If
Set rsSys = Nothing
Set cmSys = Nothing
End Sub
Private Sub mnuEdit_other_Click()
FrmOtherEdit.Show
End Sub
Private Sub mnuEdit_ps_Click()
FrmPsEdit.Show
End Sub
Private Sub mnuEdit_sales_Click()
FrmSaleEdit.Show
End Sub
Private Sub mnuExit_Click()
If intNumWindows = 0 Then
Unload Me
Else
MsgBox "请关闭所有子程序后再关闭该主程序!", vbCritical, "提示" End If
End Sub
Private Sub mnuRec_other_Click()
FrmOtherChk.Show
End Sub
Private Sub mnuRec_ps_Click()
FrmPsChk.Show
End Sub
Private Sub mnuRec_sales_Click()
FrmSaleChk.Show
End Sub
Private Sub mnuReport_DetailUse_Click()
FrmRptDetUse.Show
End Sub
Private Sub mnuReport_Mat_Click()
FrmRptMat.Show
End Sub
Private Sub mnuReport_TotalUse_Click()
FrmRptTotUse.Show
End Sub
Private Sub mnuReport_TotalYearUse_Click()
FrmRptYearUse.Show
End Sub
Private Sub mnuSet_department_Click()
FrmSetDep.Show
End Sub
Private Sub mnuSet_employee_Click()
FrmSetEmp.Show
End Sub
Private Sub mnuSet_product_Click()
FrmSetPro.Show
End Sub
Private Sub mnuSet_protype_Click()
FrmSetPrTy.Show
End Sub
Private Sub mnuSet_supplier_Click()
FrmSetSup.Show
End Sub
Private Sub mnuSql_djother_Click()
FrmOtherSql.Show
End Sub
Private Sub mnuSql_djps_Click()
FrmPsSql.Show
End Sub
Private Sub mnuSql_djsales_Click()
FrmSaleSql.Show
End Sub
Private Sub mnuSys_begqty_Click()
FrmSetMattmp.Show
End Sub
Private Sub mnuSys_delete_Click()
Dim intDel As Integer
Dim strSQL As String
intDel = MsgBox("确认要删除所有资料码?", vbInformation + vbYesNo, "删除确认")
If intDel = vbYes Then
strSQL = "delete from department"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from employee"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from mat_detail"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from mat_head"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "select p_id,qty,price into mat_tmp from mat_head"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "drop table mat_head"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "select p_id,qty,price into mat_head from mat_tmp"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "update mat_head set qty=0,price=0"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "drop table mat_tmp"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from product"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from product_type"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from supplier"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from order_detail_a"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from order_detail_b"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from ps_head_a"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from ps_head_b"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from other_head_a"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from other_head_b"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from sale_detail_a"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from sale_detail_b"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from sale_head_a"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "delete from sale_head_b"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "update r_parameter set offline=true,psnumber=0"
cmSys.CommandText = strSQL
cmSys.Execute
MsgBox "资料删除完毕!", vbInformation, "资料删除"
End If
Me.mnuAct_dj.Enabled = False
Me.mnuSql.Enabled = False
Me.mnuReport.Enabled = False
Me.mnuSys_trans.Enabled = False
Me.mnuSys_start.Enabled = True
Me.mnuSys_begqty.Enabled = True
End Sub
Private Sub mnuSys_start_Click()
Dim strBeg As String
Dim strYear, strMonth As String
Dim strSQL As String
strBeg = InputBox("请输入系统启用时间", "系统启用", CStr(Date))
If IsDate(strBeg) Then
strYear = Right(CStr(Year(CDate(strBeg))), 2)
strMonth = Format(CStr(Month(CDate(strBeg))), "0#")
strSQL = "alter table mat_head add column qty" & strYear & strMonth _ & " single"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "alter table mat_head add column price" & strYear & strMonth _ & " currency"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "update mat_head set qty" & strYear & strMonth & "=qty," & _ " price" & strYear & strMonth & "=price"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "update r_parameter set pass_date=cdate('" & strBeg & _ "'),offline=false,monthdate=cdate('" & strBeg & "')"
cmSys.CommandText = strSQL
cmSys.Execute
Me.mnuAct_dj.Enabled = True
Me.mnuSql.Enabled = True
Me.mnuReport.Enabled = True
Me.mnuSys_trans.Enabled = True
Me.mnuSys_start.Enabled = False
MsgBox "系统已正式启用!", vbInformation, "系统启用"
MsgBox "日期格式错误!", vbCritical, "启用错误"
Exit Sub
End If
End Sub
Private Sub mnuSys_trans_Click()
Dim strBeg As String
Dim strYear, strMonth As String
Dim strSQL As String
strBeg = InputBox("请输入月终结转时间", "月终结转", CStr(Date))
If IsDate(strBeg) Then
strSQL = "select monthdate from r_parameter"
Set rsSys = New ADODB.Recordset
rsSys.Open strSQL, DEjxc.Conjxc, adOpenDynamic, adLockOptimistic rsSys.MoveFirst
If Format(CDate(strBeg), "yyyy-mm") > Format(rsSys!monthdate, "yyyy-mm") Then
strYear = Right(CStr(Year(CDate(strBeg))), 2)
strMonth = Format(CStr(Month(CDate(strBeg))), "0#")
strSQL = "alter table mat_head add column qty" & strYear & strMonth _ & " single"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "alter table mat_head add column price" & strYear & strMonth _
& " currency"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "update mat_head set qty" & strYear & strMonth & "=qty," & _ " price" & strYear & strMonth & "=price"
cmSys.CommandText = strSQL
cmSys.Execute
strSQL = "update r_parameter set monthdate=cdate('" & strBeg & _ "')"
cmSys.CommandText = strSQL
cmSys.Execute
MsgBox "月份结转完毕!", vbInformation, "月终结转"
Else
MsgBox "该月份已经月终结转!", vbCritical, "月终结转错误"
End If
Else
MsgBox "日期格式错误!", vbCritical, "启用错误"
Exit Sub
End Sub
Private Sub mnuSys_user_Click()
FrmSetUser.Show
End Sub
Private Sub MDIForm_Click()
frmlogo.Show
End Sub
库存管理系统流程图
进货系统流程图
小型超市管理系统的E-R 图
3. 数据存储设计
完成该管理信息系统的数据存储总体设计方案,明确数据存储中表的结构,各表中关键字的设置。
员工表(StaffTable )
进货表(ImportTable )
供货商号(profferTable )
库存表(StoreTable )
月销售表(MonthSaleTable)
4. 数据库物理设计
数据库物理结构设计的主要任务是:对数据库中的数据,在物理设备上的存放结构和存取方法进行设计,索引的设计等。数据库的物理结构依赖于确定的计算机系统,并于选用的DBMS 密切相关。物理设计的任务是为了有效的实现逻辑模式,确定所采取的存储策略。此阶段以逻辑设计的结果作为输入,结合具体DBMS 的特点与存储设备特性进行设计,选定数据库在物理设备上的存储结构和存取方法。
5. 输入输出设计
管理信息系统只有通过输出才能为用户服务。信息系统能否为用户提供准确、及时、实用的信息是评价信息系统好坏的标准之一,也就是说,输出信息的内容与格式等是用户最关心的部分。因此,在系统设计中,是先根据管理和用户的需求进行输出设计,然而反过来根据输出所要求获得的信息进行输入设计。 (1)输入设计
输入设计的目标是保证向系统输入正确的数据。
输入设计的原则
输入设计应遵循以下原则:
最小量原则:这是指在保证满足处理要求的前提下使输人量最小。由于数据输入与计算机处理比较起来相对慢,在数据录入时,系统大多数时间都处于等待状态,系统效率将显著降低;同时,数据录入工作一般需要人的参与,大量的数据录入往往浪费很多的人力资源,增加系统的运行成本。因此,输入量越少,出错机会越少,花费时间越少,数据一致性越好。
简单性原则:输入的准备、输入过程应尽量容易,以减少错误的发生。这主要是因为输入设计在为用户提供纠错和输入校检的同时,就保证了输入过程简单易用,就保证了不会因为差错,纠错而使输入复杂化,增加用户负担。
早检验原则:对输人数据的检验尽量接近原数据发生点,使错误能及时得到改正。因此输入设计中应采用多种输入校检方法和有效性验证技术,以减少输入错误。
少转换原则:输入数据尽量用其处理所需形式记录,减少不必要的输入步骤,当步骤不能省时,应仔细验证现有步骤是否完备,以免数据转换介质时发生错误。本系统的主要输出为文本形式。
输入格式设计
输入格式的设计一般是指数据录入人员在终端屏幕上看到的凭证格式。其设计格式的原则是使录入人员能方便的输入数据,尽量避免操作失误。
(2)输出设计
输出设计的内容包括:有关输出信息使用方面的内容;输出方式;输出设备;输出介质。
输出设计的方法
在系统设计阶段,设计人员应给出系统输入的说明,这个说明既是将来编程人员在软件开发中进行实际输出设计的依据,也是用户评价系统实用性的依据。因此,设计人员要选择合适的输出方式,并以清楚的方式表达出来。输出形式主要有报表信息和图形化信息。
本系统的输出为表格形式,主要包括用户信息,书籍信息和订单信息。