C语言编程---火车订票系统源代码参考模板_第1页
C语言编程---火车订票系统源代码参考模板_第2页
C语言编程---火车订票系统源代码参考模板_第3页
C语言编程---火车订票系统源代码参考模板_第4页
C语言编程---火车订票系统源代码参考模板_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

1、火车订票系统源码#include <conio.h>#include <stdio.h>#include <stdlib.h>#include <string.h>int shoudsave=0 ;int count1=0,count2=0,mark=0,mark1=0 ;/*定义存储火车信息的结构体*/struct train char num10;/*列车号*/ char city10;/*目的城市*/ char takeoffTime10;/*发车时间*/ char receiveTime10;/*到达时间*/ int price;/*票价

2、*/ int bookNum ;/*票数*/;/*订票人的信息*/struct man char num10;/*ID*/ char name10;/*姓名*/ int bookNum ;/*需求的票数*/;/*定义火车信息链表的结点结构*/typedef struct node struct train data ; struct node * next ;Node,*Link ;/*定义订票人链表的结点结构*/typedef struct people struct man data ; struct people*next ;bookMan,*bookManLink ;/* 初始界面*/

3、void printInterface() puts("*"); puts("* Welcome to use the system of booking tickets *"); puts("*"); puts("* You can choose the operation: *");1 / 12 puts("* 1:Insert a train information *"); puts("* 2:Inquire a train information *"); puts

4、("* 3:Book a train ticket *"); puts("* 4:Update the train information *"); puts("* 5:Advice to you about the train *"); puts("* 6:save information to file *"); puts("* 7:quit the system *"); puts("*");/*添加一个火车信息*/void InsertTraininfo(Link l

5、inkhead) struct node *p,*r,*s ; char num10; r = linkhead ; s = linkhead->next ; 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-

6、>data.num,num)=0) printf("the train '%s'has been born!n",num); return ; 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("

7、Input the time which the train take off:"); scanf("%s",p->data.takeoffTime); printf("Input the time which the train receive:"); scanf("%s",&p->data.receiveTime); printf("Input the price of ticket:"); scanf("%d",&p->data.price);

8、printf("Input the number of booked tickets:"); scanf("%d",&p->data.bookNum); p->next=NULL ; r->next=p ; r=p ; shoudsave = 1 ; /*打印火车票信息*/void printTrainInfo(struct node*p) puts("nThe following is the record you want:"); printf(">>number of train:

9、 %sn",p->data.num); printf(">>city the train will reach: %sn",p->data.city); printf(">>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-&

10、gt;data.price); printf(">>the number of booked tickets: %dn",p->data.bookNum);struct node * Locate1(Link l,char findmess,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

11、(strcmp(numorcity,"city")=0) r=l->next ; while(r) if(strcmp(r->data.city,findmess)=0) return r ; r=r->next ; return 0 ;/*查询火车信息*/void QueryTrain(Link l) Node *p ; int sel ; char str15,str210; if(!l->next) printf("There is not any record !"); return ; printf("Choo

12、se the way:n>>1:according to the number of train;n>>2:according to the city:n"); scanf("%d",&sel); if(sel=1) printf("Input the the number of train:"); scanf("%s",str1); p=Locate1(l,str1,"num"); if(p) printTrainInfo(p); else mark1=1 ; print

13、f("nthe file can't be found!"); else if(sel=2) printf("Input the city:"); scanf("%s",str2); p=Locate1(l,str2,"city"); if(p) printTrainInfo(p); else mark1=1 ; printf("nthe file can't be found!"); /*订票子模块*/void BookTicket(Link l,bookManLink k)

14、Node*r10,*p ; char ch,dem ; bookMan*v,*h ; int i=0,t=0 ; char str10,str110,str210; v=k ; while(v->next!=NULL) v=v->next ; printf("Input the city you 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

15、 ; 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"); else printf("ndo you want to book it?<1/0>n"); scanf("%d",&ch); if(ch = 1) h=(bookMan*)malloc(sizeo

16、f(bookMan); printf("Input your name: "); scanf("%s",&str1); strcpy(h->,str1); printf("Input your id: "); scanf("%s",&str2); strcpy(h->data.num,str2); printf("Input your bookNum: "); scanf("%d",&dem); h->data.bo

17、okNum=dem ; h->next=NULL ; v->next=h ; v=h ; printf("nLucky!you have booked a ticket!"); getch(); shoudsave=1 ; bookMan*Locate2(bookManLink k,char findmess) bookMan*r ; r=k->next ; while(r) if(strcmp(r->data.num,findmess)=0) mark=1 ; return r ; r=r->next ; return 0 ;/*修改火车信息

18、*/void UpdateInfo(Link l) Node*p ; char findmess20,ch ; if(!l->next) printf("nthere isn't record for you to modify!n"); return ; else QueryTrain(l); if(mark1=0) printf("nDo you want to modify it?n"); getchar(); scanf("%c",&ch); if(ch='y'); printf(&quo

19、t;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("Input new city the train will reach:"); scanf("%s",&p->

20、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); printf("Input new price of the ticket:"); scanf("%d",&

21、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 ; else printf("tttcan't find the record!"); else mark1=0 ; /*系统给用户的提示信息*/void Advi

22、cedTrains(Link l) Node*r ; char str10; 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("nyou can select the following train!n"); printf(&q

23、uot;nnplease select the fourth operation to book the ticket!n"); printTrainInfo(r); r=r->next ; if(mar=0) printf("ntttyou can't book any ticket now!n"); /*保存火车信息*/void SaveTrainInfo(Link l) FILE*fp ; Node*p ; int count=0,flag=1 ; fp=fopen("c:train.txt","wb")

24、; 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+; else flag=0 ; break ; if(flag) printf("the number of the record which have been saved is %dn",count); shoudsave=0 ; fclose(fp);/*保存订票人的

25、信息*/void SaveBookmanInfo(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 ; count+; else flag=0 ;

26、 break ; if(flag) printf("the number of the record which have been saved is %dn",count); shoudsave=0 ; fclose(fp);int main() FILE*fp1,*fp2 ; Node*p,*r ; char ch1,ch2 ; Link l ; bookManLink k ; bookMan*t,*h ; int sel ; l=(Node*)malloc(sizeof(Node); l->next=NULL ; r=l ; k=(bookMan*)malloc

27、(sizeof(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 0 ; whi

温馨提示

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

评论

0/150

提交评论