正文格式.docx

上传人:b****3 文档编号:27050422 上传时间:2023-06-26 格式:DOCX 页数:35 大小:263.93KB
下载 相关 举报
正文格式.docx_第1页
第1页 / 共35页
正文格式.docx_第2页
第2页 / 共35页
正文格式.docx_第3页
第3页 / 共35页
正文格式.docx_第4页
第4页 / 共35页
正文格式.docx_第5页
第5页 / 共35页
点击查看更多>>
下载资源
资源描述

正文格式.docx

《正文格式.docx》由会员分享,可在线阅读,更多相关《正文格式.docx(35页珍藏版)》请在冰豆网上搜索。

正文格式.docx

正文格式

航空订票系统

一、选题背景

以下为我选的题目和要求:

录入:

可以录入航班情况(数据可以存储在一个数据文件中,数据结构、具体数据自定);

查询:

可以查询某个航线的情况(如,输入航班号,查询起降时间,起飞抵达城市,航班票价,确定航班是否满仓);可以输入起飞抵达城市,查询飞机航班情况;

订票:

(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果该航班已经无票,可以提供相关可选择航班;

退票:

可退票,退票后修改相关数据文件;客户资料有姓名,证件号,订票数量及航班情况。

修改航班信息:

当航班信息改变可以修改航班数据文件

要求:

根据以上功能说明,设计航班信息,订票信息的存储结构,设计程序完成功能。

因为这道题很切合实际生活,再加上对航空订票的一下事项也有所了解,线性表的应用在数据结构中起到核心作用,可以用线性表来实现此系统的功能,进一步巩固线性表的相关知识,对自身消化数据结构的理论知识有很大的帮助。

所以我选择了这个作为本次课程设计的题目。

二、运行环境(软、硬件环境)

Vc6.0WindowsXP操作系统

三、算法设计的思想

(1)本程序主要完成:

录入航班信息、查询航班信息、修改航班信息、订票业务以及退票业务四个功能。

(2)本程序涉及到线性表的动态分配存储空间及插入、删除、遍历输出等操作。

(3)函数的调用是使得本程序简单易懂的主要工具,程序的模块化增加了本程序的可实用性。

(4)循环语句和switch语句构成了环环相扣的菜单栏,更加人性化。

四、算法的流程图

算法总体框架:

录入航线:

 

查询航班信息:

 

Y

修改航班信息:

订票业务:

退票业务:

五、算法设计分析

ADTairline{

数据对象:

D={ai|ai∈elem,i=1,2,3,……,n,n≥0}

数据关系:

R1={|ai-1,ai∈D,i=2,……,n}

基本操作:

luru(airline&L)

初始条件:

线性表L已经存在。

操作结果:

将输入的航班信息存储到L中。

shuchu(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

输入L中第i-1个航班的全部信息。

display(person&P,inti)

初始条件:

线性表P已经存在。

操作结果:

输出P中第i-1个客户的全部信息。

search_name(airline&L)

初始条件:

线性表L已经存在。

操作结果:

以终点站查询航班信息,若L为空,则提示是否进入“录入航班信息”模块,若不为空,则会输出该航线的全部信息。

若未找到,则将提示“该航线未找到”。

search_number(airline&L)

初始条件:

线性表L已经存在。

操作结果:

以航班号查询航班信息,若L为空,则提示是否进入“录入航班信息”模块,若不为空,则会输出该航线的全部信息。

若未找到,则将提示“该航线未找到”。

search(airline&L)

初始条件:

线性表L已经存在。

操作结果:

分为三个模块,分别为“返回主菜单”,“按终点站查询”,“按航班号查询”,该函数将根据输入来决定下一步程序。

correct_air_number(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

修改第i-1个航班的航班号

correct_leave_time(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

修改第i-1个航班的起飞时间

correct_arrive_time(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

修改第i-1个航班的降落时间。

correct_name(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

修改第i-1个航班的终点站

correct_money(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

修改第i-1个航班的票价

correct_hold_number(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

修改第i-1个航班的载客量

correct_zi(airline&L,inti)

初始条件:

线性表L已经存在。

操作结果:

分为7个模块,分别为“返回主菜单”,“修改航班号”,“修改起飞时间”,“修改降落时间”,“修改终点站”,“修改票价”,“修改载客量”,该函数将根据输入来决定下一步程序。

order_ticket(airline&L,person&P)

初始条件:

线性表L和P已经存在。

操作结果:

根据输入的航班号查询航线信息库,若为空,则提示是否进入“录入航班信息”模块,若不为空,则输入的客户资料存储到P中,若订票数量大于剩余票量,则提示“该航班已满”。

ticket_return(airline&L,person&P)

初始条件:

线性表L和P已经存在。

操作结果:

若P为空,则将根据提示自动进入“订票”模块。

若不为空,则会根据提示删除客户资料,若查找失败,则提示“该客户未找到”。

}

六、源代码

#include

#include

#include

#defineL_maxsize100;

#defineP_maxsize100;

typedefstruct

{

charair_number[20];//航班号

charleave_time[20];//起飞时间

chararrive_time[20];//降落时间

charname[20];//终点站

intmoney;//票价

inthold_number;//载客量

intrest_number;//余票量

}elemtype;

typedefstruct//定义航线结构

{

elemtype*elem;

intlength;

}airline,*airinfo;

typedefstruct

{

charperson_name[20];

charID[20];

intticket_number;

charair_number[20];

charleave_time[20];

chararrive_time[20];

charname[20];

intmoney;

inthold_number;

}person_elem_type;

typedefstruct

{

person_elem_type*elem;

intlength;

}person;

voidluru(airline&L)//录入航班信息

{

inti;

i=L.length;

printf("请根据提示输入航线信息:

\n");

printf("==========================================================");

printf("\n航班号:

");

scanf("%s",&L.elem[i].air_number);

printf("起飞时间:

");

scanf("%s",&L.elem[i].leave_time);

printf("降落时间:

");

scanf("%s",&L.elem[i].arrive_time);

printf("终点站:

");

scanf("%s",&L.elem[i].name);

printf("票价:

");

scanf("%d",&L.elem[i].money);

printf("载客量:

");

scanf("%d",&L.elem[i].hold_number);

printf("余票量:

");

scanf("%d",&L.elem[i].rest_number);

printf("==========================================================");

L.length++;

printf("\n航线信息载入成功!

\n");

}

voidshuchu(airline&L,inti)//输出指定的航线信息

{

printf("该航线的全部信息为:

\n");

printf("======================================================\n");

printf("航班号\t\t%s\n",L.elem[i].air_number);

printf("起飞时间\t%s\n",L.elem[i].leave_time);

printf("降落时间\t%s\n",L.elem[i].arrive_time);

printf("终点站\t\t%s\n",L.elem[i].name);

printf("票价\t\t%d\n",L.elem[i].money);

printf("载客量\t\t%d\n",L.elem[i].hold_number);

printf("余票量\t\t%d\n",L.elem[i].rest_number);

printf("==============================================================\n");

}

voiddisplay(person&P,inti)//输出指定的客户信息

{

printf("该客户的全部信息为:

\n");

printf("========================================================\n");

printf("姓名%s\n",P.elem[i].person_name);

printf("证件号%s\n",P.elem[i].ID);

printf("订票数量%d\n",P.elem[i].ticket_number);

printf("航班号%s\n",P.elem[i].air_number);

printf("起飞时间%s\n",P.elem[i].leave_time);

printf("降落时间%s\n",P.elem[i].arrive_time);

printf("终点站%s\n",P.elem[i].name);

printf("票价%d\n",P.elem[i].money);

printf("=====================================================\n");

}

intsearch_name(airline&L)//以终点站名查询航线信息

{

inti=0;

charr,name[20];

if(L.length==0)

{

printf("由于该系统还未建立航线信息库,请先输入航线信息!

\n");

luru(L);

}

printf("\n\n请输入需要查询的终点站名:

");

scanf("%s",&name);

while(i

{

if(!

strcmp(name,L.elem[i].name))

{

printf("该航线已找到,是否输出该航线的全部信息?

(Y/N)\n");

scanf("%s",&r);

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

{

shuchu(L,i);

break;

}

elsebreak;

}

i++;

}

if(i==L.length)

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

\n\n");

returni;

}

intsearch_number(airline&L)//以航班号查询航班信息

{

charnumber[20],r;

inti=0;

if(L.length==0)

{

printf("由于该系统还未建立航线信息库,请先输入航线信息!

\n");

luru(L);

}

printf("\n\n请输入需要查询的航班号:

");

scanf("%s",&number);

while(i

{

if(!

strcmp(number,L.elem[i].air_number))

{

printf("该航线已找到,是否输出该航线的全部信息?

(Y/N)\n");

scanf("%s",&r);

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

{

shuchu(L,i);

break;

}

elsebreak;

}

i++;

}

if(i==L.length)

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

\n\n");

returni;

}

voidsearch(airline&L)

{

inti=2;

while(i-1)

{

printf("**************************************************************");

printf("\n1返回主菜单\n2以终点站名查询航班信息\n3以航班号查询航班信息\n");

printf("****************************************************************");

printf("\n请选择功能:

\n");

scanf("%d",&i);

switch(i)

{

case1:

break;

case2:

search_name(L);break;

case3:

search_number(L);break;

}

}

}

voidcorrect_air_number(airline&L,inti)//修改某航班的航班号

{

intb=2;

charnumber[20];

printf("\n请输入正确的航班号:

\n");

scanf("%s",&number);

strcpy(L.elem[i].air_number,number);

printf("\n修改成功!

\n");

while(b-1)

{

printf("======================================================\n");

printf("\n1继续修改该航线其他信息\n2浏览该航线的信息\n");

printf("=======================================================\n");

printf("请选择功能:

");

scanf("%d",&b);

switch(b)

{

case1:

break;

case2:

shuchu(L,i);break;

}

}

}

voidcorrect_leave_time(airline&L,inti)//修改某航班的起飞时间

{

intb=2;

chartime[20];

printf("\n请输入正确的起飞时间:

\n");

scanf("%s",&time);

strcpy(L.elem[i].leave_time,time);

printf("\n修改成功!

\n");

while(b-1)

{

printf("===================================================\n");

printf("\n1继续修改该航线其他信息\n2浏览该航线的信息\n");

printf("=======================================================\n");

printf("请选择功能:

");

scanf("%d",&b);

switch(b)

{

case1:

break;

case2:

shuchu(L,i);break;

}

}

}

voidcorrect_arrive_time(airline&L,inti)//修改某航班的降落时间

{

intb=2;

chartime[20];

printf("\n请输入正确的降落时间:

\n");

scanf("%s",&time);

strcpy(L.elem[i].arrive_time,time);

printf("\n修改成功!

\n");

while(b-1)

{

printf("======================================================\n");

printf("\n1继续修改该航线其他信息\n2浏览该航线的信息\n");

printf("=====================================================\n");

printf("请选择功能:

");

scanf("%d",&b);

switch(b)

{

case1:

break;

case2:

shuchu(L,i);break;

}

}

}

voidcorrect_name(airline&L,inti)//修改某航班的终点站

{

intb=2;

charname[20];

printf("\n请输入正确的终点站名:

\n");

scanf("%s",&name);

strcpy(L.elem[i].name,name);

printf("\n修改成功!

\n");

while(b-1)

{

printf("=======================================================\n");

printf("\n1继续修改该航线其他信息\n2浏览该航线的信息\n");

printf("=======================================================\n");

printf("请选择功能:

");

scanf("%d",&b);

switch(b)

{

case1:

break;

case2:

shuchu(L,i);break;

}

}

}

voidcorrect_money(airline&L,inti)//修改某航班的票价

{

intb=2;

intmoney;

printf("\n请输入正确票价:

\n");

scanf("%d",&money);

L.elem[i].money=money;

printf("\n修改成功!

\n");

while(b-1)

{

printf("=====================================================\n");

printf("\n1继续修改该航线其他信息\n2浏览该航线的信息\n");

printf("======================================================\n");

printf("请选择功能:

");

scanf("%d",&b);

switch(b)

{

case1:

break;

case2:

shuchu(L,i);break;

}

}

}

voidcorrect_hold_number(airline&L,inti)//修改某航班的载客量

{

intb=2;

intnumber;

printf("\n请输入正确的载客量:

\n");

scanf("%d",&number);

L.elem[i].hold_number=number;

printf("\n修改成功!

\n");

while(b-1)

{

printf("=====================================================\n");

printf("\n1继续修改该航线其他信息\n2浏览该航线的信息\n");

printf("======================================================\n");

printf("请选择功能:

");

scanf("%d",&b);

switch(b)

{

case1:

break;

case2:

shuchu(L,i);break;

}

}

}

voidcorrect_zi(airline&L,inti)

{

inta=2;

printf("请选择该航线需要修改的信息:

\n");

while(a-1)

{

printf("###############################################################");

printf("\n1返回主菜单\n2航班号\n3起飞时间\n4降落时间\n5终点站\n6票价\n7载客量\n");

printf("#############################################################");

printf("\n请选择功能:

\n");

scanf("%d",&a);

switch(a)

{

case1:

break;

case2:

correct_air_number(L,i);break;

case3:

correct_leave_time(L,i);break;

case4:

correct_arrive_time(L,i);break;

case5:

correct_name(L,i);break;

case6:

correct_money(L,i);break;

case7:

correct_hold_number(L,i);break;

}

}

}

voidcorrect(airline&L)//修改航班信息

{

inti=2;

printf("\n\n请先查询需要修改的航班信息!

\n");

while(i-1)

{

printf("*************************

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 求职职场 > 面试

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1