⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 订票系统.cpp

📁 航空订票系统
💻 CPP
📖 第 1 页 / 共 2 页
字号:
						if(p->air_num==tail->air_num)
						{
							p->left=p->left+x;
						}
						p=p->next;
					}
					if(x<tail->ticket_num)
						tail->ticket_num=tail->ticket_num-x;
					if(x==tail->ticket_num)
						q->next=tail->next;
					printf("\n你已经成功完成退票!\n");
				}
				n=0;
			}
		}
		tail=tail->next;
		q=q->next;
	}
	free(tail);
}
void  search_num()//按航班号查找
{
	int air_num;	
	airticket *tail;
	tail=head->next;
	printf("\n请输入所要查找航班号:\n");
	scanf("%d",&air_num);
	if(!head)
	{
		printf("\n信息为空!\n");
		return;
	}
	while(tail!=NULL)
	{
		if(tail->air_num!=air_num&&tail->next==NULL)
		{
			printf("\n没有您要的信息!\n");
			return;
		}
		if(tail->air_num==air_num)
		{
			printf("\n您要的信息已经找到!!!\n\n");
			printf("\n航班号是:%d\n",tail->air_num);
			printf("\n起飞日期是:%s\n",tail->day);
			printf("\n起飞时间是:%s\n",tail->time);
			printf("\n总票数是:%d\n",tail->count);
			printf("\n余票数是:%d\n",tail->left);
			printf("\n起点站是:%s\n",tail->start);
			printf("\n终点站是:%s\n",tail->ends);
			return;
		}		
		tail=tail->next;
	}	
}

void search_day()//按航班日期查找
{
	char day[50];int m;
	airticket *tail;
    tail=head->next;
	printf("\n请输入您要查找的航班的起飞日期:\n");
	scanf("%s",day);
	if(!head)
	{
		printf("\n信息为空!\n");
		return;
	}
	while(tail!=NULL)
	{
		if(strcmp(tail->day,day)!=0&&tail->next==NULL)
			printf("\n没有您要的信息!\n");
		if(strcmp(tail->day,day)==0)
		{
			printf("\n您要的资料已经找到!!!\n");
			printf("\n航班号是:%d\n",tail->air_num);
			printf("\n起飞日期是:%s\n",tail->day);
			printf("\n起飞时间是:%s\n",tail->time);
			printf("\n总票数是:%d\n",tail->count);
			printf("\n余票数是:%d\n",tail->left);
			printf("\n起点站是:%s\n",tail->start);
			printf("\n终点站是:%s\n",tail->ends);
		}		
		tail=tail->next;
	}
	for(m=100;m!=0;)
	{
		printf("\n是否继续?是(按1),否(按0):\n");
		scanf("%d",&m);
		switch(m)
		{
			case 1:
				search_day();break;
			case 0:
				break;
			default:
				printf("\n按键错误!请重新按键!\n");	
		}   
	}
}

void search_place()//按航班起飞抵达地点查找
{
	char start[50];
	char ends[50];
	int m;
	airticket *tail;
    tail=head->next;
	printf("\n请输入您要查找的航班的起飞地点:\n");
	scanf("%s",start);
	printf("\n请输入您要查找的航班的抵达地点:\n");
	scanf("%s",ends);
	if(!head)
	{
		printf("\n信息为空!\n");
		return;
	}
	while(tail!=NULL)
	{
		if((strcmp(tail->start,start)!=0||strcmp(tail->ends,ends)!=0)&&tail->next==NULL)
			printf("\n没有您要的信息!\n");
		if(strcmp(tail->start,start)==0&&strcmp(tail->ends,ends)==0)
		{
			printf("\n您要的资料已经找到!!!\n\n");
			printf("\n航班号是:%d\n",tail->air_num);
			printf("\n起飞日期是:%s\n",tail->day);
			printf("\n起飞时间是:%s\n",tail->time);
			printf("\n总票数是:%d\n",tail->count);
			printf("\n余票数是:%d\n",tail->left);
			printf("\n起点站是:%s\n",tail->start);
			printf("\n终点站是:%s\n",tail->ends);
		}		
		tail=tail->next;
	}
	for(m=100;m!=0;)
	{
		printf("\n是否继续?是(按1),否(按0):\n");
		scanf("%d",&m);
		switch(m)
		{
			case 1:
				search_place();break;
			case 0:
				break;
			default:printf("\n按键错误!请重新按键!\n");
		} 
	}
}


void browseticket()  //查询航线菜单
{
	int i;
	for(i=100;i!=0;)
	{
		printf("\n请选择按键 \n");
		printf("\n按航班号查询请按 1, 按日期查询请按 2, 按起飞抵达地点查询请按 3, 返回请按 0.\n");
		scanf("%d",&i);
		switch(i)
		{ 
			case 1:
				search_num();break;
			case 2:
				search_day();break;
			case 3:
				search_place();break;
			case 0:
				break;
			default:printf("\n按键错误!请重新按键!\n");
		}
	}
}

void xiugai(airticket *head)//修改航班信息
{
	int air_num;
	int air_num1;
	int count;
	int m,n;
	airticket *p;
	customer *q;
	q=head1->next;
	p=head->next;
	printf("\n请输入所要修改的航班的航班号:\n");
	scanf("%d",&air_num);
	while(p!=NULL)
	{
		if(p->air_num!=air_num&&p->next==NULL)
			printf("\n没有您要的信息 !\n");
		if(p->air_num==air_num)
		{
			printf("\n你要修改的航班已经找到!\n");
			printf("\n*********************************************************************\n");
			printf("航班号  起飞日期   起飞时间  起飞地点   抵达地点   总票数   余票数\n");
			printf("\n%-6d  %-10s %-9s %-10s %-10s %-8d %-6d\n",p->air_num,p->day,p->time,p->start,p->ends,p->count,p->left);
			printf("\n请输入新的航班号:\n");
			scanf("%d",&air_num1);
			while(q!=NULL)
			{
				if(q->air_num==p->air_num)
				{
					printf("\n您要修改的航班已有客户订票!是否连同客户信息的航班号一起修改?\n");
					printf("\n是请按任意键,否请按0.\n");
					scanf("%d",&n);
					if(n!=0)
					{
						q->air_num=air_num1;
						p->air_num=air_num1;
					}
					p->air_num=air_num1;
				}
				if(q->air_num!=p->air_num&&q->next==NULL)
					p->air_num=air_num1;
				q=q->next;
			}
			printf("\n请输入新的起飞日期:\n");
			scanf("%s",p->day);
			printf("\n请输入新的起飞时间:\n");
			scanf("%s",p->time);
			printf("\n请输入新的起飞地点:\n");
			scanf("%s",p->start);
			printf("\n请输入新的抵达地点:\n");
			scanf("%s",p->ends);
			printf("\n请输入新的总票数:\n");
			scanf("%d",&count);
			if((count-(p->count-p->left))<0)
			{
				printf("\n您输入的总票数小于已被乘客订的座位数,请您从新输入总票数以保证它大于已订票数:\n");
				scanf("%d",&count);
			}
			p->left=count-p->count+p->left;
			p->count=count;
			printf("\n该航班修改以后为:\n");
			printf("\n*********************************************************************\n");
			printf("\n航班号  起飞日期   起飞时间  起飞地点   抵达地点   总票数   余票数\n");
			printf("\n%-6d  %-10s %-9s %-10s %-10s %-8d %-6d\n",p->air_num,p->day,p->time,p->start,p->ends,p->count,p->left);
			
		}		
		p=p->next;
	}
	for(m=100;m!=0;)
	{
		printf("\n是否继续?是(按1),否(按0):\n");
		scanf("%d",&m);
		switch(m)
		{
		case 1:
			xiugai(head);break;
		case 0:
			break;
        default:
			printf("\n按键错误!请重新选择!\n");
		} 
	}
	
}
void main()    //主函数
{
	int code;
	head=Create(head);
	head1=Create_cus(head1);
	printf("\n按<ENTER>进入菜单:\n");
	scanf("%*2c");
	while(1)
	{
		code=menu();
		switch(code)
		{
			case 0:
				exit(0);			
			case 1:
				int a;
				show(head);
				dingpiao(head);				
				for(a=100;a!=0;)
				{
					printf("\n是否继续订票?按1,继续,按0.退出\n");					
					scanf("%d",&a);
					switch(a)
					{
					case 1:
						dingpiao(head);break;
					case 0:
						break;
					default:printf("\n按键错误!请重新按键!\n");
					}
				}
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;
			case 2:		
				tuipiao(head);			
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;
			case 3:
				head=Del_airticket(head);
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;
			case 4:
				int k;
				Add_airticket(head);
				for(k=100;k!=0;)
				{
					printf("\n是否继续?是请按1,否请按0\n");
					scanf("%d",&k);
					switch(k)
					{ 
					case 1:
						Add_airticket(head);break;
					case 0:
						break;
					default:printf("\n按键错误!请重新按键!\n");
					}
				}
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;

			case 5:
				browseticket();
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;

			case 6:
				xiugai(head);
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;
			case 7:
				show(head);
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;
			case 8:
				show_cus(head1);
				printf("\n按<ENTER>进入菜单:\n");
				scanf("%*2c");break;
			default:
				printf("\n按键错误!请重新按键!\n");
		}
	}
}


⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -