搜档网
当前位置:搜档网 › (C语言版)飞机订票系统

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

(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()可

以实现乘客的退票操作。

(6)文件操作函数save()&load()

3.源程序代码:(WIN TC下运行)

#include

#include

#include

#include

#define N 20

#define Q 40

/*定义数据结构*/

/*乘客信息*/

typedef struct

{

char number[10];/*编号*/

char id[20]; /*证件号*/

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

int count; /*订票数*/

char flightname[10];/*乘坐航班号*/

}GUEST;

/*航班信息*/

typedef struct

{char planenumber[10];/*航班号*/

char Take_off_city[20];/*起飞城市*/

char Arrived_in_city[20];/*抵达城市*/

char takeoff_time[20];/*起飞时间*/

char Landing_time[20];/*降落时间*/

int shipping; /*舱位数*/

char price[5]; /*票价*/

char discount[5]; /*折扣*/

GUEST guest[20];

int sit;

}FLY;

/*菜单函数,函数返回值为整数,代表所选的菜单项*/ menu_select()

{

int c;

printf("按任意键返回主菜单\n");/*提示压任意键继续*/

getch(); /*读入任意字符*/

printf(" Welcome to\n\n");

printf(" Tickets Booking System\n\n");

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

printf(" 0. 输入航班信息\n");

printf(" 1. 列出航班的信息\n");

printf(" 2. 按航班号查询航班信息\n");

printf(" 3. 按城市来查询航班\n");

printf(" 4. 订票程序\n");

printf(" 5. 退票系统\n");

printf(" 6. 修改飞机航班的信息\n");

printf(" 7. 保存文件\n");

printf(" 8. 读取和下载文件\n");

printf(" 9. 退出\n");

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

do{

printf("\n 输入你的选择项(0~9):"); /*提示输入选项*/

scanf("%d",&c); /*输入选择项*/

}while(c<0||c>9); /*选择项不在~9之间重输*/

return c; /*返回选择项,主程序根据该数调用相应的函数*/

}

/*输入函数*/

int enter(FLY t[])

{

int i,k,n,m,w,j;

char *s;

printf("输入航线总数(n<=40):");/*输入航线总数*/

scanf("%d",&n);

while(n>40||n<0)

{

printf("输入错误!!再次输入(0

scanf("%d",&n);

}

printf(" 输入航班的信息\n\n");/*提示信息*/

printf("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n");

printf("------------------------------------------------------------------------------\n");

for(i=0;i

{

scanf("%s",t[i].planenumber);/*输入姓名*/

scanf("%s",t[i].Take_off_city);/*输入起飞城市*/

scanf("%s",t[i].Arrived_in_city);/*输入降落城市*/

scanf("%s",t[i].takeoff_time);/*输入起飞时间*/

scanf("%s",t[i].Landing_time);/*输入降落时间*/

scanf("%d",&t[i].shipping);/*输入舱位数*/

scanf("%s",t[i].price);/*输入票价*/

scanf("%s",t[i].discount);/*输入折扣*/

}

printf("-----------------------------------------------------------------------------\n"); for(i=0;i

return n; /*返回记录条数*/

}

/*显示记录,参数为记录数组和记录条数*/

void list(FLY t[],int n)

{

int i;

printf("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n");

printf("------------------------------------------------------------------------------\n");

for(i=0;i

printf("%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7s\n",t[i].planenumber,t[i].Take_off_city,t[i].Ar rived_in_city,t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount); printf(" ************************end*******************\n");

}

/*按航班号查找记录*/

void search1(FLY t[],int n)

{

char s[20]; /*保存待查找航班名字符串*/

int i;

printf("输入你想查找的航班名:");

scanf("%s",s); /*输入待查找航班名*/

for(i=0;i

{

if(strcmp(s,t[i].planenumber)==0) /*记录中的航班名和待比较的是否相等*/

break; /*相等,则返回该记录的下标号,程序提前结结束*/

}

if(i>n-1) /*如果整数i值大于n-1,说明没找到*/

printf("没有找到\n");

else

{

printf("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n"); /*显示记录

*/

printf("------------------------------------------------------------------------------\n");

printf("%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7s\n",t[i].planenumber,t[i].Take_off_city,t[i].Ar rived_in_city,t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount); }

}

/*按起降城市查找记录*/

void search2(FLY t[],int n)

{

char s1[20];

char s2[20];

int i;

printf("输入起飞城市名称:");

scanf("%s",s1); /*输入起飞城市名*/

printf("输入降落城市名称:");

scanf("%s",s2); /*输入降落城市名*/

for(i=0;i

{

if((strcmp(s1,t[i].Take_off_city)==0)&&(strcmp(s2,t[i].Arrived_in_city)==0)) /*记录中的城市和待比较的是否相等*/

break; /*相等,则返回该记录的下标号,程序提前结结束*/

}

if(i>n-1) /*如果整数i值大于n-1,说明没找到*/

printf("没有找到\n");

else

{

printf("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n"); /*找到,显示记录*/

printf("------------------------------------------------------------------------------\n");

printf("%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7s\n",t[i].planenumber,t[i].Take_off_city,t[i].Ar rived_in_city,t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount); }

}

/*订票*/

void book(FLY t[],int n)

{

char s[20],number1[10],name1[10],id1[20],flightname1[10];

int i,j=0,m,k,count1;

printf("输入你想预订的票数:");

scanf("%d",&m);

printf("号码姓名证件号订的票数航班号\n"); /*提示信息*/

printf("------------------------------------------------------------\n");

for(k=0;k

{

scanf("%s",number1);

scanf("%s",name1);/*输入订票客户姓名*/

scanf("%s",id1);/*输入证件号*/

scanf("%d",&count1);/*输入订票票数*/

scanf("%s",flightname1);/*输入航班号*/

for(i=0;i

{

if(strcmp(flightname1,t[i].planenumber)==0) /*记录中的航班名和待比较的是否相等*/ {

j=t[i].sit;

strcpy(t[i].guest[j].number,number1);

strcpy(t[i].guest[j].name,name1);

strcpy(t[i].guest[j].id,id1);

t[i].guest[j].count=count1;

strcpy(t[i].guest[j].flightname,flightname1);

t[i].shipping=t[i].shipping-count1;

t[i].sit++;

break; /*相等,则返回该记录的下标号,程序提前结结束*/

}

}

if(i>n-1) /*如果整数i值大于n-1,说明没找到*/

{

printf("对不起!没有此航班\n");

m=m+2;

k++;

}

}

}

/*退票*/

void quit(FLY t[],int n)

{

char s1[20],s2[20]; /*保存待查找航班名和证件号字符串*/

int i,k,j,h,l,ch;

printf("请输入你想退订的航班号:");

scanf("%s",s1); /*输入待查找航班名*/

printf("请输入你的证件号:");

scanf("%s",s2); /*输入待查找证件号*/

printf("号码姓名证件号订的票数航班号\n"); /*显示提示*/

printf("------------------------------------------------------------\n");

for(i=0;i

{

for(j=0;j

if((strcmp(s1,t[i].guest[j].flightname)==0)&&(strcmp(s2,t[i].guest[j].id)==0))

{

printf("%-11s%-16s%-16s%-14d%-10s\n",t[i].guest[j].number,t[i].guest[j].name,t[i].guest[j].i d,t[i].guest[j].count,t[i].guest[j].flightname);

t[i].shipping=t[i].shipping+t[i].guest[j].count;

l=j;

h=i;

break;

}

}

i=h;

if(i>n-1) /*如果整数i值大于n-1,说明没找到*/

printf("没有找到\n");

else

{

printf("你是否确认删除(1/0)\n"); /*确认是否要删除*/

scanf("%d",&ch); /*输入一个整数或*/

if(ch==1) /*如果确认删除整数为*/

{

for(k=l+1;k

{

strcpy(t[i].guest[k-1].number,t[i].guest[k].number); /*将后一条记录的姓名拷贝到前一条*/ strcpy(t[i].guest[k-1].name,t[i].guest[k].name);

strcpy(t[i].guest[k-1].id,t[i].guest[k].id);

t[i].guest[k-1].count=t[i].guest[k].count;

strcpy(t[i].guest[k-1].flightname,t[i].guest[k].flightname);

}

t[i].sit--;

}

printf("退票成功!!\n");/*提示退票成功*/

}

}

/*修改航班信息*/

void channge(FLY t[],int n)

{

char s[20]; /*要删除记录的姓名*/

int i,j;

printf("请输入你要修改的航班号:"); /*提示信息*/

scanf("%s",s);/*输入航班名*/

for(i=0;i

{

if(strcmp(s,t[i].planenumber)==0) /*记录中的航班名和待比较的是否相等*/

break; /*相等,则返回该记录的下标号,程序提前结结束*/

}

if(i>n-1) /*如果整数i值大于n-1,说明没找到*/

printf("没有找到\n");

else

{

printf("航班号起飞城市降落城市出发时间降落时间剩下的座位价格折扣\n"); /*找到,显示原先记录*/

printf("------------------------------------------------------------------------------\n");

printf("%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7s\n",t[i].planenumber,t[i].Take_off_city,t[i].Ar rived_in_city,t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount); printf("please input the new information:\n");

scanf("%s",t[i].planenumber);/*输入航班名*/

scanf("%s",t[i].Take_off_city);/*输入起始城市*/

scanf("%s",t[i].Arrived_in_city);/*输入终点城市*/

scanf("%s",t[i].takeoff_time);/*输入起飞时间*/

scanf("%s",t[i].Landing_time);/*输入降落时间*/

scanf("%d",t[i].shipping);/*输入座位号*/

scanf("%s",t[i].price);/*输入票价*/

scanf("%s",t[i].discount);/*输入折扣*/

}

}

/*保存资料*/

void save(FLY t[],int n)

{

int i,j;

FILE *fp; /*指向文件的指针*/

if((fp=fopen("record1.txt","wb"))==NULL) /*打开文件,并判断打开是否正常*/

{

printf("can not open file\n");/*没打开*/

exit(1); /*退出*/

}

printf("\n保存文件\n"); /*输出提示信息*/

fprintf(fp,"%d",n); /*将记录数写入文件*/

fprintf(fp,"\r\n"); /*将换行符号写入文件*/

for(i=0;i

{

fprintf(fp,"%s %s %s %s %s %d %s

%s",t[i].planenumber,t[i].Take_off_city,t[i].Arrived_in_city,t[i].takeoff_time,t[i].Landing_ time,t[i].shipping,t[i].price,t[i].discount);

fprintf(fp,"\r\n"); /*将换行符号写入文件*/

fprintf(fp,"%d",t[i].sit); /*将记录数写入文件*/

fprintf(fp,"\r\n"); /*将换行符号写入文件*/

for(j=0;j

{fprintf(fp,"%s %s %s %d

%s",t[i].guest[j].number,t[i].guest[j].name,t[i].guest[j].id,t[i].guest[j].count,t[i].guest[ j].flightname);/*格式写入记录*/

fprintf(fp,"\r\n"); /*将换行符号写入文件*/

}

}

fclose(fp);/*关闭文件*/

printf("****恭喜!保存成功***\n"); /*显示保存成功*/

}

/*读入函数,参数为结构体数组*/

int load(FLY t[])

{

int i,n,j;

FILE *fp; /*指向文件的指针*/

if((fp=fopen("record1.txt","rb"))==NULL)/*打开文件*/

{

printf("不能打开\n"); /*不能打开*/

exit(1); /*退出*/

}

fscanf(fp,"%d",&n); /*读入记录数*/

for(i=0;i

{fscanf(fp,"%s %s %s %s %s %d %s

%s",t[i].planenumber,t[i].Take_off_city,t[i].Arrived_in_city,t[i].takeoff_time,t[i].Landing_ time,&t[i].shipping,t[i].price,t[i].discount);

fscanf(fp,"%d",&t[i].sit); /*读入记录数*/

for(j=0;j

fscanf(fp,"%s %s %s %d

%s",t[i].guest[j].number,t[i].guest[j].name,t[i].guest[j].id,&t[i].guest[j].count,t[i].guest [j].flightname); /*按格式读入记录*/

}

fclose(fp); /*关闭文件*/

printf("你已经成功从文件读取数据!!!\n\n\n\n"); /*显示读取成功*/

return n; /*返回记录数*/

}

/*主函数*/

main()

{ int i;

FLY flight[Q];

int length; /*保存记录长度*/

for(;;)/*无限循环*/

{

switch(menu_select()) /*调用主菜单函数,返回值整数作开关语句的条件*/ {

case 0:length=enter(flight);break;/*输入记录*/

case 1:list(flight,length);break; /*显示全部记录*/

case 2:search1(flight,length);break; /*查找记录*/

case 3:search2(flight,length);break; /*查找记录*/

case 4:book(flight,length);break; /*订票*/

case 5:quit(flight,length);break; /*退票*/

case 6:channge(flight,length);break; /*修改航班信息*/ case 7:save(flight,length);break; /*保存文件*/

case 8:length=load(flight); break; /*读文件*/

case 9:exit(0); /*如返回值为则程序结束*/

}

}

}

4.系统运行时窗口截图:(VC6.0下的运行结果)

订票系统菜单窗口

0.输入航班的信息

1.列出航班的信息

2.按航班号查询航班信息

3.按城市来查询航班

4.订票程序

5.退票系统

6.修改飞机航班的信息

7.保存文件

8.读取文件、下载文件

图的遍历过程演示

一.需求分析:

设计程序完成如下功能:对给定的图的结构和起点,产生深度优先遍历和广度优先遍历,并列出求解的过程动态演示。

二.主要设计思路:

设计思想:简而言之,深度优先,就是先遍历它的一个邻接点,这个邻接点的邻接点……然后才遍历其他的邻接点。广度优先,就是先把它所有的邻接点都遍历完以后,再遍历它每个邻接点的邻接点。存储结构为图的邻接多重表,它是无向图的一种链式存储结构。

深度优先遍历:设x是当前被访问顶点,在对x做过访问标记后,选择一条从x出发的未检测过的边(x,y)。若发现顶点y已访问过,则重新选择另一条从x出发的未检测过的边,否则沿边(x,y)到达未曾访问过的y,对y访问并将其标记为已访问过;然后从y开始搜索,直到搜索完从y出发的所有路径,即访问完所有从y出发可达的顶点之后,才回溯到顶点x,并且再选择一条从x出发的未检测过的边。上述过程直至从x出发的所有边都已检测过为止。此时,若x不是源点,则回溯到在x之前被访问过的顶点;否则图中所有和源点有路径相通的顶点(即从源点可达的所有顶点)都已被访问过,若图G是连通图,则遍历过程结束,否则继续选择一个尚未被访问的顶点作为新源点,进行新的搜索过程。

广度优先遍历:设x和y是两个相继要被访问的未访问过的顶点。

它们的邻接点分别记为x1,x2,…,xs和y1,y2,…,yt。

为确保先访问的顶点其邻接点亦先被访问,在搜索过程中使用队列来保存已访问过的顶点。当访问x和y时,这两个顶点相继入队。此后,当x和y相继出队时,我们分别从x和y出发搜索其邻接点x1,x2,…,xs和y1,y2,…,yt,对其中未访者进行访问并将其入队。这种方法是将每个已访问的顶点入队,故保证了每个顶点至多只有一次入队。

A.图的算法构造思想:

1.CreateALGraph()

初始条件:V是图的顶点集,VR是图中弧的集合.

操作结果:按V和VR是定义构造图G.

2. DestroyGraph(&G)

初始条件:图G存在

操作结果:销毁图G

3.LocateVex(G,u)

初始条件: 图G存在,u和G中顶点有相同的特征

操作结果:若图G中存在顶点u,则返回该顶点在图中的位置;

否则返回其他信息

4. GetVex(G,v)

初始条件: 图G存在,v是G中顶点

操作结果:返回v的值

5. FirstAjvex(G,v)

初始条件: 图G存在,v是G中顶点

操作结果:返回v的第一个邻接顶点,若顶在图中没有邻

接顶点,则返回为空

6. NextAjvex(G,v,w)

初始条件: 图G存在,v是G中顶点,w是v的邻接顶点

操作结果:返回v的下一个邻接顶点,若w是v的最后一个

邻接顶点,则返回空

7. DeleteVexx(&G,v)

初始条件: 图G存在,v是G中顶点

操作结果:删除顶点v已经其相关的弧

8. DFStraverse(ALGraph)

初始条件: 图G存在,visit的顶点的应用函数

操作结果: 对图进行深度优先遍历,在遍历过程中对每个

结点调用visit函数一次,一旦visit失败,

则操作失败

9.BFStraverse(ALGraph)

初始条件: 图G存在,visit的顶点的应用函数

操作结果: 对图进行广度优先遍历,在遍历过程中对每个

结点调用visit函数一次,一旦visit失败,

则操作失败

附图的结构体构造:

ALGraph{

数据对象V:V是具有相同特性的数据元素的集合,称为点集.

数据关系R:

R={VR}

VR={(v,w)|v,w属于V,(v,w)表示v和w之间存在的路径}

B.队列的算法构造:

1.Init_SeqQueue()

操作结果:构造一个空队列Q

2. DestryoQueue(&Q)

初始条件:队列Q已存在。

操作结果:队列Q被销毁,不再存在。

3. In_SeqQueue()

初始条件:队列Q已经存在

操作结果:插入元素e为Q的新的队尾元素

4. Out_SeqQueue()

初始条件:Q为非空队列

操作结果:删除Q的队尾元素,并用e返回其值

5. Empty_SeqQueue()

初始条件:队列已经存在

操作结果:若队列为空,则返回TRUE,否则返回FLASE C.本程序包含的模板:

1.程序模块

Main()

{

取得顶点数和弧数;

生成邻接表结构的图;

深度遍历图;

广度遍历图;

}

2.造邻接表结构的图;

3.度优先遍历图;

4.度优先遍历图;

5.列的基本操作模块;

6.数声明模块;

三.源程序代码:(VC++6.0下运行)

#include

#include

#include

#define MAX_VERTEX_NUM 50 //图的最大顶点数

#define MAXQSIZE 200 //队列的最大容量

enum BOOL {False,True}; //定义枚举变量

typedef struct ArcNode //图的邻接表存储

{int adjvex; //该弧所指向的顶点的位置

struct ArcNode *nextarc; //指向下一条弧的指针

}ArcNode; //弧结点

typedef struct

{ArcNode* AdjList[MAX_VERTEX_NUM]; //指向第一条依附该顶点的弧的指针int vexnum,arcnum; //图的当前顶点和弧数

}Graph;

typedef struct//队列结构

{int elem[MAXQSIZE]; //数据域

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

相关主题