程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> 代碼-C++簡單民航票數系統的買票、退票功能

代碼-C++簡單民航票數系統的買票、退票功能

編輯:編程綜合問答
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();*/

}
思路有點混亂,希望能有人指點一下。

最佳回答:


代碼不全,只能簡單看到幾點問題
1 結構參數最好傳指針或引用
購票流程應該如下:
(1)驗證買票人的身份證號
(2)驗證買票人是否失信超過2次
(3)驗證買票人是否已經買超過2張票
(4) 查找是否有票
(5)驗證是否提前15天
(6)條件全部滿足執行買票邏輯(記錄買票人,買票數+1,代售票數減1)

退票類似

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved