火车票订票系统_第1页
火车票订票系统_第2页
火车票订票系统_第3页
火车票订票系统_第4页
火车票订票系统_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include<stdio.h>/预处理函数#include<stdlib.h>/标准库函数#include<string.h>/字符串函数#include<conio.h>/通过键盘来控制程序调试int o=0;typedef struct zuoweiint a;/车座int b;/车厢seat;typedef struct Tmess/定义一个结构体存储火车订票的信息 char tnum8;/火车车次char time18;/发车时间char station18;/出发站char station28;/终点站char tujingstat

2、ion8;/途经站char time28;/到站时间char money5;/票价tmess;typedef struct in/定义一个结构体存储火车座位信息tmess data;/调用火车的信息 int reseat;/剩余票 seat seatnum;struct in *next;/定义next指针in;typedef struct pmess/定义一个结构体存储乘客信息char name10;/姓名char tel15;/电话char id20;/身份证char booknum3;/订票数目char checi8;/车次pmess;typedef struct people/乘客信息

3、pmess m;/调用pmess结构体struct people *next;/定义next指针people;struct dingdanint danhao;char tnum8;/火车车次char time18;/发车时间char station18;/出发站char station28;/终点站char tujingstation8;/途经站char time28;/到站时间char money5;char name10;/姓名char tel15;/电话char id20;/身份证char booknum3;/订票数目char seat10;char seatnum10;dingdan

4、100;void end();void admin();void book(in *h,people *k);void cancel();void chaxuntrain(in *h);in *fangshi(in *h,char findmess,char numorcity);void print();void passenger();void putoutticket(in *p);void putticket(in *h);void widows();int main()for(int i=0;i<100;i+)dingdani.danhao=i+1000;in *h,*p;pe

5、ople *k,*v;int wp;h=(in*)malloc(sizeof(in);h->next=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: boo

6、k(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("

7、* # * n");printf(" * # *n");printf(" * # * n");printf(" * # *n");printf(" * # *n");printf(" * # *n");printf(" * # *n");printf(" * # *n");printf(" * # 1,输入车次信息 * n");printf(" * # 2,查询车次 * n");printf("

8、* # 3,订票 * n");printf(" * # 4,订单查询 * n");printf(" * # 5,退票 *n");printf(" * # 6,退出系统 * n");printf(" * # *n");printf("*n");printf(" 请输入选择:");void putticket(in *h)/输入车次信息 in *p,*l,*s;/定义了三个指针变量char num8;/定义了数组p=h;/p指向尾节点l=h->next;/l指针遍

9、历火车信息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)

10、;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); ffl

11、ush(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->seatn

12、um.a=1; s->seatnum.b=1;s->reseat=-1;s->next=NULL;p->next=s;p=s;void putoutticket(in *p)/打印火车信息 printf("n下面是火车信息n");printf("车次:%sn",p->data.tnum);printf("出发时间:%sn",p->data.time1);printf("始发站:%sn",p->data.station1);printf("到达时间:%sn"

13、;,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,char findmess,char numorcity)/查询方式 in *p;if(strcmp(numorcity,"num

14、")=0)/按车次查询p=h->next;while(p)if(strcmp(p->data.tnum,findmess)=0)/查到与车次信息相符的return p;/返回所查到的信息p=p->next;if(strcmp(numorcity,"city")=0)/按城市查询p=h->next;while(p)if(strcmp(p->data.station2,findmess)=0)/查到与城市信息相符的return p;/返回所查到的信息p=p->next;return 0;void chaxuntrain(in *h)

15、/信息查询in *p;char str110;int sel;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)putou

16、tticket(p);else printf("n没有找到n");else if(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;/定义两个p

17、eople结构体下的指针变量int i=0,t=0,wp,i2=1;char str110,str210;/定义两个数组分别用来存储到达城市和车次信息l=h;v=k;extern int o;while(v->next)v=v->next;/v指针遍历火车信息printf("请输入想要达到的城市n");scanf("%s",&str1); fflush(stdin);p=fangshi(l,str1,"city");/按城市搜索的查询方式printf("请输入想要的车次n");scanf(&qu

18、ot;%s",&str2); fflush(stdin);p=fangshi(l,str2,"num");/按车次搜索的查询方式if(!p)printf("n没有找到到达该城市的车次n");return ;else putoutticket(p);/调用outoutticket函数printf("是否要订这个车次?<0/1>n"); scanf("%d",&wp); fflush(stdin); if(wp) s=(people*)malloc(sizeof(people);p

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

20、;,&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<8)sprintf(dingdano.seatnum,"%d/%d",p->seatnum.a,p->seatnum.b);p->seatnum.a=p->seatnum.a+

21、1;elseif(p->seatnum.b<8)sprintf(dingdano.seatnum,"%d/%d",p->seatnum.a,p->seatnum.b);p->seatnum.b=p->seatnum.b+1;p->seatnum.a=1; printf("nOK!订票成功n"); strcpy(dingdano.tnum,p->data.tnum); strcpy(dingdano.time1,p->data.time1); strcpy(dingdano.station1,p->

22、;data.station1);strcpy(dingdano.station2,p->data.station2); strcpy(dingdano.tujingstation,p->data.tujingstation);strcpy(dingdano.time2,p->data.time2);strcpy(dingdano.money,p->data.money); strcpy(,s->); strcpy(dingdano.tel,s->m.tel); strcpy(dingdano.id,s->m.id)

23、; strcpy(dingdano.booknum,s->m.booknum);printf("订单号为:%dn",dingdano.danhao);printf("座位号为:%s(座位号/车厢号)n",dingdano.seatnum); o+; getch(); void cancel()int count=0;extern int o;char q5="失效"int p;int s=0;char passname20;printf("请输入乘客姓名:");scanf("%s/n",p

24、assname);for(int i=0;i<o;i+)if(strcmp(passname,)=0)printf("*n");printf("* 这是订单号为%d的订单信息 *n",dingdani.danhao); printf("*n");printf("* 火车车次:%s *n",dingdani.tnum); printf("* 发车时间:%s *n",dingdani.time1); printf("* 出发站:%s *n",din

25、gdani.station1); printf("* 终点站:%s *n",dingdani.station2); printf("* 途径站:%s *n",dingdani.tujingstation);printf("* 到站时间:%s *n",dingdani.time2); printf("* 票价:%s *n",dingdani.money);printf("* 姓名:%s *n",);printf("* 电话:%s *n",dingdan

26、i.tel);printf("* 身份证:%s *n",dingdani.id);printf("* 订票数目:%s *n",dingdani.booknum);printf("* 座位号:%s<座位号/车厢号> *n",dingdani.seatnum); printf("*n");printf("-n");count+;if(count=0)printf("未找到该乘客的订票信息n");goto low;printf("请输入要删除的订单编号:&qu

27、ot;);scanf("%dn",&p);for(s=0;s<o;s+) if(p=dingdans.danhao) strcpy(dingdans.tnum,q); strcpy(dingdans.time1,q); strcpy(dingdans.station1,q);strcpy(dingdans.station2,q); strcpy(dingdans.tujingstation,q);strcpy(dingdans.time2,q);strcpy(dingdans.money,q); strcpy(,q); strcpy(

28、dingdans.tel,q); strcpy(dingdans.id,q); strcpy(dingdans.booknum,q); printf("*n");printf("* 这是订单号为%d的订单信息 *n",dingdans.danhao); printf("*n");printf("* 火车车次:%s *n",dingdans.tnum); printf("* 发车时间:%s *n",dingdans.time1); printf("* 出发站:%s *n",di

29、ngdans.station1); printf("* 终点站:%s *n",dingdans.station2); printf("* 途径站:%s *n",dingdans.tujingstation);printf("* 到站时间:%s *n",dingdans.time2); printf("* 票价:%s *n",dingdans.money);printf("* 姓名:%s *n",);printf("* 电话:%s *n",dingda

30、ns.tel);printf("* 身份证:%s *n",dingdans.id);printf("* 订票数目:%s *n",dingdans.booknum);printf("* 座位号:%s<座位号/车厢号> *n",dingdani.seatnum); printf("*n");printf("-n"); low:;void admin()int password=1;extern int o;int n;printf("请输入管理员密码:");scanf

31、("%dn",&n); fflush(stdin);if(password=n)for(int i=0;i<o;i+)printf("*n");printf("* 这是订单号为%d的订单信息 *n",dingdani.danhao); printf("*n");printf("* 火车车次:%s *n",dingdani.tnum); printf("* 发车时间:%s *n",dingdani.time1); printf("* 出发站:%s *n&

32、quot;,dingdani.station1); printf("* 终点站:%s *n",dingdani.station2); printf("* 途径站:%s *n",dingdani.tujingstation);printf("* 到站时间:%s *n",dingdani.time2); printf("* 票价:%s *n",dingdani.money);printf("* 姓名:%s *n",);printf("* 电话:%s *n"

33、;,dingdani.tel);printf("* 身份证:%s *n",dingdani.id);printf("* 订票数目:%s *n",dingdani.booknum);printf("* 座位号:%s<座位号/车厢号> *n",dingdani.seatnum); printf("*n");printf("-n");void passenger()char passname20;printf("请输入乘客姓名:");scanf("%s/n",passname);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论