火车售票系统的设计与实现

题目:火车售票系统的设计与实现
任务:通过此系统可以实现售票、退票、车票剩余情况查询等功能。每张车票包含 车次、座位信息。
要求:在售票、退票、查询剩余票等环节中,都必须显示出车票的信息,即车次、座位情况。为简单起见,在此假设所有出售的车票均为同一车次的车票。退票时,必须是车站售出的车票才能退,否则视为无效票,不能退票。

#include <iostream>
#include <iomanip>
#include <fstream>
#include"windows.h"

using namespace std;

int yingzuo[20][13][32][3][30][5];
int ruanzuo[20][13][32][3][20][4];
int yingwo[20][13][32][3][20][3];
int ruanwo[20][13][32][3][20][2];

void findyingzuo(int des,int month,int date)
{
    for(int i=0;i<3;i++)
    {
        int k;
        cout<<"硬座"<<i+1<<"车厢"<<endl;
        cout<<"排号\ta\tb\tc\t\td\tf"<<endl;
        for(int j=0;j<30;j++)
        {
            cout<<j+1<<"\t";
            for(k=0;k<3;k++)
                if(yingzuo[des][month][date][i][j][k]==0)
                    cout<<i+1<<setw(2)<<setfill('0')<<j+1<<k+1<<"\t";
                else
                    {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"xxxx"<<"\t";
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                }
            cout<<"\t";
            for(k=3;k<5;k++)
                if(yingzuo[des][month][date][i][j][k]==0)
                    cout<<i+1<<setw(2)<<setfill('0')<<j+1<<k+1<<"\t";
                else
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"xxxx"<<"\t";
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                }
            cout<<endl;

        }
    }
}
void findruanzuo(int des,int month,int date)
{
    for(int i=0;i<3;i++)
    {
        int k;
        cout<<"软座"<<i+4<<"车厢"<<endl;
        cout<<"排号\ta\tc\t\td\tf"<<endl;
        for(int j=0;j<20;j++)
        {
            cout<<j+1<<"\t";

            for(k=0;k<2;k++)
                if(ruanzuo[des][month][date][i][j][k]==0)
                    cout<<i+4<<setw(2)<<setfill('0')<<j+1<<k+1<<"\t";
                else
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"xxxx"<<"\t";
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                }
            cout<<"\t";
            for(k=2;k<4;k++)
                if(ruanzuo[des][month][date][i][j][k]==0)
                    {
                    cout<<i+4<<setw(2)<<setfill('0')<<j+1<<k+1<<"\t";
                }
                else
                    {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"xxxx"<<"\t";
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                }
            cout<<endl;
        }
    }
}
void findyingwo(int des,int month,int date)
{
    for(int i=0;i<3;i++)
    {
        int k;
        cout<<"硬卧"<<i+7<<"车厢"<<endl;
        cout<<"铺号\t上铺\t中铺\t下铺"<<endl;
        for(int j=0;j<20;j++)
        {
            cout<<j+1<<"\t";
            for(k=0;k<3;k++)
                if(yingwo[des][month][date][i][j][k]==0)
                    cout<<i+7<<setw(2)<<setfill('0')<<j+1<<k+1<<"\t";
                else
                    {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"xxxx"<<"\t";
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                }
            cout<<endl;
        }
    }
}
void findruanwo(int des,int month,int date)
{
    for(int i=0;i<3;i++)
    {
        int k;
        cout<<"软卧"<<i+10<<"车厢"<<endl;
        cout<<"铺号\t上铺\t下铺"<<endl;
        for(int j=0;j<20;j++)
        {
            cout<<j+1<<"\t";
            for(k=0;k<2;k++)
                if(ruanwo[des][month][date][i][j][k]==0)
                    cout<<i+10<<setw(2)<<setfill('0')<<j+1<<k+1<<"\t";
                else
                    {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"xxxx"<<"\t";
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                }
            cout<<endl;
        }
    }
}


void find()
{
    cout<<"城市编码如下,请查询目的地:"<<endl;
    cout<<"4、杭州6、沈阳北7、哈尔滨西8、哈尔滨9、西安10、拉萨"<<endl;
    int des;
    cin>>des;
        while(des!=4&&des!=6&&des!=7&&des!=8&&des!=9&&des!=10)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"输入错误,请重新输入"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        cin>>des;
    }
    cout<<"请输入查询车票日期,按月、日顺序输入"<<endl;
    int date,month;
    cin>>month>>date;
    month-=1;
    date-=1;
    cout<<"请输入查询车票种类"<<endl;
    cout<<"***\t1.硬座   \t***\n***\t2.软座   \t***\n***\t3.硬卧\t\t***\n***\t4.软卧   \t***\n";
    int a;
    cin>>a;
    switch(a)
        {
            case 1: findyingzuo(des,month,date); break;
            case 2: findruanzuo(des,month,date); break;
            case 3: findyingwo(des,month,date); break;
            case 4: findruanwo(des,month,date); break;
        }
}

void buy()
{
    cout<<"城市编码如下,请输入目的地:"<<endl;
    cout<<"4、杭州6、沈阳北7、哈尔滨西8、哈尔滨9、西安10、拉萨"<<endl;
    int des;
    cin>>des;
        while(des!=4&&des!=6&&des!=7&&des!=8&&des!=9&&des!=10)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"输入错误,请重新输入"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        cin>>des;
    }
    cout<<"请输入购买车票日期,按月、日顺序输入"<<endl;
    int date,month;
    cin>>month>>date;
    while(!(((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&
        (date<32&&date>0))||((month==4||month==6||month==9||month==11)&&(date<31&&date>0))||(month==2&&(date<29&&date>0))))
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"输入日期错误,请重新输入"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
            cin>>month>>date;
    }
    month-=1;
    date-=1;
    cout<<"请输入购买车票种类"<<endl;
    cout<<"***\t1.硬座   \t***\n***\t2.软座   \t***\n***\t3.硬卧\t\t***\n***\t4.软卧   \t***\n";
    int a;
    cin>>a;
    while(a>4||a<1)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"输入错误,请重新输入"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        cin>>a;
    }
    switch(a)
        {
            case 1:
                {
                    findyingzuo(des,month,date);
                    cout<<"硬座:(1-a,2-b,3-c,4-d,5-f)"<<endl;
                }
                break;
            case 2:
                {
                    findruanzuo(des,month,date);
                    cout<<"软座:(1-a,2-c,3-d,4-f)"<<endl;
                }
                break;
            case 3:
                {
                    findyingwo(des,month,date);
                    cout<<"硬卧:(1-上铺,2-中铺,3-下铺)"<<endl;
                }
                break;
            case 4:
                {
                    findruanwo(des,month,date);
                    cout<<"软卧:(1-上铺,2-下铺)"<<endl;
                }
                break;
        }
    cout<<"车票剩余情况如上"<<endl;
    cout<<"请输入购买车厢号、列号(铺号)、座位号(铺位)"<<endl;

    int b,c,d,e;
    cin>>e;
    b=e/1000;
    d=e%10;
    c=e/10%100;
    b-=1;
    c-=1;
    d-=1;
    cout<<endl;
    int flag=1;
    switch(a)
        {
            case 3:
                {
                    if(yingwo[des][month][31][0][0][0]>=180)
                    {
                        cout<<"票已经售空"<<endl;
                        goto LL;
                    }
                    b-=6;
                    if(b>2||b<0||c>19||c<0||d>3||d<0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置输入错误,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                    goto LL;
                    }

                    if(yingwo[des][month][date][b][c][d]==1)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置已售,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                        flag=0;
                    }
                    else
                    {
                    yingwo[des][month][date][b][c][d]=1;
                    cout<<"票价300元"<<endl;
                    }
                }
                break;
            case 4:
                {
                    if(ruanwo[des][month][31][0][0][0]>=120)
                    {
                        cout<<"票已经售空"<<endl;
                        goto LL;
                    }
                    b-=9;
                    if(b>2||b<0||c>19||c<0||d>2||d<0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置输入错误,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                    goto LL;
                    }

                    if(ruanwo[des][month][date][b][c][d]==1)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置已售,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                            flag=0;
                    }
                    else
                    {
                    ruanwo[des][month][date][b][c][d]=1;
                    cout<<"票价400元"<<endl;
                    }
                }
                break;
            case 1:
                {
                    if(yingzuo[des][month][31][0][0][0]>=450)
                    {
                        cout<<"票已经售空"<<endl;
                        goto LL;
                    }

                    if(b>2||b<0||c>29||c<0||d>4||d<0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置输入错误,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                    goto LL;
                    }

                    if(yingzuo[des][month][date][b][c][d]==1)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置已售,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                            flag=0;
                    }
                    else
                    {
                    yingzuo[des][month][date][b][c][d]=1;
                    cout<<"票价100元"<<endl;
                    yingzuo[des][month][31][0][0][0]++;
                    }
                }
                break;
            case 2:
                {
                    if(ruanzuo[des][month][31][0][0][0]>=240)
                    {
                        cout<<"票已经售空"<<endl;
                        goto LL;
                    }
                    b-=3;

                    if(b>2||b<0||c>19||c<0||d>3||d<0)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置输入错误,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                    goto LL;
                    }


                    if(ruanzuo[des][month][date][b][c][d]==1)
                    {
                        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                    cout<<"位置已售,操作失败"<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
                            flag=0;
                    }
                    else
                    {
                    ruanzuo[des][month][date][b][c][d]=1;
                    cout<<"票价200元"<<endl;
                    }cout<<des<<" "<<month<<" "<<date<<" "<<b<<" "<<c<<" "<<d<<" "<<ruanzuo[des][month][date][b-1][c-1][d-1]<<endl;
                }
                break;
        }
    if(flag)
    {
    cout<<endl;
    cout<<"购票成功"<<endl;
    cout<<"您购买车票信息如下:"<<endl;
    cout<<"车次\t起点\t终点\t月\t日\t坐席\t车号\t排号\t位号"<<endl;
    cout<<"Z"<<des*2+1<<"\t北京\t";
    switch(des)
    {
    case 4:cout<<"杭州";break;
        case 6:cout<<"沈阳北";break;
            case 7:cout<<"哈尔滨西";break;
                case 8:cout<<"哈尔滨";break;
                    case 9:cout<<"西安";break;
                        case 10:cout<<"拉萨";break;
    }
    cout<<"\t"<<month+1<<"\t"<<date+1<<"\t";
    switch(a)
        {
            case 3:
                {
                    cout<<"硬卧"<<"\t"<<b+7<<"\t"<<c+1<<"\t";
                    if(d==0)
                        cout<<"上铺"<<endl;
                    if(d==1)
                        cout<<"中铺"<<endl;
                    if(d==2)
                        cout<<"下铺"<<endl;
                }
                break;
            case 4:
                {
                    cout<<"软卧"<<"\t"<<b+10<<"\t"<<c+1<<"\t";
                    if(d==0)
                        cout<<"上铺"<<endl;
                    if(d==1)
                        cout<<"下铺"<<endl;
                }
                break;
            case 1:
                {
                    cout<<"硬座"<<"\t"<<b+1<<"\t"<<c+1<<"\t";
                    switch(d)
                    {
                        case 0: cout<<"a"; break;
                        case 1: cout<<"b"; break;
                        case 2: cout<<"c"; break;
                        case 3: cout<<"d"; break;
                        case 4: cout<<"f"; break;
                    }
                }
                    break;
            case 2:
                {
                    cout<<"软座"<<"\t"<<b+4<<"\t"<<c+1<<"\t";
                    switch(d)
                    {
                        case 0: cout<<"a"; break;
                        case 1: cout<<"c"; break;
                        case 2: cout<<"d"; break;
                        case 3: cout<<"f"; break;
                    }
                }
                break;
    }}
    cout<<endl<<endl;
LL: ;
}


void tuipiao()
{
    cout<<"城市编码如下,请输入退票目的地:"<<endl;
    cout<<"4、杭州6、沈阳北7、哈尔滨西8、哈尔滨9、西安10、拉萨"<<endl;
    int des;
    cin>>des;
    while(des!=4&&des!=6&&des!=7&&des!=8&&des!=9&&des!=10)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"输入错误,请重新输入"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        cin>>des;
    }
    cout<<"请输入购买车票日期,按月、日顺序输入"<<endl;
    int date,month;
    cin>>month>>date;
    while(!(((month==1||month==3||month==5||month==7||month==8||month==10||month==12)&&
        (date<32&&date>0))||((month==4||month==6||month==9||month==11)&&(date<31&&date>0))||(month==2&&(date<29&&date>0))))
    {
        cout<<"输入月份错误,请重新输入"<<endl;
            cin>>month>>date;
    }
    month-=1;
    date-=1;
    cout<<"请输入退票坐席种类"<<endl;
    cout<<"***\t1.硬座   \t***\n***\t2.软座   \t***\n***\t3.硬卧\t\t***\n***\t4.软卧   \t***\n";
    int a,b,c,d;
    cin>>a;
    while(a>4||a<1)
    {
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"输入错误,请重新输入"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        cin>>a;
    }
    cout<<"请输入车票车号、排号(铺号)、位号"<<endl;
    cin>>b>>c>>d;
    switch(a)
        {
            case 1:
                if(yingzuo[des][month][date][b-1][c-1][d-1]==0)
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"位置未售"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        goto LLL;
                }
                else{
                    yingzuo[des][month][date][b-1][c-1][d-1]=0; break;}
            case 2:
                if(ruanzuo[des][month][date][b-4][c-1][d-1]==0)
                {cout<<des<<" "<<month<<" "<<date<<" "<<b-1<<" "<<c-1<<" "<<d-1<<" "<<ruanzuo[des][month][date][b-1][c-1][d-1]<<endl;
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"位置未售"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        goto LLL;
                }
                else{
                    ruanzuo[des][month][date][b-4][c-1][d-1]=0; break;}
            case 3:
                if(yingwo[des][month][date][b-7][c-1][d-1]==0)
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"位置未售"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        goto LLL;
                }
                else{
                    yingwo[des][month][date][b-7][c-1][d-1]=0; break;}
            case 4:
                if(ruanwo[des][month][date][b-10][c-1][d-1]==0)
                {
                    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED);
                cout<<"位置未售"<<endl;
        SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
        goto LLL;
                }
                else{
                    ruanwo[des][month][date][b-10][c-1][d-1]=0; break;}
        }
    cout<<"退票成功"<<endl;
    cout<<"退票信息如下:"<<endl;
    cout<<"车次\t起点\t终点\t月\t日\t坐席\t车号\t排号\t位号"<<endl;
    cout<<"Z"<<des*2+1<<"\t北京\t";
    switch(des)
    {
    case 4:cout<<"杭州";break;
        case 6:cout<<"沈阳北";break;
            case 7:cout<<"哈尔滨西";break;
                case 8:cout<<"哈尔滨";break;
                    case 9:cout<<"西安";break;
                        case 10:cout<<"拉萨";break;

    }
    cout<<"\t"<<month+1<<"\t"<<date+1<<"\t";
    switch(a)
        {
            case 3:
                {
                    cout<<"硬卧"<<"\t"<<b<<"\t"<<c<<"\t";
                    if(d==1)
                        cout<<"上铺"<<endl;
                    if(d==2)
                        cout<<"中铺"<<endl;
                    if(d==3)
                        cout<<"下铺"<<endl;
                }
                break;
            case 4:
                {
                    cout<<"软卧"<<"\t"<<b<<"\t"<<c<<"\t";
                    if(d==1)
                        cout<<"上铺"<<endl;
                    if(d==2)
                        cout<<"下铺"<<endl;
                }
                break;
            case 1:
                {
                    cout<<"硬座"<<"\t"<<b<<"\t"<<c<<"\t";
                    switch(d-1)
                    {
                        case 0: cout<<"a"; break;
                        case 1: cout<<"b"; break;
                        case 2: cout<<"c"; break;
                        case 3: cout<<"d"; break;
                        case 4: cout<<"f"; break;
                    }
                }
                    break;
            case 2:
                {
                    cout<<"软座"<<"\t"<<b<<"\t"<<c<<"\t";
                    switch(d-1)
                    {
                        case 0: cout<<"a"; break;
                        case 1: cout<<"c"; break;
                        case 2: cout<<"d"; break;
                        case 3: cout<<"f"; break;
                    }
                }
                break;
        }
    cout<<endl;
LLL: ;
}
void save()
{
    ofstream out("火车售票系统数据.txt");
    if(out)
    {
        int i,j,k,l,m,n;
        cout<<"4";
    for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<30;j++)
                        for(k=0;k<5;k++)
                            out<<yingzuo[n][l][m][i][j][k]<<" ";
                        cout<<"3";
    for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<20;j++)
                        for(k=0;k<4;k++)
                            out<<ruanzuo[n][l][m][i][j][k]<<" ";
                        cout<<"2";
    for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<20;j++)
                        for(k=0;k<3;k++)
                            out<<yingwo[n][l][m][i][j][k]<<" ";
                        cout<<"1";
    for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<20;j++)
                        for(k=0;k<2;k++)
                            out<<ruanwo[n][l][m][i][j][k]<<" ";
                        cout<<"0"<<endl;
                        cout<<"成功退出"<<endl;
        out.close();
    }
}
void indata()
{
    ifstream in("火车售票系统数据.txt");
    if(in)
    {
        int i,j,k,l,m,n;
        for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<30;j++)
                        for(k=0;k<5;k++)
                            in>>yingzuo[n][l][m][i][j][k];
                        for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<20;j++)
                        for(k=0;k<4;k++)
                            in>>ruanzuo[n][l][m][i][j][k];
                        for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<20;j++)
                        for(k=0;k<3;k++)
                            in>>yingwo[n][l][m][i][j][k];
                        for(n=0;n<20;n++)
        for(l=0;l<13;l++)
            for(m=0;m<32;m++)
                for(i=0;i<3;i++)
                    for(j=0;j<20;j++)
                        for(k=0;k<2;k++)
                            in>>ruanwo[n][l][m][i][j][k];
        in.close();
    }
    else
        cout<<"error"<<endl;
}
int main()
{
    SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),FOREGROUND_INTENSITY|FOREGROUND_RED|
                        FOREGROUND_GREEN|FOREGROUND_BLUE);
    indata();
    int b;
    while(true)
    {
        cout<<"-------欢迎使用火车售票系统-------\n";
        cout<<"***\t1.售票   \t***\n***\t2.退票   \t***\n***\t3.车票剩余查询\t***\n***\t0.退出   \t***\n";
        cout<<"----------------------------------\n";
        cout<<"请输入你的选择:"<<endl;
        cin>>b;
        switch(b)
        {
            case 1: buy(); break;
            case 2: tuipiao(); break;
            case 3: find(); break;
            case 0: {cout<<"欢迎下次使用\n------\n\n"; goto L;}break;
        }

    }
L: save();

    return 0;
}

评论 18
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值