数据流图到模块结构图
- 格式:ppt
- 大小:2.32 MB
- 文档页数:13
图书管理系统需求分析—功能流程图一、功能结构图二、各模块功能说明系统管理员系统分为4个模块:系统管理员身份认证模块、图书管理模块、借阅者管理模块和借阅超时管理模块.(一)管理员身份认证①接口描述:输入系统管理员身份认证信息②模块功能:通过检验认证信息允许系统管理员进入系统管理员系统管理③过程陈述:将输入的管理员身份认证信息与管理员信息表中的信息惊喜对照,若管理员编号、姓名和密码中的任意一项与信息管理员信息表中的信息不符合则认为输入有误,身份不通过,要求重新输入;只有三者都相同才能通过身份认证进入系统。
④约束:最多只允许系统管理员输入三次,若三次都有误,则认定该输入者为非法管理员,不允许其再输入.(二)借阅者管理模块①接口描述:输出借阅者管理信息②模块功能:对借阅者信息|借阅者分类信息执行修改、查看和删除操作③过程陈述:输入借阅者编号,打开借阅者信息表可修改、查看和删除表中的信息,并将修改后的信息保存到借阅者信息表中,执行删除操作则需对借阅者分类信息表中的信息进行修改;输入借阅者职务/班次,可打开借阅者分类信息表,可修改、查看和删除表中的信息,并将修改后的信息保存到借阅者分类信息表中。
④约束:借阅者可分为学生和教师两类,以职务/班次为关键字进行索引.(三)图书管理模块①接口描述:输出图书管理信息②模块功能:对图书信息|书目信息执行修改、查看和删除操作③过程陈述:输入图书编号,打开图书信息表可修改、查看和删除表中的信息,并将修改后的信息保存到图书信息表中,执行删除操作则需对书目信息表中的信息进行修改;输入图书名|图书类名,可打开书目信息表,可修改、查看和删除表中的信息,并将修改后的信息保存到书目信息表中.④约束:系统管理员对图书信息|书目信息,只有修改、查询和删除的权限,没有添加的权限。
(四)借阅超时管理模块①接口描述:输出借阅者超时管理信息②模块功能:读取超时罚款信息,锁定超时借阅者③过程陈述:输入借阅者编号可读取借阅者的超时罚款信息;输入当前时间可通过读取借阅信息表并列出超时借阅者名单,锁定超时借阅者,借书状态为不可借;同时将超时借阅者信息告知操作管理员系统,并将记录写到超时罚款信息表中。
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 &。
第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、确定以事务为中心结构,包括找出事务中心和事务来源。
2、按功能划分事务,将具备相同功能的事务分为同一类,建立事务模块。
3、为每个事务处理模块建立全部的操作层模块。
4、若有必要,则为操作层模块定义相应的细节模块,并尽可能使细节模块被多个操作模块共享。
三、混合结构在规模较大的实际系统中,其数据流图往往是变换型和事务型的混合结构。
此时可把变换型分析和事务分析应用在同一数据流图的不同部分。
例如,可以把“变换分析”为主,“事务分析”为辅进行设计。
先找出主处理,设计出结构图的上层,然后根据数据流图各部分的结构特点,适当选用“变换分析”或“事务分析”就可以得出初始结构图的某个方案。
这两种方法的思想是首先设计顶层模块,然后自顶向下,逐步细化,最后得到一个满足数据流图所表示的用户要求的系统的模块结构图,即系统的物理模型。
变换流分析与设计分析数据流程图,确定输入流、输出流边界,根据输入、变换、输出3个数据流分支,按一定的规则将它直接映射为结构图。
步骤:(1)确定变换流、输入流和输出流部分(2)设计模块结构的顶层和第一层(3)设计中下各层举例事物流分析与设计步骤:(1)根据事务功能设计一个顶层总控模块;(2)将事务中心的输入数据流对应为一个第一层的接收模块及该模块的下层模块;(3)将事务中心对应为一个第一层的调度模块;(4)对每一种类型的事务处理,在调度模块下设计一个事务处理模块;然后为每个事务处理模块设计下面的操作模块及操作模块的细节模块,每一处理的对应设计可用变换分析方法。
软件工程习题及答案-选择题选择题:1.软件是一种( B )A.有形B.逻辑C.物质D.消耗2.软件工程学科出现的主要原因是( C )A.计算机的发展B.其它工程学科的影响C.软件危机的出现D.程序设计方法学的影响3.(A)是计算机程序及其说明的各种文档A.软件B.文档C.数据D.程序4.有关计算机程序功能、设计、编制、使用的文字图形资料称为( B )A.软件B.文档C.数据D.程序5.软件工程是一种(A)分阶段实现的软件程序开发方法。
A.自顶向下B.自底向上C.逐步求精D.面向数据流6.从结构化的瀑布模型看,在软件生命周期中的八个阶段中,下面的几个选项中( C )出错,对软件的影响最大。
A.详细设计阶段B.概要设计阶段C.需求分析阶段D.测试和运行阶段7.在结构性的瀑布模型中,(C )阶段定义的标准将成为软件测试中的系统测试中的系统测试的目标。
A.详细设计阶段B.概要设计阶段C.需求分析阶段D.可行性研究阶段8.UML是软件开发中的一个重要工具,它主要应用下列哪种软件开发方法( C )。
A.基于瀑布模型的结构化方法B.基于需求动态定义的原型化方法C.基于对象的面向对象的方法D.基于数据的数据流开发方法9.在软件生存周期中,用户主要是在(A)参与软件开发。
A.软件定义期B.软件开发期C.软件维护期D.整个软件生存周期过程中10.软件生存周期模型有多种,下列选项中,( C )不是软件生存周期模型。
A.螺旋模型B.增量模型C.功能模型D.瀑布模型11.对软件的过分分解,必然导致( B )A.模块的独立性差B.接口的复杂程度增加C.软件开发的总工作量增加D.以上都正确12.结构化分析方法是一种面向( C )需求分析方法A.对象B.数据字典C.数据流D.结构图13.结构化设计方法中把软件结构划分为( B )和( E )两大类,并提出了对应于以上两类结构的分析方法。
A.控制型B.变换型C.模拟型D.处理型E.事务型F.分析型G.通信型H.功能型14.瀑布模型中软件生存周期划分为八个阶段,这八个阶段又可分为三个时期,这三个时期分别为计划时期、开发时期和(A)A.运行时期B.可行性分析C.详细设计D.测试和纠错15.进行需求分析可使用多种工具,但( C )是不适用的。
软件工程试题集1、判断题1、软件危机指的是计算机软件的缺乏以及在软件使用过程中所遇到的一系列严重问题。
(错)2、在数据流程图中,用正方形表示外部实体,用圆圈或圆角矩形表示数据处理,用开口矩形或两条平等线表示数据处理。
(错)3、事件的最迟时间指某一事件可以晚发生或延长期限而不影响整个工期的时间。
(错)4、耦合和内聚都是模块独立性的定性标准,都反映模块独立性的良好程度,耦合是直接的主导因素。
(对)5、Jordan闭曲线将平面分成以曲线为边界的两部分,一为有界区域,一为无界区域。
(对)6、CRC模型实际上是一组表示对象的卡片,在卡片的顶部写出对象的名字,左部列出对象的责任,右边列出一个与责任相应的协作者。
(错)7、类级划分测试中,基于范畴的划分是根据操作使用的属性将操作划分成范畴的。
(错)8、模块的独立性是软件开发质量的关键,模块化程度高的软件容易开发,也容易测试和维护。
(对)9、在需求分析中,逻辑模型关心是所做的工作,而物理模型关心的是所做工作的方式。
(对)10、最小和原理表明,当确定输入/变换和变换/输出的界线时,应该使输入和输出部分的处理个数保持最少,这将得到一个优化的结构。
(错)11、基本COCOMO模型将软件分为三种类型,分别是有组织方式、半独立方式和独立方式。
(错)12、在需求分析中,逻辑模型关心是所做的工作,而物理模型关心的是所做工作的方式。
(对)13、模块的独立性是软件开发质量的关键,模块化程度高的软件容易开发,也容易测试和维护。
(对)14、最小和原理表明,当确定输入/变换和变换/输出的界线时,应该使输入和输出部分的处理个数保持最少,这将得到一个优化的结构。
(错)15、白盒测试中的等价类划分是根据输入输出数据的特点,将程序的输入域划分成若干部分。
(错)16、一个对象的设计描述取两种形式,分别为协议描述和实现描述。
(对)17、耦合的应用准则为:尽量使用内容耦合,少用控制耦合,限制使用公共耦合,避免使用数据耦合。