决策支持系统报告.doc

上传人:jian****018 文档编号:7976149 上传时间:2020-03-26 格式:DOC 页数:40 大小:439KB
返回 下载 相关 举报
决策支持系统报告.doc_第1页
第1页 / 共40页
决策支持系统报告.doc_第2页
第2页 / 共40页
决策支持系统报告.doc_第3页
第3页 / 共40页
点击查看更多>>
资源描述
决策支持系统实验报告学期 10- 11学年第2学期 专业 地理信息系统 班级 学号 姓名 苏州科技大学 S 任课教师 兆华 苏州科技学院环境科学与工程学院实验一 认识模型3实验二 建立模型8实验三 模型的人工求解11实验四 程序模型14实验五 模型表示与组合21实验六 总控与DSS集成24目录实验一认识决策模型一、实验目的认识模型,区分模型的类别,明确模型的形式,加深理解模型的意义及对决策的作用。二、内容与要求创建运行环境运行程序模型样本、变量、输入、输出模型概念、类型、形式数学模型、程序模型三、方案设计(实验步骤)1.上网搜索或查看本实验参考资料第一部分和教材,找出模型概念、分类和表示形式。2.运行实验资源中的应用数学软件包。回答软件构成(模型集合,或非模型集合)写入实验结果3。运行程序的本质为模型,其表示形式是数学、算法、程序形式?是源程序,还是目标程序?其数据来源(数据库,数据仓库,人机对话输入)写入实验结果。基于此软件包,可以进行何种决策支持(模型决策,多模型辅助决策,自动组合模型决策)。体会模型对决策的重要性。3.阅读本实验参考材料第二部分。举例说明其中的样本、变量、输入、输出、数学模型、程序模型到实验结果5中。4.设计建模环境。了解SAS Matlab Lindo/Lingo SPSS Excell的界面和功能,及对建模的作用。5.其它4、 实验结果(结论)1模型类别模型类别广义数学模型根据决策的合理性原理性模型系统学模型规划模型预测模型管理决策模型仿真模型计量经济模型理想模型行为模型直觉模型2表示形式表示形式原理性模型定理、定律、公式系统学模型系统动力学、大系统理论、灰色理论、系统辨识、系统控制、最优控制和创造工程学等规划模型线性规划、非线性规划、动态规划、目标规划、更新理论和运输问题预测模型定性预测方法(特尔斐法专家调查法、情景分析法、主观概率法和对比法等); 定量预测方法(趋势法、因素相关分析法(如回归法等)、平滑法等。)管理决策模型关键路线法(CPM)、计划评审技术(PERT)、风险评审技术(VERT)和层次分析法(AHP)等仿真模型蒙特卡罗法(概率统计)、KSIM模拟(多变量目标)和微观分析模拟(微观个体)等。计量经济模型经济计量法、投入产出法、动态投入产出法、回归分析、可行性分析和价值工程等。3软件构成该Mathcai软件由六个模型集合(图像显示、最优化方法、回归分析、常用统计方法、多元统计方法、线性代数计算)和两个非模型集合(关于、概述)构成,具体如下:一、模型集合:1、图像显示:(1)、统计数据的图像显示;(2)、数据的空间曲面图;(3)、平面散点图;(4)、空间散点图;(5)、三次样条插值;(6)、倒数距离加权插值;(7)、一元函数的平面曲线图;(8)、二元函数的空间曲面图;(9)、函数的等高线图;(10)、参数函数的平面曲线图;(11)、参数函数的空间曲线图;(12)、参数函数的空间曲面图。2、最优化方法:(1)、单纯形法求线性规划问题的解;(2)、一维搜索法求一元函数的最小值;(3)、POWELL 法求多元函数的最小值;(4)、单纯形下山法求多元函数的最小值;(5)、变尺度法求多元函数的最小值;(6)、共轭梯度法求多元函数的最小值;(7)、图像法求多元函数的最小值。3、回归分析:(1)、按照输入的公式进行数据转换;(2)、一元线性回归;(3)、多元线性回归;(4)、多项式回归;(5)、广义线性回归;(6)、拟线性回归;(7)、非线性回归;(8)、逐步回归;(9)、主成分回归。4、常用统计方法:(1)、正态总体参数的假设检验和区间估计;(2)、单个总体分布的 2 检验;(3)、正态分布的概率纸检验;(4)、联立表独立性的 2 检验;(5)、方差分析;(6)、正交试验设计。5、多元统计方法:(1)主成分分析;(2)、典型相关分析;(3)、判别分析;(4)、聚类分析。6、线性代数计算:(1)、矩阵的基本运算;(2)、求行列式的值;(3)、矩阵的初等变换;(4)、矩阵的标准形分解;(5)、求向量集的最大无关子集;(6)、线性代数方程组的求解;(7)、矩阵的分解;(8)、实对称矩阵的特征值与特征向量;(9)、矩阵的奇异值分解;(10)、求矩阵的广义逆矩阵。二、非集合模型1、关于2、概述:(1)、软件系统概况介绍;(2)、软件系统的安装和使用;(3)、安装后硬盘上的文件夹结构;(4)、怎样脱离系统运行个别软件;(5)、怎样将说明文件打印出来;(6)、软件系统的邮购和升级;(7)、发生问题时的处理。4程序的表现形式运行程序的本质为模型,其表示形式是程序形式5数据来源其数据来源是通过人机对话输入实现的。样本: 变量:X1,X2及X3数学模型: 逐步回归法模型程序模型:结果:6决策支持此软件包可以实现模型决策,多模型辅助决策,自动组合模型决策。五、体会(收获)通过本实验的学习,我了解并掌握了模型的概念以及建模处理问题的必要性,以及在建模的工程中需要注意的一些问题,具体体会如下:1模型的重要性模型便于观察和理解现实世界,模拟其演变。是研究自然和社会对象的基础。它的重要性有:(1)将模型并入信息系统软件;(2)为高层管理提供有用信息,以便支持那些相对而言结构化程度比较低的决策行为,如支持半结构化的决策活动; (3)提供给用户强有力、然而并不难掌握的与系统之间的人一机交互能力,即用户能够用较为简单的语言向系统咨询,并从系统得到科学的、有效的决策支持。2我们因该仔细考虑建立模型过程的每一步鉴于模型的重要意义,我觉得建立模型过程的每一步都必须是明确和有计划的。分析人员可能认为,对一个具体的间题,时间是关键的,于是总急急忙忙地建立模型,这是错误的。必须强调的是,必须弄清与分析人员自身对应的管理人员是谁。通常,建立模型的过程应适当放慢,以保证管理人员能理解模型的基本原理。总之,分析人员只能在经过仔细考虑的情况下,尽可能快地建立模型,并且使建立模型过程尽量清晰,使管理人员能了解这一过程。3建模时要面向问题模型是用来向决策人提供一种更有效地做出决策的手段。建立模型的人员应该经常习惯于问:“模型怎样才能帮助管理人员解决问题?”在建立模型时,分析人员可能发现问题变得比原来想的更复杂。这时,分析人员必须重新审议问题,并与管理人员一起核实这一审议。实验二数学模型一、实验目的掌握数学模型及其构建方法二、实验内容构建一个数学模型三、方案设计与要求1. 参考本实验后附材料或教学演示,确定用于建模的决策问题。2. 明确问题涉及的变量和逻辑关系,必要时用假设简化问题,设定变量符号。3. 借用基本数学形式表达变量间的关系,需要时筛选变量,形成初步的模型形式。在无法进行严格的数学推导时, 可以使用“不严格”的数学形式。理解模型的语义含义和功能。4. 尽量使用实际资料检验数学结果,并用恰当的学科语言表达数学结果。5. 确定最终的模型。绘制应用建模流程于实验结果1,完整的建模过程写在实验结果2,总结写入体会(收获)中。四、实验结果(结论)1应用建模流程图抽 象 化 简 假 设参 数 变 量组 件 模 型参 数 估 计运 行 检 验应 用符合?实 际 问 题2建模过程下面以一个实例阐述建模的具体过程:例:某公司研制了两种新产品,即“玻璃门”和“铝框窗”,并准备生产这两种新产品。决策的进程一般分为4个步骤:(1)发现问题并形成决策目标,这是决策活动的起点; 新产品有什么优点?能否被消费者购买?这都需要进行分析。若新产品会增加成本,就需要进行成本分析; 公司的生产工厂能有多少时间生产新产品?每周能卖掉几个产品?这需要制定营销计划; 生产新产品时,在工厂有限的生产能力基础上使现生产一种产品,还是两个产品同时生产?同时生产对同时抢先市场有好处,为两种产品做组合广告,也会有更好的效果。(2) 建立模型; 寻找两种新产品的市场能力,那种组合能产生最大利润 该问题属于线性规划模型问题。线性规划有固定的数学结构和问题求解方法,是结构化决策问题,但是将实际问题建立成合适的线性规划的数学结构模型,为此需要搜集以下信息: 每个工厂有多少生产能力生产新产品? 生产每一个产品每个工厂个需要多少生产能力? 每一产品的单位利润会有多少? 这些数据只能得到估计值,特别是新产品的利润(产品还未出来就要估计它的利润),这是一个半结构化问题。进过调查和分析,有A、B、C三个工厂同时生产该产品,生产能力如下:工厂生产该产品时间(时/周)工厂A4工厂B12工厂C18门工厂A 1小时 + 工厂C 3小时窗工厂B 2小时 + 工厂C 2小时设每周生产新门的数量为x,生产新窗的数量为y。则该问题的线性方程为:利润: p=300x+500y工厂A约束: x4 工厂B约束: 2y12 工厂C约束: 3x+2y18 (x0,y0)(3) 最优决策,对各种结局的价值所作的定量估计;通过对该决策问题的线性规划模型求解,即求在生产能力允许的范围条件下,达到最大利润的最优解。利用线性规划模型的求解方案可得到最优解是: x=2, y=6, p=360线性规划模型为决策者提供了最优决策。它是公司领导层是否生产新产品的决策支持。(4) 综合分析各方面信息,以最后决定方案的取舍,有时还要对方案作灵敏度分析,研究原始数据发生变化时对最优解的影响,决定对方案有较大影响的参量范围。如WhatIf分析由于线性规划模型的参数均是估计值,这样计算出的最优解也是估计值,所以要对如下问题进行WhatIf分析,即WhatIf实验。新产品中有一个产品的单位利润的估计值不准确时,最优解怎样变化?两个产品的单位利润的估计值都不准确时,又将会怎样?其中一个工厂每周可用于生产新产品的时间改变后,会对结果产生怎样的影响?如果3个工厂每周可用于生产新产品的时间改变后,又会对结果产生怎样的影响?这些问题对决策仍很重要。解决这些问题是利用优化模型进一步的决策支持。决策往往不可能一次完成,而是一个迭代过程。决策可以借助于计算机决策支持系统来完成,即用计算机来辅助确定目标、拟定方案、分析评价以及模拟验证等工作。在此过程中,可用人机交互方式,由决策人员提供各种不同方案的参量并选择方案。 五、体会(收获)通过本实验的学习,我掌握了以下内容:一、建模过程中要注意的问题1明确研究目标,力图从实际问题中归纳出所采用的假设和解题线索;2用假设简化问题,在实际与数学简化之间选择恰当的平衡点, 这是建模成功与否的关键, 体现了建模工作的想象力和创造力;3进行正确的推理,在无法进行严格的数学推导时, 可以使用“不严格”的数学, 代之以对问题的分析, 归纳,类比, 猜测, 尝试, 事后检验;4尽量使用实际资料检验数学结果,并用恰当的学科语言表达数学结果。5在建模中,数学决不仅仅是工具,要从所作的数学推导和所得到的数学结论中指出所包含的更一般的、更深刻的内在规律。数学建模绝不仅仅以应用数学解决一个实际问题为目标,我们更希望揭示基本自然规律,产生新的数学思想和方法。二、怎样学习建模1. 要会“翻译”。扩充知识面,既能将实际问题用数学语言表达,又能将数学结论用“常人”能懂得的语言表达。2. 要会实践。培养洞察力,能一眼抓住问题的关键;培养联想力,触类旁通,能透过某些不同的实际问题的表面看到共同的数学特性;学会在实践中提出问题,搜集资料,组建模型,解决问题。3.要会思考。应用已学到的数学知识和方法进行数学分析,培养综合,归纳,抽象,化简等数学思维方式。4. 要会计算,学会使用软件,设计程序,借助计算机解决实际问题。 5. 通过数学建模的学习和实践, 发现数学知识的不足,发现数学思考方法的不足,激励对数学学习和研究的积极性和主动性。实验三模型的人工求解一、实验目的掌握模型的传统解法了解管理中所使用的模型及在决策中的应用二、实验内容模型的人工求解实际问题的决策三、方案设计(实验步骤)1、选择一个管理决策问题。可选择本实验后附参考资料第二部分中的物资运输决策、本实验后附参考资料第一部分中的例1、前面试验涉及的决策问题,也可任选。 2、必要时自行建模。3、先给出某个具体问题实例,然后人工求解模型。4、进行决策。5、总结四、实验结果(结论)1决策问题某企业某种产品的年销量为1000件,售价为每件110元,为要生产这种产品, 准备选购新的机器设备。对于这类设备, 市场上共有 A、B、C 三种类型可供选择:A型需要投资万元,每件产品的生产成本为100元;B型需要投资 3 万元,每件产品的生产成本为90元, A、B两种类型设备的年生产能力均能超过1000件;C型需要投资1.5万元,每件产品的生产成本为95元,年生产能力只有800件。 如果要求投资回收期越短越好,问该企业应选购何种类型的设备为宜?2建立的模型如果要求投资回收期越短越好,问该企业应选购何种类型的设备为宜? MT=- P(S-S0) 3详细求解步骤(1)、建模假设1)该种产品的年销量是一定的,不会受市场需求量的影响2)该产品的售价固定,不会出现打折降价的现象3)购买的设备都是好的,不会出现任何故障4)各种设备生产每件产品的成本是一定的,不会受到外界因素的影响(2)、参数变量投资回收期(年):T 投资金额(元):M 年销量:P单件售价(元):S 单件生产成本(元):So(3)、建立模型如果要求投资回收期越短越好,问该企业应选购下列模型 MT=- P(S-S0) (4)、模型求解将各方案有关数据代入公式,则有: 20000A型设备投资回收期=-=2(年) 1000(110100) 30000B型设备投资回收期=-=1.5(年) 1000(11090) 15000C型设备投资回收期=-=2(年) 1000(11095)4决策过程由于型设备的年生产能力只有件,所以,必须购置两套才能保证满足年销量1000件。比较各方案的投资回收期,显然,以型设备的投资回收期为最短,因此,应选购型设备作为投资决策方案。五、体会(收获)1、通过本实验的学习,我了解了所谓决策,是指为了达到某个行为目标,在占有一定信息的基础上,借助于科学的理论、方法和工具,对影响目标的各种因素进行分析、计算和评价,结合决策者的经验,从两个以上的可行方案中选择一个最优的方案。由此可见,决策并不是一个瞬间作决定的问题,而是为了解决某个问题、达到某个行动目标,收集信息,拟定方案,分析、评价及选择方案等一个完整的活动过程。2、我了解了现代企业决策的基本准则是是指方案的结果评价和择优选择的标准1、确定型决策准则(1)直观法(2)临界点分析法(3)效益成本分析法(4)选择评分法2、风险型决策准则 (1)期望值准则(2)最大可能准则(3)机会均等准则(4)边际分析准则3不确定型决策准则(1)最大最小化(最小最大化)准则(2)最小最大化后悔准则(3)最大最大化(最小最小化)准则(4)折衷准则3所谓ROMC方法,就是面向决策者进行表述R(Representions)、操作O(Operations)、存储M(Memoryaids)和控制C(Control)。运用ROMC方法,首先要识别决策过程的基本活动,接着分析每一个基本活动的四个基本成分:表述、操作、存储和控制,然后将这些成分构成一个初始的DSS。在交付使用后,经用户评价,研制者不断修改、扩充这些基本成分,直到开发出用户满意的、最终的DSS,基本过程如下图所示。实验四程序模型一、实验目的掌握程序模型的实现方法二、实验内容编制模型的计算机算法程序。思考实现计算机算法的要求。三、方案设计与要求1、任选一个数学模型。2、配置编程环境。3、明确模型的人工解法,转变为计算机算法,进行必要的数据管理,并编程实现。最小二乘法模型可用于实验六的成本预测决策支持系统实现。四、实验结果(结论)1数学模型最小二乘法模型:在我们研究两个变量(x, y)之间的相互关系时,通常可以得到一系列成对的数据(x1, y1、x2, y2. xm , ym);将这些数据描绘在x -y直角座标系中(如图1), 若发现这些点在一条直线附近,可以令这条直线方程如(式1-1)。 (式1-1)Y= a0 + a1 X 其中:a0、a1 是任意实数人工算法为建立这直线方程就要确定a0和a1,应用最小二乘法原理,将实测值Yi与利用(式1-1)计算值(Y计=a0+a1X)的离差(Yi-Y计)的平方和(Yi - Y计)2最小为“优化判据”。令: = (Yi - Y计)2 (式1-2)把(式1-1)代入(式1-2)中得: = (Yi - a0 - a1 Xi)2 (式1-3)当(Yi-Y计)平方最小时,可用函数 对a0、a1求偏导数,令这两个偏导数等于零。(式1-4) (式1-5) 亦即:m a0 + (Xi ) a1 = Yi (式1-6)(Xi ) a0 + (Xi2 ) a1 = (Xi, Yi) (式1-7)得到的两个关于a0、 a1为未知数的两个方程组,解这两个方程组得出:a0 = (Yi) / m - a1(Xi) / m (式1-8)a1 = Xi Yi - (Xi Yi)/ m / Xi2 - (Xi)2 / m) (式1-9)这时把a0、a1代入(式1-1)中, 此时的(式1-1)就是我们回归的元线性方程即:数学模型。在回归过程中,回归的关联式是不可能全部通过每个回归数据点(x1, y1、 x2, y2.xm,ym),为了判断关联式的好坏,可借助相关系数“R”,统计量“F”,剩余标准偏差“S”进行判断;“R”越趋近于 1 越好;“F”的绝对值越大越好;“S”越趋近于 0 越好。2、编程环境 Visual Basic 6.0 + ADO + Microsoft Office Acess 20033、详细计算机算法和完整的程序清单调用界面数据表1、参数表2、x、y数值表程序窗口及代码:1、调用程序窗口:(1)、dy窗体代码:Private Sub Command1_Click() 调用最小二乘法模型程序 Shell (c:jczcyzjxtjczcxtmxzxecfmbwjzxecf.exe) Dim strSQL As String Dim ADOrs As New Recordset Set ADOrs.ActiveConnection = ADOcn 定义变量a,b,存放从cs表中得到的a,b字段的值 Dim a As Single, b As Single 等待最小二乘法模型程序执行完毕 For i = 0 To 9999 strSQL = select * from cs ADOrs.Open strSQL a = ADOrs(a) b = ADOrs(b) ADOrs.Close If a 0 Then Exit For End If Next i 定义变量m,n,分别存放将a,b转换为字符串后的值 Dim m, n As String m = CStr(a) n = CStr(b) 若m左侧的第一个字符为.,则在第一个字符前加0 If Left(m, 1) = . Then m = 0 & m End If 若n左侧的第一个字符为.,则在第一个字符前加0 If Left(n, 1) = . Then n = 0 & n End If 在文本框中显示m,n的值 Txta.Text = m Txtb.Text = n 让文本框成为只读 Txta.Enabled = False Txtb.Enabled = FalseEnd Sub(2)、dymk公共模块代码声明全局对象变量ADOcn,用于创建与数据库的连接Public ADOcn As ConnectionPublic Sub Main() 定义数据库连接字符型变量strAccess,并为其赋值,用以连接Access数据库 Dim strAccess As String strAccess = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:jczcyzjxtjczcxtsjcbyc.mdb 调用VB函数DoEvents,用于转移系统控制权 DoEvents 建立与数据库的连接 Set ADOcn = New Connection 连接Access数据库 ADOcn.Open strAccess 初始化cs表 strSQL = delete * from cs ADOcn.Execute strSQL strSQL = insert into cs(a,b) values(0,0) ADOcn.Execute strSQL 显示主窗体 dy.ShowEnd Sub2、模型窗口(1)zxecf模块窗口代码:声明全局对象变量ADOcn_mx,用于创建与数据库的连接Public ADOcn_mx As ConnectionSub Main() 定义数据库连接字符型变量strAccess,并为其赋值,用以连接Access数据库 Dim strAccess As String strAccess = Provider=Microsoft.Jet.OLEDB.4.0;Data Source= c:jczcyzjxtjczcxtsjcbyc.mdb 调用VB函数DoEvents,用于转移系统控制权 DoEvents 建立与数据库的连接 Set ADOcn_mx = New Connection ADOcn_mx.Open strAccess Dim strSQL As String Dim ADOrs As New Recordset Set ADOrs.ActiveConnection = ADOcn_mx strSQL = select * from tjsj 执行Select语句,1代表只读 ADOrs.Open strSQL, ADOcn_mx, 1 定义变量num,存放从记录集读入的数据行个数 Dim num As Integer num = ADOrs.RecordCount 定义变量v1存放x的值,变量v2存放y的值,变量sum1存放x平方的和,sum2存放y的和,sum3存放x的和,sum4存放x*y的和,i是循环变量。 Dim v1, i As Integer, v2, sum1, sum2, sum3, sum4 As Single For i = 1 To num v1 = ADOrs(X).Value v2 = ADOrs(Y).Value 计算x平方的和 sum1 = sum1 + v1 * v1 计算y的和 sum2 = sum2 + v2 计算x的和 sum3 = sum3 + v1 计算x*y的和 sum4 = sum4 + v1 * v2 ADOrs.MoveNext Next i 关闭记录集 ADOrs.Close 定义变量a存放常数项,定义变量b存放回归系数,定义变量Sql1,存放更新字符串 Dim a As Single, b As Single, Sql1 As String a = (sum1 * sum2 - sum3 * sum4) / (num * sum1 - sum3 * sum3) b = (num * sum4 - sum2 * sum3) / (num * sum1 - sum3 * sum3) 用计算出的a,b值更新数据库表cs中的a,b值 Sql1 = update cs set a= & a & , b= & b 执行更新语句 ADOcn_mx.Execute Sql1 关闭数据库连接对象 ADOcn_mx.Close End Sub3、运行结果打开调用模块,点击计算按钮结果如下:相应地参数表更新为五、体会(收获)通过本实验的学习,我基本掌握了建立模型的具体步骤和方法。结合实验指导书,学会了配置编程环境。明确掌握最小二乘法模型的人工解法,并能成功实现为计算机算法,最后能够编程实现。实验五模型表示与组合一、实验目的掌握模型的表示、组合及模型库的建立二、实验内容建立模型库组合模型应用三、方案设计与要求1、设置开发环境。2、将涉及的模型分类或分形式存放,构成层级文件夹,形成模型文件库。注意模型文件至少有源文件和目标文件两种形式。3、建立索引表或分类索引表,索引内容包含模型编号、名称、模型文件名、以及模型文件路径,形成字典库。4、建立一个模型库集成管理界面,也可自行设计开发模型库管理系统。四、实验结果(结论)1、设置开发环境Visual Basic 6.0 + ADO + Microsoft Office Acess 20032、模型文件库在“c:jczcyzjxtjczcxt”目录下新建名为mx(模型)的子目录,用于存放模型文件。在mx子目录下新建名为zxecf(最小二乘法)的子目录,用于存放最小二乘法模型程序文件。在zxecf子目录下新建名为ywj(源文件)的子目录,用于存放最小二乘法模型程序的源文件。在zxecf子目录下新建名为mbwj(目标文件)的子目录,用于存放最小二乘法模型程序的目标文件。具体如下图: 模型文件库3、字典库索引表名为:zd;模型编号(id)为:1;模型名称(mxmc)为:最小二乘法模型; 模型文件名(mxwjm)为:zxecf.exe;模型文件路径(mxwjlj)为:c:jczcyzjxtjczcxtmxzxecfmbwj具体如图: 字典表4、建立一个模型库集成管理界面,设计开发模型库管理系统。 模型库管理系统界面五、体会(收获)1、通过本实验的学习,我掌握了模型的组合,学会了建立模型库:了解了模型库的特点:(1)由模型库管理系统进行管理;(2)每个模型都具有辅助决策能力;(3)多个模型能有效地组织成系统;(4)多个模型的连接需要利用共享的数据库。2、同时也了解了模型库管理系统的结构,学会了将一个模型分类存放并实行调用,通过设置字典表的路径来调用建好的模型,同时也了解的模型组的应用,学会了在总控界面下调用模型。实验六总控与DSS集成一、实验目的了解DSS系统集成方法,掌握总控部件和界面的实现二、实验内容设计数据部件编制人机交互界面编制总控程序集成部件形成决策支持系统三、方案设计与要求1、参考本实验后附材料选定要开发的系统,设想开发总体方案2、设计总控和人机界面3、部件集成和调试4、开发文档编写四、实验结果(结论)下面以成本预测决策支持系统开发为例1、DSS运行结构图 统计数据表tjsj调用一元线性回归方程模型输入投入产品件数x的值显示常数项a和回归方程系数b的值调用最小二乘法模型开始 最小二乘法模型 zxecf.exe参数表cs预测表yc一元线性回归方程模型yyxxhg.exe预测表yc显示产品成本Y的值继续预测?退出NOYes控制流数据流系统运行结构图2、实验过程(开发文档)一、数据部件的处理1.在Access 2003中建立成本预测数据库,在成本预测数据库中建立统计数据表,以及将表1中给出的15组统计数据录入统计数据表的具体操作步骤参见第2章实验1。2.根据下表中给出的预测表的数据结构,在成本预测数据库中建立预测表(yc),输入字段后的“表”设计窗口如下图所示。序号字段名称数据类型是否主键说明1id数字是2x数字否每批投入产品件数(百件),字段大小为整型3y数字否产品成本(百元),字段大小为单精度型输入字段后的“表”设计窗口二、模型部件的处理编写最小二乘法模型程序的具体操作步骤参见实验4。编写一元线性回归方程模型程序,在成本预测数据库中建立字典表,以及将模型属性数据录入字典表的具体操作步骤如下。1、在“c:jczcyZjxtjczcxtmx”目录下新建名为yyxxhg(一元线性回归)的子目录。接着,在yyxxhg子目录下新建名为ywj(源文件)的子目录,用于存放一元线性回归方程模型程序的源文件;在yyxxhg子目录下新建名为mbwj(目标文件)的子目录,用于存放一元线性回归方程模型程序的目标文件。结果如图所示: 文件及子目录2.启动visual Basic 6.0,进人“工程”界面。单击工具栏上的“保存”按钮,命名窗体文件为“yyxxhg.frm”,工程文件为“yyxxhg.vbp”,并将两个文件都保存在“c:jczcyzjxtjczcxtmxyyxxhgywj”目录下。然后,新建一个模块,更改其名称为“yyxxhg”,并以“yyxxhgbas”作为文件名也保存在“c:jczcyzjxtjczcxtmxyyxxhgywj”目录下。 3.单击菜单栏上的“工程”“引用”选项,勾选“Microsoft ActiveX Data Objects 2.8 Library”选项和“Microsoft ActiveX Data Objects Recordse t2.8 Library”选项。4.单击菜单栏上的“工程”“工程1属性”选项,将“启动对象”更改为“SubMain”。5.鼠标双击右侧任务窗格中的yyxxhg模块,在弹出的yyxxhg(Code)“代码编写”界面中编写程序代码。在界面中输人的完整程序代码如下:声明全局对象变量ADOcn,用于创建与数据库的连接Public ADOcn As ConnectionSubMain( )定义数据库连接字符型变量strAccess,并为其赋值,用以连接Access数据库Dim strAccess As StringstrAccess = Provider = Microsoft.Jet.OLEDB.4.0; DataSource = c:jczcyzjxtjczcxtsjcbyc. mdb调用vB函数DOEvents,用于转移系统控制权DoEvents如果还没有建立与数据库的连接,则用以下代码创建SetADOcn = NewConnectionADOcn.Open strAccessDim strSQL As String声明一记录集对象,并与ADOcn关联Dim ADOrs As New RecordsetSetADOrs.ActiveConnection = ADOcnstrSQL= select * from cs执行Select语句ADOrs.Open strSQL定义变量a,b,分别存放cs表中的a,b字段值定义变量x,y,分别存放投入产品件数和产品成本Dim a As Single, b As Single, x As Integer, y As Singlea = ADOrs(a)b = ADOrs(b)ADOrs.Close定义变量Sql1并为其赋值,得到保存在yc表中的投入产品件数Sql1 = select x from yc where id = lADOrs.open Sql1x = ADOrs(x)根据投入产品件数,预测产品成本y = a + b * x定义变量Sql2并为其赋值,更新yc表中的产品成本Sql2 = update yc set y=&y& where id=lADOcn.Execute Sql2关闭记录集对象和连接对象ADOrs.CloseADOcn.CloseEnd Sub6.单击菜单栏上的“文件”“生成yyxxhg.exe”选项,修改文件的存储路径为“c:jczcyzjxtjczcxtmxyyxxhgmbwj,然后,单击“确定”按钮。至此,一元线性回归方程模型程序编制完毕。7.单击菜单栏上的“保存”按钮,保存工程。然后,单击菜单栏上的“文件”“退出”选项,退出Visual Basic 6.0。8.根据4-2字典表的数据结构,在成本预测数据库中建立字典表(zd),输入字段后的“表”设计窗口如下图所示。表 4-2 字典表的数据结构序号字段名称数据类型是否主键说明1id自动编号是模型文件编号2mxmc文本否模型名称3mxwjm文本否模型文件名称4mxwjlj文本否模型文件存放路径9.打开字典库,将最小二乘法模型以及本实验创建的一元线性回归方程模型的模型名称、模型文件名称,以及模型文件存放路径录入字典表,操作结果如下图所示。三、综合部件(总控程序)的处理 1.在“c:jczcyzjxtjczcxt”目录下新建一个名为zk(总控)的子目录,用于存放总控程序。2.启动Visual Basic 6.0,进入“工程”界面。将“工程”界面右侧任务窗格属性窗口中的(名称)属性的值修改为“zk”。然后,单击工具栏上的“保存”按钮,命名窗体文件名为“zk.frm,工程文件名为“zk.vbp,并将两个文件都保存在“c:jczcyzjxtjczcxtzk”目录下。3.单击菜单栏上的“工程”“引用”选项,勾选“Microsoft ActiveX Data Objects 2.8 Library”选项和“Microsoft ActiveX Data Objects Recordset 2.8 Library”选项。4.单击菜单栏上的“工程”“添加模块”选项,新建一个模块,并修改模块名为“zkmk”(总控模块)。单击菜单栏上的“保存”按钮,命名模块文件为“zkmk.bas”,也保存在“c:jczcyzjxtjczcxtzk”目录下。5.单击菜单栏上的“工程”“添加窗体”选项,显示器上将弹出“添加窗体”对话框。6.选择“窗体”选项,单击“打开”按钮,新建一个窗体。然后,将任务窗格属性窗口中的(名称)属性的值修改为“wtms”(问题描述)。单击工具栏上的“保存”按钮,命名窗体文件为“wtms.frm,也保存在“c:jczcyzjxtjczcxtzk”目录下。7.在“问题描述”窗体中绘制两个Label控件,分别修改其属性窗口中Caption属性的值为“问题描述”和“已知某产品成本与每批投入产品件数是线性相关的,并且已有15组统计数据,现在需要根据给出的每批投入产品件数,预测每批产品成本”。继续在“问题描述”窗体中绘制一个CommandButton控件,修改其属性窗口中Caption属性的值为“进入成本预测决策支持系统”。8. 鼠标双击“进入成本预测决策支持系统”按钮,在弹出的wtms(Code)“代码编写”界面中编写Commandl_Click事件处理程序代码。在界面中输人的完整程序代码如下:Private Sub Commandl_Click()显示总控窗体Zk.Show关闭问题描述窗体Unload MeEndSub9.鼠标双击添加窗体后“工程”界面右侧任务窗格中的zkmk,打开zkmk(Code)“代码编写”界面,在界面中编写程序代码在界面中输入的完整程序代码如下:声明全局对象变量ADOcn,用于创建与数据库的连接 Public ADOcn As ConnectionPublic Sub Main()定义数据库连接字符型变量strAccess,并为其赋值,用以连接Access数据库Dim strAccess As StringstrAccess = Provider = Microsoft. Jet. OLEDB. 4. 0; Data Source = c: jczcyzjxt jczcxt sj cbyc.mdb调用VB函数DoEvents,用于转移系统控制权DoEvents如果还没有建立与数据库的连接,则用以下代码创建Set ADOcn = NewConnection连接Access数据库ADOcn.open strAccess初始化cs表strSQL = delete*from csAD0cn.Execute strSQLstrSQL = insert into cs(a,b) values(0,0)ADOcn.Execute strSQL初始化yc表strSQL = delete*fromycADOcn.Execute strSQLstrSQL = insertintoyc(id,x,y)values(l,0,0)ADOcn.Execute strSQL显示问题描述窗体wtms.ShowEnd Sub10.鼠标双击右侧任务窗格中的zk,打开zk窗体,在窗体中绘制控件。其中,“常数项”右侧的TextBox控件(名称)属性被修改为“Txta,“回归系数”右侧的TextBox控件(名称)属性被修改为“Txtb”。“每批投入产品件数”右侧的TextBox控件(名称)属性被修改为“TxtmPtrcpjs,“产品成本”右侧的TextBox控件(名称)属性被修改为“Txtcpcb,Enabled属性被修改为“False”。“预测”CommandButton控件的(名称)属性被修改为“Cmdyc,“继续预测”CommandButton控件的(名称)属性被修改为“Cmdjxyc,“退出”CommandButton控件的(名称)属性被修改为“Cmdtc”。界面右下脚的TextBox控件(名称)属性被修改为“Txtl,Visible属性被修改为“False”。11.鼠标双击zk窗体中没有绘制控件的位置,在弹出的zk(Code)“代码编写”界面中编写Form_Load事件处理程序代码。在界面中输人的完整程序代码如下:Private Sub Form_Load()Dim SqlmodelDim ADOrs_Model As NewRecordsetSetAD0rs_Model.ActiveConnection=AD0cn从Zd表中获得最小二乘法模型文件的名称和路径Sqlmodel = select*from zd where id = lADOrs_Model.openSqlmodelFilepath = ADOrs_Model(mxwjlj)modelName = ADOrs_Model(mxwjm)ADOrs_Model.Close调用最小二乘法模型程序Shell ( filepath & modelName )Dim strSQL As StringDim ADOrs As New RecordsetSetADOts.ActiveConnection = ADOcn定义变量a,b,存放从cs表中得到的a,b字段的值Dim a As Single, b As Single等待最小二乘法模型程序执行完毕For i = 0 To 9999strSQL = select*from csADOrs.open strSQLA = ADOrs(a)B = ADOrs(b)ADOrs.CloseIf a 0 ThenExit ForEnd IfNext i定义变量m,n,分别存放将a,b转换为字符串后的值Dim m, n As Stringm = CStr(a)n = CStr(b)若m左侧的第一个字符为”.,则在第一个字符前加 0,If Left(m,l) = ”. Thenm = 0 & mEnd If若n左侧的第一个字符为”.,则在第一个字符前加 0If Left (n,l) = . Thenn = 0 & nEnd If在文本框中显示m,n的值Txta. Text = m Txtb.Text = n让文本框成为只读Txta. Enabled = FalseTxtb.Enabled = FalseCmdjxyc.Enabled = FalseEnd Sub12.鼠标双击zk窗体中的“预测”按钮,在弹出的zk(Code)“代码编写”界面中编写Cmdyc_Click事件处理程序代码。在界面中输人的完整程序代码如下:Private Sub Cmdyc_Click()判断输入的每批投入产品件数是否为空,若为空则弹出提示信息If Txtmptrcpjs.Text ThenMsgBox
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文书 > 工作总结


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!