航空课程设计报告.docx

上传人:b****3 文档编号:5437123 上传时间:2023-05-08 格式:DOCX 页数:32 大小:280.01KB
下载 相关 举报
航空课程设计报告.docx_第1页
第1页 / 共32页
航空课程设计报告.docx_第2页
第2页 / 共32页
航空课程设计报告.docx_第3页
第3页 / 共32页
航空课程设计报告.docx_第4页
第4页 / 共32页
航空课程设计报告.docx_第5页
第5页 / 共32页
航空课程设计报告.docx_第6页
第6页 / 共32页
航空课程设计报告.docx_第7页
第7页 / 共32页
航空课程设计报告.docx_第8页
第8页 / 共32页
航空课程设计报告.docx_第9页
第9页 / 共32页
航空课程设计报告.docx_第10页
第10页 / 共32页
航空课程设计报告.docx_第11页
第11页 / 共32页
航空课程设计报告.docx_第12页
第12页 / 共32页
航空课程设计报告.docx_第13页
第13页 / 共32页
航空课程设计报告.docx_第14页
第14页 / 共32页
航空课程设计报告.docx_第15页
第15页 / 共32页
航空课程设计报告.docx_第16页
第16页 / 共32页
航空课程设计报告.docx_第17页
第17页 / 共32页
航空课程设计报告.docx_第18页
第18页 / 共32页
航空课程设计报告.docx_第19页
第19页 / 共32页
航空课程设计报告.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

航空课程设计报告.docx

《航空课程设计报告.docx》由会员分享,可在线阅读,更多相关《航空课程设计报告.docx(32页珍藏版)》请在冰点文库上搜索。

航空课程设计报告.docx

航空课程设计报告

课程设计报告

 

一.项目简介

某航空公司有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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > IT计算机 > 电脑基础知识

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2