简易订票系统
作者:互联网
代码:
#include <iostream>
#include <list>
#include <string>
using namespace std;
struct Date
{
int year;
int month;
int day;
};
struct StTickInfo
{
char id[16]; //订单号
Date date; //订票日期
char name[16]; //航空公司名称
char hangban[16];//航班号
char src[16]; //出发地
char dst[16]; //目的地
int price;
char guest[20]; //订票人名
char guId[20]; //订票人身份证号
};
//添加订单
void add(list<StTickInfo> &info)
{
StTickInfo st;
cout << "订 单 号:";
cin >> st.id;
cout << "订 票 日 期 :";
cin >> st.date.year >> st.date.month >> st.date.day;
cout << "航空公司名称:";
cin >> st.name;
cout << "航 班 号:";
cin >> st.hangban;
cout << "出 发 地:";
cin >> st.src;
cout << "目 的 地:";
cin >> st.dst;
cout << "价 格:";
cin >> st.price;
cout << "订票人姓名 :";
cin >> st.guest;
cout << "订票人身份证:";
cin >> st.guId;
info.push_back(st);
}
//删除订单(根据姓名或者身份证号删除,假设一个人只有一张票)
void dele(list<StTickInfo> &info)
{
string p;
cout << "请输入需要删除的订单信息(订票人姓名或者身份证号):";
cin >> p;
list<StTickInfo>::iterator it= info.begin();
for (; it != info.end();it++)
{
if(strcmp(it->guest,p.c_str()) == 0 || strcmp(it->guId,p.c_str()) == 0)
{
info.erase(it);
break;
}
}
}
//查找订单
void find(list<StTickInfo> &info)
{
string p="";
bool b = false;
cout << "请输入航班或航空公司名称或订票人姓名或订票人身份证号查找" << endl;
cin >> p;
list<StTickInfo>::iterator it= info.begin();
for (; it != info.end();it++)
{
//根据航班、航空公司名称、订票人姓名、订票人身份证号查找
if (strcmp(it->hangban,p.c_str()) == 0 || strcmp(it->name,p.c_str())==0 || strcmp(it->guest,p.c_str())==0 || strcmp(it->guId,p.c_str())==0)
{
b = true;
cout << "订 单 号:" << it->id << endl;
cout << "订 票 日 期 :" << it->date.year << "-" << it->date.month <<"-" << it->date.day << endl;
cout << "航空公司名称:" << it->name << endl;
cout << "航 班 号:" << it->hangban << endl;
cout << "出 发 地:" << it->src << endl;
cout << "目 的 地:" << it->dst << endl;
cout << "价 格:" << it->price << endl;
cout << "订票人姓名 :" << it->guest << endl;
cout << "订票人身份证:" << it->guId << endl;
}
}
cout <<endl;
if (!b)
cout << "未查找到结果"<< endl;
}
//按日期和航班号显示订票人
void Show(list<StTickInfo> &info)
{
Date dd;
string p;
bool b = false;
cout << "请输入航班号和日期:" ;
cin >> p >> dd.year >> dd.month >> dd.day;
list<StTickInfo>::iterator it= info.begin();
for (; it != info.end();it++)
{
if (strcmp(it->hangban,p.c_str()) == 0 && it->date.year == dd.year && it->date.month == dd.month && it->date.day == dd.day)
{
b = true;
cout << "订票人:" << it->guest << " " << it->guId << endl;
}
}
cout <<endl;
if (!b)
cout << "未查找到结果"<< endl;
}
int main(void)
{
int opt;
list<StTickInfo> info;
bool isWork = true;
while(isWork)
{
cout << "----------订票管理系统-----------------|"<< endl;
cout << "| 1.添加订单 |"<< endl;
cout << "| 2.删除订单 |"<< endl;
cout << "| 3.查找订单 |"<< endl;
cout << "| 4.按日期和航班号输出订票人 |"<< endl;
cout << "| 9.退出系统 |"<< endl;
cout << "----------请输入您的操作---------------|"<< endl;
cin >> opt;
switch(opt)
{
case 1:
add(info);
break;
case 2:
dele(info);
break;
case 3:
find(info);
break;
case 4:
Show(info);
break;
case 9:
isWork = false;
break;
}
}
return 0;
}
标签:info,cout,系统,订票,st,char,简易,list,date 来源: https://blog.csdn.net/qfl_sdu/article/details/117651587