C语言飞机订票系统方案文档格式.docx

上传人:b****6 文档编号:19368792 上传时间:2023-01-05 格式:DOCX 页数:12 大小:92.60KB
下载 相关 举报
C语言飞机订票系统方案文档格式.docx_第1页
第1页 / 共12页
C语言飞机订票系统方案文档格式.docx_第2页
第2页 / 共12页
C语言飞机订票系统方案文档格式.docx_第3页
第3页 / 共12页
C语言飞机订票系统方案文档格式.docx_第4页
第4页 / 共12页
C语言飞机订票系统方案文档格式.docx_第5页
第5页 / 共12页
点击查看更多>>
下载资源
资源描述

C语言飞机订票系统方案文档格式.docx

《C语言飞机订票系统方案文档格式.docx》由会员分享,可在线阅读,更多相关《C语言飞机订票系统方案文档格式.docx(12页珍藏版)》请在冰豆网上搜索。

C语言飞机订票系统方案文档格式.docx

可退票,退票后修改相关数据文件;

客户资料有,证件号,订票数量及航班情况,订单要有编号。

修改航班信息:

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

要求:

根据以上功能说明,设计航班信息,订票信息的存储结

构,设计程序完成功能设计思想:

管理操作系统,主要考虑的是信息的录入,这里利用文件的读写完成该功能;

输出,查询以及删除,利用结构数组存储航班与客户信息,依次对订票,退票,查询及相关操作编写成子程序,然后再主程序中调用,这样程序看起来相当简练,而且易读懂;

算法设计分析:

(次系统运行环境为VC6.0)

1.txt

beijingshanghai1112011180

61002

shanghaiwuhang2212022140

21101

wuhangchibi3313033140

1502

(此文件是程序执行航班信息录入时自动生成,在信息读取时需要调用)

首先是航班于客户信息的存储,结构数组的利用很好的解决该问题;

其次是文件的操作,在主函数中利用文件的读与写;

下面介绍订票退票以及查询操作的实现。

1订票:

首先输入出发地与目的地,查找是否有相应的航班信息,在航2班票数足够的情况下,录入客户信息,提示操作成功;

否则失败。

3退票:

输入退票客户的与身份,查找到该客户信息后进行退票操作,完成后对应航班票数加1;

若没有该客户信息,提示查无此人。

查询:

输入客户与身份,若查到有该客户信息,显示该客户的航班情况;

否则提示差无此人。

//飞机定票管理系统

#include<

stdio.h>

windows.h>

#defineN10

structflight

{

charstart[10];

//出发地

charend[10];

//目的地

ints_month;

//出发时间月份,天,小时,分钟ints_day;

ints_hour;

ints_minute;

intd_month;

//到达时间月份,天,小时,分钟intd_day;

intd_hour;

intd_minute;

intcoast_t;

//历时多久

intcoast_m;

//票价

intnum;

//剩余票数

//intbianhao;

//机票编号}air[N];

//结构体数组存储航班信息//客户信息structcon

intnumber;

//定票者的证件

charname[10];

//定票者的名字

//

出发地

目的地

出发时间月份,天,小时,分钟

ints_day;

到达时间月份,天,小时,分钟

intd_day;

历时多久

//intbianhao;

//机票编号

}people[100];

//定票,输出发地与目的地,时间,反馈剩余票,票价

book(intt)

inti,month,day,p,q,k=0;

//k为判断输入的信息是否有误

charstart[10],end[10];

printf("

定票:

\n"

);

//输入查询的航班信息,以便搜索

while(k==0)

请输入出发地,目的地,出发日期:

//***************************************************

gets(start);

gets(end);

//**这里输入时应注意用回车键,否则默认字符串存入start**

scanf("

%d,%d"

&

month,&

day);

//****************************************************

//scanf("

%s,%s,%d,%d"

start,end,&

//getchar();

start,end,month,day);

//扫描信息,搜索与所查询的航班匹配信息

for(i=0;

i<

N;

i++)

p=strcmp(start,air[i].start);

q=strcmp(end,air[i].end);

if(p==0&

&

q==0&

month==air[i].s_month&

day==air[i].s_day)

k=1;

//信息输入无误,即找到匹配信息

由%s到%$时间为%4月%旳的航班票价为%d,余票

为%d\n"

air[i].start,air[i].end,air[i].s_month,air[i].s_day,air[i].coast_m,air[i].num);

//更新信息,将客户信息存储

if(air[i].num==0)printf("

票已售完,如有不便请谅

解!

\n\n\n\n"

else

air[i].num=air[i].num-1;

请输入您的证件与:

%d,%s"

people[t].number,people[t].name);

getchar();

strcpy(people[t].start,air[i].start);

strcpy(people[t].end,air[i].end);

people[t].s_month=air[i].s_month;

people[t].s_day=air[i].s_day;

people[t].s_hour=air[i].s_hour;

people[t].s_minute=air[i].s_minute;

people[t].d_month=air[i].d_month;

people[t].d_day=air[i].d_day;

people[t].d_hour=air[i].d_hour;

people[t].d_minute=air[i].d_minute;

people[t].coast_t=air[i].coast_t;

people[t].coast_m=air[i].coast_m;

//people[t].bianhao=air[i].bianhao;

printf("

恭喜您定票成功!

t++;

}

//system("

pause"

if(k==0)

信息输入有误\n"

是否继续定票?

0为继续1为退出\n"

scanf("

%d"

k);

returnt;

//退票,并将客户信息栏中该客户信息清楚,所乘航班票数加1re_ti(intt)

inti,j,nu_mber,k=0;

//k为判断是否查找到客户信息charna_me[10];

退票:

nu_mber,na_me);

100;

if(nu_mber==people[i].number&

strcmp(na_me,people[i].name)==0){

//找到该客户信息

//退票后,与该客户对应航班票数增1

for(j=0;

j<

j++)

if(strcmp(people[i].start,air[j].start)==0&

strcmp(people[i].end,air[j].end)==0&

people[i].s_month==air[j].s_month&

people[i].s_day==air[j].s_day)

air[j].num=air[j].num+1;

//将客户信息依次向前移动

for(j=i;

//printf("

成功删除该客户信息!

people[j].number=people[j+1].number;

strcpy(people[j].name,people[j+1].name);

strcpy(people[j].start,people[j+1].start);

strcpy(people[j].end,people[j+1].end);

people[j].s_month=people[j+1].s_month;

people[j].s_day=people[j+1].s_day;

people[j].s_hour=people[j+1].s_hour;

people[j].s_minute=people[j+1].s_minute;

people[j].d_month=people[j+1].d_month;

people[j].d_day=people[j+1].d_day;

people[j].d_hour=people[j+1].d_hour;

people[j].d_minute=people[j+1].d_minute;

people[j].coast_t=people[j+1].coast_t;

people[j].coast_m=people[j+1].coast_m;

t=t-1;

//删除该客户信息后,客户记录减去1

if(k==0)printf("

查无此人!

//查询信息,出入所要查询的顾客的航班信息,并给出错误处理

check()

inti,nu_mber,k=0;

//k为判断是否查找到客户信息

charna_me[10];

查询:

//fflush(stdin);

strcmp(na_me,people[i].name)==0)

以下是该客户信息:

证件号:

%d;

:

%s;

出发地:

%s;

目的地:

出发时间:

%d

月%d0%4时%d分

people[i].number,people[i].name,people[i].start,people[i].end,people[i].s_month,people[i].s_day,people[i].s_hour,people[i].s_minute);

main()

//使用文件初始化信息

ints,p,q=0,i;

//p,q为循环判断变量

intt=0;

/*FILE*fp;

charname[]="

1.txt"

;

if(!

(fp=fopen("

"

w"

)))

error!

3;

fprintf(fp,"

%15s%15s%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d%4d\n"

air[i].start,air[i].end,air[i].s_month,air[i].s_day,air[i].s_hour,

air[i].s_minute,air[i].d_month,air[i].d_day,air[i].d_hour,air[i].d_minute,air[i].coast_t,air[i].coast_m,air[i].num);

fclose(fp);

*/

FILE*fp;

r"

fscanf(fp,"

air[i].start,&

air[i].end,&

air[i].s_month,&

air[i].s_day,&

air[i].s_hour,

air[i].s_minute,&

air[i].d_month,&

air[i].d_day,&

air[i].d_hour,&

air[i].d_minute,&

air[i].coast_t,&

air[i].coast_m,&

air[i].num);

//readconument

while(q==0)

请选择服务种类:

\n1为定票;

2为退票;

3查找信息;

0为退出\n"

s);

switch(s)

case1:

t=book(t);

//订票操作

break;

case2:

t=re_ti(t);

//退票操作

case3:

check();

//查找客户信息是否存在

case0:

航空集团祝福您旅途愉快!

"

您确定离开界面?

1/0\n"

p);

if(p==1)q=1;

elseq=0;

m査捌言息洱为退岀

fika发地占的地倍发日軀

1I4■

heijing

shanghai

MXXJKJ<

KMLKXXJKXJCXKKXXXJKKKML耳且XKXHMKKXXJCJCXXXXX

靑输入证件号不矜客户姓名=

123ccb

[規莓昇翥乩雪g时岀发地=beijinff;

§

的地:

shanghai;

1月1日坨眈分

输入查询的客户证件与,找到后输出客户的航班信息;

読喳找信息円为退出

iS輪入证件号码与客户姓名=

123

输入退票者的信息,完成后在进行查找操作时确定已经没有该客户信息;

退出界面;

收获及体会:

通过此次实验,使我对结构数组有了更深刻的理解,也认识到了它的一些缺陷,就是如果对它进行删除以及增添信息时,信息的移动有点麻烦;

这时如果用链表进行操作的话会相对简单些;

于此同时,语言这类学科,用着就会熟练起来,程序开始时,生疏的地方很多,久而久之,用起来就熟练了;

主函数

信息匹配则记录客户信息,

否则给出处理情况

XX

删除该客户信息,所对应航班票数增

若找到该

客户则输

出他的信

继续还是退出

I到主服务?

I到主服务?

息,否则

 

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

当前位置:首页 > 表格模板 > 合同协议

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

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