DSS实验报告--设计阶段
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
决策支持系统实验报告四
实验名称:企业决策支持系统设计
专业年级:物流管理2008级(2)班
分组情况:7人一组
组员:
分工情况:
实验时间:2011.06.03
实验地点:下安实验室306
实验方法:
根据决策问题的难度和规模,合理地设计决策支持系统的体系结构;设计决策支持系统的模型库和数据库;设计人机会话子系统。
系统开发使用原型法,逐步减少DSS的设计能力与DSS用户的需求之间差异。
实验数据:无
实验内容:
(1)在系统分析的基础上,确立决策支持系统运行的软硬件环境,重点设计数据库、人机界面和模型的实现步骤。
硬件:windows系统软件:VB、Access数据库
数据库的实现步骤:
①创建数据库。
②设计数据表的结构。
“销售量”表包含“年份”、“实际销售量”、“预测销售量”三个字段,“订货记录”表包含“订货日期”、“单位成本”、“总成本”三个字段。
③定义字段类型。
“年份”为文本型,“实际销售量”、“预测销售量”、“单位成本”、“总成本”为数字型,“订货日期”为日期/时间型。
人机界面的实现步骤:
用VB工具直接构建系统的“预测销售量”“订货决策”界面,VB是可视化图形界面,所见即所得。
模型的实现步骤:
①用vb编写一次指数平滑模型,利用公式Y t+1 '=ɑ*Y t+(1-ɑ)*Y t',其中Y t
为第t年的实际销售量,可通过调用数据库中的数据获得。
ɑ为平滑系数,是可变变量,由用户确定。
Y t'为第t年的预测销售量,要通过该模型求得,并更新保存至数据库。
②用vb编写价格折扣模型,利用一次指数平滑模型预测的年需求量,通过公式“经济订货批量=和“年库存总费用=单位库存维持费*平均库存量+订货次数*每次订货费+年需求量*单价”,求解出使年库存总费用最低的最佳订货量。
(2)使用SQL Server或Access设计决策支持系统的数据库。
使用Access建立“数据库”,并设计“销售量”表和“订货记录”表
(3)使用软件开发工具设计决策支持系统的模型库和人机交互界面。
①人机交互界面之销售量预测界面:
人机交互界面之订货决策界面:
②模型库之一次指数平滑模型:
模型库之价格折扣模型:
结果分析:
利用原型法,设计出决策支持系统的体系结构、数据库、模型库和人机界面的雏形,逐步减少DSS的设计能力与DSS用户的需求之间差异。
讨论思考:
在利用一次指数平滑模型预测年需求量时,应根据历史数据的变动情况确定ɑ值,减少预测误差,使预测值更贴近实际值。
ɑ值可根据经验确定,若统计资料实际值的长期趋势为接近稳定的常数,应取居中的ɑ值(一般取0.4-0.6);若统计资料实际值呈明显的季节性波动,则应取较大的ɑ值(一般取0.6-0.9),使近期的实际值在指数平滑值中较大的作用;若统计资料实际值的长期趋势较缓慢,则应取较小的ɑ值(一般取0.1-0.4)。
但是预测得出的数值毕竟有误差,决策者应考虑误差是否在可接受的范围内。
在价格折扣模型中,我们设计的前提是:一次订货量无最大最小限制;采购、运输均无价格折扣;订货提前期已知,且为常量;订货费与订货批量无关;维持库存费是库存量的线性函数;不允许缺货;补充率为无限大,全部订货一次交付;
采用固定量系统。
由此可见,该模型对现实的要求是比较苛刻的,所以该模型是比较理想化的。
因此,决策者可以参考此值,但不一定要按照改模型求出的值去订货,即不能代替决策者做出决策。
附源程序:
一次指数平滑模型的代码:
Dim rs As Recordset
Private Sub Command1_Click()
Dim a As Single
Dim b As Single
Dim c As Single
Adodc1.Recordset.MoveFirst
c = CSng(Text3.Text)
While Not rs.Fields("年份").Value = 2013
a = rs.Fields("实际销售量").Value
b = rs.Fields("预测销售量").Value
rs.MoveNext
b =
c * a + (1 - c) * b
rs.Fields("预测销售量").Value = b
rs.Update
Wend
MsgBox "数据更新成功!"
Text4.Text = rs.Fields("预测销售量").Value
rs.Close
End Sub
Private Sub Command2_Click()
订货决策.Show
End Sub
Private Sub Form_Load()
Set db = New Connection
db.Open "PROVIDER=Microsoft.jet.OLEDB.4.0;Data source= " & App.Path & "\数据库.mdb"
Set rs = New Recordset
rs.Open "select 预测销售量,实际销售量,年份from 销售量", db, adOpenStatic, adLockOptimistic
rs.MoveFirst
Text1.Text = rs.Fields("实际销售量").Value
Text2.Text = rs.Fields("预测销售量").Value
End Sub
价格折扣模型的代码:
Private Sub Command1_Click()
Dim D As Single
Dim S As Single
Dim H As Single
Dim H1 As Single
Dim Q As Single
Dim Q1 As Single
Dim Q2 As Single
Dim P As Single
Dim P1 As Single
Dim C1 As Single
Dim k As Single
Dim EOQ As Single
Dim C2 As Single
Dim c As Single
D = CSng(Text1.Text)
S = CSng(Text2.Text)
Q2 = CSng(Text5.Text)
k = CSng(Text9.Text)
P = CSng(Text6.Text)
P1 = P
H = k * P
H1 = H
EOQ = Sqr(2 * D * S / H)
If EOQ >= Q2 Then
C1 = P * D + (H * EOQ / 2 + D * S / EOQ) Q1 = EOQ
c = C1
Else
P = CSng(Text7.Text)
H = k * P
EOQ = Sqr(2 * D * S / H)
C1 = P * D + (H * EOQ / 2 + D * S / EOQ) C2 = P1 * D + (H1 * Q2 / 2 + D * S / Q2) If C1 < C2 Then
Q1 = EOQ
c = C1
Else
Q1 = Q2
c = C2
End If
End If
Text4.Text = Q1
Text8.Text = c
End Sub
Private Sub Command2_Click()
Text1.Text = ""
Text2.Text = ""
Text7.Text = ""
Text9.Text = ""
Text5.Text = ""
Text6.Text = ""
Text4.Text = ""
Text8.Text = ""
End Sub
Private Sub Command3_Click()
Set db = New Connection
db.Open "PROVIDER=Microsoft.jet.OLEDB.4.0;Data source= " & App.Path & "\数据库.mdb"
Set rs = New Recordset
rs.Open "select 单位订货量,订货总成本from 订货记录", db, adOpenStatic, adLockOptimistic
rs.MoveLast
rs.AddNew
rs.Fields("单位订货量").Value = Trim(Text4.Text)
rs.Fields("订货总成本").Value = Trim(Text8.Text)
rs.Update
rs.Close
MsgBox "数保存新成功!"
End Sub
Private Sub Form_Load()
Text4.Text = "" Text8.Text = "" End Sub。