700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > C语言飞机票查询与销售系统

C语言飞机票查询与销售系统

时间:2018-05-06 14:54:43

相关推荐

C语言飞机票查询与销售系统

本人大一下哈,代码能力不是很强,希望各位大佬手下留情。有什么改进的可以在评论区讲讲。

飞机票查询与销售系统,小学期的大作业。昨天写了六七个小时,感觉还好。

放代码:

#include <stdio.h>

#include <stdlib.h>

#include <string.h>

#include <time.h>

#include <windows.h>

int flightnum=0;

int maxflight=100;

struct Passenger

{

char name[20];

char ID[30];

};

struct Plane

{

int planeID;//飞机ID

char flightcompany[10];//航空公司

char startplace[10];//起飞地

char arriveplace[10];//目的地

int seat;//座位数

int ticket;//剩余票数

int cost;//票价

char starttime[10];//起飞时间

struct Passenger person[1000];//储存乘客信息

}p[100];

int main()

{

void menu(),Passenger_menu(),Admin(),_filefunction();

menu();

int n;

a:scanf("%d",&n);

switch(n)

{

case 1:

Passenger_menu();

break;

case 2:

Admin();

break;

default :

printf("输入错误,请重新输入\n");

goto a;

}

printf(" ");

return 0;

}

void menu()

{

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

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

printf("** 欢迎使用票务系统 ** \n");

printf("\n");

system("pause");

printf("*** 您的身份是? ***\n");

printf("*** 1.乘客 ***\n");

printf("*** 2.管理 ***\n");

}

void Passenger_menu()

{ void searchplane(int x),researvation(),cancel();

printf("***亲爱的乘客您好,欢迎使用票务系统!\n");

f:printf("***输入1以查询航班信息\n");

printf("***输入2以进行机票订购\n");

printf("***输入3以进行机票退订\n");

printf("***输入4以退出系统\n");

int n;

scanf("%d",&n);

switch(n)

{

case 1:

searchplane(2);

break;

case 2:

researvation();

break;

case 3:

cancel();

break;

case 4:

printf("感谢您使用本系统,祝您旅途愉快,一路平安\n");

break;

default :

printf("输入错误!!!\n请重新输入:");

goto f;

}

}

void Admin()

{ int main();

void admin_menu();

char s[10],*sadmin="admin";

float num;

printf("请输入管理员帐号:");

scanf("%s",s);

while(strcmp(s,sadmin)!=0)

{

printf("!!!账号错误!!!\n请重新输入管理员账号:");

scanf("%s",s);

}

printf("请输入管理员密码:");

scanf("%f",&num);

while(num!=123456)

{

printf("!!!密码错误!!!\n请重新输入密码:");

scanf("%f",&num);

}

admin_menu();

system("cls");

main();

}

void admin_menu()

{ void _flight(int choosenum),searchplane(int x),_filefunction();

printf("***管理员您好,请问您需要什么服务?***\n");

printf("*** 1.增加航班信息 ***\n");

printf("*** 2.删除航班信息 ***\n");

printf("*** 3.查询航班信息 ***\n");

printf("*** 4.读取信息文件 ***\n");

printf("*** 5.退出管理系统 ***\n");

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

int n;

b:scanf("%d",&n);

switch(n)

{

case 1:

system("cls");

_flight(n);

break;

case 2:

if(flightnum==0)

{

printf("无任何航班信息,现为您选择增加航班信息服务");

system("pause");

system("cls");

_flight(1);

}

system("cls");

_flight(n);

break;

case 3:

if(flightnum==0)

{

printf("无任何航班信息,现为您选择增加航班信息服务");

system("pause");

system("cls");

_flight(1);

}

printf("正在载入航班信息,请稍后");

for(int i=0;i<3;i++)

{

printf(".");

Sleep(500);

system("pause");

system("cls");

searchplane(1);

}

break;

case 5:

printf("欢迎您下次使用,正在退出系统");

{

for(int i=0;i<6;i++)

{

printf(".");

Sleep(500);

}

}

system("pause");

break;

case 4:

_filefunction();

break;

default :

printf("输入错误!!!请重新输入\n");

goto b;

}

}

void _flight(int choosenum)

{

if(choosenum==1)

{//增加航班信息

int n;

c:printf("请输入要增加的航班个数:");

scanf("%d",&n);

if(n>100)

{

printf("超出最大航班数量,请重新输入!!!\n");

goto c;

}

else if(n<=0)

{

printf("输入错误!!!\n");

goto c;

}

else

{

flightnum+=n;

printf("请输入:航班ID 航空公司 起飞地 目的地 座位数 票价 预期起飞时间\n");

for(int i=0;i<n;i++)

{

scanf("%d %s %s %s %d %d %s",&p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,&p[i].seat,&p[i].cost,p[i].starttime);

p[i].ticket=p[i].seat;

}

printf("输入完毕!!\n");

printf("系统将打印航班信息,请确认!\n");

for(int i=0;i<n;i++)

{

printf("%d %s %s %s %d %d %s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].seat,p[i].cost,p[i].starttime);

}

printf("确认完毕请输入1\n");

int temp;

scanf("%d",&temp);

while(temp!=1)

{

printf("请输入错误的航班序号(以0为结束序号)");

int wrrong[maxflight];

int i=0,wrrongnum=0;

while(scanf("%d",&wrrong[i]))

{

if(wrrong[i]==0)break;

wrrong[i]-=1;

i++;

wrrongnum++;

}

for(i=0;i<wrrongnum;i++)

{

printf("错误航班信息为:\n");

printf("航班ID:%d\n",p[wrrong[i]].planeID);

printf("航空公司:%s\n",p[wrrong[i]].flightcompany);

printf("起飞地:%s\n",p[wrrong[i]].startplace);

printf("目的地:%s\n",p[wrrong[i]].arriveplace);

printf("座位数:%d\n",p[wrrong[i]].seat);

printf("票价:%d\n",p[wrrong[i]].cost);

printf("预期起飞时间:%s\n",p[wrrong[i]].starttime);

printf("请输入完整正确的航班信息:\n");

printf("航班ID 航空公司 起飞地 目的地 座位数 票价 预期起飞时间\n");

scanf("%d %s %s %s %d %d %s",&p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,&p[i].seat,&p[i].cost,p[i].starttime);

}

printf("修改完毕!");

system("pause");

printf("系统将打印最终航班信息!\n");

for(int i=0;i<n;i++)

{

printf("%d %s %s %s %d %d %s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].seat,p[i].cost,p[i].starttime);

}

system("pause");

system("cls");

break;

}

printf("航班信息增加完毕,欢迎您的使用!!!\n");

admin_menu();

}

}

else

{//删除航班信息

int deleteID;

d:printf("请输入您需要删除的航班ID:");

int flag=0;

scanf("%d",&deleteID);

for(int i=0;i<flightnum;i++)

{

if(deleteID==p[i].planeID)

{

for(int j=i; j<flightnum-1; j++)

{

p[j]=p[j+1];

}

flag++;

}

if(flag)

{

printf("删除成功!\n");

}

else

{

printf("查无此航班!!\n");

}

printf("请输入1以继续删除!!输入2以结束删除\n");

int n;

scanf("%d",&n);

if(n==1)

{

goto d;

}

else

{

printf("删除完毕!\n");

}

system("cls");

}

admin_menu();

}

}

void searchplane(int x)

{ void aftersearch(int choosenum);

int main();

if(flightnum==0)

{

printf("暂无任何航班信息\n");

if(x==1)

{

printf("正为您载入航班信息增加服务");

for(int i=0;i<3;i++)

{

printf(".");

Sleep(500);

}

_flight(1);

}

else if(x==2)

{

printf("请等待管理人员增加航班信息后查询!\n");

system("pause");

system("cls");

main();

}

}

else

{

printf("***请按以下要求输入***\n");

printf("*** 1.以航班ID查询 ***\n");

printf("***2.以航空公司查询***\n");

printf("***3.以起飞时间查询***\n");

printf("***4.以航班起飞地目的地查询***\n");

printf("***5.以乘客信息查找***\n");

int n;

scanf("%d",&n);

system("cls");

if(n==1)

{ int searchID;

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

scanf("%d",&searchID);

int account=0;

for(int i=0;i<flightnum;i++)

{

if(p[i].planeID==searchID)

{ account++;

printf("航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 剩余票数:%d 票价:%d 起飞时间:%s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].ticket,p[i].cost,p[i].starttime);

}

}

printf("已查询到:%d个航班信息\n",account);

system("pause");

aftersearch(x);

}

else if(n==4)

{ char search_start[10],search_arrive[10];

int account=0;

printf("请输入起飞地:");

scanf("%s",search_start);

printf("请输入目的地:");

scanf("%s",search_arrive);

for(int i=0;i<flightnum;i++)

{

if(strcmp(search_start,p[i].startplace)==0)

{

if(strcmp(search_arrive,p[i].arriveplace)==0)

{

account++;

printf("航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 剩余票数:%d 票价:%d 起飞时间:%s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].ticket,p[i].cost,p[i].starttime);

}

}

}

if(account==0)

{

printf("未查询到任何起飞地:%s目的地:%s的航班!",search_start,search_arrive);

}

else

{

printf("已查询到以上有关航班%d个\n",account);

}

system("pause");

aftersearch(x);

}

else if(n==2)

{

char searchcompany[10];

printf("请输入您需要查询的航空公司:");

scanf("%s",searchcompany);

int account =0;

for(int i=0;i<flightnum;i++)

{

if(strcmp(searchcompany,p[i].flightcompany)==0)

{

account++;

printf("航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 剩余票数:%d 票价:%d 起飞时间:%s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].ticket,p[i].cost,p[i].starttime);

}

}

printf("以为您查询到航空公司%s相关航班%d个\n",searchcompany,account);

system("pause");

aftersearch(x);

}

else if(n==3)

{

int account=0;

char searchtime[10];

e:printf("请输入您要查询的起飞时间:");

scanf("%s",searchtime);

for(int i=0;i<flightnum;i++)

{

if(strcmp(searchtime,p[i].starttime)==0)

{

account++;

printf("航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 剩余票数:%d 票价:%d 起飞时间:%s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].ticket,p[i].cost,p[i].starttime);

}

}

printf("已为您查询到%d个%s起飞的航班\n",account,searchtime);

system("pause");

aftersearch(x);

}

else if(n==5)

{ int flag=0;

printf("请输入乘客姓名:");

char tname[10];

i:scanf("%s",tname);

for(int i=0;i<flightnum;i++)

{

if(p[i].ticket<p[i].seat)

{

for(int j=0;j<p[i].seat-p[i].ticket;j++)

{

if(strcmp(tname,p[i].person[j].name)==0)

{

flag=1;

printf("已查询到航班信息:\n");

printf("航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 票价:%d 起飞时间:%s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].cost,p[i].starttime);

printf("乘客姓名:%s\n乘客身份ID:%s\n",p[i].person[j].name,p[i].person[j].ID);

}

}

}

}

if(!flag)

{

printf("查无此人机票信息!!!请重新输入:");

goto i;

}

}

else

{

printf("输入错误!!");

printf("若想退出查询,请输入0,若想继续查询,请输入1");

int num;

scanf("%d",&num);

if(num==1)goto e;

else aftersearch(x);

}

}

}

void aftersearch(int choosenum)

{ void researvation(),cancel();

if(choosenum==1)

{

admin_menu();

}

else

{

if(choosenum==2)

{

printf("尊贵的乘客您好,若需要订票请输入1,退票请输入2,退出请输入3\n");

int n;

scanf("%d",&n);

if(n==1)researvation();

else if(n==2)cancel();

else if(n==3)

{

printf("欢迎您的使用,祝您一路平安!\n");

}

}

else if(choosenum==1)

{

Passenger_menu();

}

}

}

void researvation()

{ int rplaneID;

int main();

char rstartplace[10],rarriveplace[10],rstarttime[10];

if(flightnum==0)

{

printf("暂无航班信息!请等待管理员增加信息后使用!\n");

system("pause");

system("cls");

main();

}

else

{

g:printf("请输入您需要预定的航班ID:");

scanf("%d",&rplaneID);

printf("请输入您需要预定的航班起飞地与目的地:");

scanf("%s %s",rstartplace,rarriveplace);

printf("请输入您需要预定的航班时间:");

scanf("%s",rstarttime);

int flag=0;

for(int i=0;i<flightnum;i++)

{

if(strcmp(rstartplace,p[i].startplace)==0)

{

if(strcmp(rarriveplace,p[i].arriveplace)==0)

{

if(strcmp(rstarttime,p[i].starttime)==0)

{ flag=1;

printf("该航班剩余票数:");

printf("%d \n",p[i].ticket);

if(p[i].ticket>0)

{

printf("确认订购请输入1\n");

int n;

scanf("%d",&n);

if(n==1)

{

h:printf("请输入您的姓名:");

scanf("%s",p[i].person[p[i].seat-p[i].ticket].name);

printf("请输入您的身份ID:");

scanf("%s",p[i].person[p[i].seat-p[i].ticket].ID);

p[i].ticket--;

printf("贵宾%s您好,您所订的航班信息为\n",p[i].person[p[i].seat-p[i].ticket].name);

printf("航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 票价:%d 起飞时间:%s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].cost,p[i].starttime);

printf("机票订购成功!");

system("pause");

system("cls");

Passenger_menu();

}

else

{

printf("???\n");

printf("需要重新查询请输入1,确认订购请输入2\n");

int temp;

scanf("%d",&temp);

if(temp==2)goto g;

else goto h;

}

}

else

{

printf("该航班无剩余机票!!!\n现为您转接机票查询系统");

for(int i=0;i<3;i++)

{

printf(".");

Sleep(500);

}

searchplane(2);

}

}

}

}

}

if(!flag)

{

printf("未查询到您的航班信息!!!请检查您的信息是否有误?\n");

printf("现为您转接机票查询系统");

for(int i=0;i<3;i++)

{

printf(".");

Sleep(500);

}

searchplane(2);

}

}

}

void cancel()

{

int cplaneID;

char cstartplace[10],carriveplace[10],cstarttime[10],cname[10];

int main();

if(flightnum==0)

{

printf("暂无航班信息!请等待管理员增加信息后使用!\n");

system("pause");

system("cls");

main();

}

else

{

printf("请输入您需要退订的航班ID:");

scanf("%d",&cplaneID);

printf("请输入您需要退订的航班起飞地与目的地:");

scanf("%s %s",cstartplace,carriveplace);

printf("请输入您需要退订的航班时间:");

scanf("%s",cstarttime);

printf("请输入您的姓名:");

scanf("%s",cname);

int flag=0;

for(int i=0;i<flightnum;i++)

{

if(strcmp(cstartplace,p[i].startplace)==0)

{

if(strcmp(carriveplace,p[i].arriveplace)==0)

{

if(strcmp(cstarttime,p[i].starttime)==0)

{

for(int j=0;j<p[i].seat-p[i].ticket;j++)

{

if(strcmp(cname,p[i].person[j].name)==0)

{ flag=1;

printf("确认退票请输入1\n");

int temp;

scanf("%d",&temp);

if(temp)

{

printf("退票成功!\n");

p[i].person[j]=p[i].person[j+1];

p[i].ticket++;

Passenger_menu();

}

else

{

printf("贵宾%s退票失败,现为您转接乘客票务系统",cname);

for(int t=0;t<3;t++)

{

printf(".");

Sleep(500);

Passenger_menu();

}

}

}

}

}

}

}

}

if(!flag)

{

printf("未查询到您的航班信息!!!请检查您的信息是否有误?\n");

system("pause");

printf("现为您转接机票查询系统");

for(int i=0;i<3;i++)

{

printf(".");

Sleep(500);

}

searchplane(2);

}

}

}

void _filefunction()

{

FILE *fp;

fp=fopen("information.txt","r+");

printf("需要写入航班信息请输入1,需要读入航班信息请输入2\n");

int n;

scanf("%d",&n);

if(n==1)

{

for(int i=0;i<flightnum;i++)

{

fprintf(fp,"航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 剩余票数:%d 票价:%d 起飞时间:%s\n",p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,p[i].ticket,p[i].cost,p[i].starttime);

}

printf("写入完毕!\n");

}

if(n==2)

{

for(int i=0;i<100;i++)

{

fscanf(fp,"航班ID:%d 航空公司:%s 起飞地:%s 目的地:%s 剩余票数:%d 票价:%d 起飞时间:%s",&p[i].planeID,p[i].flightcompany,p[i].startplace,p[i].arriveplace,&p[i].ticket,&p[i].cost,p[i].starttime);

}

printf("读入完毕!\n");

}

fclose(fp);

admin_menu();

}

有些bug,改不动了,累死.....

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。