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

📄

📁 数据结构设计作业
💻
字号:
#include <iostream.h>
#include <string.h>

#define MAX_CUS 10                //一架飞机最多可容纳乘客数

struct ticket{                    //一张飞机票包括的信息
	char plant_number;
	char plant_date[10];
	char adress[20];
	char gus_name[20];
	char idnumber[20];
	int tick_number;
	ticket *next;
};

void start();
void addcus(ticket *head);         //定票
void findcus(ticket *head);        //查找
void cutcus(ticket *head);         //退票
void leftticket(ticket *head);     //查询剩余票

void main()
{ 
	char choose;
	ticket *head;
	head = new ticket;
	head->next = NULL;
	
	start();
	while(1)
	{                               //选择服务

		cout<<"请选择您需要的服务:1、定票  2、查票  3、退票  4、退出系统"<<endl;
		cin>>choose;
		switch (choose)
		{
			case '1':addcus(head);break;
			case '2':findcus(head);break;
			case '3':cutcus(head);break;
			case '4':cout<<"谢谢您使用航空售票系统!再见"<<endl;return;
		}
	}
}


void start()
{
	cout<<"*****************************************"<<endl;
	cout<<"***                                   ***"<<endl;
	cout<<"***        欢迎您进入航空售票系统     ***"<<endl;
	cout<<"***                                   ***"<<endl;
	cout<<"*****************************************"<<endl;

}

void addcus(ticket *head)                  //定票
{
	ticket *p;
	p = new ticket;
	char p_num;
	cout<<"请输入您需要预定的飞机航班号(A-D):";
	cin>>p_num;
	p->plant_number = p_num;

	char p_adress[20];
	cout<<"请输入您的目的地:";
	cin>>p_adress;
	strcpy(p->adress, p_adress);

	char p_data[10];
	cout<<"请输入你预定的日期(一—七):";
	cin>>p_data;
	strcpy(p->plant_date, p_data);

	leftticket(head);

	p->next = head->next;
	head->next = p;


	int p_number;
	cout<<endl;
	cout<<"请输入您预定的飞机座位号:";
	cin>>p_number;
	p->tick_number = p_number;

	char p_name[20];
	cout<<"请输入您的姓名:";
	cin>>p_name;
	strcpy(p->gus_name, p_name);

	char p_idnumber[20];
	cout<<"请输入您的身份证号码:";
	cin>>p_idnumber;
	strcpy(p->idnumber, p_idnumber);

	cout<<"定票成功!"<<endl<<endl<<endl<<endl;

}

void cutcus(ticket *head)                       //退票
{
	ticket *p , *q;
	p = head->next;
	q = head;
	char p_num, g_name[20];
	cout<<"请输入需要退的票的航班号(A-D):";
	cin>>p_num;
	cout<<"请输入您的姓名:";
	cin>>g_name;
	while(1)
	{
		if(p->plant_number != p_num)
		{
			p = p->next;
		    q = q->next;
		}
		else if(strcmp(p->gus_name, g_name) != 0)
		{
			p = p->next;
			q = q->next;
		}
		else
		{
			q = p->next;
		    delete p;
			cout<<"退票成功!"<<endl<<endl<<endl<<endl;
			return;
		}
	}
}

void findcus(ticket *head)                      //查询
{
	char p_number;
	int t_number;
	char name[20];
	int i;
	while(1)
	{
		cout<<"根据票号查乘客请按1,根据乘客名查票号请按2:";
		cin>>i;

		//根据飞机票信息查询乘客名
		if(i == 1)
		{
			cout<<"请输入飞机票的航班号(A-B):";
			cin>>p_number;
			cout<<"请输入飞机票的座位号:";
			cin>>t_number;

			while(head->next != NULL)
			{
				if(head->next->plant_number != p_number || head->next->tick_number != t_number)
				{
					head = head->next;
				}
				else
				{
					cout<<"该票的乘客名为:"<<head->next->gus_name<<endl<<endl<<endl<<endl;
					break;
				}
			}
			return;
			
		}

		//根据乘客名查询飞机票信息
		else if(i == 2)
		{
			cout<<"请输入乘客名:";
			cin>>name;

			while(head->next != NULL)
			{
				if(strcmp(name, head->next->gus_name) != 0)
				{
					head = head->next;
				}
				else
				{
					cout<<"该乘客的飞机票的航班号为:"<<head->next->plant_number;
					cout<<"座位号为:"<<head->next->tick_number<<endl<<endl<<endl<<endl;
					break;
				}
			}
			return;
		}
		else
			cout<<"输入有误!请重新输入!"<<endl;
	}
}

void leftticket(ticket *head)                     //查询剩余飞机票
{
	int value[MAX_CUS] = {0};

	while(head->next != NULL)
	{
		head = head->next;
		value[head->tick_number-1] = 1;
	}

	cout<<"剩余的票的座位号为:";

	for(int i = 0; i <= MAX_CUS; i ++)
	{
		if(value[i] == 0)
			cout<<i+1<<" ";
	}
	cout<<endl;
}

⌨️ 快捷键说明

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