1、 广州 003 4558934 3 120 天津 004 3667894 4 120系统面向用户显示所有航线信息,为用户提供各个航班的信息,供用户参考。(2)查询航线信息请输入查询航班的方式:航班号-1终点站-2飞行日期-3用户根据需要可选择三种查询方式,输入“1”,按航班号查询,系统提示输入要查询的航班号;输入“2”,按终点站查询,系统提示输入要查询的终点站名;输入“3”,按飞行日期查询,系统提示输入要查询的飞行日期。(3)订票业务请输入飞行日期 1请输入订票数量:请输入舱位等级(1/2/3):请输入您的名字:订票成功,座位号为11用户根据所查询的信息,选择相应的航班,系统提示输入订票数量,
2、舱位等级以及用户姓名,最后系统自动提示“订票成功”。(4)退票业务请输入航班号:退票信息:姓名/终点站/票数确认要退票?()是(1)否(0)退票成功 用户在退票时,按系统提示输入航班号,用户姓名,系统则会自动显示出用户要退的票的信息,然后选择是否退票,选择“1”退票,选择“2”不退票。(5)管理员操作界面请输入管理员密码:(houkaiyang)请选择操作查询航班订票情况(1)增加新航班(2)请输入新航班号:管理员在进入内部管理界面时,根据提示输入密码,进入之后,选择“1”,查询航班订票情况,选择“2”,增加新航班。第2章 设计描述2.1 任务分解说明 (1)分析系统中链表的设计,用来记录航班
3、信息。(2)根据问题描述,设计链表;(3)完成系统中各个信息的定义;(4)完成系统的应用模块;(5)功能调试;(6)完成系统设计报告。 2.2 数据结构设计说明航空售票系统退出系统退票业务查询航线信息显示所有航线管理系统订票业务本系统中“航线”只用一条单链表记录,故采用全局变量,减少参数的传递。(1)、定义“航线”类型 ADT Lairline 数据对象:D=ai|ai航线链表集,i=1,2,3,n,n=0 数据关系:R1=| ai-1,aiD,i=1,2,3,n 基本操作: Lairline search_line() /按航班号查找航班 Lairline search_plant() /按
4、飞机号查找航班 Lairline search_day() /按飞行日期查找航班 Lairline search_addr() /按航班终点查找航班 void guide() /主菜单界面 void insert_line() /插入新航班 void print_customer(airline *p) /显示航班客户信息 void admin() /进入管理员操作系统 void book() /订票系统 void waited(airline *p) /排队订票系统 void refund() /退票系统 void search() /航班查询系统 void InitLine() /初始化航
5、线信息 void printline() /显示所有航班信息 ADT Lairline(2)、主程序 void main() 初始化; do 接受命令; 处理命令(调用相应函数);while(“命令”!=“退出”);(3)、调用关系函数模块主程序模块 2.3 函数接口即函数调用关系main()guide()admin()refund()book()search()printline()waited(p)search_line()search_addr()search_day()search_plant()printcustomer()p)printcustomer(p)第3章 算法描述3.1
6、主函数 主程序流程图,如图31开始flag=1主菜单界面初始化航线gatchar 7flag=06清除屏幕45管理界面查询航线显示航线flag 真 假结束图 31 3.2 按航班号查询函数 按航班号查询函数流程图,如图32 char a5 airline *p P=Lnext输入航班号 ap!strcmp(a,pline_nump=p 图 323.3 按飞机号查询函数按飞机号查询函数流程图,如图33char a8 输入飞机号 aplant_num)图 333.4 按飞行日期查询函数按飞行日期查询函数流程图,如图34int a输入飞行日期aa=pday图 343.5 按航班终点查询函数按航班终点
7、查询函数流程图,如图35char a20 输入航班终点aend_addr)图 35 3.6 插入新航班函数流程图插入新航班函数流程图,如图36airline *p,*qq=(Lairline)malloc(sizeof(airline)输入航班号p=Lpstrcmp(pnextline_num, qline_num)=0Pnext&line_num,qline_num)=0输入飞行日期,飞机号, 终点站航班已存在,请重新输入图 363.7 显示航班客户信息函数显示航班客户信息函数流程图,如图37customer *cbookc=pbooked输入已订票客户信息c输入cnum,cnamec=c输
8、出“暂时没有客户订票”wait 假 输出排队订票客户信息 真 输出c图 373.8 管理员操作函数 管理员操作函数流程图,如图38int i, flag, tagchar a20, airline *p输入管理员密码i=0inumleftnext=pbooked=cstleft=pleftcstnum订票成功,座位号为:余票不足没有该航班图 393.10排队订票系统函数排队订票函数流程图,如图310int flagcustomer *q,*q0,*hleft0&q您正在排队订票,现在有票,是否订q0=qnext,qnext=qq0booked,pbooked=q0leftq0订票成功q=qwa
9、it=h 图 310 3.11 退票系统函数退票系统函数流程图,如图311int flag,char a20customer *c,*c1 p=search_line()booked 输入您的姓名booked没有找到您的信息假 假输出退票信息strcmp(a,cnextname)booked=pleft+cfree(c)真 真 c 假对不起,没有找到您的信息 图 3113.12 航班查询函数 航班查询函数流程图,如图312int i, flag=0 ip=search_plant()其他操作错误,重新输入p=search_addr()p=search_day() 图312第4章 开发过程描述4
10、.1 源代码#includemalloc.hstdlib.hstring.h#define PR printf#define SC scanftypedef struct customer /客户信息 char name20; /客户姓名 int num; /订票量 int level; /舱位等级 customer *next;customer,*Lcustomer;typedef struct airline /航线信息 char end_addr20; /航线终点 char line_num5; /航班号 char plant_num8; /飞机号 int day; /飞行日期 int
11、total; /定员 int left; /剩余票数 customer *booked; /已定客户信息 customer *wait; /排队等候订票信息 airline *next;airline,*Lairline;airline *L; /将航班信息定义为全局变量,减少参数传递Lairline search_line() /按航班号查找航班 char a5; airline *p; p=L-next; PR(请输入航班号); SC(%s,a); for(;p;p=p-next) if(!strcmp(a,p-line_num) break; return p;Lairline sear
12、ch_plant() /按飞机号查找航班 char a8;请输入飞机号plant_num) break;Lairline search_day() /按飞行日期查找航班 int a;请输入飞行日期%d,&a); if(a=p-day) break;Lairline search_addr() /按航班终点查找航班 char a20;请输入航班终点end_addr) break;void guide() /主菜单界面*欢迎进入航空售票系统*ntt显示所有航线= 1ntt查询航线信息= 2ntt订票业务 = 3ntt退票业务 = 4ntt管理系统 = 5ntt退出系统 = 0n*ntt清除屏幕信息
13、= 9nn请按上面指引操作:tvoid insert_line() /插入新航班 airline *p,*q; int flag=1;flag; q=(Lairline)malloc(sizeof(airline); PR( SC(,q-line_num); for(p=L;p- if(strcmp(p-next-line_num,q-=0) break; if(p-strcmp(p-line_num)=0) PR(航班已存在,请重新输入n continue; 请输入飞行日期:q-day);请输入飞机号:plant_num);请输入终点站:end_addr); q-total=120;left
14、=120;booked=NULL;wait=NULL;next=p- p-next=q;增加航班成功,是否继续增加n继续(1)n返回(0)flag); void print_customer(airline *p) /显示航班客户信息 customer *c; if(p-booked) c=p-booked;已定票客户信息n票数t/t客户姓名n for(;c;c=c-%5dt/t%sn,c-num,c-name);nn else暂时没有客户订票nnwait)wait;排队订票客户信息n票数t/t客户姓名n暂时没有客户排队订票nnvoid admin() /进入管理员操作系统 int i,fla
15、g,tag;(houkaiyang) for(i=0;3;i+) if(strcmp(a,houkaiyang)tt=密码错误=nn i+; else break; if(i=3) guide(); return ; for(tag=1;tag;请选择操作n查询航班订票情况(1)n增加新航班(2)n if(flag=1) p=search_line(); if(p) print_customer(p); else PR(没有找到该航班n else if(flag=2) insert_line(); else操作错误,请按提示操作n请选择操作n继续(1)n退回主菜单(0)ntag); guide
16、();void book() /订票系统 int i; int flag=0; customer *cst,*c;n1n2n3ni); switch(i) case 1: p=search_line();flag=1;break; case 2: p=search_addr(); case 3: p=search_day(); default:PR(操作错误,请重新输入n if(p)终点站 航班号 飞机号 飞行日期 余票量n%-20s%10s%10s%8d%8dn,p-end_addr,p-line_num,p-plant_num,p-day,p-left); cst=(customer *)malloc(sizeof(customer);cst-num);请输入舱位等级(1/2/3)level);请输入您的名字
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1