小型自选商场综合管理系统设计及实施
1.系统设计
系统功能模块设计:
浏览商品 搜索商品 商品信息模块 购物车 电子购物功能模块 生成订单 购物结账 超市 用户信息管理模块 用户注册与登录 修改密码与个人资料 系统管理模块 用户余额查询与账户充值 用户信息浏览 充值金额确认 销售信息查询 商品信息管理
(1)商品信息模块
最新商品浏览:将最新的增加的前3条商品显示出来。 商品分类浏览:按商品类别信息浏览商品。
- zj.
- -
商品名称快速搜索:按商品名称快速搜索所需商品,并可进行模糊查询。 (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
- zj.
- -
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.mand
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
- zj.
- -
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.mand
cmSys.ActiveConnection = DEjxc.Conjxc cmSys.mandType = 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 \"请关闭所有子程序后再关闭该主程序!\提示\" End If End Sub
Private Sub mnuRec_other_Click() FrmOtherChk.Show End Sub
- zj.
- -
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
- zj.
- -
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(\"确认要删除所有资料码?\删除确认\") If intDel = vbYes Then
strSQL = \"delete from department\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from employee\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from mat_detail\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from mat_head\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"select p_id,qty,price into mat_tmp from mat_head\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"drop table mat_head\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"select p_id,qty,price into mat_head from mat_tmp\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"update mat_head set qty=0,price=0\"
- zj.
- -
cmSys.mandText = strSQL cmSys.Execute
strSQL = \"drop table mat_tmp\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from product\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from product_type\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from supplier\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from order_detail_a\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from order_detail_b\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from ps_head_a\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from ps_head_b\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from other_head_a\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from other_head_b\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from sale_detail_a\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from sale_detail_b\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from sale_head_a\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"delete from sale_head_b\" cmSys.mandText = strSQL cmSys.Execute
- zj.
- -
strSQL = \"update r_parameter set offline=true,psnumber=0\" cmSys.mandText = strSQL cmSys.Execute
MsgBox \"资料删除完毕!\资料删除\" 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(\"请输入系统启用时间\系统启用\ 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.mandText = strSQL cmSys.Execute
strSQL = \"alter table mat_head add column price\" & strYear & strMonth _ & \" currency\"
cmSys.mandText = strSQL cmSys.Execute
strSQL = \"update mat_head set qty\" & strYear & strMonth & \"=qty,\" & _ \" price\" & strYear & strMonth & \"=price\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"update r_parameter set pass_date=cdate('\" & strBeg & _ \"'),offline=false,monthdate=cdate('\" & strBeg & \"')\" cmSys.mandText = 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 \"系统已正式启用!\系统启用\" Else
- zj.
- -
MsgBox \"日期格式错误!\启用错误\" 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(\"请输入月终结转时间\月终结转\ 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.mandText = strSQL cmSys.Execute
strSQL = \"alter table mat_head add column price\" & strYear & strMonth _ & \" currency\"
cmSys.mandText = strSQL cmSys.Execute
strSQL = \"update mat_head set qty\" & strYear & strMonth & \"=qty,\" & _ \" price\" & strYear & strMonth & \"=price\" cmSys.mandText = strSQL cmSys.Execute
strSQL = \"update r_parameter set monthdate=cdate('\" & strBeg & _ \"')\"
cmSys.mandText = strSQL cmSys.Execute
MsgBox \"月份结转完毕!\月终结转\" Else
MsgBox \"该月份已经月终结转!\月终结转错误\" End If Else
MsgBox \"日期格式错误!\启用错误\" Exit Sub End If End Sub
- zj.
- -
Private Sub mnuSys_user_Click() FrmSetUser.Show End Sub
Private Sub MDIForm_Click() frmlogo.Show End Sub
库存管理系统流程图
查询条件 销售文件 市场信息销售清单 读数据 送货清单 处理 销售子系统文件 查询结果文件 订货单 库存文件
- zj.
- -
进货系统流程图
商品库存清单 读数据 销售文件 判断 处理 订单文件
- zj.
- -
小型超市管理系统的E-R图
XX性别 年龄学历 员工编号 销售数量 销售单号 销售日期 员 工 XX号 银行账号 联系 备注 销售 顾 客 进货名称 进货日期 进货数量 进货 进货单号 进货单价 进货总价 条形码 商 品 价格 供货商号 供货 供货商 供货商号 供货日期 联系人XX 联系 银行账号
- zj.
- -
3.数据存储设计
完成该管理信息系统的数据存储总体设计方案,明确数据存储中表的结构,各表中关键字的设置。
员工表(StaffTable)
中文字段名 员工编号 XX 性别 年龄 学历 工种 联系 银行账号 身份账号 备注 英文字段名 staffID name sex age diploma kind phone accountID idcard other 字段类型 长度 char char nchar 6 6 2 主键 字段值约束 NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NOT NULL NULL nvarchar 6 nvarchar 4 nvarchar 10 varchar 12 nvarchar 15 nvarchar 18 ntext 50 进货表(ImportTable)
中文字段名 进货单号 进货日期 英文字段名 importID Import date 字段类型 长度 char Dater time 6 8 主键 字段值约束 NOT NULL NOT NULL - zj.
- -
货品名称 货品价格 进货数量 进货总价 goodsname importprice quantity totalmoney nvarchar 50 money int money 4 4 4 NOT NULL NOT NULL NOT NULL NULL 供货商号(profferTable)
中文字段名 供货商号 联系人 联系 银行账号 英文字段名 ProfferID 字段类型 长度 nvarchar 6 主键 字段值约束 NOT NULL NOT NULL NOT NULL NULL contactperson nvarchar 8 Phone accountID int 12 nvarchar 15
库存表(StoreTable)
中文字段名 条形码 库存数量 英文字段名 merchID storeNum 字段类型 长度 char int 6 4 主键 字段值约束 NOT NULL NOT NULL 月销售表(MonthSaleTable)
中文字段名 编号 日期 金额
- zj.
英文字段名 ID date amount 字段类型 长度 char 6 主键 datetime 8 float 8 字段值约束 NOT NULL NOT NULL NOT NULL - -
4.数据库物理设计
数据库物理结构设计的主要任务是:对数据库中的数据,在物理设备上的存放结构和存取方法进行设计,索引的设计等。数据库的物理结构依赖于确定的计算机系统,并于选用的DBMS密切相关。物理设计的任务是为了有效的实现逻辑模式,确定所采取的存储策略。此阶段以逻辑设计的结果作为输入,结合具体DBMS的特点与存储设备特性进行设计,选定数据库在物理设备上的存储结构和存取方法。
5.输入输出设计
管理信息系统只有通过输出才能为用户服务。信息系统能否为用户提供准确、及时、实用的信息是评价信息系统好坏的标准之一,也就是说,输出信息的内容与格式等是用户最关心的部分。因此,在系统设计中,是先根据管理和用户的需求进行输出设计,然而反过来根据输出所要求获得的信息进行输入设计。 (1)输入设计
输入设计的目标是保证向系统输入正确的数据。
输入设计的原则
输入设计应遵循以下原则: 最小量原则:这是指在保证满足处理要求的前提下使输人量最小。由于数据输入与计算机处理比较起来相对慢,在数据录入时,系统大多数时间都处于等待状态,系统效率将显著降低;同时,数据录入工作一般需要人的参与,大量的数据录入往往浪费很多的人力资源,增加系统的运行成本。因此,输入量越少,出错机会越少,花费时间越少,数据一致性越好。
简单性原则:输入的准备、输入过程应尽量容易,以减少错误的发生。这主要是因为输入设计在为用户提供纠错和输入校检的同时,就保证了输入过程简单易用,就保证了不会因为差错,纠错而使输入复杂化,增加用户负担。
早检验原则:对输人数据的检验尽量接近原数据发生点,使错误能及时得到改正。因此输入设计中应采用多种输入校检方法和有效性验证技术,以减少输入错误。
少转换原则:输入数据尽量用其处理所需形式记录,减少不必要的输入步骤,当步骤不能省时,应仔细验证现有步骤是否完备,以免数据转换介质时发生错误。本系统的主要输出为文本形式。
- zj.
- -
输入格式设计
输入格式的设计一般是指数据录入人员在终端屏幕上看到的凭证格式。其设计格式的原则是使录入人员能方便的输入数据,尽量避免操作失误。
(2)输出设计
输出设计的内容包括:有关输出信息使用方面的内容;输出方式;输出设备;输出介质。
输出设计的方法
在系统设计阶段,设计人员应给出系统输入的说明,这个说明既是将来编程人员在软件开发中进行实际输出设计的依据,也是用户评价系统实用性的依据。因此,设计人员要选择合适的输出方式,并以清楚的方式表达出来。输出形式主要有报表信息和图形化信息。
本系统的输出为表格形式,主要包括用户信息,书籍信息和订单信息。
- zj.
因篇幅问题不能全部显示,请点此查看更多更全内容