源代码.docx

上传人:b****3 文档编号:4179386 上传时间:2023-05-06 格式:DOCX 页数:14 大小:17.45KB
下载 相关 举报
源代码.docx_第1页
第1页 / 共14页
源代码.docx_第2页
第2页 / 共14页
源代码.docx_第3页
第3页 / 共14页
源代码.docx_第4页
第4页 / 共14页
源代码.docx_第5页
第5页 / 共14页
源代码.docx_第6页
第6页 / 共14页
源代码.docx_第7页
第7页 / 共14页
源代码.docx_第8页
第8页 / 共14页
源代码.docx_第9页
第9页 / 共14页
源代码.docx_第10页
第10页 / 共14页
源代码.docx_第11页
第11页 / 共14页
源代码.docx_第12页
第12页 / 共14页
源代码.docx_第13页
第13页 / 共14页
源代码.docx_第14页
第14页 / 共14页
亲,该文档总共14页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

源代码.docx

《源代码.docx》由会员分享,可在线阅读,更多相关《源代码.docx(14页珍藏版)》请在冰点文库上搜索。

源代码.docx

源代码

#include

#include

#include

#defineN20

#defineQ40

//定义数据结构

typedefstruct//乘客信息

{charnumber[10];//编号

charid[20];//证件号

charname[10];//姓名

intcount;//订票数

charflightname[10];//乘坐航班号

}Guest;

typedefstructFLY//航班信息

{charplanenumber[10];//航班号

charTake_off_city[20];//起飞城市

charArrived_in_city[20];//抵达城市

chartakeoff_time[20];//起飞时间

charLanding_time[20];//降落时间

intshipping;//舱位数

charprice[5];//票价

chardiscount[5];//折扣

Guestguest[20];

intsit;//座位号

};

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

{intc;

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

getchar();//读入任意字符

printf("Welcometo\n\n");

printf("TicketsBookingSystem\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("10.退出\n");

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

do{printf("\n输入您的选择项(0~10):

");//提示输入选择项

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

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

returnc;//返回选择项,主程序根据该数调用相应函数}

intenter(FLYt[])//输入函数

{inti,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

t[i].sit=0;

returnn;//返回记录条数}

voidorder(FLYt[],intn)//排序函数

{inti,j;

structFLYs;

for(i=0;i

{for(j=i+1;j

if(strcmp(t[i].planenumber,t[j].planenumber)>0)

{s=t[i];

t[i]=t[j];

t[j]=s;}

}

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

printf(".........................end.......................................\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].Arrived_in_city,

t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount);

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

voidlist(FLYt[],intn)//显示记录,参数为记录数组和记录条数

{inti;

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

printf(".........................end.......................................\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].Arrived_in_city,

t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount);

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

voidsearch1(FLYt[],intn)//按航班号查找记录

{chars[20];//保存等待查找航班名字符串

inti;

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].Arrived_in_city,

t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount);

}

}

voidsearch2(FLYt[],intn)//按起飞降落城市查找记录

{chars1[20];

chars2[20];

inti,flag=1;

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)//记录中的城市和待比较的是否相等//相等,则返回该记录的下标号,程序提前结束

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

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

printf("%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7s\n",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);

flag=0;}

}

if(flag)

printf("没有找到此航班!

\n");}

voidbook(FLYt[],intn)//订票

{chars[20],number1[10],name1[10],id1[20],flightname1[10];

inti,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)//记录中的航班名和待比较的是否相等

if(t[i].shipping==0)

{printf("抱歉,此航班已满,请您选择别的航班!

\n");

k--;

break;}

else

{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++;

printf("恭喜您,订票成功!

\n");

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

}

}

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

{

printf("抱歉!

!

没有此航班\n");

m=m+2;

k++;

}

}

}

voidquit(FLYt[],intn)//退票

{chars1[20],s2[20];//保存待查航班名和证件号字符串

inti,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].id,&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("没有找到:

");

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");//提示退票成功}

}

}

voidchange(FLYt[],intn)//修改航班的信息

{chars[20];

inti=0,j=0;

printf("输入你要修改的航班号:

");//提示信息

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

for(i=0;i

{

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

break;//相等,则返回该记录的下标号

}

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

printf("没有找到:

");

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].Arrived_in_city,t[i].takeoff_time,t[i].Landing_time,t[i].shipping,t[i].price,t[i].discount);

printf("pleaseinputthenewinformation:

\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);//输入折扣

}

}

voidsave(FLYt[],intn)//保存资料

{inti,j;

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

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

{

printf("cannotopenfile\n");//没打开

exit

(1);//退出

}

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

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

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

for(i=0;i

fprintf(fp,"%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7s\n",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,"%-11s%-16s%-16s%-14d%-10s",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");//显示保存成功

}

//输入函数,参数为结构体数组

intload(FLYt[])

{inti,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,"%-12s%-12s%-10s%-12s%-10s%-7d%-7s%-7s\n",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,"%-11s%-16s%-16s%-14d%-10s",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");//显示读取成功

returnn;//返回记录数

}

voidmain()//主函数

{inti=0;

FLYflight[Q];

intlength;//保存记录长度

for(;;)//无限循环

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

{

case0:

length=enter(flight);break;//输入记录

case1:

list(flight,length);break;//显示全部记录

case2:

order(flight,length);break;//排序

case3:

search1(flight,length);break;//查找记录

case4:

search2(flight,length);break;//查找记录

case5:

book(flight,length);break;//订票

case6:

quit(flight,length);break;//退票

case7:

change(flight,length);break;//修改航班信息

case8:

save(flight,length);break;//保存文件

case9:

length=load(flight);break;//读文件

case10:

exit(0);//如返回值为0则程序结束}

}

}

 

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

当前位置:首页 > 党团工作 > 入党转正申请

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2