ImageVerifierCode 换一换
格式:DOCX , 页数:23 ,大小:127.04KB ,
资源ID:3341555      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3341555.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(专业课程设计I报告民航票务管理与售票系统.docx)为本站会员(b****5)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

专业课程设计I报告民航票务管理与售票系统.docx

1、专业课程设计I报告民航票务管理与售票系统专业课程设计I报告民航票务管理与售票系统专业课程设计I报告(/年第二学期)题目:民航票务管理与售票系统支业软件工程学生姓名仓业亮班级学号B09040811指导教师李玲娟指导单位计算机学院软件工程系日期4月26日指导教师成绩评定表学生姓名班级学号 专业评分内容评分标准优秀良好中等差平时成绩认真对待课程设计,遵守实验室规定,上机不退 到早退,不做和设计无关的事设计成果设计的科学、合理性功能丰富、符合题目要求界面友好、外观漂晃、大方程序功能执行的正确性程序算法执行的效能设计报告设计报告正确合理、反映系统设计流程文档内容详实程度文档格式规范、排版美观验收答辩简练

2、、准确阐述设计内容,能准确有条理回答各 种问题,系统演示顺利。评分等级指导教师简短评语指导教师签名 日期备注 评分等级有五种:优秀、良好、中等、及格、不及格民航票务管理与售票系统一、课题内容和要求1.1课程简介:本次课程设计的基本要求主要是按照软件工程思想,以 SQLServer为后台数据库,以 Delphi为前端开发工具,设计并实现一个民航票务管理与售票系统。其中,系统实现的功能主要有(1)能够进行航班信息、票务信息的添加、修改和删除。(2)允许普通用户和各类人员查询有关民航航班的时刻表,包括航班号、起点、终点、日期、起飞时刻、到达时刻、剩余座位数、票价、航班所属航空公司等方面的准确信息。也

3、能够按照终 点和日期进行查询。1.2.需求描述1.2.1我把本系统的用户统一分为普通用户和具有信息管理职责的管理员特殊用户,其中,管理员是系统指定的用户,不用注 册,且本身也不必具备修改用户信息的功能。而普通用户初次登 陆时是需要注册的,注册完了之后,如果数据成功添加在了数据 库的passenger表中,则显示成功注册,然后重新登陆。1.2.2能够进行航班信息、票务信息的添加、修改和删除。该功能只能有管理员实现,其中票务信息我是不允许修改的,只有删除的选项,之因此这么做,第一是票务信息 (p_ticket)关联的关联的两张表 passenger乘客信息表和flight航班信息表都是能 够修改的

4、,因此票务信息的修改本质上意义不大;第二就是我的 三张表都是有外键约束的,因此当票务信息被修改的时候,必然影响到其它主键表,因此技术上也添了麻烦。1.2.3用户能够对航班信息表进行一定限度的查询,包括按航 班号查询,按起点和终点查询和按日期查询。三种条件选一种1.2.4售票信息实时更新:具体要做到的是当某个航班被售票的时候,其剩余座位数也要跟 着减少一个,相应的退票的时候,座位数也要跟着加一。需要注 意的是用户不具有退票的功能,必须由管理员操作。1.2.5非功能需求(1)可读性:程序的源代码要书写规整,要求容易理解,以 便于日后程序调试时容易测试和修改。(2)界面的设计:应本着简洁、漂亮、通俗

5、易懂,操作简 便,并具有一定的灵活性;尽可能采用开发工具构造界面,使需 求定义和设计、编码相衔接;参考、比较已经成熟的软件的界面 的风格,提取有用的设计方法。(3)可测试性:这是建立在可读性的基础之上的,如果程序 不易于理解则测试起来相当麻烦,而且有可能造成灾难性后果。1.3开发运行环境系统开发平台:Delphi 7数据库管理系统软件:SQL Server运行平台: Windows XP分辨率:最佳效果1024 X 768硬盘要求:CPU: 300MHz以上的处理器内存:64MB,推荐128M以上硬盘:100M以上磁盘空间二、 设计思路分析完成此课题的思路和基本步骤第一步:理解该系统的功能需求

6、,进行逻辑设计,指定具体的实现计划。第二步:数据库设计,具体包括表的划分和建立,表中的 属性值的定义等。第三步:测试连接,主要是测试开发环境 delphi7与数据库sql的连接特性。第四步:系统的模块划分,确定各个模块所要实现的功 能。第五步:确定测试用例和测试方法,方便程序以后的测 试。第六步:主要功能模块的设计和实现,而且辅助以测试实 现。第七步:测试所完成的应用程序,排查和纠正错误。三、 概要设计3.1数据库逻辑设计如下:3.1.1本数据库的设计中,具体涉及到了三张表的创立于修改。Passenger 用户 信息表Flight航班信息表P_ticket票务信息表3.1.2数据库的完整性约束

7、规则的说明 (主键、外键等)如下图所示:主舞表t) 夕卜健表包)flight pti ckat航班号二1航碰号A日期日期-v|-创建中松查现存数据重。对夏制理制关家(E)V 对IMSERT和UP BATE强制关系堡)P濒更制相关前宇段QDP缴联捌惭目美的记录。其中选定了级联更新和删除相关的字段和记录能够在我修改flight表和passenger表的主键信息时间接的达到修改票务信息表的目的主健表 外健表皿)I I nacseng&r p_t i ctet邮箱地址曲箱地址姓名姓名联系电情联系电话r创建中检查现存数据w对复制强制关耒w对IFSERT和UPDA.TE强制美系色)?氧联更新相关的字段也)

8、V级联册脍相关的记四、详细设计(1).系统的登陆界面如下图所示:ADOconnectionl 和 ADOqueryl 及 datasourcel 三个控件配合,登 陆按钮被点击是触发函数如下:with adoqueryl do/对用户输入的邮箱地址和密码在 passenger表 中 查询beginclose;sql.clear;sql.text:=(select * from passenger where 由S箱地址 =:a and 密 码=:b );parameters.parambyname(a).value:=trim(edit1.text);parameters.parambynam

9、e(b).value:=trim(edit2.text);open;if recordCount=1 then /如果存在符合输入的记录则跳转到查询主页beginform1.Visible:=false ;form3.show;user_id:=edit1.Text;manager:=; /系统中白己设定的管理员账号if user_id=manager then /如果用户用的是管理员的账号 beginform3.bitbtn2.Visible:=false ;/管理员不能修改用户信息form3.BitBtn8.Visible:=true; /管理员对信息管理的按钮可见form3.label3

10、.caption:=管理员endelsebeginform3.BitBtn2.Visible:=true; /允许普通用户修改用户信息form3.BitBtn8.Visible:=false; / 不具有信息管理的权限form3.Label3.Caption:=普通用户;end;endelseshowmessage(用户名或密码输入错误! );/密码验证错误,输出提示end;写了 一个触发函数: checkbox1.Checked:=false;checkbox1.Caption:=帮你验证邮箱;/显示界面友好而当光标移开edit控件后也有一个触发函数:if (pos(,edit1.text)

11、 =0) or (length(edit1.Text)i ii idick Mwi3 (起坡城2_,return lag; Lf ireturn说明:用户能够经过三种条件进行查询,可是不允许多条件查询。具体设定是比如我选择按照航班号进行查询时,则其后面的航班号dblookupcombobox就可用而其它的查询条件框是不可用的。源程序中dblookupcombobox的设定有必要说明一下。首先将该控件与一个adoquery控件连接好,adoquery控件的设定略去, 然后设定 listsource、listfield 和 keyfield 的值,第一次我 keyfield 的值没有设定是,是显示

12、不出字段的值的。确定查询的点击事件触发的函数如下:with adoquery4 do /在航班信息表中进行查询beginclose;sql.clear;if (dblookupcombobox1.Enabled=true) / 如果选择按起降地查询and(dblookupcombobox1.Text)and(dblookupcombobox2.Text) thenbeginsql.text:=(select * from flight where 起点=:a and 终点=:b);parameters.parambyname(a).value:=trim(dblookupcombobox1.T

13、ext);parameters.parambyname(b).value:=trim(dblookupcombobox2.Text);end elseif (dblookupcombobox3.Enabled=true)and(dblookupcombobox3.Text) then / 如果选择航班号查询 begin。 代码略去end elseif (edit1.Enabled=true) and(edit1.Text)and(edit2.Text) thenbeginadoquery4.SQL.Add(select * from flight where 日期 between :cong

14、and :dao);adoquery4.Parameters.ParamByName(cong).Value:=trim(edit1. Text);adoquery4.Parameters.ParamByName(dao).Value:=trim(edit2.T ext);end;end;open;if recordCount0 thenbegin endelseshowmessage(不存在符合输入的记录! );/没有检查到信息是提示end;(3).用户查询完航班信息之后能够进行订票,具体界面情况如下:说明:因为航班信息表的主键设置为了航班号和日期,因此 用户在订票时必须选择航班号和日期两个

15、选项之后才能完成航班信息的选择。为方便用户,我在选择完了航班号之后,下一个日 期选项白动定位到字段值为所选航班号的所有日期,缩小了选择 范围,避免了一些不必要的选项。具体代码如下:with form6.ADOQuery3 do /日期复选框用到的组件beginclose;sql.clear;sql.text:=(select * from flight where 航班号=:a); / 查询符合的值parameters.parambyname(a).value:=trim(dblookupcombobox1.Text);open;end;底下的用户信息是随着用户的登陆信息白动更新的无需用户进行

16、输入,具体实现代码如下:with form6.ADOQuery5 do / 定位用户信息beginclose;sql.clear;sql.text:=(select * from p_ticket where 邮箱地址 =:a );parameters.parambyname(a).value:=trim(user_id); / 用户登陆时白动赋open; 值的变量end;确定订票时需要对其所对应的航班信息的剩余座位数进行验 证,如果为零,则不允许订票,另外还要对是否进行了重复订票 进行检查,具体代码如下:if (dblookupcombobox1.Text=) or (dblookupcom

17、bobox2.Text=)or(adoquery4.FieldByName(剩余座位数).Value=0) thenBegin 剩余座位数为零,则不能完成订票showmessage(没有座位了,订票失败!);endelsewith form6.ADOQuery5 do /检查票务信息是否重复beginclose;sql.clear;sql.text:=(select * from p_ticket where 航班号 =:a and 日期=:b and邮箱地址=:c);parameters.parambyname(a).value:=trim(dblookupcombobox1.Text);p

18、arameters.parambyname(b).value:=trim(dblookupcombobox2.Text);parameters.parambyname(c).value:=trim(dbedit1.Text);open;if recordCount=1 then 在票务信息已有记录时beginshowmessage(票务信息重复,添加失败!);end;另外需要完成的一项重要的功能是实现剩余座位数的动态更新,具体完成的代码如下所示:with ADOQuery4 do / 更新座位数begini:=fieldbyname(剩余座位数).Value-1; /i是上文定义的整型变量st

19、r(i,s); /将i转换成s字符串型的变量Close;SQL.Clear;SQL.Text:=Update flight SETJ余座位数=:剩余座位数 where 航班号=:a and日期=:b ;parameters.parambyname(a).value:=trim(dblookupcombobo x1.Text);parameters.parambyname(b).value:=trim(dblookupcombobox2.Text); Parameters.ParamByNamS(余座位数).Value:=s; /更新座位数的值 ExecSQL; close;SQL.Add(se

20、lect * from flight );sql.clear; 更新座位信息sql.text:=(select * from flight where 航班号=:a and 日期=:b);parameters.parambyname(a).value:=trim(dblookupcombobo xl.Text);parameters.parambyname(b).value:=trim(dblookupcombobo x2.Text); open;end;至此普通用户的功能都已经实现了,下文将讨论管理员的功能实现:系统中对管理员的账号信息固定为,因此管理员的用户信息是不允许修改的,实际中也没有

21、多大的意义。以管理员身份登 录之后系统的航班信息查询界面会增加一个信息管理选项,同时 用户信息修改的按钮被隐藏,同时提醒用户是管理员身份登录, 具体界面如下所示:W是 善理员 航班信息卷诃:点击信息管理则进入到下一个界面如图所示:昼示州户信用副nSL袒啊到连*unij20DH2叫晌劄J013 4JQjlS胡山阿SQQig.inmiAMI W蔺京明20国 ai002I3CM123 M(U7洲强r(n13 GCOOmH颂在本界面中一个dbgrid主要显示了三张表的信息,经过上方的按钮进行控制,具体的代码如下:bitbtn6.Enabled:=true; bitbtn7.Enabled:=true;

22、bitbtn8.Enabled:=true;使下方的查询、修改、删除按钮有效flight_in:=true; user_in:=false; ticket_in:=false;/ 上文定义的三个变量with adoquery1 do /选择航班信息表进行信息显示beginclose;sql.clear;sql.text:=(select * from flight);open;end; /如果没有记录则不支持修改和删除if dbgrid1.DataSource.DataSet.RecordCount=0 thenbeginbitbtn7.Enabled:=false;bitbtn8.Enabl

23、ed:=false;end;当要修改数据时,首先选中记录:航班号日期起点ggno200V4-2南毋四脸Q01C20Q5-4-3 1_Lil 7 lij riFiirrii s_i mHITi k_a 111 i ” i m_Ui I FrT Ae 币EI !_. 11. i aim, n i inn i in ._d就00112001-4-2南刀四皿0022001*5-1北京江苏库0072009-E-6天律拉萨呗2001-3 4南黛天津然后点击修改按钮,出现如下界面:关键代码如下:if flight_in=true then /如果选中了航班信息进行修改beginform5.Enabled:=

24、false;form7.show;form7.dbedit1.enabled:=false;form7.dbedit2.enabled:=false; / 主键不允许修改s:=adoquery1.fieldbyname(航班号).AsString;s1:=adoquery1.fieldbyname(日期).AsString;读取光标的那一 行的值with form7.ADOQuery1 do /从航班信息表中进行定位beginclose;sql.clear;sql.text:=(select * from flight where 航班号 =:a and 日期=:b );parameters.

25、parambyname(a).value:=s;parameters.parambyname(b).value:=s1;open;end;end;因为航班信息的显示用的都是 dbedit控件,因此确定修改的代码非常简单:form7.ADOQuery1.UpdateBatch;保存修改form7.Visible:=false;form5.show; 返回原来得界面 form5.enabled:=true;而对于其它两个票务信息表和航班信息表我是不允许修改的,具 体原因我上文已经说过了。当选中了票务信息表的时候,在点击添加按钮,即出现如下界面:if (dblookupcombobox1.Text=”)or (dblookupcombobox2.Text=”)or(dblookupcombobox3.Text=”)or(form10.DBEdit3.Text=”)or(adoquery4.FieldByName(剩余座位数).Value=0) thenbeginshowmessage(信息不完整或者没有剩余座位了,无法完成订票!);end else beginwith form10.ADOQuery7 do /对票务信息表进行查询beginclose;sql.clear;sql.text:=(select *

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1