数据流图到模块结构图

合集下载

图书管理系统体系结构图和数据流程图

图书管理系统体系结构图和数据流程图

图书管理系统需求分析—功能流程图一、功能结构图二、各模块功能说明系统管理员系统分为4个模块:系统管理员身份认证模块、图书管理模块、借阅者管理模块和借阅超时管理模块.(一)管理员身份认证①接口描述:输入系统管理员身份认证信息②模块功能:通过检验认证信息允许系统管理员进入系统管理员系统管理③过程陈述:将输入的管理员身份认证信息与管理员信息表中的信息惊喜对照,若管理员编号、姓名和密码中的任意一项与信息管理员信息表中的信息不符合则认为输入有误,身份不通过,要求重新输入;只有三者都相同才能通过身份认证进入系统。

④约束:最多只允许系统管理员输入三次,若三次都有误,则认定该输入者为非法管理员,不允许其再输入.(二)借阅者管理模块①接口描述:输出借阅者管理信息②模块功能:对借阅者信息|借阅者分类信息执行修改、查看和删除操作③过程陈述:输入借阅者编号,打开借阅者信息表可修改、查看和删除表中的信息,并将修改后的信息保存到借阅者信息表中,执行删除操作则需对借阅者分类信息表中的信息进行修改;输入借阅者职务/班次,可打开借阅者分类信息表,可修改、查看和删除表中的信息,并将修改后的信息保存到借阅者分类信息表中。

④约束:借阅者可分为学生和教师两类,以职务/班次为关键字进行索引.(三)图书管理模块①接口描述:输出图书管理信息②模块功能:对图书信息|书目信息执行修改、查看和删除操作③过程陈述:输入图书编号,打开图书信息表可修改、查看和删除表中的信息,并将修改后的信息保存到图书信息表中,执行删除操作则需对书目信息表中的信息进行修改;输入图书名|图书类名,可打开书目信息表,可修改、查看和删除表中的信息,并将修改后的信息保存到书目信息表中.④约束:系统管理员对图书信息|书目信息,只有修改、查询和删除的权限,没有添加的权限。

(四)借阅超时管理模块①接口描述:输出借阅者超时管理信息②模块功能:读取超时罚款信息,锁定超时借阅者③过程陈述:输入借阅者编号可读取借阅者的超时罚款信息;输入当前时间可通过读取借阅信息表并列出超时借阅者名单,锁定超时借阅者,借书状态为不可借;同时将超时借阅者信息告知操作管理员系统,并将记录写到超时罚款信息表中。

一种从数据流图转换成软件结构图的方法

一种从数据流图转换成软件结构图的方法
换 成只有一 条数 据流的数 据流图 。具 体做法是 : 对数据流 图的边界 添 加 两个节点 ( 如: 节点a 和节点 h ) , 让边界 部分的 多条 数据流 汇聚成 到 图2用 添加边界节点法处理过 的数据流 图 注: m、 n、 m, 、 n . 为添 加 的节点 (m: 输 入的末 节点 ; n : 处理 的头 结 ; 处理 的末节点 ; m : 输出的头节点 )
1 . 引 言
8 ) 数据 流图 中的输出部分 的转换 和输入部 分相似 , 只是数据 流箭
头不用 改变 , 直接 深度遍 历输 出部分 , 转换 成结构 图。 ( 图3 )
随着计算机软件在多领域 的发展 , 软件的规模越来越大 , 软件危 机 也随之 到来 。为 了将软 件危机 的风险降到最低 , 计算机 软件 需要 向着 工程化 的开发方式发展 , 相对稳定 的开发方式 越来越被从业 人士所欢 迎。此外 , 人与人思考 问题的 角度 、 方式不 同以及人 的经验 、 知识储 备 等存在着区别 , 使得转换 出来 的结构图存在着较大 的差异 。因此 , 着眼 于需求 分析 阶段 的数据流 图和 总体设计 阶段 的软件结 构 图之间 的关 系, 为 了让需求分析 阶段 与总体设计阶段更 紧密的结合起来 , 需要 产生

9 ) 对 于处 理部分 , 则可 以直接将 添加的两个 节点合 并作为结 构 图 的处理 子树 的根 , 其余 节点则作 为根的子节 点。 ( 图3 )
个相对稳定的数据流图到结构图 的转换算法 以及实现工具 。
2 . 系统的设计与实现 整个系统的开发过程分为 以下几个 阶段 :
节点。 4 ) 使边界部分从输入流 向处理 的多条数据流流 向输入 的末节点 。 5 ) 在末节点 中汇聚成一条数据流流 向处理 的头节点 。 ( 图2 ) 6 1 在处理 的头节点 中将数据流分离开 , 流 向相应 的处理节点 。 7 ) 将输 入 的末 节点 的圆改成 方框 当做 结构 图的输入 子树的根 , 并 将输 入部 分箭头 反画深度遍历 整个数据 流图输入部分 , 作为结构 图的

选课系统的UML的环境图,数据流图,结构图,数据库设计,程序流程图

选课系统的UML的环境图,数据流图,结构图,数据库设计,程序流程图
表4教师-课程记录数据表(teacher_course)
列 名
数据类型
宽度
字段描述
ID
Int
4
教师-课程记录的惟一ID号,设为主键
Teacher id
Varchar
50
教师号
Course id
Varchar
50
教师所任课程号
Teacher_class
Varchar
50
教师所教班级号
Course_year
(4)正选:学生根据预选课课表进行跨专业选修和补退选。
(5)成绩:教务处输入考试安排,考试完成后老师输入学生成绩,学生可以查询自己的成绩。
四、数据库设计
表1用户信息数据表(Manger)
列 名
数据类型
宽度
字段描述
Manger_id
Char
10
用户名,设为主键
Manger_Passwod
Char
20
用户登录本系统时的用户密码
(d)加工名:成绩管理
编号:3
简述:根据学生已选修的课程教秘安排考试并输入到教务管理中。学生进行考试,成绩合格的同学可以打印自己的成绩,成绩不合格的教务管理安排补考。对于不能考试的学生须向教秘申请,获得批准后和正考成绩不合格的学生一起进行补考。补考成绩最高为60分。补考不合格的学生需进行重修。功能进行学生成绩管理
模块说明:
(1)登录:进入登录界面,选择用户的类型:教务处老师学生。输入用户名和密码进入系统。
(2)信息输入:教务处输入教师信息和学生信息和推荐课表。学生根据实际情况选择对应的课程。选定后,系统显示具体学科上课时间和教师教室信息,学生选课完成后。若选择情况有误,可点击退选进行修改。

VB酒店客房管理系统数据流图+ER图+功能模块图

VB酒店客房管理系统数据流图+ER图+功能模块图

VB酒店客房管理系统数据流图+ER图+功能模块图第一章、系统概述1.1项目研究的意义第二章、系统需求分析2.1编写目的 (1)2.2开发背景 (2)2.3参考资料 (2)2.4任务概述2.4.1实现目标 (2)2.4.2运行环境 (3)2.3条件限制 (3)2.5数据描述2.5.1信息需求 (3)2.5.2处理需求 (3)2.6数据流图 (4)2.7数据字典 (6)2.8功能需求2.8.1功能模块 (6)2.8.2系统主要功能描述 (7)2.9性能需求2.9.1数据精度 (7)2.9.2时间特性 (7)2.10 运行需求 (7)2.11 其他要求 (7)第三章、数据库概念结构设计3.1E-R图 (8)3.1.1 局部E-R图 (8)3.1.2总E-R图 (9)第四章、数据库的逻辑结构设计(详细设计)4.1关系模式 (10)4.2基本表 (10)4.3接口设计 (12)第五章、系统的实现与调试5.1系统流程设计 (13)第六章系统的界面设计及源代码6.1登陆窗口界面及代码 (14)6.2系统主窗口界面 (15)6.3.住宿管理设计 (19)6.3.1住宿登记 (19)6.3.2追加押金 (25)6.3.3调房登记 (28)6.3.4退房结帐 (31)6.4客房管理 (36)6.4.1客房设置 (36)6.4.2.客房查询 (38)6.4.3.房态查看 (39)6.5挂帐管理 (41)6.6查询统计 (42)6.6.1.住宿查询 (42)6.6.2退宿查询 (42)6.6.3宿费提醒 (43)6.7日结设计 (44)6.7.1客房销售报表 (44)6.8系统设置 (46)6.8.1操作员设置 (46)6.8.2密码设置 (47)6.8.3权限设置 (321)[10] ... >>酒店客房管理系统系统的界面设计及源代码6.1系统登陆窗口界面Dim TIM As Integer ''定义一个整型变量Dim myval As String ''定义一个字符串变量Private Sub Form_Load()''自动识别数据库路径Data1.DatabaseName = App.Path & "\KFGL.mdb"Data2.DatabaseName = App.Path & "\KFGL.mdb"End SubPrivate Sub Form_Activate()''当记录为零时,进入系统具有所有权限If Data1.Recordset.RecordCount = 0 ThenMsgBox ("请先设置操作员密码和权限!")Load mainmain.ShowUnload MeElseText1.SetFocusEnd IfEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then Text2.SetFocus ''按回车键,text2获得焦点End SubPrivate Sub text2_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then Cmd1.SetFocus ''按回车键cmd1获得焦点If KeyCode = vbKeyUp Then Text1.SetFocusIf KeyCode = vbKeyDown Then Cmd1.SetFocusEnd SubPrivate Sub cmd1_Click()main.StatusBar1.Panels(4).Text = Text1.Text ''赋值给main.StatusBar1.Panels(4).Text''验证操作员及密码If Data2.Recordset.BOF = False Then Data2.Recordset.MoveFirstData2.Recordset.FindFirst "操作员 like " + Chr(34) + Text1.BoundText + Chr(34) + ""If Data2.Recordset.NoMatch ThenMsgBox ("操作员输入错误!")ElseData1.RecordSource = "select * from qxsz where 操作员=''" & Text1.BoundText & "''"Data1.RefreshIf Text1.BoundText <> "" And Text2.Text <> "" And Text2.Text = Data1.Recordset.Fields("密码") Then Load mainmain.ShowUnload MeElseIf TIM = 3 Then ''密码输错3次,退出系统myval = MsgBox("密码输入错误,请向系统管理员查询!", 0, "")If myval = vbOK Then EndEnd IfIf Text1.BoundText = "" ThenMsgBox ("请输入操作员!")Text1.SetFocusElseIf Text1.BoundText <> Data1.Recordset.Fields("操作员") ThenMsgBox ("查无此操作员,请重新输入操作员!")Text1.SetFocusElseIf Text2.Text = "" ThenMsgBox ("请输入操作员密码!")Text2.SetFocusElseIf Text2.Text <> Data1.Recordset.Fields("密码") ThenMsgBox ("密码错误,请重新输入密码!")TIM = TIM + 1Text2.SetFocusEnd IfEnd IfEnd IfEnd IfEnd IfEnd IfEnd SubPrivate Sub cmd2_Click()End6.2系统主程序窗口界面Private Sub Form_Load()Data1.DatabaseName = App.Path & "\Kfgl.MDB" ''自动识别数据库路径End SubPrivate Sub Form_Activate() ''设置操作员权限With Data1.RecordsetIf .BOF = False Then .MoveFirst.FindFirst "操作员 like " + Chr(34) + StatusBar1.Panels(4).Text + Chr(34) + ""If .NoMatch ThenElsemain.zjyj.Enabled = .Fields("追加押金")main.zsdj.Enabled = .Fields("住宿登记")bel1.Enabled = .Fields("住宿登记")main.tf.Enabled = .Fields("退宿登记")bel2.Enabled = .Fields("退宿登记")main.tfdj.Enabled = .Fields("调房登记")main.kfsz.Enabled = .Fields("客房管理")main.kfcx.Enabled = .Fields("客房查询")main.ftck.Enabled = .Fields("房态查看")main.khjk.Enabled = .Fields("客户结款")main.zscx.Enabled = .Fields("住宿查询")bel3.Enabled = .Fields("住宿查询")main.tfcx.Enabled = .Fields("退宿查询")main.sftx.Enabled = .Fields("宿费提醒")bel5.Enabled = .Fields("宿费提醒")bel4.Enabled = .Fields("客房销售报表")main.xstj.Enabled = .Fields("客房销售统计报表")main.czysz.Enabled = .Fields("操作员设置")main.ma.Enabled = .Fields("密码设置")main.csh.Enabled = .Fields("初始化")main.qxsz.Enabled = .Fields("权限设置")End IfEnd WithEnd SubPrivate Sub label1_Click() ''调入住宿登记zsdj_ClickEnd SubPrivate Sub label2_Click() ''调入退宿结帐tf_ClickEnd SubPrivate Sub Label3_Click() ''调入住宿查询zscx_ClickEnd SubPrivate Sub Label4_Click() ''调入客房销售报表xsbb_ClickEnd SubPrivate Sub Label5_Click() ''调入宿费提醒sftx_ClickEnd SubPrivate Sub label6_Click()EndEnd SubPrivate Sub zjyj_Click() ''调入追加押金Load main_zjyjmain_zjyj.Showmain.Enabled = FalseEnd SubPrivate Sub tfdj_Click() ''调入调房登记main_tfdj.Showmain.Enabled = FalseEnd SubPrivate Sub tf_Click() ''调入退宿结帐main_tf.Showmain.Enabled = FalseEnd SubPrivate Sub kfsz_Click() ''调入客房管理[10] ... >>VB酒店客房管理系统数据流图+ER图+功能模块图main_kfgl.Showmain.Enabled = FalseEnd SubPrivate Sub kfcx_Click() ''调入客房查询main_kfcx.Showmain.Enabled = FalseEnd SubPrivate Sub ftck_Click() ''调入房态查看main_ftcx.Showmain.Enabled = FalseEnd SubPrivate Sub gzcx_Click() ''调入挂帐查询Load main_gzcxmain_gzcx.Showmain.Enabled = FalseEnd SubPrivate Sub khjk_Click() ''调入客户结款Load main_khjkmain_khjk.Showmain.Enabled = FalseEnd SubPrivate Sub zscx_Click() ''调入住宿查询Load main_zscxmain_zscx.Showmain.Enabled = FalseEnd SubPrivate Sub tfcx_Click() ''调入退宿查询Load main_tfcxmain_tfcx.Showmain.Enabled = FalseEnd SubPrivate Sub sftx_Click() ''调入宿费提醒Load main_xftxmain_xftx.Showmain.Enabled = FalseEnd SubPrivate Sub xsbb_Click() ''调入客房销售报表main_xsbb.Showmain.Enabled = FalseEnd SubPrivate Sub xstj_Click() ''调入客房销售统计main_xstj.Showmain.Enabled = FalseEnd SubPrivate Sub czysz_Click() ''调入操作员设置Load main_czyszmain_czysz.Showmain.Enabled = FalseEnd SubPrivate Sub ma_Click() ''调入密码设置main_mmsz.Showmain.Enabled = FalseEnd SubPrivate Sub csh_Click() ''调入初始化main_csh.Showmain.Enabled = FalseEnd SubPrivate Sub qxsz_Click() ''调入权限设置main_qxsz.Showmain.Enabled = FalseEnd SubPrivate Sub tc_Click()EndEnd Sub6.3住宿管理设计6.3.1住宿登记`Private Sub ZSDJ_Change(Index As Integer)Select Case IndexCase 6ZSDJ(7).Text = Format(Val(ZSDJ(6).Text) * Val(ZSDJ(5).Text), "0.00") ''计算折前宿费ZSDJ(9).Text = ZSDJ(7).Text ''赋值给ZSDJ(9)ZSDJ(8).Text = 100DTP3.Value = DTP1.Value + Val(ZSDJ(6).Text) ''计算退宿日期Case 8ZSDJ(9).Text = Format(Val(ZSDJ(7).Text) * Val(ZSDJ(8).Text) / 100, "0.00") ''计算实际宿费 Case 10If ZSDJ(10).Text <> "" ThenZSDJ(10).Text = Val(ZSDJ(10).Text) ''用val函数将字符串转换为数字DTP2.Value = DTP1.Value + Int(Val(ZSDJ(10).Text) / Val(ZSDJ(5).Text)) ''计算提醒日期If (Val(ZSDJ(10).Text) - Int(Val(ZSDJ(10).Text) / Val(ZSDJ(5).Text))) > 0.5 * Val(ZSDJ(5).Text) Then tim2.Value = #6:00:00 PM#Elsetim2.Value = #12:00:00 AM#End IfEnd IfEnd SelectEnd SubPrivate Sub ZSDJ_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)Select Case IndexCase 0If KeyCode = vbKeyReturn Then Combo1.SetFocus ''按回车键Combo1获得焦点 Case 1If KeyCode = vbKeyReturn Then ZSDJ(2).SetFocus ''按回车键ZSDJ(2)获得焦点 Case 2If KeyCode = vbKeyReturn Then ZSDJ(3).SetFocus ''按回车键ZSDJ(3)获得焦点 Case 3If KeyCode = vbKeyReturn Then DBCombo1.SetFocus ''按回车键ZSDJ(2)获得焦点Case 4If KeyCode = vbKeyReturn Then ZSDJ(5).SetFocus ''按回车键ZSDJ(5)获得焦点Case 5SetFocus ''按回车键ZSDJ(10)获得焦点Case 10If KeyCode = vbKeyReturn Then ZSDJ(11).SetFocus ''ZSDJ(11)获得焦点 Case 11If KeyCode = vbKeyReturn Then Comok.SetFocus ''按回车键Comok获得焦点End SelectEnd SubPrivate Sub Combo1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then ZSDJ(1).SetFocus ''按回车键ZSDJ(1)获得焦点End SubPrivate Sub DTP2_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then tim3.SetFocus ''按回车键tim3获得焦点End SubPrivate Sub DTP3_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then tim4.SetFocus ''按回车键tim4获得焦点End SubPrivate Sub tim3_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then DTP3.SetFocus ''按回车键DTP3获得焦点End SubPrivate Sub tim4_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then Text10.SetFocus ''按回车键Text10获得焦点End SubPrivate Sub DBCombo1_Change()''查询空闲房间信息Data2.RecordSource = "select * from kf where 房间号=''" & DBCombo1.Text & "''and 房态=''空房''"Data2.Refresh''查询住宿登记信息Data1.RecordSource = "select * from djb where 房间号=''" & DBCombo1.Text & "''and 标志=''1''"Data1.RefreshIf Data2.Recordset.RecordCount > 0 ThenIf Data1.Recordset.RecordCount = 0 ThenZSDJ(4).Text = Data2.Recordset.Fields("房间类型") ''赋值给ZSDJ(4)ZSDJ(5).Text = Data2.Recordset.Fields("价格") ''赋值给ZSDJ(5) ElseMsgBox ("此房间已占用或停止使用!!")End IfEnd IfEnd SubPrivate Sub DBCombo1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn Then ZSDJ(5).SetFocus ''ZSDJ(5)获得焦点End SubPrivate Sub comdj_Click()''查询空闲房间信息Data2.RecordSource = "select * from kf where 房态=''空房''"Data2.RefreshData3.RecordSource = "select * from kf where 房态=''空房''"Data3.Refresh''生成凭证号码Data1.RecordSource = "select * from djb order by 凭证号码"Data1.RefreshIf Not Data1.Recordset.EOF Then Data1.Recordset.MoveLastIf lsph.Text = "" Then bh.Text = Date & "d" & Format(1, "###000")If lsph.Text <> "" Theny1.Text = Month(Date)y2.Text = Month(Left(lsph.Text, 10))If y1.Text = y2.Text Thenbh.Text = Date & "d" & Format(Val(Right(lsph.Text, 3)) + 1, "###000")End If[10] ... >>酒店客房管理系统VB源代码If y1.Text <> y2.Text Thenbh.Text = Date & "d" & Format(1, "###000")End IfEnd If''清空数据For i = 0 To 6ZSDJ(i).Text = ""ZSDJ(i).Enabled = TrueNext iZSDJ(8).Text = "": ZSDJ(10).Text = "": ZSDJ(11).Text = "": DBCombo1.Text = "": DBCombo1.Text = ""''设置控件有效或无效Comok.Enabled = True: Comdj.Enabled = False: Comprint.Enabled = False: ZSDJ(8).Enabled = TrueZSDJ(10).Enabled = True: ZSDJ(11).Enabled = True: DBCombo1.Enabled = True: Combo1.Enabled = TrueCombo2.Enabled = True: ZSDJ(0).SetFocus ''ZSDJ(0)获得焦点End SubPrivate Sub comok_Click()Dim mydb1 As DatabaseDim myrs1 As RecordsetSet mydb1 = Workspaces(0).OpenDatabase(App.Path & "\kfgl.mdb")Set myrs1 = mydb1.OpenRecordset("djys", dbOpenTable)Data1.Recordset.FindFirst "房间号 like" + Chr(34) + DBCombo1.Text + Chr(34) + "and 标志 like" + Chr(34) + "1" + Chr(34) + ""If Data1.Recordset.NoMatch Then''添加住宿信息Data1.Recordset.AddNewIf bh.Text <> "" Then Data1.Recordset.Fields("凭证号码") = bh.TextIf ZSDJ(0).Text <> "" Then Data1.Recordset.Fields("姓名") = ZSDJ(0).TextIf Combo1.Text <> "" Then Data1.Recordset.Fields("证件名称") = Combo1.TextIf ZSDJ(1).Text <> "" Then Data1.Recordset.Fields("证件号码") = ZSDJ(1).TextIf ZSDJ(2).Text <> "" Then Data1.Recordset.Fields("详细地址") = ZSDJ(2).TextIf ZSDJ(3).Text <> "" Then Data1.Recordset.Fields("出差事由") = ZSDJ(3).TextIf DBCombo1.Text <> "" Then Data1.Recordset.Fields("房间号") = Val(DBCombo1.Text)If ZSDJ(4).Text <> "" Then Data1.Recordset.Fields("客房类型") = ZSDJ(4).TextIf DTP1.Value <> "" Then Data1.Recordset.Fields("住宿日期") = DTP1.ValueIf tim1.Value <> "" Then Data1.Recordset.Fields("住宿时间") = tim1.ValueIf ZSDJ(5).Text <> "" Then Data1.Recordset.Fields("客房价格") = Val(ZSDJ(5).Text)If ZSDJ(6).Text <> "" Then Data1.Recordset.Fields("住宿天数") = ZSDJ(6).TextIf ZSDJ(8).Text <> "" Then Data1.Recordset.Fields("折扣") = ZSDJ(8).TextIf ZSDJ(7).Text <> "" Then Data1.Recordset.Fields("宿费") = ZSDJ(7).TextIf Combo2.Text <> "" Then Data1.Recordset.Fields("结款方式") = Combo2.TextIf ZSDJ(9).Text <> "" Then Data1.Recordset.Fields("应收宿费") = ZSDJ(9).TextIf ZSDJ(10).Text <> "" Then Data1.Recordset.Fields("预收金额") = Val(ZSDJ(10).Text)If DTP2.Value <> "" Then Data1.Recordset.Fields("提醒日期") = DTP2.ValueIf tim2.Value <> "" Then Data1.Recordset.Fields("提醒时间") = tim2.ValueIf DTP3.Value <> "" Then Data1.Recordset.Fields("退宿日期") = DTP3.ValueIf tim3.Value <> "" Then Data1.Recordset.Fields("退宿时间") = tim3.ValueIf ZSDJ(11).Text <> "" Then Data1.Recordset.Fields("备注") = ZSDJ(11).TextData1.Recordset.Fields("日期") = DateData1.Recordset.Fields("时间") = TimeData1.Recordset.Fields("BZ") = Left(Date, 4) & Right(Left(Date, 7), 2) & Right(Date, 2) & Left(Time, 2) & Left(Right(Time, 5), 2)Data1.Recordset.Fields("标志") = "1"''更新记录Data1.Recordset.Update''添加住宿预收信息myrs1.AddNewIf bh.Text <> "" Then myrs1.Fields("凭证号码") = bh.TextIf ZSDJ(0).Text <> "" Then myrs1.Fields("姓名") = ZSDJ(0).TextIf Combo1.Text <> "" Then myrs1.Fields("证件名称") = Combo1.TextIf ZSDJ(1).Text <> "" Then myrs1.Fields("证件号码") = ZSDJ(1).TextIf ZSDJ(2).Text <> "" Then myrs1.Fields("详细地址") = ZSDJ(2).TextIf ZSDJ(3).Text <> "" Then myrs1.Fields("出差事由") = ZSDJ(3).TextIf DBCombo1.Text <> "" Then myrs1.Fields("房间号") = Val(DBCombo1.Text)If ZSDJ(5).Text <> "" Then myrs1.Fields("客房价格") = Val(ZSDJ(5).Text)If DTP1.Value <> "" Then myrs1.Fields("住宿日期") = DTP1.ValueIf tim1.Value <> "" Then myrs1.Fields("住宿时间") = tim1.ValueIf ZSDJ(6).Text <> "" Then myrs1.Fields("住宿天数") = ZSDJ(6).TextIf Combo2.Text <> "" Then myrs1.Fields("结款方式") = Combo2.TextIf ZSDJ(8).Text <> "" Then myrs1.Fields("折扣") = ZSDJ(8).TextIf ZSDJ(7).Text <> "" Then myrs1.Fields("宿费") = ZSDJ(7).TextIf ZSDJ(9).Text <> "" Then myrs1.Fields("应收宿费") = ZSDJ(9).TextIf ZSDJ(10).Text <> "" Then myrs1.Fields("预收金额") = Val(ZSDJ(10).Text)If DTP2.Value <> "" Then myrs1.Fields("提醒日期") = DTP2.ValueIf tim2.Value <> "" Then myrs1.Fields("提醒时间") = tim2.ValueIf DTP3.Value <> "" Then myrs1.Fields("退宿日期") = DTP3.ValueIf tim3.Value <> "" Then myrs1.Fields("退宿时间") = tim3.ValueIf ZSDJ(11).Text <> "" Then myrs1.Fields("备注") = ZSDJ(11).Textmyrs1.Fields("日期") = Datemyrs1.Fields("时间") = Timemyrs1.Fields("BZ") = Left(Date, 4) & Right(Left(Date, 7), 2) & Right(Date, 2) & Left(Time, 2) & Left(Right(Time, 5), 2)myrs1.Fields("标志") = "1"''更新记录myrs1.Update''更新房间状态Data2.Recordset.FindFirst "房间号 like " + Chr(34) + DBCombo1.Text + Chr(34) + ""Data2.Recordset.EditData2.Recordset.Fields("房态") = "入住"Data2.Recordset.Update''设置控件有效或无效For i = 0 To 6ZSDJ(i).Enabled = FalseNext iZSDJ(8).Enabled = False: ZSDJ(10).Enabled = False: ZSDJ(11).Enabled = FalseDBCombo1.Enabled = False: Combo1.Enabled = FalseEnd IfComok.Enabled = False: Comprint.Enabled = True: Comdj.Enabled = TrueComprint.SetFocusEnd SubPrivate Sub comcancel_Click() ''取消操作For i = 0 To 11ZSDJ(i).Enabled = FalseNext iComprint.Enabled = False: Comok.Enabled = False: DBCombo1.Enabled = FalseCombo1.Enabled = False: Combo2.Enabled = False: DTP2.Enabled = False: DTP3.Enabled = Falsetim2.Enabled = False: tim3.Enabled = False: Comdj.Enabled = TrueEnd SubPrivate Sub comprint_Click() ''打印住宿登记单据Printer.Height = 8000: Printer.Width = 8000Printer.CurrentX = 1100: Printer.CurrentY = 300Printer.FontSize = 12Printer.Print "龙海宾馆 (住宿证) "Dim A, B, C, D As IntegerA = 100:B = 500:C = 4800:D = 400Printer.FontSize = 10Printer.CurrentX = 100 + APrinter.CurrentY = B + 200Printer.Print Date & " " & Time & " NO." & bh.Text B = B + DPrinter.Line (A, B + 100)-(C, B + 100)Printer.CurrentX = 100 + APrinter.CurrentY = B + 200Printer.Print "姓名:" & ZSDJ(0).TextB = B + DPrinter.CurrentX = 100 + APrinter.CurrentY = B + 200Printer.Print "房间号:" & DBCombo1.TextB = B + DPrinter.CurrentX = 100 + APrinter.CurrentY = B + 200Printer.Print "押金:" & Format(ZSDJ(10).Text, "0.00")B = B + DPrinter.CurrentX = 100 + APrinter.CurrentY = B + 200Printer.Print Combo2.Text & ":" & ZSDJ(8).Text &。

模块结构图

模块结构图
• 运用判断条件的模块不要与生成该判断条件的模块所 在的层次相隔过高,如图8.8b)中模块A的影响范围就 与A相离太远。解决方法
– 把生成判断条件功能下移到接近运用判断 条件的模块。图8.8c)中模块E的影响范围 是理想的。
A
A
A
B
C
B
C
D
E
D
E
F
G
a) 受影响模块在控制范 围之外
F
G
b) 判断点位置过高
• 生成判断条件的模块的影响范围都应当是其控 制范围的子集,如图8.8a)中模块B的影响范围 就超出了其控制服务。解决方法
– 在系统结构中向上层移动判断点的位置, 以扩大模块的控制范围。
– 将具有判断功能的模块合并到它的上层调 用模块中,从而提高判断点位置。
– 在结构层次中,将受到某判断模块影响的 模块下移,使其处于判断模块的控制范围 之内。
• 模块内聚度的判别可用图1来示意。
完成 单一 功能
数据流程
顺序的
Y
功能内聚
Y
顺序内聚
N 通信内聚
使几件 事相关 的因素
共享数据
Y 过程内聚
处理逻辑 (控制流)
在同一控 制结构中
N
同一时间 段内执行
时间内聚
Y 逻辑内聚
压缩编码 或使模块变大
动作相似 N 偶然内聚
图1 模块内聚评价判别示意图
• 块间联系——模块耦合
– 传递信息的类型(作用)
• 数据型:收发双方都把传送的信息只作为被处理的对 象,因而它不会影响任何一方的处理流程,块间联系 松弛。
• 控制型:收发双方都明确传送信息是控制条件,也都 意识到它会影响对方的处理流程,彼此要了解对方的 内部结构,以把握传送信息带来的影响。

数据流图到模块结构图

数据流图到模块结构图
1 变换分析
对线性结构的DFD作分析,步骤: 划分数据流图的输入、主加工和逻辑输出 套用固定格式生成第1、2层模块结构图 对第2层模块进一步分解,构造完整的模块结构图
第1步 划分输入、加工、输出
原始数据
机内数据
正确数据

格式化解
输出解
逻辑输出
逻辑输入
(物理输入)
(物理输出)
P1 读入 数据
处理事务C
处理事务A
处理事务B
事务A
更新P
事务B
更新Q
事务C
更新R
打印清单
事务分析结果
上图存在控制耦合,消除后:
业务处理
分配处理
输入数据
判别业务
处理事务C
处理事务A
处理事务B
事务A
更新P
事务B
更新Q
事务C
更新R
打印清单
3 层次的对应关系
数据流图的层次和结构图的层次存在一定的对应关系,但不是机械照搬。
转换有规律可循吗?
数据流图的结构: 层次结构 变换型( Transform)结构 事务型(Transaction)结构 这三种结构可以分别通过层次转换、变换分析和事务分析方法导出标准形式的结构图。 层次转换:高层可以对应模块结构的层次,但中低层对应关系不明显。 变换分析:用来描述输入、处理、输出数据流。 事务分析:用来描述多种事务类型的处理。
P2 编辑 数据
P3 求解
P4 编辑 格式
P5 打印 输出
第2步 构造第1、2层模块
正确数据
求解 编辑数据
计算
获得正确数据
输出解
编排格式
打印解
编辑数据
读入数据
正确数据

管理信息系统课后习题及参考答案

管理信息系统课后习题及参考答案

第1章1.什么是信息,什么是数据?简述二者之间的联系和区别。

2.什么是信息循环?3.简述信息的层次和信息的类型及主要特性。

4.简述管理信息的特点。

6.简述信息系统的定义。

7.什么是管理信息系统,它有什么特点?第2章1.建设管理信息系统方法应包含的内容主要有哪些?2.简述管理信息系统的生命周期。

3.结构化方法的基本思想是什么?4.什么是结构化生命周期法?5.什么是快速原型法?6.简述在系统分析阶段使用原型法的开发过程。

7.试述本教材为什么选择结构化生命周期法作为重点讲述内容。

8.管理信息系统的开发方式有哪些?第3章1.试述系统规划的主要目标和任务。

2.试述系统规划工作的主要特点和关键问题。

3.什么是管理信息系统开发中的系统分析?其主要目标和活动内容有哪些?系统分析工作的主要特点是什么?4.初步调查的内容主要有哪些?5.可行性研究的目的是什么?6.可行性研究主要从哪几个方面去考察?简述其内容。

第4章1.简述需求分析中现行系统调查、新系统逻辑方案的提出等活动的详细内容、关键问题、主要成果及其描述方法。

2.为什么数据流图要分层?3.简述分层数据流图的组成与基本符号以及绘制步骤。

4.简述数据词典在需求分析中的作用和编写数据词典的基本要求。

5.什么是基本加工?描述表达基本加工逻辑功能的结构化工具有那些?特点是什么?6.某银行发放贷款原则如下:(1)对于贷款未超过限额的客户,允许立即贷款;(2)对于贷款已超过限额的客户,若过去还款记录好且本次贷款额在2万元以下,可作出贷款安排,否则拒绝贷款。

请用结构化语言、决策表来描述该原则。

7.依据如下决策表,画出决策树。

信件收费决策表8.下面是对银行取款活动的描述:储户携带存折前去银行,把存折和填好的取款单一并交给银行工作人员检验。

工作人员需核对帐目,发现存折有效性问题、取款单填写问题或是存折、帐卡与取款单不符等问题时,均应报告储户。

在检验通过的情形下,银行则应将取款信息登记在存折和帐卡上,并通知付款。

学生成绩管理系统软件结构图

学生成绩管理系统软件结构图

学生成绩管理系统一、软件功能层次图根据需求分析得出学生成绩管理系统功能结构图。

如图1所示:图1学生成绩管理系统功能结构图二、软件体系结构学生成绩管理系统是对学生成绩信息的管理和维护,是以数据为中心的体系结构,依靠数据联通各个部分,使之协调工作。

图2是学生成绩管理系统对应的体系结构示意图图2学生成绩管理系统的体系结构示意图根据需求分析根据系统安全性的需求,增加了用户身份验证环节。

对关联图进行细化和修改,根据该系统的数据关系,整理出了图3所示的数据流图。

本数据流图采用了事务分析的方法。

图3 学生成绩管理系统数据流图从软件的整体布局考虑增加了系统初始化模块和菜单显示模块,用以完成系统运行环境的搭建,图4是对图3的数据流图进行分析和分解得到的软件结构图。

图4学生成绩管理系统软件结构图三、教师服务子系统1、功能描述教师首先输入账号和密码登录系统,系统验证教师身份的有效性,无效则提示原因,有效则进入管理界面。

教师可以通过学生学号插入或查询学生的信息和成绩,也可以对成绩进行排序处理,可以整体宏观的比较学生成绩,分析学生成绩。

2、模块结构根据功能和数据流图可以得出教师服务子系统的软件结构图,如图5所示图5教师服务系统软件结构图四、学生服务子系统1、功能描述学生首先输入账号和密码登录系统,系统验证学生身份的有效性,无效则提示原因,有效则进入管理界面。

学生可以通过学号插入或查询学生的信息和成绩,也可以对成绩进行排序处理,可以整体宏观的了解自己的成绩2、模块结构根据功能和数据流图可以得出学生服务子系统的软件结构图,如图6所示图6学生服务系统软件结构图。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

3 层次的对应关系
• 数据流图的层次和结构图的层次存在一定的 对应关系,但不是机械照搬。
P1.4
M32
............. .. ............. . ........... ...
............. .
........... ...
数据
中间结果 最终解
计算A
计算B
2 事务分析
• 对并行结构的DFD进行分析,如:根据输入 数据判断业务类型,不同业务的具体处理过 程有区别。
事务A A结果 A数据 决定 事务类 型 B数据 事务B C结果 C数据 B结果 更新Q 更新P
P内容
清单 Q内容 打印 更新内 容
原始输入
更新R
事务C
R内容
转换有规律可循吗?
• 数据流图的结构:
– 层次结构 – 变换型( Transform)结构 – 事务型(Transaction)结构 – 这三种结构可以分别通过层次转换、变换分析和事 务分析方法导出标准形式的结构图。 • 层次转换:高层可以对应模块结构的层次,但中低层 对应关系不明显。 • 变换分析:用来描述输入、处理、输出数据流。 • 事务分析:用来描述多种事务类型的处理。
结构化系统设计
本章主要内容
• 系统设计的任务 • 总体设计
– 结构化设计的概念、基本原则 – 从数据流图导出结构图
• 详细设计
– – – – – – 代码设计 输出设计 输入设计 人机对话设计 模块详细设计 数据库设计、网络设计
• 系统设计说明书
从数据流图导出结构图
分析模型 (逻辑模型)
转换
设计模型 (物理模型)
事务分析结果
业务处理
分析类型
分配处理
输入数据
判别业务 处理事务A 处理事务B 处理事务C
事务A 更新P 事务B 更新Q 事务C 更新R
打印清单
事务分析结果
• 上图存在控制耦合,消除后:
业务处理
输入数据
分配处理
判别业务
处理事务A
处理事务B
处理事务C
事务A 更新P 事务B 更新Q 事务C 更新R
打印清单
读 入 数 据
(物理输入)
编 辑 数 据
求 解
编 辑 格 式
打 印 输 出 (物理输出)
第2步 构造第1、2层模块
正确数据
求解 编辑数据

正确数据

获得正确数据
计算 解
输出解
原始数据
正确 数据
格式化解
原始数据 编辑数据 编排格式
格式化解
读入数据
打印解
第3步 继续分解
• 更细粒度的模块分解,如:
计算
1 变换分析
对线性结构的DFD作分析,步骤: 1. 划分数据流图的输入、主加工和逻辑输出 2. 套用固定格式生成第1、2层模块结构图 3. 对第2层模块进一步分解,构造完整的模块 结构图
ห้องสมุดไป่ตู้
第1步 划分输入、加工、输出
逻辑输入 P1
原始数据 机内数 据
逻辑输出
P2
正确数 据
P3

P4
格式化 解
P5
输出解
转换存在一定的鸿沟
• 数据流图着眼于现实世界,结构图着眼于计 算机世界。
– 数据流图反映数据流,反映系统的逻辑功能,即 系统能够“做什么”; – 结构图反映程序控制层次,反映系统的物理模型, 即怎样逐步实现系统的总功能。
• 简单地说:数据流图描述线性的工作流程, 结构图描述工作的分配控制(谁负责做什么)
相关文档
最新文档