1、攀枝花学院学生课程设计(论文)题目民航订票系统开发学生姓名学号201310801001所在院系数学与计算机学院专业计算机科学与技术班级2013级计算机科学与技术指导教师职称讲师2015年6月25日攀枝花学院教务处制数据库课程设计任务书攀枝花学院本科学生课程设计任务书题目民航订票管理系统开发1、课程设计的目的使学生掌握数据库的基本概念,结合实际的操作和设计,巩固课堂教学内容;使学生掌握数据库系统的基本概念、原理和技术,将理论与实际相结合,应用现有的数据建模工具和数据库管理系统软件,规范、科学地完成一个小型数据库的设计与实现;把理论课与实验课所学内容做一综合,并在此基础上强化学生的实践意识、提高其
2、实际动手能力。2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)(1)航班信息管理每个航班基本信息的录入、修改与删除。(2)航班坐位信息管理每个航班坐位信息的录入、修改与删除。(3)机票预定管理输入旅客基本信息,系统为旅客安排航班,打印取票通知和帐单;(4)退订机票管理对退订机票信息进行判断、录入、修改与删除。(5)查询信息能够查询每个航班的基本信息、预定情况、旅客的基本信息等。(6)统计信息计算每个航班的满座率,统计旅客的乘坐次数数、乘坐总金额等。3、主要参考文献1张莉SQLSEVER数据库原理及应用2萨师煊王珊著数据库系统概论第三版高等教育出版社3施伯乐丁宝康汪卫数据库系统教程
3、高等教育出版社2003年第2版4庄成三等数据库系统原理及其应用电子工业出版社4、课程设计工作进度计划第1天选题、完成需求分析第2天数据库概念结构设计第3天数据库逻辑结构设计及物理实现第4天应用程序开发第5天程序调试分析和结果、编写课程设计报告指导教师(签字)日期年月日教研室意见年月日学生(签字)接受任务时间年月日注任务书由指导教师填写。数据库课程设计成绩评定课程设计(论文)指导教师成绩评定表题目名称民航订票管理系统开发评分项目分值得分评价内涵工作表现2001学习态度6遵守各项纪律,工作刻苦努力,具有良好的科学工作态度。02科学实践、调研7通过实验、试验、查阅文献、深入生产实践等渠道获取与课程设
4、计有关的材料。03课题工作量7按期圆满完成规定的任务,工作量饱满。能力水平3504综合运用知识的能力10能运用所学知识和技能去发现与解决实际问题,能正确处理实验数据,能对课题进行理论分析,得出有价值的结论。05应用文献的能力5能独立查阅相关文献和从事其他调研;能提出并较好地论述课题的实施方案;有收集、加工各种信息及获取新知识的能力。06设计(实验)能力,方案的设计能力5能正确设计实验方案,独立进行装置安装、调试、操作等实验工作,数据正确、可靠;研究思路清晰、完整。07计算及计算机应用能力5具有较强的数据运算与处理能力;能运用计算机进行资料搜集、加工、处理和辅助设计等。08对计算或实验结果的分析
5、能力(综合分析能力、技术经济分析能力)10具有较强的数据收集、分析、处理、综合的能力。成果质量4509插图(或图纸)质量、篇幅、设计(论文)规范化程度5符合本专业相关规范或规定要求;规范化符合本文件第五条要求。10设计说明书(论文)质量30综述简练完整,有见解;立论正确,论述充分,结论严谨合理;实验正确,分析处理科学。11创新10对前人工作有改进或突破,或有独特见解。成绩指导教师评语指导教师签名年月日数据库课程设计摘要摘要随着社会发展的不断进步,民航事业的壮大,人们消费水平的提高,乘坐民航的消费着也越来越多。预定查询系统因此在各机票预定网点中的作用也越显重要伴随着人们更多的使用飞机作为交通工具
6、,国内机票票务市场也在快速发展。据预测,我国2006年机票票务市场将比2005年增长105,达710亿元人民币。而与此同时,人们希望机票销售手段也能相应地有所调整,并对如何能经济、方便和及时地购买到自己所需要的机票表现出极大的关注,于是,传统的购票方式开始面临变革。数据库课程设计目录目录一、概念结构设计阶段111概念结构设计的目标112具体任务113阶段结果1二、逻辑结构设计阶段121逻辑结构设计阶段的任务和目标122数据组织1221将ER图转换为关系模型1222数据库模式定义1223用户子模式定义1224数据处理1三、物理设计阶段131物理阶段设计的目标132物理阶段设计的任务133数据存储
7、方面1四、数据库实施阶段141数据库实施阶段的目标142数据库实施阶段的任务143数据库实施阶段结果1五、数据库测试与调试1六、总结错误未定义书签。附录一、数据操纵验证2一、定义视图验证如下2二、相关的SQL语句测试1附录二、建立存储过程2附录三、数据库逻辑结构定义1附录四、前台程序设计数据库课程设计概念结构设计阶段11概念结构设计阶段11概念结构设计的目标概念设计阶段是进行数据库设计的关键阶段,它是将需求阶段得到的用户需求抽象为信息世界的结构,并能更好的、更准确的用某一DBMS实现这些需求,主要通过ER模型来描述,将需求分析阶段的设计真实的、充分的反应出来,包括事物和事物之间的联系,能满足用
8、户对数据处理的要求,将现实世界的需求通过一个个真实模型表现出来。12具体任务1选择中层数据流为切入点,通常选择实际系统中的子系统;2设计分ER图,即各子模块的ER图;3生成初步ER图,通过合并方法,做到各子系统实体、属性、联系统一;4生成全局ER图,消除冲突。13阶段结果1各实体及属性实体是客观存在并可相互区分的事物,它可以是具体的人、物、事,也可以是抽象的概念关系,属性是某一实体所具有的某一特性,一个实体可以由若干个属性来刻画。本系统的实体及其属性如下图所述数据库课程设计概念结构设计阶段22各分ER图ER图主要是能更清晰的表达现实世界的信息,它提供了表示实体型、属性和联系的方法。【分ER图航
9、空公司业务】数据库课程设计概念结构设计阶段3【分ER图制定航班业务】【分ER图航班提供票业务】【分ER图客户订阅机票业务】3各分ER图中每个实体的属性。4合并各分图,消除各类冲突,得到初步ER图,再消除不必要冗余,得到的基本ER图。具体实现如下1)消除冲突合并分ER图时并不能简单地将各个分ER图画到一起,而是必须着力消除各个分ER图中的不一致,以形成一个能为全系统中所有的用户共同理解和接受的统一的概念模型。合并分ER图的主要工作与关键是合理消除各分ER图的冲突,冲突主要有三类属性冲突、命名冲突和结构冲突。2)消除冗余在ER图中,可能存在一些冗余的数据和实体间的联系。冗余数据和冗余联系容易破坏数
10、据库的完整性,给数据库的维护增加困难,应予以消除。但并不是所有的冗余数据与冗余联系都必须加以消除,有时为了提高效率,不得不以冗余信息作为代价。消除冗余主要采用分析法和规范化理论。经过以上分析,将所有的分ER图综合成一个系统的总ER图数据库课程设计逻辑结构设计阶段4【业务总ER图】合并各分图,消除属性冲突、命名冲突、结构冲突等三类冲突,得到初步ER图,再消除不必要冗余,得到的基本总ER图如下所示【业务总ER图】每个实体属性解释如下航空公司ACANO,ANAME,AAD,ACN客户CUCNO,CNAME,CAD,CAG飞机PLPNO,PTNO,SNO航线LILNO,SP,EP,DIS航班FLFNO
11、,FT机票BTBNO,SPAY数据库课程设计逻辑结构设计阶段52逻辑结构设计阶段21逻辑结构设计阶段的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本ER图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。具体内容包括数据组织(将ER图转换成关系模型、模型优化、数据库模式定义、用户子模式设计)、数据处理(画出系统功能模块图)两大任务。(1)将ER图转化为关系。(2)对关系进行优化组织。22数据组织221将ER图转换为关系模型实体型转换为关系模式。实体的属性就是关系的属性,实体的码就是
12、关系的码。对于实体间的联系则有以下不同的情况一个MN联系转换为一个关系模式。与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。一个1N联系可以转换为一个独立的关系模式,也可以与N端对应的关系模式合并。如果转换为一个独立的关系模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码。一个11联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。三个或三个以上实体间的一个多元联系可以转换为一个关系模式。与该多元联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合,具有相同码
13、的关系模式可合并。1航空公司与飞机,航空公司与航线都是一对多的关系,则与N端关系模式合并,所以飞机,航线的表中都含有航空公司的信息,2机场根据飞机与航线制定航班,属于多对多的关系,取个实体的码以及联系本身的属性转化为关系的属性,而关系的码为各实体码的组合。即航班的表中包含飞机的信息和航线的信息,共同构成航班关系的外码。数据库课程设计逻辑结构设计阶段63客户订阅航班的关系同样也是一对多的联系,将其转化为独立的关系模式,关系的属性包含两端的主码构成外码。对关系模式AC,CU,PL,LI,FL,BT进行优化设计,使之满足3NF的要求,即不存在部分函数依赖和传递函数依赖,减少数据的冗余。所以根据ER图
14、,转化的关系如下所示航空公司(公司编号、公司名称、公司地址、公司联系方式)客户(客户编号、客户姓名、家庭住址、客户年龄)飞机(飞机编号、飞机型号、座位数,公司编号)航线(航线编号、起点、终点、里程,公司编号)航班(航班编号、航班时间、飞机编号,航线编号)订票(订票编号、所付票价,客户编号,航班编号)【别名表示】航空公司ACANO,ANAME,AAD,ACN客户CUCNO,CNAME,CAD,CAG飞机PLPNO,PTNO,SNO,ANO航线LILNO,SP,EP,DIS,ANO航班FLFNO,FT,PNO,LNO机票BTBNO,SPAY,CNO,FNO222数据库模式定义数据库模式定一主要包括
15、各模式的逻辑结构定义、关系的完整性和安全性等内容。一个关系模式应当是一个五元组R,而一般只将其看作一个三元组R。(关系模式图参考附录1)表21数据库模式定义表编号逻辑结构基本表定义完整性和安全性T1AC详见附录3详见附录3T2CU(详见附录3)详见附录3T3PL(详见附录3)详见附录3数据库课程设计逻辑结构设计阶段7T4LI(详见附录3)详见附录3T5FL(详见附录3)详见附录3T6BT(详见附录3)详见附录3223用户子模式定义将概念模型转换为全局逻辑模型后,还应该根据用户的习惯和需求设计符合局部用户需要的外模式用户子模式定义即就是视图定义,可以利用视图的设计定义符合局部用户需要的用户外模式
16、,本系统的用户自模式定义如下表所示表22视图定义表编号用户子模式作用(提供数据保密和安全保护机制)V1CUSTOMERVIER便于查询和修改客户信息V2PLANEVIEW便于查询和修改飞机信息V3LINEVIEW便于查询和修改航线信息V4FIGHTVIEW便于查询和修改航班的信息V5BOOKTICKETVIEW便于查询和修改订票信息224数据处理系统共分为以下几个模块机场管理子系统,客户子系统,客户订票子系统,客户查询子系统。查询子系统又分为查询机票,查询航班,查询飞机等功能。所以系统功能模块图如下所示23民航订票管理系统功能图数据库课程设计物理设计阶段83物理设计阶段31物理阶段设计的目标物
17、理设计阶段的目标是根据SQLSERVER2000具体的功能,设计优化的物理数据库结构,使得在数据库上运行的各种事务响应时间最小,存储空间利用率高,事务吞吐量大。32物理阶段设计的任务物理设计阶段为逻辑数据模型选取得一个最合适应有环境的物理结构的过程,也就是数据库的物理设计。数据库的物理设计通常分为两个步骤1确定数据库的物理结构,在关系数据库中主要指存取方法和存储结构;2对物理结构进行评价,评价的重点是时间和空间效率。(1)数据存储方面在数据库中为各表建立索引(2)系统功能模块本系统主要包括三个子系统模块,分别为航空公司管理子系统模块、客户查询信息子系统和订票信息子系统模块以及客户信息子系统模块
18、。主要实现如下图所示图41机场管理信息子模块图数据库课程设计物理设计阶段9图41表示航空公司主要对飞机和航线信息做出更新操作,包括增加飞机信息,删除飞机信息和修改飞机信息以及相应的更新航线信息,并将更新后的数据保存,以便查询。图42客户查询信息子系统模块图图42表示客户查询相关信息的功能模块,根据客户的要求,提供航班、飞机、机票信息供客户查阅。图43订票更新子功能模块图图43订票信息更新模块图表示订票处对订票信息的更新操作,包括对其增数据库课程设计物理设计阶段10加,删除,修改等操作,并将更新后的结果保存,以便方便查询。图44客户子系统功能模块图33数据存储方面为数据库中各基本表建立的索引如下
19、1由于基本表CU的主码CNO经常在查询条件和连接操作的连接条件中出现,且它们的值唯一,考虑属性上建立唯一性索引;2FL的主码FNO,在查询条件和连接操作的连接条件中出现,且它们的值唯一,考虑属性上建立唯一性索引;3基本表AC的属性值几乎不会有什么变化,更新率很低,可考虑适当建立索引;数据库课程设计数据库实施阶段124数据库实施阶段41数据库实施阶段的目标通过用DBMS所提供的数据定义语言和其他实用程序将数据库逻辑设计和物理设计结果描述出来,成为DBMS可以接受的源代码,在经过调试后生成目标模式。42数据库实施阶段的任务1建立数据库CREATEDATABASEMAB2建立数据表1建立航空公司表C
20、REATETABLEACANOCHAR10PRIMARYKEY,ANAMECHAR20NOTNULL,AADCHAR20,ACNCHAR202建立客户表CREATETABLECUCNOCHAR10PRIMARYKEY,CNAMECHAR20NOTNULL,CADCHAR20,CAGINT3建立飞机信息表CREATETABLEPLPNOCHAR10PRIMARYKEY,PTNOCHAR10,SNOINT,ANOCHAR10,FOREIGNKEYANOREFERENCESACANO4建立航线表数据库课程设计数据库实施阶段12CREATETABLELILNOCHAR10PRIMARYKEY,SPCH
21、AR20,EPCHAR20,DISINT,ANOCHAR10,FOREIGNKEYANOREFERENCESACANO5建立航班信息表CREATETABLEFLFNOCHAR10PRIMARYKEY,FTDATETIMENOTNULL,PNOCHAR10,LNOCHAR10,FOREIGNKEYPNOREFERENCESPLPNO,FOREIGNKEYLNOREFERENCESLILNO6建立机票表CREATETABLEBTBNOCHAR10PRIMARYKEY,SPATYINT,CNOCHAR10,FNOCHAR10,FOREIGNKEYCNOREFERENCESCUCNO,FOREIGNK
22、EYFNOREFERENCESFLFNO3、建立视图GOCREATEVIEWA1CNO,CNAME,BNO,SPATYASSELECTCUCNO,CNAME,BNO,SPATYFROMCU,BTWHERECUCNOBTCNOGOGOCREATEVIEWA2ASSELECTFROMPL数据库课程设计数据库实施阶段12GOGOCREATEVIEWA3ASSELECTFROMLIGOGOCREATEVIEWA4FNO,FT,SP,EP,DISASSELECTFNO,FT,SP,EP,DISFROMLI,FLWHEREFLLNOLILNOGOGOCREATEVIEWA5BNO,FNO,FT,SP,EP
23、,DIS,SPATYASSELECTBNO,BTFNO,FT,SP,EP,DIS,SPATYFROMBT,LI,FLWHEREBTFNOFLFNOANDLILNOFLLNOGO4、建立索引CREATEUNIQUEINDEXAONACANODESCCREATEUNIQUEINDEXCONCUCNODESCCREATEUNIQUEINDEXPONPLPNOCREATEUNIQUEINDEXLONLILNOCREATEUNIQUEINDEXFONFLFNOCREATEUNIQUEINDEXBONBTBNO5数据库入库系统包括客户信息管理、飞机信息管理、航线信息管理、订票系统管理等四大功能模块,共有6
24、张基本表,牵涉到大量数据的录入,又由于时间限制,采用事先在EXCEL中录入数据,然后使用SQLSERVER2000数据导入/导出向导功能,直接将数据导入到相应的基本表中。当然,附录中也给出了各个基数据库课程设计数据库测试与调试14本表插入元组的存储功能。6、建立相关的存储过程系统共建立了7个存储过程相应信息如下所示表31创建的存储过程列表编号存储过程名称定义作用P1INCU详见附录21在客户表中插入一条客户的信息P2CU_BT详见附录22查询任意客户的订票信息P3PL_IN详见附录23新插入一条飞机信息P4LZ_LI详见附录24查询起点的航线信息P5DL_CU详见附录25建立删除客户信息的存储
25、过程P6PL_SE详见附录26查询一由任意公司生产的任意飞机信息P7PRI详见附录27输入起点和终点,显示出相应的票价43数据库实施阶段结果1关系模式说明2数据定义语句(见附录1)数据库课程设计数据库测试与调试156数据库测试与调试测试与调试主要是对数据库应用程序的实际运行,以及执行对数据的各种操作,测试应用程序功能是否满足设计要求,如果不满足,则要对应用程序部分进行修改和调整,直到达到设计要求为止。数据库课程设计总结167总结通过本次民航订票系统开发与测试,从开始的系统需求分析、概念设计、逻辑设计、物理设计,再到数据库实施、系统的测试和调试,都是自立完成,能做出的系统的大概框架,并没有开发出
26、具体应用的软件和界面,但对于项目(系统)开发的大致流程有了一定的了解,为以后的系统的开发打下了良好的基础。同时加深了对SQLSERVER2000的了解,基本能够在相应的环境下组织SQL语句和存储过程。数据库课程设计附录一、数据操纵实验17附录一、数据操纵验证一、定义视图验证如下1建立客户订票信息的视图GOCREATEVIEWA1CNO,CNAME,BNO,SPATYASSELECTCUCNO,CNAME,BNO,SPATYFROMCU,BTWHERECUCNOBTCNOGO2建立飞机信息视图GOCREATEVIEWA2ASSELECTFROMPLGO3建立航线信息视图GOCREATEVIEWA
27、3ASSELECTFROMLIGO4建立航班全程信息视图GOCREATEVIEWA4FNO,FT,SP,EP,DISASSELECTFNO,FT,SP,EP,DISFROMLI,FLWHEREFLLNOLILNOGO5建立机票完整信息的视图GOCREATEVIEWA5BNO,FNO,FT,SP,EP,DIS,SPATYASSELECTBNO,BTFNO,FT,SP,EP,DIS,SPATYFROMBT,LI,FLWHEREBTFNOFLFNOANDLILNOFLLNOGO数据库课程设计附录一、数据操纵实验186每次航班的总机票数的视图SELECTFNO,COUNTBNOFROMBTGROUPB
28、YFNO数据库课程设计附录一、数据操纵实验19二、相关的SQL语句测试1查询订票的客户信息SELECTCUCNO,CNAME,BNO,SPATYFROMCU,BTWHERECUCNOBTCNO2、查询航班的座位数SELECTFNO,SNOFROMFL,PLWHEREFLPNOPL,PNO数据库课程设计附录一、数据操纵实验203、插入客户信息INSERTINTOCUVALUES010,李华,四川内江,234插入飞机信息INSERTINTOPLVALUES010,TY76,280,5数据库课程设计附录一、数据操纵实验215、删除飞机信息DELETEFROMPLWHEREPNO0106、修改航线信息
29、UPDATELISETSP海口,EP泉州,DIS900WHERELNO201数据库课程设计附录一、数据操纵实验227、统计平均票价SELECTAVGSPAYFROMBT8、查询从长沙始发的航班号和时间SELECTFNO,FTFROMFL,LIWHEREFLLNOLILNOANDSP长沙9、查看航空公司的所有信息SELECTFROMAC10、查询以兰州为始发点的航班信息SELECTSP,EP,PTNO,FNO,FTFROMPL,FL,LIWHEREFLPNOPLLNOANDLILNOFLLNOANDSP重庆数据库课程设计附录一、数据操纵实验22附录二、建立存储过程1在客户表中插入一条客户的信息C
30、REATEPROCEDUREINCUP_CNOCHAR10,P_CNAMECHAR20,P_CADCHAR20,P_CAGINTASINSERTINTOCUVALUESP_CNO,P_CNAME,P_CAD,P_CAGEXECINCU011,李艳,西固区,222查询任意客户的订票信息CREATEPROCEDURECU_BTCU_CNAMECHAR20AS数据库课程设计附录二、建立存储过程22SELECTCNAME,BNO,SP,EP,FLFROMCU,BT,LI,FLWHERECUCNOBTCNOANDLILNOFLLNOANDFLFNOBTFNOEXECCU_BT赵晶数据库课程设计附录二、建
31、立存储过程253、新插入一条飞机信息CREATEPROCEDUREPL_INP_PNOCHAR10,P_PTNOCHAR10,P_SNOINT,P_ANOCHAR10ASINSERTINTOPLVALUESP_PNO,P_PTNO,P_SNO,P_ANOEXECPL_IN020,BOIN707,300,054、查询起点为兰州的航线信息CREATEPROCEDURELZ_LIAS数据库课程设计附录二、建立存储过程26SELECTLNO,EPFROMLIWHERESP兰州5、建立删除客户信息的存储过程CREATEPROCEDUREDL_CUP_ACNAMECHAR20ASDELETEFROMCUW
32、HERECNAMEP_ACNAME6、查询一由任意公司生产的任意飞机信息CREATEPROCEDUREPL_SEP_ANOCHAR20ASSELECTFORMPLWHEREANOP_ANAMEEXECPL_SE南航数据库课程设计附录二、建立存储过程277输入起点和终点,显示出相应的票价CREATEPROCEDUREPRIP_SPCHAR20,P_EPCHAR20ASSELECTSP,EP,SPATYFROMBT,FL,LIWHEREBTFNOFLFNOANDFLLNOLILNOANDSPP_SPANDEPP_EPEXECPRI长沙,北京8、客户输入起点和终点,显示出相应的航班例如客户要查询从长
33、沙飞往北京的航班信息,则输入长沙和北京,便输出结果CREATEPROCEDURECXP_SPCHAR20,P_EPCHAR20数据库课程设计附录二、建立存储过程28ASSELECTSP,EP,BTFNO,FT,SPATYFROMLI,FL,BTWHERELILNOFLLNOANDFLFNOBTFNOANDSPP_SPANDEPP_EPEXECCX长沙,北京数据库课程设计附录三、数据库逻辑结构定义29附录三、数据库逻辑结构定义1、客户CU基本信息表,用于记录客户的信息附表11客户基本信息表属性数据类型长度是否主键是否外键完整性CNOCHAR10是否NOTNULLCNAMECHAR20否否NOTN
34、ULLCADCHAR20否否CAGINT否否2、航空公司(AC)基本信息表附表12客户基本信息表属性数据类型长度是否主键是否外键完整性ANOCHAR10是否NOTNULLANAMECHAR20否否NOTNULLAADCHAR20否否ACNCHAR20否否3、飞机(PL)基本信息表附表12飞机基本信息表属性数据类型长度是否主键是否外键完整性PNOCHAR10是否NOTNULLPTNOCHAR20否否NOTNULLSNOCHAR20否否ANOCHAR10否是4、航线(LI)基本信息表附表12航线基本信息表数据库课程设计附录三、数据库逻辑结构定义30属性数据类型长度是否主键是否外键完整性LNOCHA
35、R10是否NOTNULLSPCHAR20否否NOTNULLEPCHAR20否否DISCHAR10否否ANOCHAR10否是5、航班(FL)基本信息表附表12航班基本信息表属性数据类型长度是否主键是否外键完整性FNOCHAR10是否NOTNULLFTDATETIME否否NOTNULLPNOCHAR20否是LNOCHAR10否是6、机票(BT)信息表附表12机票基本信息表属性数据类型长度是否主键是否外键完整性BNOCHAR10是否NOTNULLSPAYINT否否NOTNULLFNOCHAR10否是CNOCHAR10否是数据库课程设计附录四、前台程序设计31附录四、前台程序设计INCLUDEINCL
36、UDEINCLUDEINCLUDEINCLUDE/数据结构/STRUCTAIRTICKETINTIDCARDINTNUMINTDAYCHARTIME50CHARCOUNT50CHARSTART50CHARENDS50AIRTICKETNEXTVOIDMAINFILEFPAIRTICKETHEADNULLVOIDFN/输出函数AIRTICKETCREATE/创建链表AIRTICKETPSAIRTICKETPENDPSNEWAIRTICKETCOUTPSNUMCOUTPSDAYCOUTPSTIMECOUTPSIDCARDCOUTPSCOUNTCOUTPSSTARTCOUTPSENDSCOUTNUM
37、0IFHEADNULLHEADPSELSEPENDNEXTPSPENDPSPSNEWAIRTICKETCOUTPSNUMCOUTPSDAYCOUTPSTIMECOUTPSIDCARDCOUTPSCOUNTCOUTPSSTARTCOUTPSENDSCOUTNEXTNULLRETURNHEADVOIDSAVEAIRTICKETHEAD1/保存信息IFFPFOPEN“1TXT“,“AB“NULLRETURNFORHEAD1HEAD1HEAD1NEXTFWRITEHEAD1,SIZEOFAIRTICKET,1,FPFCLOSEFPVOIDDINGPIAO/功能1订票AIRTICKETHEAD1CREA
38、TESAVEHEAD1数据库课程设计附录四、前台程序设计33VOIDTUIPIAO/功能2退票AIRTICKETTAIL,TEMPNEWAIRTICKETHEADNULLIFFPFOPEN“1TXT“,“RB“NULLPRINTF“出错,请检查文件是否存在,按任意键返回住菜单“/出错提示GETCHARFNWHILEFREADTEMP,SIZEOFAIRTICKET,1,FP1IFHEADNULLHEADTAILTEMPHEADNEXTNULLELSETEMPNEXTNULLTAILNEXTTEMPTAILTEMPTEMPNEWAIRTICKETFCLOSEFPINTNUMIFHEADCOUTN
39、UMFORTAILTAILTAILNEXTIFHEADNUMNUMHEADTAILNEXTELSEIFTAILNUMNUMTEMPNEXTTAILNEXTCOUTNEXTFWRITEHEAD,SIZEOFAIRTICKET,1,FP数据库课程设计附录四、前台程序设计34FCLOSEFPVOIDWATCH/功能3查看信息AIRTICKETTAIL,TEMPNEWAIRTICKETHEADTAILNULLINTFLAG1IFFPFOPEN“1TXT“,“RB“NULLPRINTF“出错,请检查文件是否存在,按任意键返回住菜单N“/出错提示MAINWHILEFREADTEMP,SIZEOFSTRUC
40、TAIRTICKET,1,FP1IFHEADNULLHEADTAILTEMPHEADNEXTNULLELSETEMPNEXTNULLTAILNEXTTEMPTAILTEMPCOUTNUMDAYTIMEIDCARDCOUNTSTARTENDSNEXTNULLELSETEMPNEXTNULLTAILNEXTTEMPTAILTEMPTEMPNEWAIRTICKETCOUTNUMIFHEADNULLPRINTF“没有你所查找的信息“FNFORHEADHEADHEADNEXTIFHEADNUMNUMCOUTNUMDAYTIMEIDCARDCOUNTSTARTENDSKSWITCHKCASE1SEARCH
41、_NUMBREAKCASE2/FNBREAKDEFAULTCOUTNEXTNULLELSETEMPNEXTNULLTAILNEXTTEMPTAILTEMPTEMPNEWAIRTICKETCOUTDAYIFHEADNULLCOUTNEXTIFHEADDAYDAYCOUTNUMDAYTIMEIDCARDCOUNTSTARTENDSM数据库课程设计附录四、前台程序设计37SWITCHMCASE1SEARCH_DAYBREAKCASE2FNBREAKDEFAULTCOUTISWITCHICASE1SEARCH_NUMBREAKCASE2SEARCH_DAYBREAKCASE0FNBREAKDEFAUL
42、TCOUTNUMWHILEFREADIFTEMPNUMNUMCOUTTEMPNUM数据库课程设计附录四、前台程序设计38COUTTEMPDAYCOUTTEMPTIMECOUTTEMPIDCARDCOUTTEMPCOUNTCOUTTEMPSTARTCOUTTEMPENDSFSEEKFP,I1SIZEOFAIRTICKET,0FWRITEFSEEKFP,0,0FCLOSEFPVOIDFN/输出信息函数INTI1WHILEICOUTICOUT0IFJ1IFM1ELSETEMPNEXTNULLTAILNEXTTEMPTAILTEMPTEMPNEWAIRTICKETCOUTNUMIFHEADNULLPRINTF“没有你所查找的信息“FNFORHEADHEADHEADNEXTIFHEADNUMNUMCOUTNUMDAYTIMEIDCARDCOUNTSTARTENDSKSWITCHKCASE1SEARCH_NUMBREAKCASE2MAINBREAKDEFAULTCOUT“按键错误请重新按键“ENDLBREAKELSECOUT“按键错误请重新选择按键“ENDLBREAKELSECOUT“按键错误请重新选择按键“ENDL数据库课程设计附录四、前台程序设计41