C语言编程火车订票系统源代码.doc

上传人:仙人指路1688 文档编号:2384792 上传时间:2023-02-17 格式:DOC 页数:12 大小:31KB
返回 下载 相关 举报
C语言编程火车订票系统源代码.doc_第1页
第1页 / 共12页
C语言编程火车订票系统源代码.doc_第2页
第2页 / 共12页
C语言编程火车订票系统源代码.doc_第3页
第3页 / 共12页
C语言编程火车订票系统源代码.doc_第4页
第4页 / 共12页
C语言编程火车订票系统源代码.doc_第5页
第5页 / 共12页
点击查看更多>>
资源描述

《C语言编程火车订票系统源代码.doc》由会员分享,可在线阅读,更多相关《C语言编程火车订票系统源代码.doc(12页珍藏版)》请在三一办公上搜索。

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 price;/*票价*/int

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

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

4、et *"); 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("*"); /*添加一个火车信息*/voidInsertTraininfo(Link linkhead)struct node *p,*r,*s

5、 ;charnum10;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->data.num,num)=0)printf("the train

6、%shas 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("Input the time which the train take off:");scanf("%

7、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);printf("Input the number of booked tickets:");scanf("

8、;%d",&p->data.bookNum);p->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: %

9、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->data.price);printf(">>the number of booked tickets: %dn",p-

10、>data.bookNum); struct node * 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,

11、findmess)=0)return r ;r=r->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 of train;n>>2:according to the city:n");sc

12、anf("%d",&sel);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 cant be found!");else if(sel=2)printf("Input the city:");scanf("%s"

13、;,str2);p=Locate1(l,str2,"city");if(p)printTrainInfo(p);elsemark1=1 ;printf("nthe file cant 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("

14、;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 ;printf("nnthe number of record have %dn",i); for(t=0;t<i;t+)printTrainInfo(rt);if(i=0)printf("ntttSorry!Cant find the train for

15、 you!n"); 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->data.name,str1);printf("Input your id: ");scanf("

16、%s",&str2);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) bo

17、okMan*r ;r=k->next ;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 isnt record for you to modify!n"); return ;elseQueryTrain(l);if(mark1=0)printf("nDo yo

18、u want to modify 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(

19、"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);p

20、rintf("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("tttca

21、nt 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("nyou

22、 can select the following train!n");printf("nnplease select the fourth operation to book the ticket!n"); printTrainInfo(r);r=r->next ;if(mar=0)printf("ntttyou cant book any ticket now!n"); /*保存火车信息*/voidSaveTrainInfo(Link l)FILE*fp ;Node*p ;int count=0,flag=1 ;fp=fopen(&q

23、uot;c:train.txt","wb");if(fp=NULL)printf("the file cant 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 saved is %dn",count); shoudsave=0 ;f

24、close(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 cant be opened!");return ;p=k->next ;while(p)if(fwrite(p,sizeof(bookMan),1,fp)=1)p=p->next ;count+;elseflag=0 ;br

25、eak ;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 ;intsel ;l=(Node*)malloc(sizeof(Node);l->next=NULL ;r=l ;k=(bookMan*)malloc(sizeof(bookMan);

26、 k->next=NULL ;h=k ;fp1=fopen("c:train.txt","ab+");if(fp1=NULL)printf("cant 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&quo

27、t;,"ab+");if(fp2=NULL)printf("cant open the file!");return 0 ; while(!feof(fp2)t=(bookMan*)malloc(sizeof(bookMan); if(fread(t,sizeof(bookMan),1,fp2)=1)t->next=NULL ;h->next=t ;h=t ;count2+;fclose(fp2);while(1)system("cls");printInterface();printf("please choo

28、se the operation: ");scanf("%d",&sel);system("cls");if(sel=8)if(shoudsave=1)getchar();printf("nthe file have been changed!do you want to save it(y/n)?n"); scanf("%c",&ch1);if(ch1=y|ch1=Y)SaveBookmanInfo(k);SaveTrainInfo(l);printf("nThank you!

29、You are welcome toon");break ; switch(sel)case 1 :InsertTraininfo(l);break ;case 2 :QueryTrain(l);break ;case 3 :BookTicket(l,k);break ;case 4 :UpdateInfo(l);break ;case 5 :AdvicedTrains(l);break ;case 6 :SaveTrainInfo(l);SaveBookmanInfo(k);break ;case 7 :return 0;printf("nplease press any key to continue.");getch();return 0;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 建筑/施工/环境 > 项目建议


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号