C语言航空订票系统.

C语言航空订票系统.
C语言航空订票系统.

航空客运订票系统

姓名:xxx 班级:xxxx 学号:xxxxxxxxx

目录

一、问题描述 (1)

二、设计要求 (1)

三、数据结构设计 (2)

四、详细设计程序 (3)

五、运行与测试 (9)

六、收获及体会 (13)

一、问题描述

设计一个航空客运订票系统,为乘客提供各种航空客运信息服务。

二、设计要求

1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量);

2.系统能实现的操作和功能如下:

a) 查询航线:

根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;

b) 承办订票业务:

根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,

输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排队候补;

根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。

三、数据结构设计

a)等候替补的客户名单(包括姓名、所需票量)

typedef struct wat_ros

{ char name[10];/*姓名*/

int req_amt;/*订票量*/

struct wat_ros *next;

}qnode,*qptr;

typedef struct pqueu

{ qptr front;/*等候替补客户名单域的头指针*/

qptr rear;/*等候替补客户名单域的属指针*/

}linkqueue;

b)订票的客户名单(包括姓名、订票量、舱位等级1,2或3)

typedef struct ord_ros

{ char name[10];/*客户姓名*/

int ord_amt;/*订票量*/

int grade;/*舱位等级*/

struct ord_ros *next;

}linklist;

c)每条航线所涉及的信息:终点站名、航班号、飞机号、飞行日(星期几)、乘员定额、余票量、已订票的客户名单、以及等候替补的客户名单

struct airline

{ char zong_name[10];/*终点站名*/

char air_num[10];/*航班号*/

char plane_num[10];/*飞机号*/

char date[7];/*飞行日期(星期几)*/

int tkt_amt;/*乘员定额*/

int tkt_sur;/*余票量*/

linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/

linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/ }lineinfo;

四、详细设计程序

主函数:

int menu_select()

/*菜单界面*/

{ int c;

char s[20];

printf("\n\t\t航空客运订票系统\n");

printf("******************************************\n");

printf(" 1.浏览航线信息\n");

printf(" 2.浏览已订票客户信息\n");

printf(" 3.查询航线\n");

printf(" 4.办理订票业务\n");

printf(" 5.办理退票业务\n");

printf(" 6.查看剩余票数并排序\n");

printf(" 0.退出系统\n");

printf("*******************************************\n");

do{

printf("请选择:");

scanf("%s",s);

c=atoi(s);

}while(c<0||c>7);

return c;

}

void main()

{

start=air;

for(;;)

{

switch(menu_select())

{

case 1:list();break;

case 2:prtlink();break;

case 3:search();break;

case 4:order();break;

case 5:return_tkt();break;

case 6:sort_tkt();break;

case 0:printf("\n欢迎使用本系统,再见!\n");exit(0);

}

printf("\nPress any key to continue!\n");

getch();

}

}

航线信息:

struct airline

{ char zong_name[10];/*终点站名*/

char air_num[10];/*航班号*/

char plane_num[10];/*飞机号*/

char date[7];/*飞行日期(星期几)*/

int tkt_amt;/*乘员定额*/

int tkt_sur;/*余票量*/

linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/

linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/

}lineinfo;

struct airline *start;

struct airline air[MAXSIZE]={{"aaa","1","001","SUN",30,15},

{"bbb","2","002","MON",40,10},

{"ccc","3","003","FRI",50,14},

{"ddd","4","004","TUE",60,20}};

void display(struct airline *info)

/*打印每条航线的基本信息*/

{printf("%8s\t%3s\t%s\t%4s\t\t%3d\t%10d\n",info->ter_name,info->air_num,info->plane_num,inf o->date,info->tkt_amt,info->tkt_sur);

}

void list()/*打印全部航线信息*/

{ struct airline *info;

int i=0;

info=start;

printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");

while(i

{

display(info);

info++;

i++;

}

printf("\n\n");

}

查询航线:

void search()

/*根据客户提出的终点站名输出航线信息*/

{ struct airline *info,*find();

char name[10];

int i=0;

info=start;

printf("请输入终点站名:");

scanf("%s",name);

while(i

{

if(!strcmp(name,info->zong_name)) break;

info++;

i++;

}

if(i>=MAXSIZE)

printf("对不起,该航线未找到!\n");

else

{

printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n"); display(info);

}

}

struct airline *find()

/*根据系统提出的航班号查询并以指针形式返回*/

{ struct airline *info;

char number[10];

int i=0;

info=start;

printf("请输入航班号:");

scanf("%s",number);

while(i

{

if(!strcmp(number,info->air_num)) return info;

info++;

i++;

}

printf("对不起,该航线末找到!\n");

return NULL;

}

客户信息:

void prtlink()

/*打印订票乘员名单域的客户名单信息*/

{ linklist *p;

struct airline *info;

info=find();

p=info->order;

if(p!=NULL){

printf("客户姓名订票数额舱位等级\n");

while(p){

printf("%s\t\t%d\t%d\n",p->name,p->ord_amt,p->grade);

p=p->next;

}

}

else

printf("该航线没有客户信息!!\n");

}

linklist *insertlink(linklist *head,int amount,char name[],int grade) /*增加订票乘员名单域的客户信息*/

{ linklist *p1,*new1;

p1=head;

new1=(linklist *)malloc(sizeof(linklist));

if(!new1) {printf("\nOut of memory!!\n");return NULL;}

strcpy(new1->name,name);

new1->ord_amt=amount;

new1->grade=grade;

new1->next=NULL;

if(head==NULL)/*若原无订票客户信息*/

{head=new1;new1->next=NULL;}

else

head=new1;

new1->next=p1;

return head;

}

linkqueue appendqueue(linkqueue q,char name[],int amount)

/*增加排队等候的客户名单域*/

{ qptr new1;

new1=(qptr)malloc(sizeof(qnode));

strcpy(new1->name,name);

new1->req_amt=amount;

new1->next=NULL;

if(q.front==NULL)/*若原排队等候客户名单域为空*/

q.front=new1;

else

q.rear->next=new1;

q.rear=new1;

return q;

}

订票业务:

void order()

/*办理订票业务*/

{ struct airline *info;

int amount,grade;

char name[10];

info=start;

if(!(info=find())) return;/*根据客户提供的航班号进行查询,如为空,退出该模块*/

printf("请输入你订票所需要的数量:");

scanf("%d",&amount);

if(amount>info->tkt_amt)/*若客户订票额超过乘员定票总额,退出*/

{ printf("\n对不起,您输入的票的数量已经超过乘员定额!");

return;

}

if(amount<=info->tkt_sur)/*若客户订票额末超过余票量,订票成功并等记信息*/

{

int i;

printf("请输入您的姓名(订票客户):");

scanf("%s",name);

printf("请输入%s票的舱位等级:",name);

scanf("%d",&grade);

info->order=insertlink(info->order,amount,name,grade);/*在订票乘员名单域中添加客户信息*/

for(i=0;i

printf("%s的座位号是:%d\n",name,info->tkt_amt-info->tkt_sur+i+1);

info->tkt_sur-=amount;/*该航线的余票量应减掉该客户的订票量*/

printf("\n祝您乘坐愉快!\n");

}

else /*若满员或余票额少于订票额,询问客户是否需要进行排队等候*/

{ char r;

printf("\n已经没有更多的票,您需要排队等候吗?(Y/N)");

r=getch();

printf("%c",r);

if(r=='Y'||r=='y')

{ printf("\n请输入您的姓名(排队订票客户):");

scanf("%s",name);

info->wait=appendqueue(info->wait,name,amount);/*在排队等候乘员名单域中添加客户信息*/ printf("\n注册成功!\n");

}

else printf("\n欢迎您下次再次订购!\n");

}

}

退票业务:

void return_tkt()

/*退票模块*/

{ struct airline *info;

qnode *t,*back,*f,*r;

int grade;

linklist *p1,*p2,*head;

char cusname[10];

if(!(info=find())) return;/*调用查询函数,根据客户提供的航线进行搜索*/

head=info->order;

p1=head;

printf("请输入你的姓名(退票客户):");

scanf("%s",cusname);

while(p1!=NULL) {/*根据客户提供的姓名到订票客户名单域进行查询*/

if(!strcmp(cusname,p1->name)) break;

p2=p1;p1=p1->next;

}

if(p1==NULL){ printf("对不起,你没有订过票!\n");return;}/*若未找到,退出本模块*/

else

{/*若信息查询成功,删除订票客户名单域中的信息*/

if(p1==head) head=p1->next;

else p2->next=p1->next;

info->tkt_sur+=p1->ord_amt;

grade=p1->grade;

printf("%s成功退票!\n",p1->name);

free(p1);

}

info->order=head;/*重新将航线名单域指向订票单链表的头指针*/

f=(info->wait).front;/*f指向排队等候名单队列的头结点*/

r=(info->wait).rear;/*r指向排队等候名单队列的尾结点*/

t=f;/*t为当前满点条件的排队候补名单域*/

while(t)

{

if(info->tkt_sur=info->wait.front->req_amt)

{/*若满足条件者为头结点*/

int i;

info->wait.front=t->next;

printf("%s订票成功!\n",t->name);

for(i=0;ireq_amt;i++)/*输出座位号*/

printf("%s的座位号是:%d\n",t->name,(info->tkt_sur)-i);

info->tkt_sur-=t->req_amt;

info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到订票客户名单链表中*/

free(t);

break;

}

back=t;t=t->next;

if((info->tkt_sur)>=(t->req_amt)&&t!=NULL)/*若满足条件者不为头结点*/

{ int i;

back->next=t->next;

printf("%s订票成功!\n",t->name);

for(i=0;ireq_amt;i++)/*输出座位号*/

printf("<%s>'s seat number is:%d\n",t->name,(info->tkt_sur)-i);

info->tkt_sur-=t->req_amt;

info->order=insertlink(info->order,t->req_amt,t->name,grade);/*插入到订票客户名单链表中*/

free(t);break;

}

if(f==r) break;

}

}

剩票排序:

void sort_tkt()

{/*按剩余票数排序*/

int j;

struct airline t,*info,*p,*q;

p=info=air;

for(p=info;(p+1)->tkt_sur;p++)

for(q=p+1;q->tkt_sur;q++)

{

if(p->tkt_surtkt_sur)

{

t=*p;

*p=*q;

*q=t;

}

}

printf("终点站名\t航班号\t飞机号\t飞行日期\t乘员定额\t余票量\n");

for(j=0;j

{

display(info);

info++;

}

}

六、运行与测试

六:收获及体会:

,哪些知识点运用的还不够熟练。通过此次课程设计也学会综合运用理论知识来分析和解决实际问题的能力、养成严谨的科学态度和良好的程序设计习惯,实现由知识向智能的初步转化,学会遵循软件开发过程的基本规范。运用结构化程序设计的方法,按照课程设计的题目要求,并能够完成设计、编写、调试和测试应用程序及编写文档的任务。

从理论到实践,在整整半个月的日子里,我学到很多很多的东西。不仅巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的内容。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的;只有把所学的理论知识与实践相结合起来,从理论中得出结论,才是真正的知识,才能提高自己的实际动手能力和独立思考的能力。在设计的过程遇到了各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,通过这次课程设计,把以前所学过的知识重新温故,巩固了所学的知识。

在编写程序的过程中受到了其他同学的指点。从出发点看,此次课程设计是为了让我们更加熟练的运用所学知识,提高我们的编程水平,对我们以后工作有很大的帮助。

C语言课程设计报告—飞机订票系统

C语言课程设计报告 指导老师:

C语言课程设计报告 一、 C语言课程设计的目的 C语言的教学是学生根据课堂讲授内容,学生做相应的自主练习,消化课堂所讲解的内容;通过调试典型例题或习题积累调试C程序的经验;通过完成辅导教材中的编程题,逐渐培养学生的编程能力、用计算机解决实际问题的能力。具体来说: 1.进一步掌握和利用C语言进行程设计的能力; 2、进一步理解和运用结构化程设计的思想和方法; 3、初步掌握开发一个小型实用系统的基本方法; 4、学会调试一个较长程序的基本方法; 5、学会利用流程图或N-S图表示算法; 6、掌握书写程设计开发文档的能力(书写课程设计报告); 二、课程设计报告正文 (1)课程设计题目的原文; 假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(文件保存) 完成航班信息浏览功能; 查询航线(至少一种查询方式)。 (2)题目的分析(需求分析); 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中) 浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外 要提供键盘式选择菜单以实现功能选择。 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、 预售票总数、已售票数。 (3)整体设计与模块划分;

根据需求分析,该程序可分为以下四大模块: 飞机订票系统 输入模块显示模块查询模块退出模块 (4)代码设计; 包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析;等等; (一)主函数 (1)分析:主函数的功能比较简单,形式比较简洁,主要功能为:在系统中没有程序所要的文件时,为程序建立一个所需的文件;调用菜单函数。 程序中的各模块都要用到同一个文件,如果该文件不存在,则该程序就无法正常运行,增加第一个功能就是保证文件的可用切可打开!本来只要在主函数里调用各功能模块就行了,但是为了让程序能够方便的回到主函数里,所以就建立了一个菜单函数。 菜单函数的功能是替主函数调用个功能模块函数,因而设计的基本思路很简单,即:用一个输入来接受用户的选择,加以个循环来让输入错误的用户继续输入,直到输入正确为止;用一个switch语句来选择用户所要用到的函数。 (2)程序: void menu() { int n,w; do { puts("\t\t***********************MENU***************************\n\n"); puts("\t\t\t\t 1.enter new data"); puts("\t\t\t\t 2.Browse all"); puts("\t\t\t\t 3.Search"); puts("\t\t\t\t 4.exit");

C语言飞机订票系统

课程设计 课程:数据结构 专业班级:xx软件工程 xx班姓名:xx 学号:xxx 姓名:xxx 学号:xxx 设计时间:xxx 指导老师:xxx

课程设计题:飞机订票系统 一、设计目的 1.掌握结构体数组的表示和存储。 2. 掌握链表的存储和操作。 3.掌握文件的操作。 二、设计内容和要求 1. 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否 满仓);可以输入起飞抵达城市,查询飞机航班情况; 订票:订票情况可以存在一个数据文件中,结构自己设定。可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 修改航班信息:当航班信息改变可以修改航班数据文件。 要求:根据以上功能说明,设计航班信息,订票信息的存储结

构,设计程序完成功能 设计思想: 管理操作系统,主要考虑的是信息的录入,这里利用文件的读写完成该 功能;输出,查询以及删除,利用结构数组存储航班与客户信息,依次 对订票,退票,查询及相关操作编写成子程序,然后再主程序中调用, 这样程序看起来相当简练,而且易读懂; 算法设计分析: (次系统运行环境为VC6.0) 1.txt beijing shanghai 1 1 12 0 1 1 18 0 6 100 2 shanghai wuhang 2 2 12 0 2 2 14 0 2 110 1 wuhang chibi 3 3 13 0 3 3 14 0 1 50 2 (此文件是程序执行航班信息录入时自动生成,在信息读取时需要调用) 首先是航班于客户信息的存储,结构数组的利用很好的解决该问题; 其次是文件的操作,在主函数中利用文件的读与写;下面介绍订票退票

C语言飞机订票系统课程设计

第一章绪论 1.1:项目背景描述 1、课程设计性质与目的: C语言程序设计是一门实践性很强的课程。C程序课程设计是学习C语言 程序设计的非常重要的实践环节,通过本课程设计使学生进一步巩固课堂所学,全面熟悉,掌握C语言程序设计的基本方法和技巧,进一步提高编写程序、分析程序及上机操作、调试程序的能力,让学生加深理解,提高动手操作能力及分析问题和解决问题的能力。 2、课程设计包含的知识点: 1.掌握并熟练利用C语言的基本数据类型与各种表达式,程序的流程控制语句。 2.掌握数组的基本概念。掌握一维数组与二维数组的使用,掌握字符数组与字符串的关系。 3.熟练掌握指针、地址、指针类型的概念及其使用。掌握指针变量的定义与初始化、指针的间接访问和表达式,掌握指针与数组、函数、字符串的联系4.掌握函数的定义,函数的返回值,函数的调用,函数的声明,函数的形式参数和实际参数之间的关系,了解函数的作用区间。 5.掌握结构体的概念,结构体类型的定义,结构体变量的定义和初始化,结构体成员的表示。结构体与指针、函数的关系。

第二章可行性分析 一、问题描述: 假设某航空公司只有N架X个座位的飞机,每架飞机每天飞行一趟。通过该系统来实现机票的订购问题。 二、功能要求: 1、本系统采用一个包含N个数据的结构体数组,每个数据的结构应当包 括:起飞地、目的地航班号、航班定额。 2、本系统显示这样的菜单: 1.)录入:可以录入航班情况(数据可以存储在一个数据文件中) 2.)浏览:航班信息浏览功能需要提供显示操作; 1、查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以 查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是 否满仓);另外要提供键盘式选择菜单以实现功能选择。 (1)输入航班信息 (2)输出航班信息 (3)查找航班信息 (4)订票预约 (5)删除定票预约 (6)退出系统 2、本系统成功执行菜单的每个信息,选项4)和5)将要求额外的输入, 并且它们都允许用户收回其输入。 3、查找航班信息既可按线路查,也可按目的地查。 4、在两次运行之间,数据被保存于一个文件里,当本程序重新开 始的时候,它首先从该文件读入数据 三、算法提示: 1、数据结构:结构体类型数组 2、数据库结构:下表构成该系统的基本数据库。 四、测试数据: 录入北京到上海的星期一起飞的航班,假设其定额为30,上海到南京的航班起飞时间为星期二。 五、其它: 在实现系统基本功能后,完善系统的其它功能。在测试数据是发现退票系统出现问题,退票数会超过定额,在加上一个限定条件后成功。基于本系统可以尝试输出所定票的的顾客的完整信息,包括姓名,身份证号等个人信息,由于时间有限,尚未添加。

数据结构课程设计(C语言版)飞机订票系统

———C语言版 课题:飞机订票系统和图的遍历的动态演示 姓名: 学号: 班级: 指导教师:

订票系统 1.需求分析 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件 要求: 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 2:主要设计思路: 1)算法构造流程图: A:主菜单:

B:各分块模板的构造流程图:

3:功能函数设计: (1):订票系统主菜单函数menu_select() 本函数主要构造系统的主菜单,系统需要实现很多功能,并且各个功能需要各自的函数支持,所以通过主菜单可以轻松的进入各个函数下实现各自的功能,故主菜单显得尤为重要。其实就是通过键盘输入选择项,然后通过scanf接受,在通过swtich判断进入各个选择项。 (2):工作人员管理函数enter()&change() 系统需要各个航班的详细信息,所以需要工作人员把信息输入系统里,以供乘客查询订票。enter()函数的构造就是为了解决这个问题。而有可能航班线路更改或由于天气等原因飞机的起飞时间发生了更改,故工作人员需要及时更改信息,所以需要构造change()函数。 (3):列出航班信息的函数list() 乘客需要查询各个航班的信息,所以通过系统要能调出上面工作人员已经录入好的航班信息,所以构造本函数来实现这个功能。(4)乘客具体查询函数search() 本函数分两个分函数:search1()和search2(),它们分别实现乘客的按航班查询和按出发及抵达城市的两种查询方案。 (5)票务管理函数book()&quit() 通过book()函数可以实现乘客的订票操作,通过quit()可

C语言课程设计报告飞机订票系统

C语言课程设计 题目:飞机订票系统 专业:。。。。。。。。。。。。。。。。。。。学号:。。。。。。。。。。。 姓名:。。。。。。。 任课教师:。。。。。。。。

C语言课程设计报告 一、课程设计报告正文 (1)课程设计题目的原文; 假定民航机场共有n个航班:航班号、起始站、终点站、飞机号、飞机时间、乘员定额、余票量。试设计一民航订票系统,使之能提供下列服务: 航班信息录入功能(文件保存) 完成航班信息浏览功能; 查询航线(至少一种查询方式)。 (2)题目的分析(需求分析); 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中) 浏览:航班信息浏览功能需要提供显示操作; 查询:可提供按照航班号、起点站、终点站、飞行时间、查询,可以查询某个航线的情况(如,输入航班号,起飞抵达城市,确定航班是否满仓);另外要提供键盘式选择菜单以实现功能选择。 要求:根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 可以建立航班结构体,结构体成员包括航班号、起点站、终点站、飞行时间、 预售票总数、已售票数。 (3)整体设计与模块划分; 根据需求分析,该程序可分为以下四大模块: (4)代码设计;

包括——各功能模块的流程图;重要模块中关键部分的代码分析;关键函数的算法设计和分析等等; 二、航班基本信息输入模块 航班信息录入函数: 航班信息浏览函数: [流程图]显示信息

查询模块: 分析:基本信息的查询按查询可供选择的方式比较丰富,可按航班号查询。在查询小模块中采用了直接查找的方法。本模块可以通过多种查询方式进行完善。这是本程序没有做的地方。 [流程图]

c语言航班管理系统代码

#include #include #include #define N 10000 struct air { int num; char start[20]; char over[20]; char time[10]; int count; }s[N]; int i; int m=0; #define PRINT "%-dsssd\n",s.num,s.start,s.over,s.time,s.count void input(); void print(); void save(); void read(); void search(); void shanchu(); void dingpiao(); void tuipiao(); void xiugai(); void main() { int j; printf(" ★---您好,欢迎进入中国民航管理系统!---★\n"); printf ("================================================================ ================\n"); do { printf(" -------- ☆ 1.输入航班信息☆-------- \n\n" " -------- ☆ 2.浏览航班信息☆-------- \n\n" " -------- ☆ 3.修改航班信息☆-------- \n\n" " -------- ☆ 4.查找航班信息☆-------- \n\n" " -------- ☆ 5.删除航班信息☆-------- \n\n" " -------- ☆ 6.订票信息☆-------- \n\n" " -------- ☆ 7.退票信息☆-------- \n\n" " -------- ☆ 0.退出☆-------- \n\n"); printf

(C语言版)飞机订票系统

订票系统 1.需求分析 任务:通过此系统可以实现如下功能: 录入:可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定) 查询:可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓); 可以输入起飞抵达城市,查询飞机航班情况; 订票:(订票情况可以存在一个数据文件中,结构自己设定) 可以订票,如果该航班已经无票,可以提供相关可选择航班; 退票:可退票,退票后修改相关数据文件; 客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。修改航班信息:当航班信息改变可以修改航班数据文件 要求: 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能; 2:主要设计思路: 1)算法构造流程图: A:主菜单:

B:各分块模板的构造流程图:

3:功能函数设计: (1):订票系统主菜单函数menu_select() 本函数主要构造系统的主菜单,系统需要实现很多功能,并且各个功能需要各自的函数支持,所以通过主菜单可以轻松的进入各个函数下实现各自的功能,故主菜单显得尤为重要。其实就是通过键盘输入选择项,然后通过scanf接受,在通过swtich判断进入各个选择项。 (2):工作人员管理函数enter()&change() 系统需要各个航班的详细信息,所以需要工作人员把信息输入系统里,以供乘客查询订票。enter()函数的构造就是为了解决这个问题。而有可能航班线路更改或由于天气等原因飞机的起飞时间发生了更改,故工作人员需要及时更改信息,所以需要构造change()函数。 (3):列出航班信息的函数list() 乘客需要查询各个航班的信息,所以通过系统要能调出上面工作人员已经录入好的航班信息,所以构造本函数来实现这个功能。(4)乘客具体查询函数search() 本函数分两个分函数:search1()和search2(),它们分别实现乘客的按航班查询和按出发及抵达城市的两种查询方案。 (5)票务管理函数book()&quit() 通过book()函数可以实现乘客的订票操作,通过quit()可

数据结构课程设计c语言版《飞机订票系统》解剖

软件工程专业14级 《数据结构》课程设计报告 设计题目:飞机订票系统 班级:软件14 姓名: 指导教师: 2015年 11月20日

目录 一、设计任务与要求 (1) 1.1 总体目标与任务要求 (1) 1.2 题目选择与目的意义 (1) 1.3 所选题目的主要工作 (1) 二、需求分析 (2) 2.1 用户需求分析 (2) 2.2 功能需求分析 (2) 2.3 系统需求分析 (2) 三、概要设计 (3) 3.1 各模块的算法设计说明 (3) 3.2 存储结构设计说明 (8) 四、详细设计 (10) 五、源代码 (11) 六、运行结果分析 (21) 七、收获与体会 (28) 八、主要参考资料 (28)

一、设计任务与要求 1.1 总体目标与任务要求 制作一个订票系统,通过此系统可以实现如下功能: 1)录入 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。 2)查询 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓)可以输入起飞抵达城市,查询飞机航班情况。 3)订票 可以订票,如果该航班已经无票,可以提供相关可选择的航班(订票情况可以存在一个数据文件中,结构自己设定)。 4)退票 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 5)修改航班信息 当航班信息改变可以修改航班数据文件。 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 1.2 题目选择与目的意义 选择这个题目的原因是,订票系统在现实生活中应用很广泛,通过这个系统可以使订票、退票等变得简便。与传统的人工用纸、笔来记录办理订票、退票等相比,使用这个系统也会增加工作效率。这个题目做出来的系统还是比较实用的,所以我选择了订票系统这个题目。 完成此系统,需要综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发。通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 1.3 所选题目的主要工作 这个题目的主要工作是使订票系统可以录入航班情况,查询某个航线的情况、办理订票、办理退票、修改航班信息、查询订票信息等。

C语言 飞机订票系统

飞机订票系统

一、课程设计目的 (1)了解并掌握算法的设计方法,具备初步的独立分析和设计能力; (2)初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能; (3)提高综合运用所学的理论知识和方法独立分析和解决问题的能力; 二、课程设计的内容和要求 本程序主要用于机票的管理,甩以提供了以下功能,行班信息输入输出保存、航线查询、订票,退票,和修改航班信息。 创建航班信息:包括航班号、起飞时间、降落时间、起飞抵达城市、航班票价、及票价的折扣,票数等信息.录入的信息应该保存在一个文件里。 浏览航班信息:通过浏览系统,客户可以根据自己时间、金钱等多方面的因素选择适合自己的航班。 修改航班信息:当航班信息改变可以修改航班数据文件。 查询航班信息:可通过航班号查询,可通过飞机终点站查询,也可以按航线查询。删除航班信息:可通过航班号删除,也可以按航线删除。 添加航班信息:按添加的航班数量依次添加航班信息 订票:可以订票,如果该航班已经无票,可以推荐相关航班 退票:不满意所订的票时可进行退票 三、算法的基本思想 1.涉及到的数据结构 typedef struct flightnode //定义结构体数组 { int num; //航班号 char start[20]; //起始城市 char over[20]; //终点城市 char Stime[10]; //起始时间 har Etime[10]; int Price; int Discount; //折扣 int count; //机票数 struct flightnode *next; } NODE;

C语言程序设计——飞机订票系统

C语言程序设计——飞机订票系统代码如下:” #include"stdio.h" #include"stdlib.h" #include"string.h" #define LEN sizeof (struct plane) #define MAX 10; struct plane { char destination[12]; char num[10]; char time[12]; int price; int amount; }; typedefstruct planePLANE; PLANE a[100]; void menu(); void input(); void search(); void preserve(); void planeadd(); void delplane(); void main() { system("cls"); menu(); } void menu() { char *menu[] = { ************** 欢迎进入飞机订票系统*************, " a:输入航线 ", " b:查询航线 ", " c:退订票系统 ", " d:追加航线 ", " e:删除航线 ",

" f: 退出 ", "****************************************************" }; int i; char NO; int quit = 0; do { system("cls"); for (i = 0; i<9; i++) printf("\n%s", menu[i]); printf("\n请输入服务代码a,b,c,d,e或f\n"); NO = getchar(); switch (NO) { case'a': input(); break; case'b': search(); break; case'c': preserve(); break; case'd': planeadd(); break; case'e': delplane(); break; case'f': quit = 1; break; } } while (!quit); } void input() { int i, n; FILE *fp; system("cls"); if ((fp = fopen("D:\\file", "wb")) == NULL) { printf("error!\n"); exit(0); } printf("\n请输入航班总数n:"); scanf("%d", &n); printf("\n请按下面提示输入航班信息:起点站:沈阳"); for (i = 0; i

C语言机票订票管理系统源代码

#include //标准输入、输出头文件 #include //包含字符串函数处理头文件 #include //包含access函数的头文件 #include #include #include #include #define N 9999 //定义最多的航班数 #define PRINT "%d\t\t%s\t\t%s\t\t星期%s\t\t%d\n ",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count //宏定义输出格式 struct air //定义结构体数组 { int num; //定义航班号 char start[20]; //航班起始站 char over[20]; //终点站 char time[10]; //飞行时间 int count; //机票数量 }s[N]; int i,a,m=0; //定义全局变量 char ii[10]; void add(); //函数声明增加航班信息函数 void print(); //显示航班信息 void search(); //查找航班信息 void dingpiao(); //订票业务 void tuipiao(); //退票 void read(); //读取文件 void save(); //保存文件 void output(); //输出格式 void paixu(); //航班排序 void chushihua(); //系统初始化 void build(); //建立数据文件 void paixu1(); //按航班号从小到大排序 void paixu2(); //从大到小 int head (); //进入订票系统 int main() //主函数 { int j; system("color b0");

C语言课程设计(飞机订票系统说明书)

目录 设计目的 (1) 总体设计 (1) 详细设计 (3) 调试与测试 (4) 源程序代码 (4) 程序运行截图 (16) 仍存在的问题 (18) 心得体会 (18) 设计进度表 (19) 参考文献 (20)

一、正文 (一)设计目的: 假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。设计一飞机订票系统,使之能提供下列服务: 1、航班信息录入功能(航班信息用文件保存) 包括航班号、起始站、终点站、机票总数、已售机票数; 2、航班信息浏览功能 3、查询航线:按航班号查询、按终点站查询、按航线查询 4、承办订票和退票业务(可选项) 5、修改航班信息 6、删除航班信息 (二)总体设计: 编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、查询、修改、删除以及订票、退票的功能。根据题目要求,首先要制作一个主菜单显示出各个操作的提示可供用户选择,进而一步步地深入操作。根据主菜单的内容再进一步编制具体操作的函数,各个功能均用专门编制的函数来完成。这就是看到题目后的最初的思路。 因为飞机票管理系统含有各航班的各项信息,如航班号、航线、飞行时间、机票数目等必要信息,综合考虑决定用结构体数组比较合适,根据题目要求定义如下结构体类型: 头文件包含、全局变量定义和结构体定义源代码: #include//标准输入、输出头文件 #include//包含字符串函数处理头文件 #include #define N 1000 //定义最多的航班数 #define PRT "%-d%12s %12s %10s %12d %12d\n",s[i].num,s[i].start,s[i].over,s[i].time,s[i].count,s[i].selled //定义输出格式 #define LB " 航班号起始站终点站时间机票总数已售票数\n"//定义打印列表格式 struct air {int num; char start[20]; char over[20]; char time[10]; int count;//机票总数 int selled;//已预定机票总数 }s[N]; int i,m=0; //定义全局变量,记录下航班信息的数量 char ii[10]; //用来选择是否继续的变量 大概思路就是这样!

c语言飞机订票系统设计

课程设计说明书 学院、系: ) 专业: 学生姓名:学号: 设计题目:飞机订票系统设计 】 起迄日 期: 指导教 师: { 日期: 2017年5月12日

1 设计目的 (1) 实现航班的设定、航班信息的浏览和航班的查询。 (2) 实现乘客的飞机票的订购、退票以及所定票的查询。 2 任务概述 本飞机共有80个坐位,分20排,每排4个位子。编号为A ,B ,C ,D 。如10D ; 表示 10排D 座。A 和D 靠窗,19到20排为吸烟区。本系统可让乘客自己选座号和区域直到乘客满意为止,无法满足的话,只能改乘另一个航班。定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。 3 模块划分 > ] 图 3-1 功能模块图 $

4 主要函数说明及其N-S图 (1)主菜单函数:功能的选择 (2)航班设定函数:设定航班数量、航班的起始点、航班时间(3)航班浏览函数:按时间查找浏览、按降落地点查找 (4)乘客订票函数:乘客姓名、身份证号以及所定航班的所有信息 [1]、无烟区函数 [2]、吸烟区函数 (5)乘客退票函数:航班号、姓名和身份证号 (6)乘客信息浏览:乘客姓名、身份证号、座位号和航班号 ~ (7)文件保存 (8)文件载入 (9)退出 飞机订票系统N-S图 1、航班设定 图 4-1 航班设定 N-S图 2、输入客户信息 图 4-2 输入客户信息 N-S图 3、浏览航班信息

图 4-3 浏览航班信息 N-S图4、乘客订票 图 4-4 乘客订票 N-S图5、乘客退票 图 4-5 乘客退票 N-S 图 5 程序运行数据及其结果

飞机订票系统(C语言代码及流程图)

第一部分 源程序---------------------------------------------------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

数据结构课程设计c语言版飞机订票系统

软件工程专业14级《数据结构》课程设计报告 设计题目:飞机订票系统 班级:软件14 姓名: 指导教师: 2015年 11月20日

目录 一、设计任务与要 求 (1) 1.1 总体目标与任务要 求 ................................................ 11.2 题目选择与 目的意义 ................................................ 11.3 所选 题目的主要工作 (1) 二、需求分 析 (2) 2.1 用户需求分 析 (2) 2.2 功能需求分 析 (2) 2.3 系统需求分 析 (2) 三、概要设 计 (3) 3.1 各模块的算法设计说 明 (3) 3.2 存储结构设计说 明 (8) 四、详细设 计 (10) 五、源代 码 (11) 六、运行结果分 析 (21) 七、收获与体 会 (28)

28 ........................................................ . 八、主要参考资料. 一、设计任务与要求 1.1 总体目标与任务要求 制作一个订票系统,通过此系统可以实现如下功能: 1)录入 可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定)。 2)查询 可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,票价折扣,确定航班是否满仓)可以输入起飞抵达城市,查询飞机航班情况。 3)订票 可以订票,如果该航班已经无票,可以提供相关可选择的航班(订票情况可以存在一个数据文件中,结构自己设定)。 4)退票 可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况,订单要有编号。 5)修改航班信息 当航班信息改变可以修改航班数据文件。 根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。 1.2 题目选择与目的意义 选择这个题目的原因是,订票系统在现实生活中应用很广泛,通过这个系统可以使订票、退票等变得简便。与传统的人工用纸、笔来记录办理订票、退票等相比,使用这个系统也会增加工作效率。这个题目做出来的系统还是比较实用的,所以我选择了订票系统这个题目。 完成此系统,需要综合运用数据结构课程中学到的几种典型数据结构,以及程序设计语言(C语言),自行实现一个较为完整的应用系统的设计与开发。通过课程设计,自己通过系统分析、系统设计、编程调试,写实验报告等环节,进一步掌握应用系统设计的方法和步骤,灵活运用并深刻理解典型数据结构在软件开发中的应用。学会将知识应用于实际的方法,提高分析和解决问题的能力,增加综合能力。 1.3 所选题目的主要工作 这个题目的主要工作是使订票系统可以录入航班情况,查询某个航线的情况、办理订票、办理退票、修改航班信息、查询订票信息等。 1页第 二、需求分析

C语言航空订票系统.

航空客运订票系统 姓名:xxx 班级:xxxx 学号:xxxxxxxxx 目录 一、问题描述 (1) 二、设计要求 (1) 三、数据结构设计 (2) 四、详细设计程序 (3) 五、运行与测试 (9) 六、收获及体会 (13) 一、问题描述 设计一个航空客运订票系统,为乘客提供各种航空客运信息服务。 二、设计要求 1.每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量); 2.系统能实现的操作和功能如下: a) 查询航线: 根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; b) 承办订票业务: 根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续, 输出座位号;若已满员或余票额少于定票额,则需重新询问客户要求。若需要,可登记排队候补;

根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 三、数据结构设计 a)等候替补的客户名单(包括姓名、所需票量) typedef struct wat_ros { char name[10];/*姓名*/ int req_amt;/*订票量*/ struct wat_ros *next; }qnode,*qptr; typedef struct pqueu { qptr front;/*等候替补客户名单域的头指针*/ qptr rear;/*等候替补客户名单域的属指针*/ }linkqueue; b)订票的客户名单(包括姓名、订票量、舱位等级1,2或3) typedef struct ord_ros { char name[10];/*客户姓名*/ int ord_amt;/*订票量*/ int grade;/*舱位等级*/ struct ord_ros *next; }linklist; c)每条航线所涉及的信息:终点站名、航班号、飞机号、飞行日(星期几)、乘员定额、余票量、已订票的客户名单、以及等候替补的客户名单 struct airline { char zong_name[10];/*终点站名*/ char air_num[10];/*航班号*/ char plane_num[10];/*飞机号*/ char date[7];/*飞行日期(星期几)*/

C语言航班订票管理系统设计报告

设计任务书 编写一个飞机订票系统的程序,使该系统能够实现对航班信息的录入、浏览、排序、查询以及订票、退票的功能。 小组任务分配: 小组负责人: 负责总体设计(包括总体设计流程图、模块函数原型接口设计); 负责订票函数模块、退票函数模块编写。 组员: 负责文件的输入、文件读取、文件输出函数模块的编写。 组员: 负责查询、修改、删除函数模块的编写。

目录 1、需求分析 (4) 2、功能描述 (4) 3、总体设计 (6) 4、调试分析 (7) 5、测试结果 (7) 6、用户使用说明 (12) 7、课程设计心得 (12) 8、附录(源代码) (13)

需求分析: 用数组或链表数据结构完成一个航班信息管理系统,此系统的具体功能要求如下: (1)航班信息录入功能 1)用户从键盘输入每次航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。 2)可添加一个或多个航班信息到当前编辑的数据中。 3) 可修改一个或多个航班信息。 4)可删除一个或多个航班信息。 (2)文件保存功能 1)航班信息每一机场存为一个数据文件,数据文件可在程序中打开、编辑和重新保存。 2)用户输入航班信息可随时保存数据文件。 (3)文件打开功能 1)程序只能对当前打开的数据文件进行编辑。 (4)查询功能 1)浏览所有航班信息; 2)按航班号查询航班信息; 3)按终点站查询航班信息; 4) 按航线查询航班信息; (5)报表输出功能 1) 按航班编号输出一个航空公司的航班信息:航班号、起始站、终点站、起飞时间、机票数、票价,到屏幕和文件。 注:以上功能以菜单形式供用户使用,并有一定的容错功能。 一,功能描述 模块基本介绍: 1.用户输入模块 在此模块中,用户将根据菜单提示结合自己的需求输入一个0~7的值,来实现一定的功能。 2.航班信息录入模块 此模块可以让用户从键盘输入每个航班的信息:航班号、起始站、终点站、起飞时间、机票数、票价。用户可插入一个或多个航班信息到当前编辑的数据中。用户可删除一个或多个航班信息。 3.文件保存功能模块 用户在确定以录入的信息无误之后,可以将航班信息存为一个数据文件。用户输入的航班信息可随时保存数据文件。 4.文件打开功能模块 用户可以用此模块将数据文件在程序中打开、编辑,程序只能对当前打开的数据文件进行编辑。

c语言飞机订票系统设计复习课程

课程设计说明书 学院、系: 专业: 学生姓名:学号: 设计题目:飞机订票系统设计 起迄日期: 指导教师: 日期: 2017年5月12日

1 设计目的 (1)实现航班的设定、航班信息的浏览和航班的查询。 (2)实现乘客的飞机票的订购、退票以及所定票的查询。 2 任务概述 本飞机共有80个坐位,分20排,每排4个位子。编号为A,B,C,D。如10D 表示 10排D座。A和D靠窗,19到20排为吸烟区。本系统可让乘客自己选座号和区域直到乘客满意为止,无法满足的话,只能改乘另一个航班。定上票的乘客需给出姓名和身份证号,最后要打印出乘客清单。 3 模块划分 图3-1 功能模块图 4 主要函数说明及其N-S图 (1)主菜单函数:功能的选择 (2)航班设定函数:设定航班数量、航班的起始点、航班时间

(3)航班浏览函数:按时间查找浏览、按降落地点查找 (4)乘客订票函数:乘客姓名、身份证号以及所定航班的所有信息 [1]、无烟区函数[2]、吸烟区函数 (5)乘客退票函数:航班号、姓名和身份证号 (6)乘客信息浏览:乘客姓名、身份证号、座位号和航班号 (7)文件保存 (8)文件载入 (9)退出 飞机订票系统N-S图 1、航班设定 图4-1 航班设定N-S图 2、输入客户信息 图4-2 输入客户信息N-S图 3、浏览航班信息 图4-3 浏览航班信息N-S图

4、乘客订票 图4-4 乘客订票N-S图5、乘客退票 图4-5 乘客退票N-S 图 5 程序运行数据及其结果

图5-1 主菜单图5-2 航班设定

图5-3 航班浏览 图5-4 机票订购

飞机订票系统(C语言代码及流程图)

目录 第一部分 源程序---------------------------------------------------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

相关文档
最新文档