航空课程设计报告.docx
- 文档编号:11192123
- 上传时间:2023-02-25
- 格式:DOCX
- 页数:32
- 大小:280.01KB
航空课程设计报告.docx
《航空课程设计报告.docx》由会员分享,可在线阅读,更多相关《航空课程设计报告.docx(32页珍藏版)》请在冰豆网上搜索。
航空课程设计报告
课程设计报告
一.项目简介
某航空公司有A1、A2和A3三个航班,可预订3日内的机票,票价分别为500,700,1000元,每个飞机仅有三个座位。
试用VisualBasic模拟设计此航空公司的预订票系统。
该系统的功能结构图如下图所示。
要求画出系统流程图,设计出数据库表,编出程序代码。
【课程设计名称】航空管理系统-使用UML进行系统的分析与设计
【课程设计目的】1.掌握UML建模的基础知识和其应用;
2.熟悉RationalRose环境及功能,能够设计出完整系统。
【课程设计要求】1.对系统功能进行必要的描述;
2.绘制系统的主要模型图;
3.模型图要有说明性文字解释。
二.教务系统的需求分析
。
随着全球进入信息化时代,航空公司为了适应当前越来越激烈的竞争,增强公司的信息化程度,提高公司的售票管理的效率,就建立起了相应的航空预订票系统,成功实现提高了航空系统的售票效率和管理水平。
本系统是利用VB6.0作为开发语言,Microsoftaccess作为后台数据库的航空预订票系统。
功能分析:
本系统主要分为四个功能模块,包括登录、订票管理、退票管理和系统重置四方面内容。
运行环境:
Win98、Win2000等操作系统,内存大于64,CPU主频P233以上的机器。
1、基本数据维护模块
●
●1.系统软件总体设计
●
(1)数据库表设计
●系统数据库中有航班信息表、乘客信息表。
●
(2)软件结构设计
系统软件设计遵循模块化程序设计的思想,自顶向下,步步求精。
系统程序由订票模块、退票模块和系统重置模块组成。
此系统为单机试用版。
二.系统的UML建模
航空系统中的部署图,类图,活动图,顺序图。
部署图:
2.类图:
3.活动图:
4.顺序图:
四系统需求分析
1、系统的流程图
2功能结构图
:
五.系统使用说明
本系统分为订票管理、退票管理和系统重置四个主要功能模块。
一、主界面窗口
图
(1)
1、订票管理:
(1)订票管理的查询模块图:
图
(2)
在这窗口中能够查询所有的航班信息,如下图所示:
图(3)
在查询模块中也能查询具体的某一天某一趟航班的信息,以2003-12-2,A2次航班查询为例,如图所示:
图(4)
(2)下面是订票窗口
图(5)
如果某一次航班的客满,将会不显示本次航班没有座位的信息。
如果某位乘客已经订过某一趟航班,系统将会提示此乘客已经订过次趟航班,不允许其在订票。
如果说乘客没有订过此趟航班,航班也有座位,则允许其订票。
如下图所示:
图(6)
2、退票管理
下图为退票窗口:
图(7)
再次窗口中可输入乘客所要退的票,如果机票有效机票,则下图所示:
图(8)
如果机票为无效票,系统将会提示“此机票为无效票!
“
3、系统重置
下面所显示的就是系统重置中的数据清空功能,如图所示:
图(9)
在图(9)中的系统重置中,选择数据清空的功能按钮就会出现上图情况,这样你就已经清空数据库中的数据,能重新使用该系统。
二.系统所要的源代码
(1)Booksystem(code)
OptionExplicit
PrivatecnnrsdataAsNewADODB.Connection
PrivatersdataAsNewADODB.Recordset
DimstrQueryAsString
PrivateSubinit_ado()
'初始化cnnrsdata和rsdata
Dimstrcnn
Setcnnrsdata=NewADODB.Connection
strcnn="Provider=Microsoft.jet.oledb.3.51;"&_
"DataSource='"&App.Path&"\data.mdb'"
cnnrsdata.Openstrcnn
Setrsdata=NewADODB.Recordset
rsdata.CursorType=adOpenKeyset
rsdata.LockType=adLockOptimistic
EndSub
PrivateSubMDIForm_Load()
frmSplash.Show
EndSub
PrivateSubmnubookfind_Click()
find.Show
EndSub
PrivateSubmnudingpiao_Click()
frmbook.Show
EndSub
PrivateSubmnuoutme_Click()
UnloadMe
EndSub
PrivateSubmnuspace_Click()
init_ado
strQuery="select*fromlinewhereline.book=true"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
Ifrsdata.EOFThen
MsgBox"数据已清空!
"
Else
rsdata.MoveFirst
EndIf
DimiAsInteger
Fori=1Torsdata.RecordCount
Ifrsdata!
book=TrueThen
rsdata!
book=False
rsdata.Update
rsdata.MoveNext
EndIf
Nexti
rsdata.Close
strQuery="select*fromcustomer"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
Ifrsdata.EOFThen
booksystem.Show
Else
rsdata.MoveFirst
EndIf
DimjAsInteger
Forj=1Torsdata.RecordCount
rsdata.Delete
rsdata.MoveNext
Nextj
rsdata.Close
EndSub
PrivateSubmnutuipiao_Click()
Frmback.Show
EndSub
(2)Book.frm
OptionExplicit
PrivatecnnrsdataAsNewADODB.Connection
PrivatersdataAsNewADODB.Recordset
DimstrQueryAsString
DimbookinformationAsString
DimresponseAsInteger
PrivateSubinit_ado()
'初始化cnnrsdata和rsdata
Dimstrcnn
Setcnnrsdata=NewADODB.Connection
strcnn="Provider=Microsoft.jet.oledb.3.51;"&_
"DataSource='"&App.Path&"\data.mdb'"
cnnrsdata.Openstrcnn
Setrsdata=NewADODB.Recordset
rsdata.CursorType=adOpenKeyset
rsdata.LockType=adLockOptimistic
EndSub
PrivateSubCmdout_Click()
UnloadMe
EndSub
PrivateSubCmdprint_Click()
DimcomdateAsString,comlineAsString,numberAsString,namAsString,numAsInteger
DimleftAsInteger
DimseatnumberAsString
DimstrseatAsString
DimticketinformationAsString
DiminformationbookAsString
comdate=Trim(Combodate.Text)
comline=Trim(Comboline.Text)'
number=Trim(txtpass.Text)
nam=txtname.Text
Dimstrcnn
init_ado
strQuery="Selectline.date,line.lineFromlineWhereline.date='"&_
Trim(Combodate.Text)&"'"&"andline.line='"&Trim(Comboline.Text)&"'"'
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText'根据输入的信息,从表里得出查询结果
Ifrsdata.EOFThen
MsgBox"日期或航班输入有误,请重新输入!
",,"Error!
"
Combodate.Text=""
Comboline.Text=""
txtname.Text=""
txtpass.Text=""
Combodate.SetFocus
ElseIfLen(nam)=0Then
MsgBox"请输入姓名!
",,"输入姓名"
txtname.SetFocus
ElseIfLen(nam)>8Then
MsgBox"用户名过长,非法!
",,"用户名非法"
txtname.SetFocus
ElseIfLen(number)=0Then
MsgBox"请输入身份证号!
",,"输入身份证号"
txtpass.SetFocus
txtname.Text=""
ElseIfIsNumeric(number)=FalseThen
MsgBox"身份证号应为数字!
",,"重输输入"
txtpass.Text=""
txtpass.SetFocus
Else
rsdata.Close
strQuery="selectcount(*)astotalfromlinewhereline.book=falseandline.date='"&_
Trim(Combodate.Text)&"'"&"andline.line='"&Trim(Comboline.Text)&"'"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText'统计本次航班的剩余的座位数
rsdata.MoveFirst
left=rsdata!
total
Ifleft=0Then
MsgBox"本次航班已经客满!
",,"sorry"
Combodate.Text=""
Comboline.Text=""
txtname.Text=""
txtpass.Text=""
Combodate.SetFocus
Else
ticketinformation="你是输入信息是否真确?
"
informationbook=MsgBox(ticketinformation,vbOKCancel+vbInformation,"检查输入信息!
")
Ifinformationbook=1Then
rsdata.Close
strQuery="Select*FromcustomerWherecustomer.date='"&_
Trim(Combodate.Text)&"'"&"andcustomer.line='"&_
Trim(Comboline.Text)&"'"&"andcustomer.passcard='"&Trim(txtpass.Text)&"'"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText'检查身份证是否一致
Ifrsdata.EOFThen
rsdata.Close
'没有一致的可以继续订票
strseat="select*fromlinewhereline.book=falseandline.date='"&_
Trim(Combodate.Text)&"'"&"andline.line='"&Trim(Comboline.Text)&"'"
rsdata.Openstrseat,cnnrsdata,,,adCmdText'查询本次航班的剩余座位
seatnumber=rsdata.Fields(4).Value
rsdata.Close
rsdata.Open"customer",cnnrsdata,,,adCmdTable
rsdata.AddNew
rsdata!
Date=comdate
rsdata!
Line=comline
rsdata!
Name=nam
rsdata!
passcard=number
rsdata!
sno=Trim(seatnumber)
rsdata.Update'添加新乘客
bookinformation="日期:
"&comdate&""&"航班:
"&comline&""&"座位号:
"&seatnumber&""
response=MsgBox(bookinformation,vbOKOnly+vbInformation,"请检查你的机票!
")
rsdata.Close
'更新line表,将刚卖出的座位号设为false
strQuery="select*fromlinewhereline.sno='"&Trim(seatnumber)&_
"'andline.date='"&Trim(Combodate.Text)&"'"&_
"andline.line='"&Trim(Comboline.Text)&"'"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
Ifrsdata!
book=FalseThen
rsdata!
book=True
rsdata.Update
EndIf
Combodate.Text=""
Comboline.Text=""
txtname.Text=""
txtpass.Text=""
Combodate.SetFocus
Else
'如果身份证和表里的一致,说明你已经订过本次航班
MsgBox"你已经订过这次航班了,对不起,你不能再订了!
",,"sorry!
"
Combodate.Text=""
Comboline.Text=""
txtname.Text=""
txtpass.Text=""
Combodate.SetFocus
EndIf
Else
Combodate.Text=""
Comboline.Text=""
txtname.Text=""
txtpass.Text=""
Combodate.SetFocus
EndIf
EndIf
EndIf
EndSub
PrivateSubForm_Load()
init_ado
strQuery="selectdistinctline.datefromline"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
rsdata.MoveFirst
DimiAsInteger
Fori=1Torsdata.RecordCount
Combodate.AddItemrsdata!
Date
rsdata.MoveNext
Nexti
rsdata.Close
strQuery="selectdistinctline.linefromline"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
rsdata.MoveFirst
DimjAsInteger
Forj=1Torsdata.RecordCount
Comboline.AddItemrsdata!
Line
rsdata.MoveNext
Nextj
rsdata.Close
EndSub
(3)FrmBack.frm
OptionExplicit
PrivatecnnrsdataAsNewADODB.Connection
PrivatersdataAsNewADODB.Recordset
DimstrQueryAsString
PrivateSubinit_ado()
'初始化cnnrsdata和rsdata
Dimstrcnn
Setcnnrsdata=NewADODB.Connection
strcnn="Provider=Microsoft.jet.oledb.3.51;"&_
"DataSource="&App.Path&"/data.mdb;UserId=admin;Password=;"
cnnrsdata.Openstrcnn
Setrsdata=NewADODB.Recordset
rsdata.CursorType=adOpenKeyset
rsdata.LockType=adLockOptimistic
EndSub
PrivateSubCmdback_Click()
DimstrdateAsString
DimstrlineAsString
DimstrseatAsString
DimresponseAsString
DimticketinformationAsString
strdate=Trim(Combodate.Text)
strline=Trim(Comboline.Text)
strseat=Trim(Comboseat.Text)
Dimstrcnn
init_ado
strQuery="Select*FromcustomerWherecustomer.date='"&_
Trim(Combodate.Text)&"'"&"andcustomer.line='"&Trim(Comboline.Text)&"'"&_
"andcustomer.sno='"&Trim(Comboseat.Text)&"'"'检查机票是日期、航班和座位是否有效
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
Ifrsdata.EOFThen
MsgBox"你所要退的票为无效票或是你的输入有问题!
",,"Error!
"
Else
rsdata.Close
strQuery="Select*FromcustomerWherecustomer.date='"&Trim(Combodate.Text)&_
"'"&"andcustomer.line='"&Trim(Comboline.Text)&"'"&_
"andcustomer.sno='"&Trim(Comboseat.Text)&"'"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
rsdata.MoveFirst
Combodate.Text=rsdata!
Date
Comboline.Text=rsdata!
Line
Comboseat.Text=rsdata!
sno
'机票有效,确认日期、航班和座位号,确认是否退票
ticketinformation="日期:
"&strdate&""&"航班:
"&strline&""&"座位号:
"&strseat&""
response=MsgBox(ticketinformation,vbOKCancel+vbInformation,"是否真要退票?
")
Ifresponse=1Then
'更改customer表
rsdata.Close
strQuery="select*fromcustomer"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
rsdata.MoveFirst
DimiAsInteger
Fori=1Torsdata.RecordCount
Ifrsdata!
Date=strdateAndrsdata!
Line=strlineAndrsdata!
sno=strseatThen
rsdata.Delete
EndIf
rsdata.MoveNext
Nexti
rsdata.Close
'将刚退的票设为可卖
strQuery="select*fromlinewhereline.date='"&strdate&"'"&_
"andline.line='"&strline&"'"&"andline.sno='"&strseat&"'"
rsdata.OpenstrQuery,cnnrsdata,,,adCmdText
Ifrsdata!
book=TrueThen
rsdata!
book=False
rsdata.Update
EndIf
Combodate.Text=""
Comboline.Text=""
Comboseat.Text=""
Combodate.SetFocus
MsgBox"退票已成功!
"
Else
rsdata.Close
Combod
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 航空 课程设计 报告