火车站购票系统c语言编程,用c语言编写火车购票系统怎么编写,在线等,急!!!...

#include

#include

#include

#include

int shoudsave=0 ;

int count1=0,count2=0,mark=0,mark1=0 ;

/*定义存储火车信息的结构体*/

struct train

{

char num[10];/*列车号*/

char city[10];/*目的城市*/

char takeoffTime[10];/*发车时间*/

char receiveTime[10];/*到达时间*/

int price;/*票价*/

int bookNum ;/*票数*/

};

/*订票人的信息*/

struct man

{

char num[10];/*ID*/

char name[10];/*姓名*/

int bookNum ;/*需求的票数*/

};

/*定义火车信息链表的结点结构*/

typedef struct node

{

struct train data ;

struct node * next ;

}Node,*Link ;

/*定义订票人链表的结点结构*/

typedef struct people

{

struct man data ;

struct people*next ;

}bookMan,*bookManLink ;

/* 初始界面*/

void printInterface()

{

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 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 linkhead)

{

struct node *p,*r,*s ;

char num[10];

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 '%s'has been born!

",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("%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("%d",&p->data。bookNum);

p->next=NULL ;

r->next=p ;

r=p ;

shoudsave = 1 ;

}

}

/*打印火车票信息*/

void printTrainInfo(struct node*p)

{

puts("

The following is the record you want:");

printf(">>number of train: %s

",p->data。

num);

printf(">>city the train will reach: %s

",p->data。city);

printf(">>the time the train take off: %s

the time the train reach: %s

",p->data。

takeoffTime,p->data。receiveTime);

printf(">>the price of the ticket: %d

",p->data。price);

printf(">>the number of booked tickets: %d

",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(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 str1[5],str2[10];

if(!l->next)

{

printf("There is not any record !");

return ;

}

printf("Choose the way:

>>1:according to the number of train;

>>2:according to the city:

");

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 ;

printf("

the 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("

the file can't be found!");

}

}

}

/*订票子模块*/

void BookTicket(Link l,bookManLink k)

{

Node*r[10],*p ;

char ch,dem ;

bookMan*v,*h ;

int i=0,t=0 ;

char str[10],str1[10],str2[10];

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)

{

r[i]=p ;

i ;

}

p=p->next ;

}

printf("

the number of record have %d

",i);

for(t=0;t

");

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("%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("

Lucky!you have booked a ticket!");

getch();

shoudsave=1 ;

}

}

}

bookMan*Locate2(bookManLink k,char findmess[])

{。

全部

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值