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

📄 airinfo.cpp

📁 一个简单的机票预订系统 个人觉得还好了
💻 CPP
📖 第 1 页 / 共 3 页
字号:
		{
			(*v_Iter)->PrintInfo();
			break;
		}
	}
	if(v_Iter==vec_Air->end())//找到最后没找到相应的航班
	{
		cout<<"\t对不起,没有此航班!"<<endl;
		cout<<"\t按任意键返回主界面!";
		cin.get();
		cin.get();
		return ;
	}
	char ch='n';
	cout<<"\t是否确定要修改此航班信息?(y/n):";
	cin>>ch;
	if(ch=='n')return ;//取消修改航班信息

	char choice='p';
	while(choice!='y')
	{
		cout<<endl;
		cout<<"\t1.修改航班编号"<<"\t\t\t2.修改航班起飞站"<<endl;
		cout<<"\t3.修改航班终点站"<<"\t\t4.修改航班起飞时间(日期)"<<endl;
		cout<<"\t5.修改航班总飞行时间(小时)"<<"\t6.修改航班总票数"<<endl;
		cout<<"\t7.修改航班剩余票数"<<"\t\t8.修改等候订本航班票的客户"<<endl;
		cout<<"\t0.返回主界面"<<endl<<endl;

		cout<<"\t请选择(0-8):";
		cin>>choice;
		switch(choice)
		{
		case '1'://修改航班编号
			{
				string tem;
				cout<<"\t请修改本航班编号(输入新编号):";
	    		cin>>tem;
		    	(*v_Iter)->SetNum(tem);//设计航班编号
			    cout<<"\t成功修改航班编号!";
		    	cin.get();
		    	cin.get();
			    break;
			}
	    case '2'://修改航班起飞站
			{
			    string tem;
			    cout<<"\t请修改本航班起飞站(输入新起飞站):";
		    	cin>>tem;
			    (*v_Iter)->SetStart(tem);//设计航班起飞站
		    	cout<<"\t成功修改航班起飞站!";
		    	cin.get();
		    	cin.get();
		    	break;
			}
    	case '3'://修改航班终点站
			{
		    	string tem;
		    	cout<<"\t请修改本航班终点站(输入新终点站):";
			    cin>>tem;
			    (*v_Iter)->SetEnd(tem);//设计航班终点站
			    cout<<"\t成功修改航班终点站!";
		     	cin.get();
			    cin.get();
		    	break;
			}
	    case '4'://修改航班起飞时间(日期)
			{
			    string tem;
		    	cout<<"\t请修改本航班起飞日期(输入新日期):";
			    cin>>tem;
			    (*v_Iter)->SetTime(tem);//设计航班起飞时间
			    cout<<"\t成功修改航班起飞时间(日期)!";
			    cin.get();
			    cin.get();
		    	break;
			}
	    case '5'://修改航班总飞行时间(小时)
			{
			    string tem;
			    cout<<"\t请修改本航班总飞行时间(小时):";
			    cin>>tem;
			    (*v_Iter)->SetFlyTime(tem);//设计航班飞行时间
			    cout<<"\t成功修改航班飞行时间!";
			    cin.get();
			    cin.get();
			    break;
			}
	    case '6'://修改航班总票数
			{
		    	string tem;
			    cout<<"\t请修改本航班总票数(输入新票数):";
			    cin>>tem;
                int count=atoi(tem.c_str());
			    (*v_Iter)->SetCount(count);//设计航班总票数
			    cout<<"\t成功修改航班票数!";
			    cin.get();
			    cin.get();
			    break;
			}
	    case '7'://修改航班剩余票数
			{
			    int left;
			    cout<<"\t请输入要修改后的航班剩余票数:";
			    cin>>left;
			    (*v_Iter)->SetLeftCount(left);
			    cout<<"\t成功修改航班剩余票数!";
			    cin.get();
			    cin.get();
			    break;
			}
	    case '8'://修改等候订本航班票的客户
			{
				string strID;//客户ID
				cout<<"\t请选择(输入)要修改的客户ID号:";
			    cin>>strID;
				for(int i=0;i<(*v_Iter)->m_wPerson.size();i++)
				{
					if((*v_Iter)->m_wPerson[i].m_strID==strID)//查找相应ID号的客户
					{
						cout<<"\t所选客户信息如下:"<<endl;
						cout<<"\t客户ID:"<<(*v_Iter)->m_wPerson[i].m_strID<<"\t"
							<<"姓名:"<<(*v_Iter)->m_wPerson[i].m_strName<<"\t"
							<<"所订票数:"<<(*v_Iter)->m_wPerson[i].m_nWant<<endl;
						char modify='n';
						cout<<"\t是否要修改此客户的信息?(y/n):";
						cin>>modify;
						if(modify=='y')//确定修改此客户的信息
						{//重新输入此客户的所有信息
							cout<<"\t请输入修改后的客户ID号:";
							cin>>(*v_Iter)->m_wPerson[i].m_strID;
							cout<<"\t请输入修改后的客户姓名:";
							cin>>(*v_Iter)->m_wPerson[i].m_strName;
							cout<<"\t请输入修改后的客户订票数量:";
							cin>>(*v_Iter)->m_wPerson[i].m_nWant;

							cout<<endl<<endl;
							cout<<"\t成功修改客户信息!"<<endl<<endl;
							cin.get();
							cin.get();
						}
					}
				}

			    break;
			}
	    case '0'://返回主界面
			{
			    cout<<"\t确定返回吗?(y/n):";
			    cin>>choice;
			    break;
			}
	    default:break;
		}
	}
}
/////////////////////////////
void DelAirInfo(vector<AirInfo*> *vec_Air)//删除航班信息
{
	vector<AirInfo*>::iterator v_Iter;

	AirInfo* pA;
	system("cls");
	cout<<endl;
	int flag=0;
	char del='n';
	string num;
	cout<<"\t请输入要删除的航班编号:";
	cin>>num;
	for(v_Iter=vec_Air->begin();v_Iter!=vec_Air->end();v_Iter++)
	{
		if((*v_Iter)->GetNum()==num)//相等说明找到要删除的航班编号
		{
			(*v_Iter)->PrintInfo();//输出此航班信息记录
			flag=1;
			cout<<"\t确定要删除本航班所有信息吗?(y/n):";
			cin>>del;
			if(del=='n'||del=='N')return ;//取消删除
			pA=*v_Iter;
			delete pA;
			vec_Air->erase(v_Iter);//删除此航班记录
			cout<<"\t成功删除本航班信息!"<<endl;
			break;
		}
	}
	if(flag==0)
	{
		cout<<endl;
		cout<<"\t不存在些航班信息!"<<endl;
	}
	cout<<"\t按任意键返回主界面";
	cin.get();
	cin.get();

}
//////////////////////////////////////////////
void ScanAirInfo(vector<AirInfo*> vec_Air)//浏览总航班信息
{
	system("cls");//清屏
	for(int i=0;i<vec_Air.size();i++)
	{
		vec_Air[i]->PrintInfo();
	}
	cout<<endl;
	cout<<"\t按任意键返回主界面!";
	cin.get();
	cin.get();
}
///////////////////////////////////////////////////
void SaveAirInfo(vector<AirInfo*> vec_Air)//所有航班信息记录存盘
{
	fstream out;//文件对象
	out.open("AirInfo.txt",ios::out);//打开存盘文件
	/*********保存航班信息到文件************/
	for(int i=0;i<vec_Air.size();i++)//格式化存盘
	{
		out<<vec_Air[i]->GetNum()<<"\t";//航班号
		out<<vec_Air[i]->GetStart()<<"\t";//起飞站
		out<<vec_Air[i]->GetEnd()<<"\t";//终点站
		out<<vec_Air[i]->GetTime()<<"\t";//起飞时间
		out<<vec_Air[i]->GetFlyTime()<<"\t";//飞行总时间
		out<<vec_Air[i]->GetCount()<<"\t";//航班票数
		out<<vec_Air[i]->GetLeftCount()<<"\t";//剩余票数
        out<<vec_Air[i]->m_haveBook.size()<<"\t";//已订票的客户数
        for(int k=0;k<vec_Air[i]->m_haveBook.size();k++)//有size个客户等候订本航班的票
		{
			out<<vec_Air[i]->m_haveBook[k].m_strID<<"\t";//客户ID号
			out<<vec_Air[i]->m_haveBook[k].m_strName<<"\t";//客户姓名
			out<<vec_Air[i]->m_haveBook[k].m_nWant<<"\t";//所订票数量
		}
		out<<vec_Air[i]->GetWaitCount()<<"\t";//等候订票的客户数
        for(int j=0;j<vec_Air[i]->m_wPerson.size();j++)//有size个客户等候订本航班的票
		{
			out<<vec_Air[i]->m_wPerson[j].m_strID<<"\t";//客户ID号
			out<<vec_Air[i]->m_wPerson[j].m_strName<<"\t";//客户姓名
			out<<vec_Air[i]->m_wPerson[j].m_nWant<<"\t";//所订票数量
		}
		out<<endl;//文件换行
	}
	/***************************************/
	out.close();//关闭文件,保存完闭
	cout<<"\t保存成功!";
	cin.get();
	cin.get();
}
//////////////////////////////////////////////////////
int SystemKey()//进入本系统的密码函数
{
	string strKey="love";
	string key;

	cout<<"\t请输入密码然后才能进入系统:";
	cin>>key;

	if(key==strKey)
	{
		cout<<"\t恭喜您!可以进入系统!";
		cin.get();
		cin.get();
		return 1;//密码正确
	}
	else 
	{
		cout<<"\t对不起,密码不正确!即将退出!";
		cin.get();
		cin.get();
		return 0;//密码错误
	}

}
//////////////////////////////////////////////////////
void main()
{
	vector<AirInfo*> vec_Air; //用于对所有航班信息记当进行各种操作,相当于内存暂存器
	vector<AirInfo*>::iterator  v_Iter;//用于对vec_Air进行遍历的AirInfo类型的指针
	AirInfo* pA;

//	if(SystemKey()==0)return ;//检测密码
	LoadData(&vec_Air);//导入数据
	char choice='p';
	while(choice!='0')
	{
		system("cls");//清屏
		cout<<endl;
		cout<<"\t******************航空订票系统********************"<<endl;
		cout<<"\t******广西工学院计算机工程系计035班  梁姣莹******"<<endl;
		cout<<"\t\t\t"<<endl;
		cout<<"\t\t1.输入航班信息"<<"\t\t2.查询航班"<<endl;
		cout<<"\t\t3.订票业务"<<"\t\t4.退票业务"<<endl;
		cout<<"\t\t5.修改航班信息"<<"\t\t6.删除航班信息"<<endl;
		cout<<"\t\t7.浏览总航班信息"<<"\t8.保存"<<endl;
		cout<<"\t\t0.退出"<<endl;
		cout<<"\t**************************************************"<<endl;

		cout<<"\t请选择(0-8):";
		cin>>choice;
		switch(choice)
		{
		case '1'://输入航班信息
			{
				NewAirInfo(&vec_Air);
				break;
			}
		case '2'://查询航班
			{
				FindAirInfo(vec_Air);
				break;
			}
		case '3'://订票业务
			{
				BookAirInfo(&vec_Air);
				break;
			}
		case '4'://退票业务
			{
				CancelAirInfo(&vec_Air);
				break;
			}
		case '5'://修改航班信息
			{
				ModifyAirInfo(&vec_Air);
				break;
			}
		case '6'://删除航班信息
			{
				DelAirInfo(&vec_Air);
				break;
			}
		case '7'://浏览总航班信息
			{
				ScanAirInfo(vec_Air);//
				break;
			}
		case '8'://所有航班记录存盘
			{
				SaveAirInfo(vec_Air);
				break;
			}
		case '0':break;//退出本系统
		}

	}

	//////////////////////////////////////////////////////////////
	for(v_Iter=vec_Air.begin();v_Iter!=vec_Air.end();)//清空内存暂存器vec_Air
	{//删除所有元素
          pA=*v_Iter;
	      delete pA;
		  vec_Air.erase(v_Iter);
	}
	//////////////////////////////////////////////////////////////
}

⌨️ 快捷键说明

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