版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、火车订票系统源码之邯郸勺丸创作#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>intshoudsave=0 ;int count1=0,count2=0,mark=0,mark1=0 ;/* 定义存储火车信息的结构体*/struct trainchar num10;/* 列车号 */char city10;/* 目的城市 */char takeoffTime10;/*发车时间*/char receiveTime10;/*到达时间*/int pric
2、e;/* 票价 */intbookNum ;/* 票数 */;/* 订票人的信息 */struct mancharnum10;/*ID*/intbookNum ;/* 需求的票数*/ ;/* 定义火车信息链表的结点结构 */ typedefstruct nodestruct train data ;struct node * next ;Node,*Link ;/* 定义订票人链表的结点结构 */typedefstruct peoplestruct man data ;struct people*next ;bookMan,*bookManLink ;/* 初始界面 */voidprintIn
3、terface()puts(”*");puts("* Welcome to use the system of booking tickets”*");puts("*You can choose the operation:*");puts("*1:Insert a train information*");puts("*2:Inquire a train information*");puts("*3:Book a train ticket*");puts("*4:Upda
4、te the train information*");puts("* 5:Advice to you about the train*");puts("*6:save information to file*");puts("*7:quit the system*”puts("*");/* 添加一个火车信息 */voidInsertTraininfo(Link linkhead)struct node *p,*r,*s ;charnum10;r = linkhead ;s = linkhead->next
5、;while(r->next!=NULL)r=r->next ;while(1)printf("please input the number of the train(0-return)");scanf("%s",num);if(strcmp(num,"0")=0)break ;/* 判断是否已经存在*/while(s)if(strcmp(s->data.num,num)=0)printf("the train '%s'has been born!n",num);return ;
6、s = s->next ;p = (struct node*)malloc(sizeof(struct node);strcpy(p->data.num,num);printf("Input the city where the train will reach:");scanf("%s",p->data.city);printf("Input the time which the train take off:");scanf("%s",p->data.takeoffTime);print
7、f("Input the time which the train receive:");scanf("%s",&p->data.receiveTime);printf("Input the price of ticket:");scanf("%d",&p->data.price);printf("Input the number of booked tickets:");scanf("%d",&p->data.bookNum);p-
8、>next=NULL ;r->next=p ;r=p ;shoudsave = 1 ;/* 打印火车票信息 */ voidprintTrainInfo(struct node*p) puts("nThe following is the record you want:"); printf(">>number of train: %sn",p->data.num); printf(">>city the train will reach: %sn",p->data.city); prin
9、tf(">>the time the train take off: %snthe time the train reach: %sn",p->data.takeoffTime,p- >data.receiveTime);printf(">>the price of the ticket: %dn",p->data.price); printf(">>the number of booked tickets: %dn",p- >data.bookNum);struct nod
10、e * Locate1(Link l,charfindmess,char numorcity)Node*r ;if(strcmp(numorcity,"num")=0)r=l->next ;while(r) if(strcmp(r->data.num,findmess)=0) return r ;r=r->next ;else if(strcmp(numorcity,"city")=0)r=l->next ;while(r)if(strcmp(r->data.city,findmess)=0) return r ;r=r-&
11、gt;next ;return 0 ;/* 查询火车信息 */voidQueryTrain(Link l)Node *p ;intsel ;char str15,str210;if(!l->next)printf("There is not any record !");return ;printf("Choose the way:n>>1:according to the number oftrain;n>>2:according to the city:n");scanf("%d",&sel)
12、;if(sel=1)printf("Input the the number of train:");scanf("%s",str1);p=Locate1(l,str1,"num");if(p)printTrainInfo(p);elsemark1=1 ;printf("nthe file can't be found!");else if(sel=2)printf("Input the city:");scanf("%s",str2);p=Locate1(l,str
13、2,"city");if(p)printTrainInfo(p);elsemark1=1 ;printf("nthe file can't be found!");/* 订票子模块*/voidBookTicket(Link l,bookManLink k)Node*r10,*p ;charch,dem ;bookMan*v,*h ;int i=0,t=0 ;charstr10,str110,str210;v=k ;while(v->next!=NULL)v=v->next ;printf("Input the city yo
14、u want to go: ");scanf("%s",&str);p=l->next ;while(p!=NULL)if(strcmp(p->data.city,str)=0)ri=p ;i+;p=p->next ;printf("nnthe number of record have %dn",i);for(t=0;t<i;t+)printTrainInfo(rt);if(i=0)printf("ntttSorry!Can't find the train for you!n");
15、elseprintf("ndo you want to book it?<1/0>n");scanf("%d",&ch);if(ch = 1)h=(bookMan*)malloc(sizeof(bookMan);printf("Input your name: ");scanf("%s",&str1);strcpy(h->,str1);printf("Input your id: ");scanf("%s",&str
16、2);strcpy(h->data.num,str2);printf("Input your bookNum: ");scanf("%d",&dem);h->data.bookNum=dem ;h->next=NULL ;v->next=h ;v=h ;printf("nLucky!you have booked a ticket!");getch();shoudsave=1 ;bookMan*Locate2(bookManLinkk,charfindmess)bookMan*r ;r=k->ne
17、xt ;while(r)if(strcmp(r->data.num,findmess)=0)mark=1 ;return r ;r=r->next ;return 0 ;/* 修改火车信息 */voidUpdateInfo(Link l)Node*p ;charfindmess20,ch ;if(!l->next)printf("nthere isn't record for you to modify!n");return ;elseQueryTrain(l);if(mark1=0)printf("nDo you want to mod
18、ify it?n");getchar();scanf("%c",&ch);if(ch='y');printf("nInput the number of the train:");scanf("%s",findmess);p=Locate1(l,findmess,"num");if(p)printf("Input new number of train:");scanf("%s",&p->data.num);printf(&qu
19、ot;Input new city the train will reach:");scanf("%s",&p->data.city);printf("Input new time the train take off");scanf("%s",&p->data.takeoffTime);printf("Input new time the train reach:");scanf("%s",&p->data.receiveTime);prin
20、tf("Input new price of the ticket:");scanf("%d",&p->data.price);printf("Input new number of people who have booked ticket:");scanf("%d",&p->data.bookNum);printf("nmodifying record is sucessful!n");shoudsave=1 ;elseprintf("tttcan
21、9;t find the record!");elsemark1=0 ;/* 系统给用户的提示信息 */ voidAdvicedTrains(Link l)Node*r ;charstr10;int mar=0 ;r=l->next ;printf("Iuput the city you want to go: ");scanf("%s",str);while(r)if(strcmp(r->data.city,str)=0&&r->data.bookNum<200)mar=1 ;printf("
22、nyou can select the following train!n");printf("nnplease select the fourth operation to bookthe ticket!n");printTrainInfo(r);r=r->next ;if(mar=0)printf("ntttyou can't book any ticket now!n");/* 保管火车信息 */voidSaveTrainInfo(Link l)FILE*fp ;Node*p ;int count=0,flag=1 ;fp=
23、fopen("c:train.txt","wb");if(fp=NULL)printf("the file can't be opened!");return ;p=l->next ;while(p)if(fwrite(p,sizeof(Node),1,fp)=1)p=p->next ;count+;elseflag=0 ;break ;if(flag)printf("the number of the record which have been savedis %dn",count);sho
24、udsave=0 ;fclose(fp);/* 保管订票人的信息 */voidSaveBookmanInfo(bookManLink k)FILE*fp ;bookMan*p ;int count=0,flag=1 ;fp=fopen("c:man.txt","wb");if(fp=NULL)printf("the file can't be opened!");return ;p=k->next ;while(p)if(fwrite(p,sizeof(bookMan),1,fp)=1)p=p->next ;cou
25、nt+;elseflag=0 ;break ;if(flag)printf("the number of the record which have been savedis %dn",count);shoudsave=0 ;fclose(fp);int main()FILE*fp1,*fp2 ;Node*p,*r ;char ch1,ch2 ;Link l ;bookManLink k ;bookMan*t,*h ;intsel ;l=(Node*)malloc(sizeof(Node);l->next=NULL ;r=l ;k=(bookMan*)malloc(s
26、izeof(bookMan);k->next=NULL ;h=k ;fp1=fopen("c:train.txt","ab+");if(fp1=NULL)printf("can't open the file!");return 0 ;while(!feof(fp1)p=(Node*)malloc(sizeof(Node);if(fread(p,sizeof(Node),1,fp1)=1)p->next=NULL ;r->next=p ;r=p ;count1+;fclose(fp1);fp2=fopen("c:man.txt","ab+");if(fp2=NULL)printf("can't open the file!");return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论