一蓑烟雨任平生55555 2015-10-24 08:03 采纳率: 50%
浏览 2194
已采纳

C++简单民航票数系统的买票、退票功能

这是要求:(1)预售票及退票功能:当查询到某航班寓于剽窃在行把起飞前15日方可订票且距离起飞还有超过四小时的情况下才可以预订票,订票时需提供18位身份证号,不符合要求的身份证号无法预订,并且每人每次最多预订两张机票,超过数量将无法预订;退票时必须保证在本航班起飞前至少四小时并且该身份证号已预订过机票的情况下才可以退票。预售票及退票成功后自动更新库中该航班的余票数票。(2)信誉功能:对客户的失信次数(即在航班起飞后未进行取票)进行记载,写到costumer.Txt文档中。如果失信次数超过两次将无法进行机票的预定。
这是我的部分代码:
struct visitor
{
char IDnumber[18];//游客身份证号
int boughtnum;//你所买的票的数目,最多两张
int costumer;//你的失信次数
};

struct flight
{
string flightnumber;//航班号
string flightcompany;//航空公司
int startmonth;//起飞时间(月)
int startday;//起飞时间(日)
int starthour;//起飞时间(时)
int startminute;//起飞时间(分)
string overtime;//到达时间
string startplace;//起点
string overplace;//终点
int ticketprice;//票价
int ticketnumber;//余票数量
bool islate;//是否晚点
};
void SouthFlight::Buy( flight myflight )
{

int a = SearchByFlightnumber(myflight);
if( a != -1 )
{
char IDnumber[] = "123456789098765432"; //默认的身份证号
string inIDnumber; //用于存储键盘输入身份证号
bool judge = false; //用于判断身份证号是否输入正确
char array[19] = {0};
cout<<"请输入18位身份证号码: "<<endl;
for( int i = 0 ; i < 18 ; i++ )
{
array[i] = getch();
cout<<array[i];
}
cout<<endl;
if( !strcmp (IDnumber,array) )
{
judge = true;
}
else
{
while( !judge )
{
cout<<"输入错误,请重新输入18位身份证号码: ";
for( int i = 0 ; i < 18 ; i++)
{
array[i] = getch();
cout<<array[i];
}
cout<<endl;
if( !(strcmp (IDnumber,array) ) )
judge = true;
}
}

    /*if( xx.data1[0].costumer >= 2 )
    {
        cout<<"你的信誉过低,无法买票!"<<endl;
    }
    else
    {*/
        if( OK() && OK1() )
        {
            data[i].ticketnumber--;
            data1[0].boughtnum++;
        }       
        else
            cout<<"现在不是该航班的购票时间!"<<endl;
    //}
}           

}

void SouthFlight::Refund( flight myflight )
{

//如果已购买该车票,并在发车前4小时之前

/*cout<<"请输入你的身份证号:"< cin>>IDnumber[18];
for ( int j = 0 ; j < (int)data1.size() ; j++ )
{
//*************
if( data1[j].IDnumber == )
{

cout<<"请输入需要退票的航班号:"<<endl;
for ( int i = 0 ; i <(int)data.size() ; i++ )
{
        if ( data[i].flightnumber == flightnumber )
        {
            data[i].ticketnumber++;         
        }
        else

}
Save();
Save1();*/

}
思路有点混乱,希望能有人指点一下。

  • 写回答

2条回答 默认 最新

  • Huppert 2015-10-24 08:42
    关注

    代码不全,只能简单看到几点问题
    1 结构参数最好传指针或引用
    购票流程应该如下:
    (1)验证买票人的身份证号
    (2)验证买票人是否失信超过2次
    (3)验证买票人是否已经买超过2张票
    (4) 查找是否有票
    (5)验证是否提前15天
    (6)条件全部满足执行买票逻辑(记录买票人,买票数+1,代售票数减1)

    退票类似

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器