C语言期末程序设计(高铁客运订票系统)

功能描述

高铁客运订票的业务活动包括:查询客运线和客票预定的信息、 客票预定和办理退票等。设计一个计算机程序,使上述任务能借助计 算机来完成。

具体要求

1、 系统必须存储的 数据信息
(1)客运线信息(9 个):高铁抵达城市、出发城市、经停站、列车 号、发车时间、票价、总位置和剩余位置、已定票的客户名单。
(2)客户信息(3 个):客户姓名、证件号、座位号
2、系统能实现的操作和功能
(1)承办订票业务:
A、基础版:根据客户提出的要求(列车抵达城市、发出时间、订 票数量)查询列车信息(包括票价和余票数量),若满足要求,则为 客户办理订票手续,输出座位号。
B、进阶版:根据客户提出的要求(列车抵达城市、发出时间、订 票数量)查询列车信息(包括票价和余票数量)列表(所有符合要求 的列车可以选择展示的排列方式:按照价格递增/发车时间递增/总时 间递增),客户可以选择座位号,若满足要求,则为客户办理订票手 续,输出座位号。
(2)承办退票业务:
A、基础版:根据客户提供的情况(列车号,订票数量),为客户 办理退票手续。
B、进阶版:根据客户提供的情况(列车号,发车时间,身份证 号,订票数量),为客户办理退票手续。如果订购多张票,可以仅退 部分票。
(3)查询功能:(较高要求)
A、查询客运线信息:根据列车号,输出列车发车站、目的地点、 经停站、经停时间、票价、剩余票数和位置等信息。
B、查询客户预订信息:根据客户证件号,输出上车城市,目的地, 经停站,列车号和座位号等信息

【程序主要技术】

(1)本程序主要对于高铁客运订票服务中的座位号的订购于退票进行模拟,涉及到全局变量的定义与座位号订票退票的实现;
(2)全局变量涉及用于绑定个人信息的“01”变量、每辆列车的座位数量;创建关于订票乘客的信息的结构体。

【程序缺点】

(1)本程序中每辆列车的座位号是固定的,起先是采用随机生成的方法,但是会出现重复数的情况,不利于座位号订票后的消失与退票后的出现;
(2)本程序的订票只能单顾客订票,不能同时进行多顾客订票;
(3)本程序未能用文本实现储存顾客的订票信息功能。
(4)本程序需要按照提示输入,否则容易出现死循环。

【程序代码】

若有码友有什么技术探讨,欢迎来讨论!
以下是修改过的全程序代码:
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#include<time.h>

struct Customer{ //用户个人信息储存 
	char train[5][10]={"T12410","G14520","D18430","D36540","G60050"};   //记录用户是否对高铁订票 
	char name[10];    //记录用户名字 
	char Idcard[20];  //记录用户证件号 
	int Seat[5][30];     //记录用户订票座位 
}User;

char trainId[5][10]={"T1241","G1452","D1843","D3654","G6005"};  //记录高铁列车号 
int seat[5][30] = {{385,199,340,379,322,489,20,444,21,163,247,30,380,256,411,453,223,47,333,8,399,363,465},
				{463,164,440,404,366,297,16,435,86,346,363,235,170,54,446,333,294,124,470,481,138,266,135,199,130,370,205,94,408},
				{279,218,270,483,441,175,349,220,378,349,102,80,273,477,281,436},
				{415,36,9,387,393,426,152,376,337,465,471,391},
				{49,435,482,192,393,385,72,273,114,228,496,251,288,502,381,8,350,7,127,164}};  //记录各列车的空余座位号 
int binding=0;  //用于绑定个人信息 
int num_seat[5]={0,0,0,0,0}; //用于记录订购座位个数 
int flag_seat[5]={23,29,16,12,20};  //用于记录每个列车的剩余座位号数量 
int ding_seat[5]={23,29,16,12,20};  //定值座位号,主要用于退票排座位以及个人信息取消绑定 

void Swap(int *x,int *y){  //用于退票以及剩余座位号排序 
	int t=*x;
	*x=*y;
	*y=t;
}

void Check(){  //检查高铁信息 
	char Train[5000];
	FILE* fp;
	int x;
	printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价    剩余座位\n");
	printf("%s    广州    郴州(3分钟)— 衡阳(9分钟)                    长沙     17:49        560      302       %d\n",trainId[0],flag_seat[0]);
	printf("%s    佛山    广州(26分钟)— 衡阳(22分钟)—井冈山(4分钟) 吉安     20:48        540      376       %d\n",trainId[1],flag_seat[1]);
	printf("%s    广州    肇庆(2分钟)— 怀集(2分钟)—贺州(14分钟)    长沙     07:23        570      450       %d\n",trainId[2],flag_seat[2]);
	printf("%s    广州    东莞东(3分钟)— 深圳北(5分钟)—惠州(2分钟) 鲘门     17:05        560      429       %d\n",trainId[3],flag_seat[3]);
	printf("%s    广州南  深圳北(5分钟)— 惠州(2分钟)—汕尾(2分钟)   潮阳     18:44        570      240       %d\n",trainId[4],flag_seat[4]);

//	if((fp = fopen("总高铁.txt","r")) == NULL){
//		perror("fail to read!\n");
//		exit(1);
//	}
//	while(fgets(Train, 5000, fp) != NULL){
//		printf("%s\n",Train);
//	}
	printf("------------------------------------------\n");
	printf("\n");
	printf("\t1.查询已订票乘客名单\n");
	printf("\t2.将列车按票价递增排序\n");
	printf("\t3.将列车按发车时间递增排序\n");
	printf("\t4.将列车按剩余座位递增排序\n");
	printf("\t0.返回主页面\n");
	printf("\n");
	printf("------------------------------------------\n");
}

void Book(char *Id){  //订票服务 
	int i;
	int k,p;
	int a,b; 
	int flag;
//	int len;
	int num;   //订票数量 
	for(i=0;i<5;i++){
		if(Id[4] == trainId[i][4]){
//			printf("i的值为%d\n",i);
			break;
		}
 }
//	printf("%d\n",flag_seat[i]);
//	len=strlen(seat[i]);
	printf("高铁号:%s\n",Id);
	printf("空余座位号:");
	for(int j=0;j<flag_seat[i];j++){
		if(j%5==0){
			printf("\n");
		}
		printf("%d ",seat[i][j]);
	}
reset: 
	printf("\n请输入您需要订票的数量:");
	scanf("%d",&num);
	if(num<0||num>flag_seat[i]){  //订票数量不能超出额定范围 
		printf("输入错误,请重新输入订票数量!\n");
		goto reset;
	}else{
		printf("请输入您需要订票的座位号:"); 
		for(k=0;k<num;k++){
			scanf("%d",&User.Seat[i][k+num_seat[i]]);  //num_seat为客户订票数量 
		}
		for(int a=num_seat[i];a<num+num_seat[i];a++){  //筛选订票座位号是否正确 
			p=0;  //定义标识量,判断座位号是否正确 
			for(b=0;b<flag_seat[i];b++){
				if(User.Seat[i][a] == seat[i][b]){  //若订票座位号正确 
					p=1;
					Swap(&seat[i][b],&seat[i][flag_seat[i]-1]);  //将正确的座位号移到数组尾部 
//					printf("%d\n",flag_seat[i]);
					flag_seat[i]--;  //该列车的可选择的座位总量减一 
					break;
				}
			}
			if(p == 0){
				printf("订购的第%d个座位号输入错误,请重新订购!\n",a+1);
				goto reset; 
			}
		}
		printf("尊敬的%s乘客\n",User.name);
		printf("您已成功订购%s列车的乘车票!\n",Id);
		printf("您订购的位置是:");
		for(int c=num_seat[i];c<k+num_seat[i];c++){
			printf("%d ",User.Seat[i][c]);
		}
		num_seat[i] = num_seat[i]+num;
		printf("\n");
	}
}

void Refund(char *Id){  //退票服务 
	int x;
	int tui;
	int p;
	for(p=0;p<5;p++){
		if(Id[4] == trainId[p][4]){
			break;
		}
	}
//	printf("P:%d\n",p);
	if(num_seat[p] == 0){
		printf("您在%s号列车的票已全部退票\n",Id);  
	}else{
		printf("已检测您在%s号列车有%d张票\n",Id,num_seat[p]);
		printf("您订票的座位号是:");
		for(int j=0;j<num_seat[p];j++){
			printf("%d ",User.Seat[p][j]);
		}
turnx:
		printf("\n");
		printf("请输入您要退票的数量:");
		scanf("%d",&x);
		if(x == num_seat[p]){
			num_seat[p]=0;  //将用户已订票数量清0 
			User.train[p][5] = '0';  //将全部退票的高铁设置为未订票状态 
			flag_seat[p]=flag_seat[p]+x; //将退票高铁的可选择座位加上退票数量 
			printf("您的订票已全部退票!\n");
		}else if(x > 0){
			printf("请输入您需要退票的座位号:");
			for(int i=0;i<x;i++){
				scanf("%d",&tui);
				for(int a=0;a<ding_seat[p];a++){  //把将要退票的座位票移到前面 
					if(tui == seat[p][a]){   //判断退票座位号是否是已订票的座位号 
//						printf("是否交换\n");
				//将退票的座位移到已订票座位号的第一位,便于退票后该座位号上浮 
						Swap(&seat[p][flag_seat[p]],&seat[p][a]); 
						break;
					}
				}
				for(int j=0;j<num_seat[p];j++){   
				if(tui == User.Seat[p][j]){
				//若退票在用户订票的最后一位,则直接将客户座位号数量-1; 
					if(j == num_seat[p]-1){  
						num_seat[p]--;
//						printf("座位数量:%d\n",num_seat);
						flag_seat[p]++;
						break;
					}
				// 若退票不在用户订票的最后一位,则将需要退票移到已订票的最后一位 
					if(j < num_seat[p]-1){ 
					Swap(&User.Seat[p][j],&User.Seat[p][num_seat[p]-1]);
					num_seat[p]--;
//					printf("座位数量:%d\n",num_seat);
					flag_seat[p]++;
					break;
					}	
				}
				}
				printf("%d号座位已退票成功!\n",User.Seat[p][num_seat[p]]);
			}
			printf("您在%s列车还有%d张票\n", Id, num_seat[p]);
			printf("座位号为:");
			for(int k=0;k<num_seat[p];k++){
				printf("%d ",User.Seat[p][k]);
			}
			printf("\n");
		}else{
			printf("票数错误,请重新输入!\n");
			goto turnx;
		}
	}
	
}

CustomerList(char* Id){
	int i;
	FILE* fp;
	char zuowei[5000];
	for(i=0;i<5;i++){
		if(Id[4] == trainId[i][4]){
//			printf("%d",i);
			break;
		}
	}
	if(i == 0){

		printf("座位号      乘客          座位号      乘客       座位号     乘客      座位号      乘客   \n");
		printf("  001       蔡健雅         002        薛之谦       003      邓紫棋      004       许嵩 \n");
		printf("……         ……         ……        ……        ……       ……      ……       …… \n");
		
		if(num_seat[i] != 0){
			for(int j=0;j<num_seat[i];j++){
				printf("\n座位号      乘客\n");
				printf("%d          %s",User.Seat[i][j],User.name);
			}
		}
	}
	if(i == 1){

		printf("座位号      乘客          座位号      乘客       座位号     乘客      座位号      乘客   \n");
		printf("  001       喜羊羊        002        美羊羊       003      沸羊羊      004       懒羊羊 \n");
		printf("……         ……         ……        ……        ……       ……      ……       …… \n");
		if(num_seat[i] != 0){
			for(int j=0;j<num_seat[i];j++){
				printf("\n座位号      乘客\n");
				printf("%d          %s",User.Seat[i][j],User.name);
			}
		}
	}
	if(i == 2){
		printf("座位号      乘客          座位号      乘客       座位号     乘客      座位号      乘客   \n");
		printf("  001        熊大           002         熊二         003        吉吉        004        毛毛 \n");
		printf("……         ……         ……        ……        ……       ……      ……       …… \n");

		if(num_seat[i] != 0){
			for(int j=0;j<num_seat[i];j++){
				printf("\n座位号      乘客\n");
				printf("%d          %s",User.Seat[i][j],User.name);
			}
		}
	}
	if(i == 3){
		printf("座位号      乘客          座位号      乘客       座位号     乘客      座位号      乘客   \n");
		printf("  001       蔡健雅         002        薛之谦       003      邓紫棋      004        许嵩  \n");
		printf("……         ……         ……        ……        ……       ……      ……       …… \n");

		if(num_seat[i] != 0){
			for(int j=0;j<num_seat[i];j++){
				printf("\n座位号      乘客\n");
				printf("%d          %s",User.Seat[i][j],User.name);
			}
		}
	}
	if(i == 4){
		printf("座位号      乘客          座位号      乘客       座位号     乘客      座位号      乘客  \n ");
		printf("  001       蔡徐鲲         002         肖站       003       吴一凡     004        花晨宇 \n");
		printf("……         ……         ……        ……        ……       ……      ……       …… \n");

		if(num_seat[i] != 0){
			for(int j=0;j<num_seat[i];j++){
				printf("\n座位号      乘客\n");
				printf("%d          %s",User.Seat[i][j],User.name);
			}
		}
	}
	printf("\n");
	printf("\n");
	printf("请选择你将进行的操作:\n");
	printf("------------------------------------------\n");
	printf("\n");
	printf("\t1.查询已订票乘客名单\n");
	printf("\t2.将列车按票价递增排序\n");
	printf("\t3.将列车按发车时间递增排序\n");
	printf("\t4.将列车按剩余座位递增排序\n");
	printf("\t0.返回主页面\n");
	printf("\n");
	printf("------------------------------------------\n"); 
}

void sort(int x){
	FILE* fp;
	char paixu[5000];
	if(x == 2){  //票价 
	printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价    剩余座位\n");
	printf("%s    广州南  深圳北(5分钟)— 惠州(2分钟)—汕尾(2分钟)   潮阳     18:44        570      240       %d\n",trainId[4],flag_seat[4]);
	printf("%s    广州    郴州(3分钟)— 衡阳(9分钟)                    长沙     17:49        560      302       %d\n",trainId[0],flag_seat[0]);
	printf("%s    佛山    广州(26分钟)— 衡阳(22分钟)—井冈山(4分钟) 吉安     20:48        540      376       %d\n",trainId[1],flag_seat[1]);
	printf("%s    广州    东莞东(3分钟)— 深圳北(5分钟)—惠州(2分钟) 鲘门     17:05        560      429       %d\n",trainId[3],flag_seat[3]);
	printf("%s    广州    肇庆(2分钟)— 怀集(2分钟)—贺州(14分钟)    长沙     07:23        570      450       %d\n",trainId[2],flag_seat[2]);
	}
	if(x == 3){  //发车时间 
	printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价    剩余座位\n");
	printf("%s    广州    肇庆(2分钟)— 怀集(2分钟)—贺州(14分钟)    长沙     07:23        570      450       %d\n",trainId[2],flag_seat[2]);
	printf("%s    广州    东莞东(3分钟)— 深圳北(5分钟)—惠州(2分钟) 鲘门     17:05        560      429       %d\n",trainId[3],flag_seat[3]);
	printf("%s    广州    郴州(3分钟)— 衡阳(9分钟)                    长沙     17:49        560      302       %d\n",trainId[0],flag_seat[0]);
	printf("%s    广州南  深圳北(5分钟)— 惠州(2分钟)—汕尾(2分钟)   潮阳     18:44        570      240       %d\n",trainId[4],flag_seat[4]);
	printf("%s    佛山    广州(26分钟)— 衡阳(22分钟)—井冈山(4分钟) 吉安     20:48        540      376       %d\n",trainId[1],flag_seat[1]);	
	}
	if(x == 4){  //剩余座位 
		int min[5];
		for(int i=0;i<5;i++){
			min[i]=flag_seat[i];
		}
		for(int i=0;i<4;i++){
			for(int j=i+1;j<5;j++){
				if(min[i] > min[j]){
					Swap(&min[i],&min[j]);
				}
			}
		}
//		for(int i=0;i<5;i++){
//			printf("%d ",min[i]);
//		}
						printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价    剩余座位\n");
		for(int i=0;i<5;i++){
			for(int j=0;j<5;j++){
				if(min[i] == flag_seat[j]){
					if(j == 0){
						printf("%s    广州    郴州(3分钟)— 衡阳(9分钟)                    长沙     17:49        560      302       %d\n",trainId[0],flag_seat[0]);
						break;
					}
					if(j == 1){
						printf("%s    佛山    广州(26分钟)— 衡阳(22分钟)—井冈山(4分钟) 吉安     20:48        540      376       %d\n",trainId[1],flag_seat[1]);
						break;
					}
					if(j == 2){
						printf("%s    广州    肇庆(2分钟)— 怀集(2分钟)—贺州(14分钟)    长沙     07:23        570      450       %d\n",trainId[2],flag_seat[2]);
					}
					if(j == 3){
						printf("%s    广州    东莞东(3分钟)— 深圳北(5分钟)—惠州(2分钟) 鲘门     17:05        560      429       %d\n",trainId[3],flag_seat[3]);
					}
					if(j == 4){
						printf("%s    广州南  深圳北(5分钟)— 惠州(2分钟)—汕尾(2分钟)   潮阳     18:44        570      240       %d\n",trainId[4],flag_seat[4]);
						break;
					}
				}
				

	
	
			}
		}
	}
	
	printf("\n");
	printf("\n");
	printf("请选择你将进行的操作:\n");
	printf("------------------------------------------\n");
	printf("\n");
	printf("\t1.查询已订票乘客名单\n");
	printf("\t2.将列车按票价递增排序\n");
	printf("\t3.将列车按发车时间递增排序\n");
	printf("\t4.将列车按剩余座位递增排序\n");
	printf("\t0.返回主页面\n");
	printf("\n");
	printf("------------------------------------------\n");
}

int main(){
	int n;
	char Id[10]; 
//	int a;
	int flag=0;
	int shengfen=0;  //用于第一次查询个人信息绑定身份证号 
//	srand((unsigned)time(NULL));
//	for(int i=0;i<5;i++){  //随机生成座位号 
//		for(int j=0;j<30;j++){
//			if(i==0 && j==23)
//			break;
//			if(i==1 && j==29)
//			break;
//			if(i==2 && j==16)
//			break;
//			if(i==3 && j==12)
//			break;
//			if(i==4 && j==20)
//			break;
//			a = rand()%500+5;
//			seat[i][j] = a;
//		}
//	}
start:
	printf("-------------高铁客运订票系统-------------\n");
	printf("\n");
	printf("\t1.查询所有高铁信息\n");
	printf("\t2.订票服务\n");
	printf("\t3.退票服务\n");
	printf("\t4.查询个人订票信息\n");
	if(binding == 1){
		printf("\t5.取消个人信息的绑定\n");
	}
	printf("\t0.退出系统\n");
	printf("\n");
	printf("------------------------------------------\n");
	printf("若您是第一次使用本高铁客运订票系统,建议选择选项一!\n");
	printf("请选择你要进行的操作:\n");
	scanf("%d",&n);
	if(n == 1){  //输出所有的列车信息 
		Check();
		int x;
turnx:
		scanf("%d",&x);
		if(x == 0)
		    goto start; 
		if(x == 1){
List:
			printf("请准确输入需要查询的列车号:\n");
			scanf("%s",Id);
			CustomerList(Id);
			goto turnx;
		}
		if(x>=2&&x<=4){
			sort(x);
			goto turnx;
		}
	}else if(n == 2){   //进行订票服务 
		if(binding == 1){
			goto cha;
		}
		printf("为了防止非法购票,请输入您的个人信息!\n");
		printf("请输入您的姓名:");
		scanf("%s",User.name);
		printf("\n");
shuru:
		printf("请输入您的身份证号:"); 
		scanf("%s",User.Idcard);
		if(User.Idcard[17] == '\0'||User.Idcard[18]!='\0'){  //证件号验证 
			printf("请正确输入您的身份证号!\n");
			goto shuru;
		} 
		printf("\n");
		printf("您的姓名为:%s\n",User.name);
		printf("您的身份证号为:%s\n",User.Idcard); 
		binding=1;
cha:
		printf("您的身份已经绑定!\n"); 
		printf("------------------------------------------\n");
cha1:
		printf("请准确输入您需要订购乘车票的高铁号!\n");
		scanf("%s",Id);
		int train_ture;
		for(int j=0;j<5;j++){
			train_ture=strcmp(Id,trainId[j]);
			if(train_ture == 0){
				User.train[j][5]='1';
				flag=1;
				break;
			}
		}
		if(flag == 0){
			printf("输入列车号有误,请重新输入!\n");
			goto cha1;	
		}else{
		Book(Id);
		goto start;
		}
	}else if(n == 3){   //进行退票服务 
turnId:
		int p;
		if(binding == 0){
			printf("尚未绑定个人信息!\n");
			printf("绑定个人信息在订票服务中绑定!\n\n");
			goto start; 
		}
		printf("请输入您需要退票的列车号");
		scanf("%s",Id); 
		for(int j=0;j<5;j++){
			int train_ture=strcmp(Id,trainId[j]);
			if(train_ture == 0){
				flag=1;
				p=j;
				break;
			}
		}//比较输入列车号是否与订票列车号相等 
		if(flag == 1 && User.train[p][5] == '1'){
		Refund(Id);
		goto start;
		}else{
			printf("输入列车号尚未订票或有误!\n");
			goto turnId; 
		}
	}else if(n == 4){    //查询个人信息 
		if(binding == 0){
			printf("个人信息尚未绑定!\n");
			printf("绑定个人信息在订票服务中绑定!\n\n"); 
			goto start;
		}else{
			if(shengfen == 0){
chek1:
				shengfen=1;
				printf("检测到您是第一次查看个人订票信息!\n");
				printf("请输入您身份证号后4位数:");
				char chek[4]; //存入用户输入身份证后四位 
				int j=0;
				for(int i=14;i<18;i++){
					chek[j++]=User.Idcard[i];
				}
				char sf[4];  //用于验证用户身份证后四位 
				scanf("%s",sf);
				int s = strcmp(sf,chek);
				if(s == 0){
					printf("匹配成功!\n");
					printf("\n");
					goto mess;
				}else{
					printf("匹配失败,请重新输入!\n");
					goto chek1;
				}
			}else{
				goto mess;
			}
mess:
				if(User.train[0][5] == '1' && User.Seat[0]>0){
//					FILE* fp;
//					char train_read[5000];
//				if((fp = fopen("T1241.txt","r"))==NULL){
//					perror("file open fail!");
//					exit(1);
//				}
//				while(fgets(train_read,5000,fp)){
//					printf("%s",train_read);
//				}
				printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价\n");
				printf("T1241    广州    郴州(3分钟)— 衡阳(9分钟)                    长沙     17:49        560      302\n"); 
				printf("\n您的姓名:%s\n",User.name);
				printf("您的订票:\n");
				printf("列车号:%s\n",trainId[0]);
				printf("您订购的座位有:");
				for(int i=0;i<num_seat[0];i++){
				printf("%d ",User.Seat[0][i]);
				}
				printf("\n");
				printf("\n");
				}
				if(User.train[1][5] == '1' && User.Seat[1]>0){
//					FILE* fp;
//					char train_read[5000];
//					if((fp = fopen("G1452.txt","r"))==NULL){
//						perror("file open fail!");
//						exit(1);
//					}
//					while(fgets(train_read,5000,fp)){
//						printf("%s",train_read);
//					}
				printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价\n");
				printf("G1452    佛山    广州(26分钟)— 衡阳(22分钟)—井冈山(4分钟) 吉安     20:48        540      376\n");
				printf("\n您的姓名:%s\n",User.name);
				printf("您的订票:\n");
				printf("列车号:%s\n",trainId[1]);
				printf("您订购的座位有:");
				for(int i=0;i<num_seat[1];i++){
				printf("%d ",User.Seat[1][i]);
				}
				printf("\n");
				printf("\n");
				}
				if(User.train[2][5] == '1' && User.Seat[2]>0){
//					FILE* fp;
//					char train_read[5000];
//					if((fp = fopen("D1843.txt","r"))==NULL){
//						perror("file open fail!");
//						exit(1);
//					}
//					while(fgets(train_read,5000,fp)){
//						printf("%s",train_read);
//					}
				printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价\n");
				printf("D1843    广州    肇庆(2分钟)— 怀集(2分钟)—贺州(14分钟)    长沙     07:23        570      450\n");
				printf("\n您的姓名:%s\n",User.name);
				printf("您的订票:\n");
				printf("列车号:%s\n",trainId[2]);
				printf("您订购的座位有:");
				for(int i=0;i<num_seat[2];i++){
				printf("%d ",User.Seat[2][i]);
				}
				printf("\n");
				printf("\n");
				}
				if(User.train[3][5] == '1' && User.Seat[3]>0){
//					FILE* fp;
//					char train_read[5000];
//					if((fp = fopen("D3654.txt","r"))==NULL){
//						perror("file open fail!");
//						exit(1);
//					}
//					while(fgets(train_read,5000,fp)){
//						printf("%s",train_read);
//					}
				printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价\n");
				printf("D3654    广州    东莞东(3分钟)— 深圳北(5分钟)—惠州(2分钟) 鲘门     17:05        560      429\n");
				printf("\n您的姓名:%s\n",User.name);
				printf("您的订票:\n");
				printf("列车号:%s\n",trainId[3]);
				printf("您订购的座位有:");
				for(int i=0;i<num_seat[3];i++){
				printf("%d ",User.Seat[3][i]);
				}
				printf("\n");
				printf("\n");
				}
				if(User.train[4][5] == '1' && User.Seat[4]>0){
//					FILE* fp;
//					char train_read[5000];
//					if((fp = fopen("G6005.txt","r"))==NULL){
//						perror("file open fail!");
//						exit(1);
//					}
//					while(fgets(train_read,5000,fp)){
//						printf("%s",train_read);
//					}
				printf("列车号   出发站  途径站(停留时间)                             终点站    出发时间     总座位    票价\n");
				printf("G6005    广州南  深圳北(5分钟)— 惠州(2分钟)—汕尾(2分钟)   潮阳     18:44        570      240\n");
				printf("\n您的姓名:%s\n",User.name);
				printf("您的订票:\n");
				printf("列车号:%s\n",trainId[4]);
				printf("您订购的座位有:");
				for(int i=0;i<num_seat[4];i++){
				printf("%d ",User.Seat[4][i]);
				}
				printf("\n");
				printf("\n");
				}
				
			goto start;
		}
	}else if(n == 5){
		binding=0;  //绑定值设置为未绑定状态 
		for(int i=0;i<5;i++){  //用户订座位票数量归0 
			num_seat[i]=0;
			User.train[i][5]='0';
		}
		shengfen=0;
		for(int i=0;i<5;i++){   //所有的列车可订座位数量复原 
			flag_seat[i]=ding_seat[i];
		}
		printf("您已经成功取消个人信息的绑定!\n");
		goto start; 
	}else if(n == 0){
		return 0;
	}else{
		printf("输入错误,请重新输入!\n");
		goto start;
	}
	return 0;
}

  • 7
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值