火车票订票系统_火车票订票管理系统

2020-02-27 其他范文 下载本文

火车票订票系统由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“火车票订票管理系统”。

#include//预处理函数 #include//标准库函数 #include//字符串函数

#include//通过键盘来控制程序调试 int o=0;typedefstructzuowei { int a;//车座 int b;//车厢 }seat;

typedefstructTme{//定义一个结构体存储火车订票的信息 chartnum[8];//火车车次

char time1[8];//发车时间

char station1[8];//出发站

char station2[8];//终点站

chartujingstation[8];//途经站

char time2[8];//到站时间

char money[5];//票价

}tme;typedefstruct in{//定义一个结构体存储火车座位信息

tme data;//调用火车的信息 int reseat;//剩余票 seatseatnum;struct in *next;//定义next指针 }in;typedefstructpme{//定义一个结构体存储乘客信息

char name[10];//姓名

chartel[15];//电话

char id[20];//身份证

charbooknum[3];//订票数目

charcheci[8];//车次 }pme;typedefstruct people{//乘客信息

pme m;//调用pme结构体

struct people *next;//定义next指针 }people;structdingdan{ intdanhao;chartnum[8];//火车车次

char time1[8];//发车时间

char station1[8];//出发站

char station2[8];//终点站

chartujingstation[8];//途经站

char time2[8];//到站时间

char money[5];char name[10];//姓名

chartel[15];//电话

char id[20];//身份证

charbooknum[3];//订票数目

char seat[10];charseatnum[10];}dingdan[100];

void end();void admin();void book(in *h,people *k);void cancel();voidchaxuntrain(in *h);in *fangshi(in *h,charfindme[],charnumorcity[]);void print();void paenger();voidputoutticket(in *p);voidputticket(in *h);void widows();

int main(){ for(inti=0;inext=NULL;k=(people*)malloc(sizeof(people));k->next=NULL;p=h;v=k;while(1){

system(“cls”);

widows();

scanf(“%d”,&wp);

fflush(stdin);

system(“cls”);

switch(wp)

{

case 1:

putticket(h);break;

case 2:

chaxuntrain(p);break;

case 3:

book(p,v);break;

case 4: print();break;

case 5:

cancel();break;

default:break;

}

printf(“n请按任何键结束n”);getch();} return 0;}

void end(){//结束页面函数

puts(“********************************************”);printf(“ 谢谢使用n”);}

void widows(){//初始页面函数;

printf(“*****************************************************************************n”);printf(“ *

# * n”);printf(“ * @@

# * n”);printf(“ * @@@@

# * n”);printf(“ * @@@@@@

# *n”);printf(“ *

* n”);printf(“ *

### *n”);printf(“ *

###### *n”);printf(“ *

#### *n”);printf(“ *

*n”);printf(“ *

### *n”);printf(“ *

# ☆1,输入车次信息 * n”);printf(“ *

# ☆2,查询车次 * n”);printf(“ *

# ☆3,订票 * n”);printf(“ *

# ☆4,订单查询 * n”);printf(“ *

# ☆5,退票 *n”);printf(“ *

# ☆6,退出系统 * n”);printf(“ *

##### *n”);printf(“*****************************************************************************n”);printf(“ 请输入选择:”);

}

voidputticket(in *h){//输入车次信息

in *p,*l,*s;//定义了三个指针变量

charnum[8];//定义了数组

p=h;//p指向尾节点

l=h->next;//l指针遍历火车信息

while(p->next){

p=p->next;} while(1){

printf(“请输入要添加的火车车次(按0退出)n”);

scanf(“%s”,&num);fflush(stdin);

if(strcmp(num,“0”)==0)

break;

while(l)

{

if(strcmp(l->data.tnum,num)==0)

{//比较的输入车次与之前存在车次

printf(“该车次已经存在n”);

return;

}

l=l->next;//l++

}

s=(in *)malloc(sizeof(in));

strcpy(s->data.tnum,num);//复制函数,加入新的车次

printf(“请输入出发时间:n”);

scanf(“%s”,&s->data.time1);fflush(stdin);

printf(“请输入出发城市:n”);

scanf(“%s”,&s->data.station1);fflush(stdin);

printf(“请输入到达时间:n”);

scanf(“%s”,&s->data.time2);fflush(stdin);

printf(“请输入到达城市:n”);

scanf(“%s”,&s->data.station2);fflush(stdin);

printf(“请输入途径大站:n”);scanf(“%s”,&s->data.tujingstation);fflush(stdin);

printf(“请输入票价:n”);

scanf(“%s”,&s->data.money);fflush(stdin);s->seatnum.a=1;s->seatnum.b=1;

s->reseat=-1;

s->next=NULL;

p->next=s;

p=s;} }

voidputoutticket(in *p){//打印火车信息

printf(“n下面是火车信息n”);printf(“@车次:%sn”,p->data.tnum);printf(“@出发时间:%sn”,p->data.time1);printf(“@始发站:%sn”,p->data.station1);printf(“@到达时间:%sn”,p->data.time2);printf(“@终点站:%sn”,p->data.station2);printf(“@途经站:%sn”,p->data.tujingstation);printf(“@票价:%sn”,p->data.money);printf(“@剩余票数:%d”,1000-p->reseat);}

in *fangshi(in *h,charfindme[],charnumorcity[]){//查询方式

in *p;if(strcmp(numorcity,“num”)==0){//按车次查询

p=h->next;

while(p)

{

if(strcmp(p->data.tnum,findme)==0){//查到与车次信息相符的return p;//返回所查到的信息

}

p=p->next;

} }

if(strcmp(numorcity ,“city”)==0){//按城市查询

p=h->next;

while(p){

if(strcmp(p->data.station2,findme)==0){//查到与城市信息相符的return p;//返回所查到的信息

}

p=p->next;

}

}

return 0;}

voidchaxuntrain(in *h){//信息查询

in *p;char str1[10];intsel;if(h->next==NULL){

printf(“没有任何火车信息n”);

return;} printf(“n请选择查询方式n1.车次查询 2.城市查询n”);scanf(“%d”,&sel);fflush(stdin);if(sel==1){

printf(“请输入车次n”);

scanf(“%s”,str1);

fflush(stdin);

p=fangshi(h,str1,“num”);

if(p){

putoutticket(p);

}

else {

printf(“n没有找到n”);

} } elseif(sel==2){

printf(“请输入到达城市n”);

scanf(“%s”,str1);

fflush(stdin);

p=fangshi(h,str1,“city”);

if(p){

putoutticket(p);

}

else {

printf(“n没有找到n”);

} } }

void book(in *h,people *k){//订票输入乘客信息,订票数

in *p,*l;//定义两个in结构体下的指针变量

people *v,*s;//定义两个people结构体下的指针变量

inti=0,t=0,wp,i2=1;char str1[10],str2[10];//定义两个数组分别用来存储到达城市和车次信息

l=h;v=k;externint o;while(v->next)v=v->next;//v指针遍历火车信息

printf(“请输入想要达到的城市n”);scanf(“%s”,&str1);fflush(stdin);p=fangshi(l,str1,“city”);//按城市搜索的查询方式

printf(“请输入想要的车次n”);scanf(“%s”,&str2);fflush(stdin);p=fangshi(l,str2,“num”);//按车次搜索的查询方式

if(!p){

printf(“n没有找到到达该城市的车次n”);

return;}

else {

putoutticket(p);//调用outoutticket函数

printf(“是否要订这个车次?n”);

scanf(“%d”,&wp);fflush(stdin);if(wp){

s=(people*)malloc(sizeof(people));

printf(“请输入姓名:”);scanf(“%s”,&s->m.name);fflush(stdin);printf(“请输入电话:”);scanf(“%s”,&s->m.tel);fflush(stdin);printf(“请输入身份证号:”);scanf(“%s”,&s->m.id);fflush(stdin);printf(“请输入要订的票数:”);scanf(“%s”,&s->m.booknum);

fflush(stdin);

s->next=NULL;v->next=s;v=s;strcpy(s->m.checi,p->data.tnum);p->reseat=p->reseat+(int)(atof(s->m.booknum));

if(p->seatnum.a

{

sprintf(dingdan[o].seatnum,“%d/%d”,p->seatnum.a,p->seatnum.b);

p->seatnum.a=p->seatnum.a+1;

}

else

if(p->seatnum.b

{

sprintf(dingdan[o].seatnum,“%d/%d”,p->seatnum.a,p->seatnum.b);

p->seatnum.b=p->seatnum.b+1;

p->seatnum.a=1;

} printf(“nOK!订票成功n”);strcpy(dingdan[o].tnum,p->data.tnum);strcpy(dingdan[o].time1,p->data.time1);strcpy(dingdan[o].station1,p->data.station1);

strcpy(dingdan[o].station2,p->data.station2);strcpy(dingdan[o].tujingstation,p->data.tujingstation);

strcpy(dingdan[o].time2,p->data.time2);

strcpy(dingdan[o].money,p->data.money);strcpy(dingdan[o].name,s->m.name);strcpy(dingdan[o].tel,s->m.tel);strcpy(dingdan[o].id,s->m.id);strcpy(dingdan[o].booknum,s->m.booknum);

printf(“订单号为:%dn”,dingdan[o].danhao);

printf(“座位号为:%s(座位号/车厢号)n”,dingdan[o].seatnum);o++;getch();} } }

void cancel(){ int count=0;externint o;char q[5]=“失效”;int p;int s=0;charpaname[20];printf(“请输入乘客姓名:”);scanf(“%s/n”,paname);for(inti=0;i

{

printf(“*********************************************************n”);

printf(“***** 这是订单号为%d的订单信息 *****n”,dingdan[i].danhao);printf(“*********************************************************n”);

printf(“***** 火车车次:%s *****n”,dingdan[i].tnum);

printf(“**** 发车时间:%s ****n”,dingdan[i].time1);printf(“*** 出发站:%s ***n”,dingdan[i].station1);printf(“** 终点站:%s **n”,dingdan[i].station2);printf(“* 途径站:%s *n”,dingdan[i].tujingstation);

printf(“* 到站时间:%s *n”,dingdan[i].time2);printf(“* 票价:%s *n”,dingdan[i].money);

printf(“** 姓名:%s **n”,dingdan[i].name);

printf(“*** 电话:%s ***n”,dingdan[i].tel);

printf(“**** 身份证:%s ****n”,dingdan[i].id);

printf(“***** 订票数目:%s *****n”,dingdan[i].booknum);

printf(“****** 座位号:%s ******n”,dingdan[i].seatnum);printf(“*********************************************************n”);

printf(“--------------n”);count++;} } if(count==0){ printf(“未找到该乘客的订票信息n”);goto low;} printf(“请输入要删除的订单编号:”);scanf(“%dn”,&p);for(s=0;s

strcpy(dingdan[s].time1,q);

strcpy(dingdan[s].station1,q);

strcpy(dingdan[s].station2,q);

strcpy(dingdan[s].tujingstation,q);

strcpy(dingdan[s].time2,q);

strcpy(dingdan[s].money,q);

strcpy(dingdan[s].name,q);

strcpy(dingdan[s].tel,q);

strcpy(dingdan[s].id,q);

strcpy(dingdan[s].booknum,q);printf(“*********************************************************n”);

printf(“***** 这是订单号为%d的订单信息 *****n”,dingdan[s].danhao);printf(“*********************************************************n”);

printf(“***** 火车车次:%s *****n”,dingdan[s].tnum);

printf(“**** 发车时间:%s ****n”,dingdan[s].time1);printf(“*** 出发站:%s ***n”,dingdan[s].station1);printf(“** 终点站:%s **n”,dingdan[s].station2);printf(“* 途径站:%s *n”,dingdan[s].tujingstation);

printf(“* 到站时间:%s *n”,dingdan[s].time2);printf(“* 票价:%s *n”,dingdan[s].money);

printf(“** 姓名:%s **n”,dingdan[s].name);

printf(“*** 电话:%s ***n”,dingdan[s].tel);

printf(“**** 身份证:%s ****n”,dingdan[s].id);

printf(“***** 订票数目:%s *****n”,dingdan[s].booknum);

printf(“****** 座位号:%s ******n”,dingdan[i].seatnum);printf(“*********************************************************n”);

printf(“--------------n”);} } low:;} void admin(){ int paword=1;externint o;int n;printf(“请输入管理员密码:”);scanf(“%dn”,&n);fflush(stdin);if(paword==n){ for(inti=0;i

{

printf(“*********************************************************n”);

printf(“***** 这是订单号为%d的订单信息 *****n”,dingdan[i].danhao);printf(“*********************************************************n”);

printf(“***** 火车车次:%s *****n”,dingdan[i].tnum);

printf(“**** 发车时间:%s ****n”,dingdan[i].time1);printf(“*** 出发站:%s ***n”,dingdan[i].station1);printf(“** 终点站:%s **n”,dingdan[i].station2);printf(“* 途径站:%s *n”,dingdan[i].tujingstation);

printf(“* 到站时间:%s *n”,dingdan[i].time2);printf(“* 票价:%s *n”,dingdan[i].money);

printf(“** 姓名:%s **n”,dingdan[i].name);

printf(“*** 电话:%s ***n”,dingdan[i].tel);

printf(“**** 身份证:%s ****n”,dingdan[i].id);

printf(“***** 订票数目:%s *****n”,dingdan[i].booknum);

printf(“****** 座位号:%s ******n”,dingdan[i].seatnum);printf(“*********************************************************n”);

printf(“--------------n”);

} } }

void paenger(){ charpaname[20];printf(“请输入乘客姓名:”);scanf(“%s/n”,paname);fflush(stdin);for(inti=0;i

{

printf(“*********************************************************n”);

printf(“***** 这是订单号为%d的订单信息 *****n”,dingdan[i].danhao);printf(“*********************************************************n”);

printf(“***** 火车车次:%s *****n”,dingdan[i].tnum);

printf(“**** 发车时间:%s ****n”,dingdan[i].time1);printf(“*** 出发站:%s ***n”,dingdan[i].station1);printf(“** 终点站:%s **n”,dingdan[i].station2);printf(“* 途径站:%s *n”,dingdan[i].tujingstation);

printf(“* 到站时间:%s *n”,dingdan[i].time2);printf(“* 票价:%s *n”,dingdan[i].money);

printf(“** 姓名:%s **n”,dingdan[i].name);

printf(“*** 电话:%s ***n”,dingdan[i].tel);

printf(“**** 身份证:%s ****n”,dingdan[i].id);

printf(“***** 订票数目:%s *****n”,dingdan[i].booknum);

printf(“****** 座位号:%s ******n”,dingdan[i].seatnum);printf(“*********************************************************n”);

printf(“--------------n”);

} } }

void print(){ printf(“*************************************************n”);printf(“*** 1:管理员登陆(需管理员密码)***n”);printf(“*** 2:乘客登陆 ***n”);printf(“*************************************************n”);printf(“请选择登录方式:”);int m;scanf(“%dn”,&m);fflush(stdin);switch(m){case 1:admin();break;case 2:paenger();break;default:break;} }

《火车票订票系统.docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
火车票订票系统
点击下载文档
相关专题 火车票订票管理系统 订票 火车票 系统 火车票订票管理系统 订票 火车票 系统
[其他范文]相关推荐
    [其他范文]热门文章
      下载全文