数据库SQL课程设计 25.docx
《数据库SQL课程设计 25.docx》由会员分享,可在线阅读,更多相关《数据库SQL课程设计 25.docx(29页珍藏版)》请在冰豆网上搜索。
数据库SQL课程设计25
辽宁工业大学
数据库应用技术课程设计说明书
题目:
小型航空公司管理系统
学院(系):
软件学院
专业班级:
软件工程114班
学号:
111301091
学生姓名:
安凯辰
指导教师:
佟玉军
教师职称:
副教授
起止时间:
2011.12.19-2011.12.31
辽宁工业大学课程设计(论文)任务书
院(系):
软件学院教研室:
软件工程
学号
111301091
学生姓名
安凯辰
专业班级
114
设计题目
小型航空公司管理系统
设计技术
参数
1.题目要达到的目标:
完成系统的登陆、数据的插入删除修改统计等基本操作。
2.数据库:
SQLSERVER2000。
3.所使用的语言、工具:
VB6.0+SQLSERVER2000+WINDOWSXP。
4.所采用的技术、系统结构:
ADO数据库联接技术,系统结构为C/S结构。
设计要求
1.教师布置实习任务和要求时,不得缺席,并做好记录。
2.上机前预先把所有的源程序编写好。
3.仔细查阅相关资料,认真完成思考题。
4.按要求书写设计任务书,并按要求按版打印,不得雷同。
工作量
二周
工作计划
周一听取教师布置设计的任务及要求。
周二学生查阅相关资料,进行数据库设计。
周三至周五:
详细设计与界面设计。
周一至周四程序设计与上机,调试源程序。
周五书写课程设计任务书。
参考资料
《数据库应用技术》
《数据库应用技术实验指导书》自编
《数据库应用技术课程设计大纲》自编等
指导教师评语
教师:
学生:
说明:
此表一式四份,学生、指导教师、教研室、系部各一份。
可加附页。
2011年12月31
目录
第一章概述4
第二章问题定义5
第三章需求分析6
第四章数据库设计9
第五章界面设计14
第六章代码与注释22
设计总结26
参考文献27
第一章概述
随着计算机技术的飞速发展,计算机在日常管理中应用迅速得到了普及,利用计算机进行设备信息的管理势在必行。
本系统是为了适应小型航空公司管理的信息化建设需要而设计的。
本系统采用功能强大的VisualBasic6.0面向对象编程语言设计而成,能够稳定而快捷地完成企业设备管理的信息化任务,从而取代了以往繁杂的人工劳动,提高了工作效率。
通过实际应用,本系统能够满足需求,为企业的设备管理带来方便,提高了工作效率,具有较强的实用性和可行性。
本设计以航空公司管理系统的分析和设计为出发点,详细介绍了开发本系统的各个步骤:
系统分析、系统设计、系统实现、系统维护。
在系统分析中先后用数据流图、系统的功能结构图分析了系统所需的各种数据。
在系统设计中,详细的展现了系统的各个功能模块。
所需的数据库表、表字段以及菜单的设计等。
在系统的实现中,给出了实现窗体中相应功能控件的示例和源代码,以及菜单实现的方法。
文章中列出了本系统的主要功能运行界面图。
本系统采用目前流行的VisualBasic6.0进行开发,后台数据库使用功能更强大操作便捷的SQLServer。
第二章问题定义
随着我国国民经济建设的蓬勃发展和具有中国特色的社会主义市场经济体制的迅速完善,各个行业都在积极使用现代化的手段,不断改善服务质量,提高工作效率,这些都在很大程度上给企业提出越来越严峻的挑战,对企业体系在企业管理水平以及优质服务上都提出更高的要求。
建设一个科学高效的信息管理系统是解决这一问题的必经之路。
航空公司管理系统是一个航空公司不可缺少的部分,它对于公司的决策者和管理者来说都至关重要,所以航空公司管理系统应该能够为用户提供充足的信息和快捷的查询手段。
但一直以来人们使用传统人工的方式管理文件信息,这种管理方式存在着许多缺点,如:
效率低、劳动强度大,另外时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。
随着计算机技术的飞速的发展,计算机在公司管理中的应用越来越普及,公司要想生存和发展,要想在激烈的市场竞争中立于不败之地,没有现代化的管理是万万不行的,航空公司管理的全面自动化、信息化则是其中极其重要的部分。
为了加快公司管理自动化的步伐,提高航空公司的管理业务处理效率,建立航空公司管理系统已变得十分必要。
第三章需求分析
一、数据库需求分析
用户需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输入和输出。
收集基本数据、数据结构、数据处理的流程,组成一份详尽的数据字典,为以后的具体设计打下基础。
在仔细分析调查有关学生信息需要的基础上,将得到数据流程图。
针对一般学生信息管理系统的需求,通过对学生学习过程的内容和数据流程分析,设计如下面所示的数据项和数据结构:
*舱位信息:
包括的数据项有:
舱位等级编号、舱位等级名称、服务内容、备注信息。
*客机信息:
包括的数据项有:
客机编号、客机型号、购买时间、服役时间。
*航线信息:
包括的数据项有:
航线编号、出发城市、到达城市、备注信息。
*客户类型信息:
包括的数据项有:
客户类型编号、客户姓名、联系方式、客户类型。
*客户信息:
包括的数据项有:
客户编号、客户姓名、联系方式、客户类型。
*订票信息:
包括的数据项有:
订票信息编号、客户信息、航线信息、客户类型。
二、数据库概念的结构设计
得到上面的数据想和数据结构以后,就可以设计出能满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
这些实体包含各种具体信息,通过相互之间的作用形成数据的流动。
我所设计的实体有:
舱位实体、客机实体、航线实体、客户类型实体、客户信息实体、订票信息实体
三、数据字典(DD):
数据库文件=舱位信息表+客机信息表+航线信息表+客户类型信息表+客户信息表+订票信息
舱位信息=舱位等级编号+舱位等级名称+服务内容+备注信息
客机信息=客机编号+客机型号+购买时间+服役时间
航线信息=航线编号+出发城市+到达城市+备注信息
客户类型信息=客户类型编号+客户姓名+联系方式+客户类型
客户信息=客户编号+客户姓名+联系方式+客户类型
订票信息=订票信息编号+客户信息+航线信息+客户类型
四、程序流程图:
图3.1数据流程图
五、功能结构图:
图3.2系统功能图
第四章数据库设计
一、概念设计:
系统ER图
图4.1舱位等级信息E-R图
图4.2客机信息E-R图
图4.3航线信息E-R图
图4.4客户类型信息E-R图
图4.5客户信息E-R图
图4.6订票信息E-R图
图4.7所有实体信息E-R图
二、逻辑设计:
下面列出几个主要的数据库表设计:
表1顾客信息表格
列名
数据类型
可否为空
说明
serviceNO
char
NOTNULL
舱位等级编号
serviceName
Nearchar
NULL
舱位等级名称
noPresent
char
NULL
是否有礼物
noNewspaper
char
NULL
是否有报纸
noDrink
char
NULL
是否有饮料
nonfood
char
NULL
是否有午餐
noMovie
char
NULL
是否有电影
canChange
char
NULL
是否可以改签
canCancel
char
NULL
是否可以退票
canDiscount
char
NULL
是否可以打折
serviceMemo
text
NULL
备注信息
表2客机信息表格
列名
数据类型
可否为空
说明
planeNO
char
NOTNULL
客机编号
planeType
char
NULL
客机型号
buyDate
datetime
NULL
购买日期
serveDate
datetime
NULL
服役日期
isCommon
nvarchar
NULL
经济舱座位数量
isCommercial
nvarchar
NULL
公务舱座位数量
isFirst
nvarchar
NULL
头等舱座位数量
planeMemo
text
NULL
备注信息
表3航线信息表格
列名
数据类型
可否为空
说明
airlineNO
char
NOTNULL
航线编号
departCity
nvarchar
NULL
出发城市
arrivalCity
nvarchar
NULL
到达城市
departDate
char
NULL
航班日期
departTime
char
NULL
出发时间
arrivalTime
char
NULL
到达时间
planeNO
char
NULL
客机编号
commonPrice
numeric
NULL
经济舱价格
commercialPrice
numeric
NULL
公务舱价格
firstPrice
numeric
NULL
头等舱价格
airlineMemo
text
NULL
备注信息
表4客户类型信息表格
列名
数据类型
可否为空
说明
CustomertypesNO
char
NOTNULL
客户类型编号
CustomertypesName
char
NULL
客户类型名称
Discount
numeric
NULL
折扣比例
CustomersMemo
text
NULL
备注
表5客户类型信息表格
列名
数据类型
可否为空
说明
CustomersNO
char
NOTNULL
客户编号
CustomersName
char
NULL
客户姓名
CustomersSex
char
NULL
客户性别
CustomersID
char
NULL
身份证号码
CustomersTele
char
NULL
客户联系电话
CustomersType
char
NULL
客户类型
CustomersMemo
text
NULL
备注
表6订票信息表格
列名
数据类型
可否为空
说明
ticketNO
char
NOTNULL
订票编号
customerNO
char
NULL
客户编号
customerName
char
NULL
客户姓名
customerType
char
NULL
客户类型
discount
numeric
NULL
折扣比例
airlineNO
char
NULL
航线编号
departCity
nvarchar
NULL
出发城市
arrivalCity
nvarchar
NULL
到达城市
ticketDate
datetime
NULL
出发日期
serviceType
char
NULL
舱位类型
ticketPrice
numeric
NULL
机票价格
ticketSum
numeric
NULL
结算金额
customerMemo
text
NULL
备注
三、物理设计
我们无论使用哪种数据库,无论怎样设计数据库,我想都会遵从一个原则:
数据安全性和性能高效这两个主要方面,但是关于这两个方面的话题太多,在这里就不一一陈述,我只是从数据库物理分布设计方面和大家一起简单的探讨一下。
因为数据库良好的物理分布设计也是对数据安全性和性能高效影响比较大,就像我们在建大楼之前一定要先打好地基一样。
現实中我们在应用各种不同数据库的时候,往往会忽略数据库的物理布局,只有在数据库性能遇到问题的时候才去考虑,但这是得不偿失的,这样一来不仅会导致与设计相关的问题出现,而且会影响性能的调整效果,所以我们在创建数据库之前先进行规划数据库的物理布局也是很必要的,这也符合人们常说的“磨刀不误砍柴工”的道理。
要确定数据库的物理结构。
确定数据库存储结构时要综合考虑存取时间、存储空间利用率和维护代价三方面的因素。
这三个方面常常是相互矛盾的,例如消除一切冗余数据虽然能够节约存储空间,但往往会导致检索代价的增加,因此必须进行权衡,选择一个折中方案。
在关系数据库中,选择存取路径主要是指确定如何建立索引。
例如,应把哪些域作为次码建立次索引,建立单码索引还是组合索引,建立多少个为合适,是否建立聚集索引等。
为了提高系统性能,数据应该根据应用情况将易变部分与稳定部分、经常存取部分和存取频率较低部分分开存放。
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,其结果可以产生多种方案,数据库设计人员必须对这些方案进行细致的评价,从中选择一个较优的方案作为数据库的物理结构。
评价物理数据库的方法完全依赖于所选用的DBMS,主要是从定量估算各种方案的存储空间、存取时间和维护代价入手,对估算结果进行权衡、比较,选择出一个较优的合理的物理结构。
如果该结构不符合用户需求,则需要修改设计。
第五章界面设计
一、登陆窗口如下所示:
系统有指定的登陆账号密码,如果用户名和密码输入正确会进入系统。
输入错误时会有错误提示。
图5.1登陆界面
二、主界面
此界面可以实现系统的安全退出,对航线信息的管理、对客户信息的管理和订票信息的管理。
如图7.2所示
图5.2系统主界面
三、舱位等级信息页面
此界面可实现对舱位等级信息的添加、修改和删除
图5.3舱位等级信息界面
图5.4舱位信息添加界面
图5.5舱位等级信息修改界面
四、客机信息管理页面
选择“学籍管理\查询学籍信息”菜单,将出现如图所示的窗口,在这里可以按照各种方式以及它们的组合进行查询。
此界面可以实现对客机信息的添加修改和删除
图5.6客机信息界面
图5.7客机信息添加界面
图5.8客机信息修改界面
图5.9客机信息查询界面
五、航线信息管理页面
此界面可实现对航线信息的添加、修改、删除和查询
图5.10航线信息管理界面
图5.11航线信息添加界面
图5.12航线信息修改界面
图5.13航线信息查询界面
六、客户类型管理页面
此界面可实现对客户类型的添加、修改和删除
图5.14客户类型信息界面
图5.15客户类型信息添加界面
图5.15客户类型信息修改界面
七、客户信息管理页面
此界面可实现对客户信息的添加、修改、删除和查询
图5.16客户信息界面
图5.17客户信息添加界面
图5.18客户信息修改界面
图5.19客户信息查询界面
八、订票信息管理页面
此界面可是实现对订票的添加、修改、删除和查询
图5.20订票信息界面
图5.21机票信息添加界面
图5.22机票信息修改界面
图5.23机票信息查询界面
第六章代码与注释
一、登陆代码
DimstrPwdAsString
DimrsPwdAsADODB.Recordset
DimstrLoginAsString
DimsqlAsString
DimpwdCountAsInteger
Setcon=NewADODB.Connection
strLogin=Trim(Text1.Text)
strPwd=Trim(Text2.Text)
IfLen(strLogin)=0Then
MsgBox"用户名或密码错误",68,"提示"
Text1.SetFocus
ExitSub
EndIf
IfLen(strPwd)=0Then
MsgBox"用户名或密码错误",68,"提示"
Text2.SetFocus
ExitSub
EndIf
IfrsPwd("UserType").Value=0Then
FrmMain.mn_Users.Enabled=False
FrmDeviceEdit.Cmd_Add.Enabled=False
FrmDeviceEdit.Cmd_Modi.Enabled=False
FrmDeviceEdit.Cmd_Del.Enabled=False
FrmDept.Add.Enabled=False
FrmDept.DEL.Enabled=False
FrmDept.Edit.Enabled=False
FrmDept.Text1.Enabled=False
FrmDept.Text2.Enabled=False
FrmType.Add.Enabled=False
FrmType.DEL.Enabled=False
FrmType.Edit.Enabled=False
FrmType.Text1.Enabled=False
FrmType.Text2.Enabled=False
FrmUse.Command1.Enabled=False
FrmUse.Command2.Enabled=False
FrmUse.Command3.Enabled=False
FrmUse.Command6.Enabled=False
FrmDeviceEdit.Cmd_Add.Enabled=False
FrmDeviceEdit.Cmd_Del.Enabled=False
FrmDeviceEdit.Cmd_Modi.Enabled=False
FrmLend.Command1.Enabled=False
FrmLend.Command2.Enabled=False
FrmLend.Command4.Enabled=False
FrmLend.Command7.Enabled=False
FrmLend.Command8.Enabled=False
FrmMntenanceEdit.Command1.Enabled=False
FrmMntenanceEdit.Command2.Enabled=False
FrmMntenanceEdit.Command3.Enabled=False
FrmMntenanceEdit.Command8.Enabled=False
FrmDiscard.Command1.Enabled=False
FrmDiscard.Command3.Enabled=False
FrmDiscard.Command4.Enabled=False
FrmMain.Show
FrmLogin.Hide
Text1.Text=""
Text2.Text=""
ElseIfrsPwd("UserType").Value=1Then
FrmMain.Show
FrmLogin.Hide
Text1.Text=""
Text2.Text=""
Else
FrmMain.Show
FrmLogin.Hide
Text1.Text=""
Text2.Text=""
EndIf
EndSub
二、主页面代码
PrivateSubMDIForm_Load()
Me.Left=Gestating(App.Title,"Settings","MainLeft",1000)
Me.Top=GetSetting(App.Title,"Settings","Maintop",1000)
Me.Width=GetSetting(App.Title,"Settings","MainWidth",6500)
Me.Height=GetSetting(App.Title,"Settings","MainHeight",6500)
EndSub
PrivateSubMDIForm_Unload(CancelAsInteger)
IfMe.WindowState<>vbMinimizedThen
SaveSettingApp.Title,"Settings","MainLeft",Me.Left
SaveSettingApp.Title,"Settings","MainTop",Me.Top
SaveSettingApp.Title,"Settings","MainWidth",Me.Width
SaveSettingApp.Title,"Settings","MainHeight",Me.Height
EndIf
EndSub
PrivateSubmenuAirline_Click()
frmAirline.txtSQL="select*fromairlineInfo"
frmAirline.Show0
EndSub
PrivateSubmenuBookticket_Click()
frmTicket.txtSQL="select*fromticketInfo"
frmTicket.Show0
EndSub
PrivateSubmenuCarbin_Click()
frmService.txtSQL="select*fromserviceInfo"
frmService.Show0
EndSub
PrivateSubmenuCtype_Click()
frmcType.txtSQL="select*fromcustomerType"
frmcType.Show0
EndSub
PrivateSubmenuCustomer_Click()
frmCustomer.txtSQL="select*fromcustomerInfo"
frmCustomer.Show0
EndSub
PrivateSubmenuPlane_Click()
frmPlane.txtSQL="select*fromplaneInfo"
frmPlane.Show0
EndSub
三、舱位信息代码
载入窗体时将自动显示各条记录,代码如下:
PrivateSubForm_Load()
ShowTitle
ShowData
EndSub
函数ShowTitle用来显示表头,代码如下:
PrivateSubShowTitle()
DimiAsInteger
WithmsgList
.Cols=12
.TextMatrix(0,1)="等级编号"
.TextMatrix(0,2)="机舱等级"
.TextM