飞机订票系统
- 格式:docx
- 大小:16.17 KB
- 文档页数:7
5-飞机订票系统详细设计说明书文档编号:版本号:v1.0详细设计说明书项目名称飞机订票系统项目负责人何柳青本文档编写者何柳青项目开发者计算机081第二组2010年12月4日1.引言1.1编写目的本文档将对《飞机订票系统》的程序进行详细解析,是程序员编写代码的基础。
本文档的读者是设计人员和程序员。
1.2背景开发软件名称:飞机票订系统。
(1)项目任务提出者:中国民航及中国国际旅游开发公司。
(2)项目开发者:何柳靑,陆银琳,李欣纯,单国英,阿依古丽(3)项目与其他软件,系统的关系:该系统采用现代流行WINDOWS操作界面。
是标准的WIN32应用程序,可运行在WIN95 \WIN98 \WinMe \WIN2000 \WINXP \WIN7 \WINNT 等系统平台上的多任务应用程序。
1.3参考资料《软件工程导论》清华大学出版社张海藩编著《实用软件工程》清华大学出版社郑人杰等编著《数据库系统概论(第三版)》高等教育出版社萨师煊王珊等编著《实用软件文档写作》清华大学出版社肖刚等编著《软件工程》第3版人民邮电出版社张海藩等编著2.程序系统的结构本程序每个子系统所包含的单元文件名称及其程序层次结构如表所示,对于特别简单的程序模块,其程序层次结构非常简单,在此从略,仅给出较为复杂的程序层次结构。
2.1运行环境(1) 设备硬件最低要求:内存512MB,硬盘50MB以上(2) 支持软件操作系统:WIN95\WIN98\WinMe\WIN2000\WINXP\WIN7\WINNT等2.2 系统组织结构此飞机订票系统共分为两大模块:后台管理员模块和前台票务员模块。
后台管理员模块功能为航班信息调整,包括增加新航班、删除航班、修改航班信息;前台票务员模块功能为乘客信息管理,订票管理,航班信息查询。
飞机订票系统登录验证乘客信息管理航班信息查询航班信息管理后台管理员验证乘客票务信息修改前台票务员验证乘客基本信息修改按航班号查询按目的地查询按时间查询增加新航班乘客订票修改原有航班订票管理改签删除航班退票乘客基本信息录入图1.飞机订票系统程序层次结构后台管理员管理员登录航班信息管理身份验证增加新航班修改原有航班信息删除航班图2.后台管理员模块程序层次图前台票务员票务员验证乘客信息管理航班查询乘客票务信息修改身份验证乘客基本信息修改按航班号查询按目的地查询按时间查询乘客订票订票管理改签退票乘客基本信息录入图3.前台票务员模块程序层次图3、程序设计说明本说明以航班查询模块中“按目的地查询”功能,航班信息管理模块以及乘客信息管理模块为例进行说明。
飞机订票系统测试报告1. 引言本文档旨在介绍飞机订票系统的测试过程和结果。
飞机订票系统是一款用于用户预订航班机票的在线平台。
通过测试,我们旨在确保系统的功能正常、性能稳定,并且用户能够顺利完成预订流程。
2. 测试环境为了对系统进行全面的测试,我们搭建了以下测试环境:•操作系统:Windows 10•浏览器:Google Chrome,Mozilla Firefox•设备:台式电脑,笔记本电脑,手机(Android,iOS)•网络环境:LAN,WLAN,4G网络3. 测试目标我们的测试目标主要包括以下几个方面:•功能测试:确保系统的各项功能正常运作,包括用户注册、登录、查询航班信息、预订机票等。
•兼容性测试:在不同的操作系统、浏览器和设备上测试系统的兼容性,确保用户可以在不同的环境中正常使用系统。
•性能测试:通过模拟多用户同时访问、查询航班和预订机票,测试系统的性能稳定性和响应速度。
•安全性测试:检查系统的安全性,防止潜在的数据泄露和非法访问。
4. 测试步骤为了对系统进行全面的测试,我们按照以下步骤进行测试:4.1 用户注册和登录功能测试1.打开系统主页,点击注册按钮进入注册页面。
2.输入有效的用户名、密码和邮箱地址,点击注册按钮完成注册。
3.使用注册的用户名和密码,尝试登录系统。
4.验证登录是否成功,检查是否能够正常浏览个人信息页面。
4.2 航班查询功能测试1.登录系统后,点击航班查询按钮进入查询页面。
2.输入有效的出发地、目的地和日期,点击查询按钮进行航班搜索。
3.检查系统是否能够正确地显示符合条件的航班信息。
4.选择一条航班信息,尝试获取详细信息。
4.3 机票预订功能测试1.在航班查询结果页面,选择一条符合条件的航班信息。
2.输入乘客信息和联系方式,点击预订按钮进行机票预订。
3.检查系统是否成功生成订单,并显示预订成功的提示信息。
4.登录用户的邮箱,确认是否收到预订成功的邮件通知。
4.4 兼容性测试在不同的操作系统、浏览器和设备上测试系统的兼容性,包括:•操作系统:Windows,macOS,Linux•浏览器:Google Chrome,Mozilla Firefox,Safari•设备:台式电脑,笔记本电脑,手机(Android,iOS)4.5 性能测试1.使用性能测试工具,模拟多用户同时访问系统。
目录第一部分源程序---------------------------------------------------3第二部分函数流程图--------------------------------------------11 menu()-----------------------------------------------------12 enter()-----------------------------------------------------13 input()-----------------------------------------------------14 browse()---------------------------------------------------15 menu1()---------------------------------------------------16 order()-----------------------------------------------------17 search_time()---------------------------------------------18 search_end()----------------------------------------------19 search()----------------------------------------------------20 book()------------------------------------------------------21 back()------------------------------------------------------22 save()------------------------------------------------------23 load()------------------------------------------------------24 第三部分心得体会------------------------------------------------25第一部分:源程序#include <stdio.h>#include <string.h>#include <stdlib.h>#define N 1000typedef struct plane{char ID[10]; /*航班代号*/char BePlace[10];/*飞机起飞地点*/char EnPlace[10];/*飞机降落终点*/char data[15];/*飞机起飞时间*/int max;/*飞机最大乘客人数*/int price;/*飞机票价*/int num;/*飞机已售票数*/}PLANE;PLANE ti[N];int n;/*当前的航班数目*/void menu();void menu1();void input(int i){printf("请输入航班代号:\n");scanf("%s",ti[i].ID);printf("请输入起飞地点:\n");scanf("%s",ti[i].BePlace);printf("请输入降落地点:\n");scanf("%s",ti[i].EnPlace);printf("请输入起飞时间:\n");scanf("%s",ti[i].data);printf("请输入航班的最大载客人数:\n");scanf("%d",&ti[i].max);printf("请输入航班的票价:\n");scanf("%d",&ti[i].price);ti[i].num=0;}void enter(){int i;system( "cls" );printf("请输入航班的数目(0-%d)?:",N);scanf("%d",&n); /*要输入的记录个数*/printf("\n请输入数据\n\n");for(i=0;i<n;i++){printf("\n请输入第%d 航班记录.\n",i+1);input(i); /*调用输入函数*/}getchar();menu();}void printf_one(int i) /*显示一个记录的函数*/{printf("%11s %6s %10s %6s %6d %6d %6d",ti[i].ID,ti[i].BePlace,ti[i].EnPlace ,ti[i].data,ti[i].price,ti[i].max,ti[i].num);}void browse(){int i;system( "cls" );puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){printf_one(i);printf("\n");}getchar();getchar();menu();}void order() /*排序模块(按平均成绩)*/{int i,j;struct plane s;system( "cls" );for(i=0;i<n;i++) /*冒泡法排序*/{for(j=i+1;j<n;j++)if(strcmp(ti[i].data,ti[j].data)>0){s=ti[i];ti[i]=ti[j];ti[j]=s;}}browse();}void search_time(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the time:");scanf("%s",s.data); /*输入出发的时间*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(s.data,ti[i].data)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void serch_end(){int i,m=0;struct plane s;system( "cls" );printf("\n\nEnter the end Place:");scanf("%s",s.EnPlace); /*输入要到达的地方*/puts("\n--------------------------------------------------------------------");printf("\n\t航班代号起飞地点降落地点起飞时间票价最大乘客已售票数\n");for(i=0;i<n;i++){if(strcmp(ti[i].EnPlace,s.EnPlace)==0){m++;if((m!=0)&&(m%10==0)) /*目的是分屏显示*/{printf("\n\nPress any key to contiune . . .");getchar();puts("\n\n");}printf_one(i);printf("\n");/*调用显示一个记录的函数*/}}puts("\n--------------------------------------------------------------------");getchar(); /*按任意健*/getchar();menu1();}void menu1(){int n,w1;do{system( "cls" ); /*清屏*/puts("\t\t\t\t 飞机售票操作!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.按照时间排序");puts("\t\t\t\t2.按照时间查找航班");puts("\t\t\t\t3.按照地点查找航班");puts("\t\t\t\t4.返回主菜单");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-4): [ ]\b\b");scanf("%d",&n);if(n<1||n>4) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 4,Please input again:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:order();break;case 2:search_time();break;case 3:serch_end();break;case 4:menu();break;}}int search() /*查找模块*/{int i,k;struct plane s;k=-1;system( "cls" );printf("\n\n请输入要订票的起飞地点:");scanf("%s",s.BePlace); /*输入要到达的地方*/printf("\n\n请输入要订票的降落地点:");scanf("%s",s.EnPlace);printf("\n\n请输入要订票的起飞时间:");scanf("%s",s.data); /*输入出发的时间*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.BePlace,ti[i].BePlace)==0&&strcmp(s.EnPlace,ti[i].EnPlace)==0&&strcmp(s.dat a,ti[i].data)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/}}if(k==-1){printf("\n\nNO exist!");return -1;}elsereturn k;}void book(){int i;system( "cls" );printf("欢迎进入售票窗口!\n");i=search();if(i!=-1){if(ti[i].num>=ti[i].max){printf("\n该趟航班票已售完!");}else{ti[i].num++;printf("\n订票成功!\n");}}elseprintf("该航班不存在!\n");getchar();getchar(); /*按任意健*/menu();}void back(){int i,k=-1;struct plane s;system( "cls" );printf("欢迎进入退票窗口!\n");printf("\n\n输入航班代号:");scanf("%s",s.ID); /*输入要到达的地方*/for(i=0;i<n;i++) /*查找要修改的数据*/{if(strcmp(s.ID,ti[i].ID)==0){k=i; /*找到要修改的记录*/printf_one(k);break; /*调用显示一个记录的函数*/}}if(k==-1){printf("\n\nNO exist!");}else{ti[i].num--;printf("\n退票成功!\n");}getchar(); /*按任意健*/getchar(); /*按任意健*/menu();}void save(){int w=1;FILE *fp;int i;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","wt"))==NULL) /*以输出打开方式,在此前的记录被覆盖*/{printf("\nCannot open file\n");return ;}for(i=0;i<n;i++)if(fwrite(&ti[i],sizeof(struct plane),1,fp)!=1){printf(" error\n");w=0;}if(w==1){printf(" ok!\n");}fclose(fp);getchar();getchar();menu();}void load(){FILE *fp;int i,w;w=1;system( "cls" );if((fp=fopen("D:\\我的文档\\桌面\\ticket.txt","rt"))==NULL){printf("\nCan not open file\n");w=0;return;}n=0;for(i=0;!feof(fp);i++){fread(&ti[i],sizeof(struct plane),1,fp);n++;}n=n-1;fclose(fp);if(w==1)printf("Load !");getchar();getchar();menu();}void menu(){int n,w1;do{system( "cls" ); /*清屏*/ /*清屏*/puts("\t\t\t\t 飞机售票管理系统!\n\n");puts("\t\t*********************MENU*********************\n\n");puts("\t\t\t\t1.输入新航班");puts("\t\t\t\t2.浏览");puts("\t\t\t\t3.航班操作");puts("\t\t\t\t4.订票");puts("\t\t\t\t5.退票");puts("\t\t\t\t6.保存");puts("\t\t\t\t7.载入");puts("\t\t\t\t8.退出");puts("\n\n\t\t**********************************************\n");printf("Choice your number(1-8): [ ]\b\b");scanf("%d",&n);if(n<1||n>8) /*对选择的数字作判断*/{w1=1;printf("your choice is not between 1 and 8,Please input enter to choice again:");getchar();getchar();}else w1=0;} while(w1==1);/*选择功能*/switch(n){case 1:enter();break; /*输入模块*/case 2:browse();break; /*浏览模块*/case 3:menu1();break; /*查找模块*/case 4:book();break; /*订票模块*/case 5:back();break; /*退票模块*/case 6:save();break; /*保存模块*/case 7:load();break; /*加载模块*/case 8:exit(0);}}void main(){menu();}第二部分:函数流程图(2)enter函数流程图第三部分:心得体会(1)开始对c语言只是一种零散的认识,作为一个c语言的初学者对编程没有明确的概念,只是对语句的格式与编程规定有了一个初步了解。
摘要飞机在现今的社会中已是越来越重要了,人们在旅游、工作、学习等生活中对飞机几乎是不可缺少了。
而由乘坐飞机所引起的问题也深入到了计算机领域,飞机订票系统就是解决这种问题的一种途径。
该设计可以对飞机航班信息进行排序和查找。
可以查询航班号、飞机号、目的地、订票数、余票数等信息。
对于本设计,主要是通过线性表的逻辑结构、存储结构,线性表及队列上基本运算实现的。
可以让我们学会如何把学到的知识用于解决实际问题。
主要包括以下模块:保存模块、订票模块、显示模块、退票模块、查询模块。
关键词:航班信息;客户信息;信息保存修改;链式存储结构一、设计目的和要求1设计目的1.1 进一步掌握和利用C语言进行程设计的能力;1.2 进一步理解和运用结构化程设计的思想和方法;1.3 初步掌握开发一个小型实用系统的基本方法;1.4 学会调试一个较长程序的基本方法;1.5 学会利用流程图或N-S图表示算法;1.6 掌握书写程设计开发文档的能力(书写课程设计报告)。
2设计要求2.1 录入航线信息每条航线信息包括航班号、飞机号、目的地、订票书、余票数共5项。
假设现在有3条航线,目的地分别是北京、上海、广州,飞机上可乘坐100人(即初始订票数为0,余票数为100);2.2 订票业务用户包括姓名,航班号,座位号(初始为0)。
有新客户订票室,先输入客户的姓名和他提出的航班号,查询该航线的订票情况,若有余票,则为客户办理订票手续,分配给客户一个座位号,然后将新客户的信息添加,并修改该航线的订票数和余票数。
若无余票,则输出客满信息。
进一步可实现如果该航班已经无票,可以提供相关可选择航班情况;2.3 退票业务根据客户提出的航班号,办理退票、删除该客户的信息,并修改文件相应航线的订票数和余票数;2.4 修改航班信息当航班信息改变可以修改。
二、设计原理1主要框架:1.1用C语言实现系统;1.2利用结构体数组实现乘客订票的数据结构设计;1.3系统具有增加,查询,插入等基本功能;1.4系统的各个功能模块要求用函数的形式实现;2各模块理论依据:2.1保存模块含有机票信息的管理,对机票信息输入,查询,修改,删除。
飞机订票系统策划书3篇篇一飞机订票系统策划书一、引言二、系统目标1. 提供在线机票预订功能,方便用户随时随地预订机票。
2. 整合机票信息,提供实时的航班查询、预订和票价比较功能。
3. 支持多种支付方式,确保安全、便捷的支付流程。
4. 提供用户管理功能,方便用户查询订单、修改个人信息等。
5. 具备数据分析和报表功能,帮助航空公司进行市场分析和决策。
三、系统功能模块1. 用户界面模块机票搜索和预订:用户可以通过输入出发地、目的地、出发日期等信息搜索机票,并进行预订。
个人中心:用户可以查询订单、修改个人信息、管理常用联系人等。
客服中心:提供在线客服和常见问题解答,方便用户咨询。
2. 后台管理模块航班管理:航空公司可以管理航班信息、舱位设置、票价调整等。
订单管理:管理员可以查询、处理订单,报表。
用户管理:管理员可以管理用户信息,设置用户权限。
数据分析:系统可以分析用户行为、预订趋势等数据,为航空公司提供决策支持。
3. 支付模块支持多种支付方式,如在线支付、银行转账、信用卡支付等。
与第三方支付平台集成,确保支付安全可靠。
提供支付记录查询功能,方便用户查询支付状态。
4. 数据整合模块与航空公司的票务系统进行数据对接,实时获取航班信息和票价。
整合其他数据源,提供更多的机票信息和推荐。
四、技术选型1. 前端技术:采用 HTML、CSS、JavaScript 等技术,构建用户界面。
2. 后端技术:选择适合的编程语言和框架,如 Python、Django 等。
3. 数据库:使用关系型数据库如 MySQL 或 NoSQL 数据库如 MongoDB 存储数据。
4. 支付接口:与第三方支付平台进行集成。
五、项目时间表1. 需求分析与设计:[时间区间 1]2. 系统开发:[时间区间 2]3. 测试与修复:[时间区间 3]4. 上线与维护:[时间区间 4]六、预算1. 人力成本:[具体金额]2. 技术设备采购:[具体金额]3. 软件开发费用:[具体金额]4. 测试与维护费用:[具体金额]5. 其他费用:[具体金额]总预算:[具体金额]七、风险评估与应对措施1. 技术风险:关注技术发展趋势,及时解决技术难题。
飞机订票系统学生姓名:兰海军指导老师:易禹摘要本系统主要是为了方便用户飞机订票,能使用户方便快捷的了解各航线信息。
本系统设置了航线创建功能、浏览航班信息和查询航线信息功能、订票退票功能及查看剩余票数功能。
在该系统当中,系统开发平台是Windows XP,程序设计设计语言采用Visual C++,数据库采用Microsoft Access,程序运行平台为Windows XP。
程序通过调试运行,初步实现了设计目标,并且经过适当完善后,将可以在应用中解决实际问题。
关键词 Access;Visual C++;飞机订票目录1问题描述与分析...................................... 2 2数据结构设计描述 .................................... 3 3软件结构设计(系统功能模块图) ....................... 3 4算法设计思想 ....................................... 3 5调试分析 ........................................... 6 6总结 .............................................. 12 7参考文献 .......................................... 13 8附录(源程序清单) (14)飞机订票系统第 2 页共 30 页1问题描述与分析飞机订票系统要求可以实现如下功能:可以录入航班情况,可以查询某个航线的情况,如输入飞机到达城市,查询飞机航班情况;可以订票、退票。
从问题的描述分析,该飞机定票系统必须具备以下几个功能模块:1) 航线创建功能模块:包括终点站名、航班号、分机号、飞行日期、乘员定额、及余票量,准载人数等信息.。
2) 浏览航班信息功能模块:查看创建的所有航线信息。
飞机订票系统课程设计1. 引言飞机订票系统是一种为用户提供在线预订航班、选择座位以及支付机票的系统。
该系统可以方便用户进行航班查询、订票和退票等操作,提供了更便捷的服务,节省了用户的时间和精力。
本文档将详细介绍飞机订票系统的功能需求、系统设计以及实现细节,旨在为系统的开发提供一份可行的设计方案。
2. 需求分析2.1 功能需求系统需要提供以下功能: 1. 用户注册和登录:用户可以通过注册和登录功能完成对个人信息的维护。
2. 航班查询:用户可以根据出发日期、出发地、目的地等条件查询航班信息。
3. 机票预订:用户可以选择心仪的航班并进行预订,选择座位和支付机票费用等操作。
4. 机票退订:用户可以在一定时间范围内申请退票,并按照规定的退票政策进行退款。
5. 个人中心:用户可以在个人中心查看已购买的机票信息、修改个人信息和密码等个人操作。
6. 管理员功能:管理员可以对航班信息进行维护,包括添加、修改和删除航班信息。
2.2 性能需求系统需要满足以下性能需求: 1. 快速响应:系统需要能够在用户请求时迅速响应并返回结果,以提供良好的用户体验。
2. 高并发处理:系统需要能够同时处理多个用户的请求,以应对高并发访问的需求。
3. 数据安全性:系统需要采取有效措施确保用户个人信息的安全性,防止数据泄露和篡改。
3. 系统设计3.1 系统架构该系统采用客户端-服务器架构,客户端负责与用户进行交互,服务器负责处理用户请求并返回相应的结果。
客户端和服务器之间通过网络进行通信。
3.2 数据库设计系统的主要数据存储在数据库中,包括用户信息、航班信息和订单信息等。
数据库设计需满足以下几个方面的需求: 1. 用户信息表:包括用户ID、用户名、密码、邮箱等字段。
2. 航班信息表:包括航班ID、出发日期、起飞时间、出发地、目的地、航班号等字段。
3. 订单信息表:包括订单ID、用户ID、航班ID、座位号、订票时间、支付状态等字段。
3.3 界面设计系统需要提供一系列界面供用户进行操作。
航空订票系统需求分析
航空订票系统是一种通过网络方式供消费者预订机票的电子商务平台。
该系统需要具备以下功能:
(一)用户注册登录功能
用户可以在系统中注册个人账户,进行登录后可以查看个人信息、历史订单、余额等信息。
(二)机票查询预订功能
用户可以在系统中根据航班号、航班日期、起降机场等条件查询航班信息,系统可以实现多种查询方式,如单程、返程等。
一旦查询到符合条件的特定航班,用户可以在系统中完成预订。
(三)支付功能
用户完成航班信息查询并选择合适的机票后,需要在系统中完成支付。
支付方式可以支持信用卡、支付宝、微信等常见电子支付方式。
(四)订单管理功能
用户可以在系统中查询历史订单、离线订单等相关信息,同时还可以修改订单信息,比如更改座位、退改签等操作。
(五)客户服务功能
客户服务平台可支持用户查询导航、上网服务、航站信息等,在紧急情况发生时能够全天候提供帮助。
(六)数据统计与分析功能
系统可以实现机票销售数据的统计与分析,例如实时销售情况、航班亿元占比、热门航线预测等。
(七)安全性功能
飞机票订票系统需要保护用户的个人隐私和支付信息。
该系统还需要具有防止网络攻击、防止无效访问等安全措施。
总之,航空订票系统是一个功能复杂的电子商务平台,涉及多种操作和服务,需要精确、快速地响应用户指令,同时保证用户的信息以及支付安全。
这是实现一个优秀的航空订票系统的重要特点。
#include <stdio.h>#include <string.h>#include <conio.h>#include <ctype.h>#include <stdlib.h>#include <malloc.h>#include <math.h>//overflow#define ok 1typedef struct Yidingkehu{//单链表char name[15];//已订票的客户姓名int dingpiaoshu;//已订票数量struct Yidingkehu *next1;//}Yidingkehu,*Link;typedef struct Weidingkehu{//单链队char name[15];//预订票的客户姓名int yudingpiao;// 要订票数量struct Weidingkehu *next2;//下一个链队结点指针}Weidingkehu,*Qptr;typedef struct Hangxian{//创建一个含有六个信息的结构体char hangbanhao[15];//航班号-char feijihao[15];//飞机号int feixingriqi;//起飞时间int chenkerenshu;//座位数int yupiao;//余票char zhongdianzhai[15];//降落城市struct Hangxian *next;//指向下一个链结点的指针struct Yidingkehu *yiding;//定义一个指向已订票客户的头结点指针struct Weidingkehu *yudingqueue;}Hangxian,*Linklist;Linklist InitLinklist();//01int InsertLinklist(Linklist &head1);//02void hbhchaxun();//通过航班号查询void mddchaxun();//通过目的地查询void lurugongneng();//初始化录入功能void chaxungongnen();//查询功能void dingpiaogongnen();//订票功能void tuipiaogongnen();//退票功能void main(){int n;do{ //打印主界面printf("\t 欢迎使用航空客运订票系统\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t==>1. 录入功能==\n");printf("\t==>2. 查询功能==\n");printf("\t==>3. 订票功能==\n");printf("\t==>4. 退票功能==\n");printf("\t==>5. 退出==\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t请选择:");scanf("%d",&n);printf("\n");switch(n){case 1: lurugongneng();//录入功能break;case 2: chaxungongnen();//查询功能break;case 3: dingpiaogongnen();//订票功能break;case 4:tuipiaogongnen();//退票功能break;default :exit(0);//退出}}while(n==1||n==2||n==3||n==4);}void lurugongneng()//初始化的单链表*********************************************************录入功能{Linklist p;//int m,n;if(!p) exit(OVERFLOW);printf("\t请依次输入下面几项内容:\n\n");//这里的输入采用一个个单独输入,避免了乱赋值的现象printf("航班号\n");gets(p->hangbanhao);//这里的二个gets主要是因为在回车键的输入,其中的第一个是来接收上次的回车gets(p->hangbanhao);printf("飞机号\n");gets(p->feijihao);printf("终点站\n");gets(p->zhongdianzhai);printf("飞行日期\n");scanf("%d",&p->feixingriqi);printf("乘客总数\n");scanf("%d",&p->chenkerenshu);printf("余票数\n");scanf("%d",&p->yupiao);}void chaxungongnen()//******************************************************************查询功能{int n;printf("\t 查找航线信息\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t==>1. 通过目的地查询==\n");printf("\t==>2. 通过航班号查询==\n");printf("\t+++++++++++++++++++++++++++++\n");printf("\t请选择:");scanf("%d",&n);printf("\n");//格式化switch(n){case 1:mddchaxun();break;case 2:hbhchaxun();break;default :break;}}void mddchaxun()//通过目的地查询{char c[15];int m;Linklist p=L;printf("\t请输入要查询的目的地:");gets(c);gets(c);//原因同上do{p=p->next;if(p){m=strcmpi((*p).zhongdianzhai,c);//如果==的话则m=0;if(m==0){printf("\t航班信息:\n");printf("\t航班号:%s\n",p->hangbanhao);printf("\t飞机号:%s\n",p->feijihao);printf("\t飞行时间:周%d\n",p->feixingriqi);printf("\t余票量:%d\n",p->yupiao);}}else{//如果不匹配的话就做printf("\t对不起没有你要找的目的地:\n\n"); m=0;}}while(m!=0);}void hbhchaxun()//通过目的地查询{char c[15];int m;Linklist p=L;printf("\t请输入要查询的航班号:");gets(c); gets(c);printf("\n");do{p=p->next;if(p){m=strcmpi((*p).hangbanhao,c);//如果==的话则m=0;这里的(*p).与p->的作用是一样的if(m==0){printf("\t航班信息:\n");printf("\t航班号:%s\n",p->hangbanhao);printf("\t飞机号:%s\n",p->feijihao);printf("\t飞行时间:周%d\n",p->feixingriqi);printf("\t余票量:%d\n\n",p->yupiao);}}else{//如果不匹配的话就做printf("\t对不起没有你要找的航班号:\n"); m=0;}}while(m!=0);}void dingpiaogongnen()//***************************************************************订票功能{char c[15];int m=1,piao,ydpiao=0,yd=0,n;//gets(c);printf("请输入终点站名:"); gets(c); printf("\n");p=L->next;if(p) {do{//查找一下,是否有这个航班if(!p){printf("对不起,没有你要找的航班:\n\n");goto loop1;}m=strcmpi(p->zhongdianzhai,c);if(m==0){printf("航班信息:\n");printf("航班号:%s\n",p->hangbanhao);printf("飞机号:%s\n",p->feijihao);printf("飞行时间:周%d\n",p->feixingriqi);printf("余票量:%d\n",p->yupiao);}else p=p->next;}while(m!=0);if(m==0){do{printf("\n请输入你要订的票数:"); scanf("%d",&piao);if(piao<=p->yupiao){h=p->yiding;if(h){h1=h;h=h->next1;h=(struct Yidingkehu*)malloc(sizeof(Yidingkehu));printf("请输入你的名字:");gets(h->name);gets(h->name);h->dingpiaoshu=piao;h->next1=h1->next1;h1->next1=h;p->yupiao=p->yupiao-piao;printf("订票成功:\n"); m=2;}}else{printf("余票量:%d\n",p->yupiao);printf("对不起,余票%d 张不足,不能完成订票\n\n",p->yupiao);printf(" 是否要重新订票?\n");printf("需要请输入1 否则请按2 预订请输入3 : ");scanf("%d",&m);printf("\n");if(m==3) goto loop3;}}while(m==1);}}else if(!p){loop3: struct Weidingkehu *q3;printf("对不起,该航班的票已售完\n");q.front=p->yudingqueue;if(q.front==q.rear) printf("没有人预订票,是否要预订?\n");else if(q.front!=q.rear) printf("已有人预订票,是否要预订?\n");printf("预订请输入1 否则输入2 : ");scanf("%d",&n);printf("\n");if(n==1){printf("请输入你的姓名"); gets(q3->name); gets(q3->name);//q3不能指向name??? printf("请输入订票数"); scanf("%d",&q3->yudingpiao);q3->next2=NULL;q.rear->next2=q3;q.rear=q3;printf(" 你已经预订了!\n");}}loop1:;}void tuipiaogongnen()//***************************************************************退票功能{}。