Курсовая Автовокзал

Тема в разделе "Общие вопросы по С и С++", создана пользователем romapalivo, 11 мар 2012.

Статус темы:
Закрыта.
  1. romapalivo

    romapalivo Гость

    Собрал по частям курсовую(что скопировал с готовых исходников, что сам сделал, что сделал по анологии), я сам не большой спец по С++(но все-таки немного разбираюсь), но очень не хотел заказывать работу. Вот она сама - требуется создать базу данных автовокзала(я подробно расписал каждую строку), в главной функции в case 8 и 9 пишет, что идет ссылка на неопределенные функции начиная от функции sortBD и заканчивая функцией poisk25, описаных ранее. Помогите пожалуйста, просто очень долго ее собирал, а ошибка чувствую нестрашная только как не исправлял - не получается!

    #include <iostream.h>
    #include <conio.h>
    #include <fstream.h>
    #include <string.h>
    #include <iomanip.h>
    #include <math.h>
    #include <stdlib.h>
    #include <time.h>

    struct Time //Структура времени
    {int h, //час
    min;}; //минута

    struct Perech //основная структура

    {int nomer; //номер
    char outpunkt[20]; //пункт отправления
    char inpunkt[20]; //пункт назначения
    Time Dt; //прототип структуры времени
    int cost;}; //стоимость



    class vokzal //класс динамический массив структур
    {
    private:
    Perech *px; //указатель на массив записей
    int n; //число строк в массиве
    int f; //число найденных строк
    public:
    vokzal(){n=0;px=NULL;} //конструктор
    ~vokzal(){n=0;if(px!=NULL)delete[]px;} //деструктор
    void inputfile(); //ввод БД из файла
    void newBD(); //создание новой БД
    void output(); //вывод БД на экран
    void redaktor(); //редактирование БД
    int vuibor(); //выбор нужной строки
    void outputFile(); //сохранение БД в файл
    void add(); //добавление новой записи
    void delt(); //удаление записи
    void poisk1(); //поиск по номеру автобуса
    void rezult(); //вывод результатов поиска на экран
    void poisk2(); //поиск по номеру автобуса и по пункту отправления
    void sortBD(); //сортировка по номеру
    void alfsort(); //сортировка по пункту отправления
    void alfsort2(); //сортировка по пункту назначения
    void sortBD2(); //сортировка по времени
    void sortBD3(); //сортировка по стоимости билета
    void poisk12(); //поиск по пункту отправления
    void poisk13(); //поиск по пункту назначения
    void poisk14(); //поиск по времени
    void poisk15(); //поиск по стоимости билета
    void poisk22(); //поиск по пункту отправления и по пункту назначения
    void poisk23(); //поиск по стоимости билета и по пункту назначения
    void poisk24(); //поиск по времени и по пункту отправления
    void poisk25(); //поиск по номеру автобуса и по стоимости билета
    };


    void vokzal::inputfile() //ввод БД из файла
    {ifstream fin;
    int i; //рабочая переменная для подсчёта
    Perech t; //рабочая переменная для подсчёта записей в файле
    char file[10]; //переменная для названия файла
    if(px!=NULL){delete[]px;n=0;px=NULL;} //очистка рабочей области(массива)
    cout<<"Imya vhodnogo faila: ";cin>>file;
    fin.open(file);
    if(fin==NULL){cout<<file<<" Ne otkruit\n";getch();return;}
    n=0;
    //подсчёт записей в файле
    do{fin>>t.nomer>>t.outpunkt>>t.inpunkt>>t.Dt.h>>t.Dt.min>>t.cost;
    n++;
    } while(fin.good()); //пока файл не закончился
    n--;
    fin.close();
    px=new Perech[n]; //выделение динамической памти
    if(px==NULL){cout<<"Net pamyati\n";n=0;getch();return;}
    fin.open(file);
    if(fin==NULL){cout<<file<<" Ne otkruit\n";getch();return;}
    //ввод массива задолжников из файла
    for(i=0;i<n;i++)
    {fin>>px.nomer>>px.outpunkt>>px.inpunkt>>px.Dt.h>>px.Dt.min>>px.cost;
    }
    fin.close();
    }

    void vokzal::eek:utputFile() //сохранение БД в файл
    {ofstream fout;
    char file[20]; //переменная для названия файла
    int i; //рабочая переменная для подсчёта
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout<<"Vvedite fail dlya sohraneniya: ";cin>>file;
    fout.open(file,ios::eek:ut|ios::trunc);
    if(fout.fail()){cout<<file<<" Ne sozdan\n";getch();n=0;px=NULL;return;}
    //запись БД в файл
    for(i=0;i<n;i++)
    {fout.setf(ios::left);
    fout<<setw(6)<<px.nomer<<setw(12)<<px.outpunkt<<setw(11)<<px.inpunkt
    <<setw(3)<<px.Dt.h<<setw(4)<<px.Dt.min<<setw(8)<<px.cost<<endl;
    }
    cout<<"Baza dannuih sohranena\n";getch();
    }

    void vokzal::newBD() //создание новой БД
    {int i; //рабочая переменная для подсчёта
    cout<<"Kolichestvo zapisey=";cin>>n;
    if(px!=NULL)delete[] px; //очистка рабочей области(массива)
    px=new Perech[n]; //выделение динамической памяти
    if(px==NULL){cout<<"Net pamyati\n";getch();n=0;return;}
    //создание базы данных
    for(i=0;i<n;i++)
    {cout<<"Nomer avtobusa:";cin>>px.nomer;
    cout<<"Punkt otpravleniya: ";cin>>px.outpunkt;
    cout<<"Punkt naznacheniya: ";cin>>px.inpunkt;
    cout<<"Vremya otpravleniya: ";cin>>px.Dt.h>>px.Dt.min;
    cout<<"Stoimost bileta: ";cin>>px.cost;
    cout<<endl;
    }cout<<"Baza dannuih sozdana";getch();
    }

    void vokzal::eek:utput() //вывод БД на экран
    {int i; //переменная для подсчёта
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    clrscr(); //очистка экрана
    cout.setf(ios::left); //выравнивание слева
    cout<<endl<<"Baza dannuih 'Avtovokzal'\n"<<endl;
    cout<<"N"<<" "<<setw(6)<<"Nomer"<<setw(12)<<"Otpravlenie"<<setw(11)<<"Pribuitie"
    <<setw(7)<<"Vremya"<<setw(8)<<"Stoimost"<<endl;
    //вывод БД на экран
    for(i=0;i<n;i++)
    if(px.Dt.h<10 && px.Dt.min<10) //если часы и минуты меньше 10, перед ними пишутся "0"
    {cout.setf(ios::left); i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt<<"0"
    <<setw(1)<<px[i-1].Dt.h<<":"<<"0"<<setw(3)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl;
    i--; }
    else if(px[i].Dt.h<10) //если часы меньше 10, перед ними пишутся "0"
    {cout.setf(ios::left); i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt<<"0"
    <<setw(1)<<px[i-1].Dt.h<<":"<<setw(4)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl;
    i-- ;}
    else if(px[i].Dt.min<10) //если минуты меньше 10, перед ними пишутся "0"
    {cout.setf(ios::left); i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt
    <<setw(2)<<px[i-1].Dt.h<<":"<<"0"<<setw(3)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl;
    i--;}
    else
    {cout.setf(ios::left); i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt
    <<setw(2)<<px[i-1].Dt.h<<":"<<setw(4)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl;
    i--;} ;
    getch();
    }

    int vokzal::vuibor() //выбор нужной строки
    {int k; //рабочая переменная для выбора строки
    cout.setf(ios::left); //выравнивание слева
    output(); //вызывается функция вывода БД на экран
    cout<<"Vuiberite stroku: ";cin>>k;
    if(k<0|| k>n+1){cout<<"Net takoi stroki\n";getch();}
    k--;
    return k;
    }

    void vokzal::redaktor() //редактирование БД
    {int j, //рабочая переменная для выбора пункта
    N; //рабочая переменная для вызова функции
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    N=vuibor(); //вызывается функция выбора строки
    while(1)
    {clrscr(); //очистка экрана
    if(px[N].Dt.h<10 && px[N].Dt.min<10) //если часы и минуты меньше 10, перед ними пишутся "0"
    {cout.setf(ios::left);
    cout<<setw(6)<<px[N].nomer<<setw(12)<<px[N].outpunkt<<setw(11)<<px[N].inpunkt<<"0"
    <<setw(1)<<px[N].Dt.h<<":"<<"0"<<setw(3)<<px[N].Dt.min<<setw(8)<<px[N].cost<<endl;
    }
    else if(px[N].Dt.h<10) //если часы меньше 10, перед ними пишутся "0"
    {cout.setf(ios::left);
    cout<<setw(6)<<px[N].nomer<<setw(12)<<px[N].outpunkt<<setw(11)<<px[N].inpunkt<<"0"
    <<setw(1)<<px[N].Dt.h<<":"<<setw(4)<<px[N].Dt.min<<setw(8)<<px[N].cost<<endl;
    }
    else if(px[N].Dt.min<10) //если минуты меньше 10, перед ними пишутся "0"
    {cout.setf(ios::left);
    cout<<setw(6)<<px[N].nomer<<setw(12)<<px[N].outpunkt<<setw(11)<<px[N].inpunkt
    <<setw(2)<<px[N].Dt.h<<":"<<"0"<<setw(3)<<px[N].Dt.min<<setw(8)<<px[N].cost<<endl;
    }
    else
    {cout.setf(ios::left);
    cout<<setw(6)<<px[N].nomer<<setw(12)<<px[N].outpunkt<<setw(11)<<px[N].inpunkt
    <<setw(2)<<px[N].Dt.h<<":"<<setw(4)<<px[N].Dt.min<<setw(8)<<px[N].cost<<endl;
    }
    cout.setf(ios::left); //выравнивание слева
    cout<<"1.Nomer avtobusa\n"<<"2.Punkt otpravleniya\n"<<"3.Punkt naznacheniya\n"<<"4.Vremya otpravleniya\n"<<"5.Stoimost bileta\n"<<"6.menu\n"
    <<"Vash vuibor ";cin>>j;
    if(cin.good())
    //выбор редактируемого поля
    switch(j)
    {case 1:cout<<"Nomer avtobusa: ";cin>>px[N].nomer;break;

    case 2:cout<<"Punkt otpravleniya: ";cin>>px[N].outpunkt;break;
    case 3:cout<<"Punkt naznacheniya: ";cin>>px[N].inpunkt;break;
    case 4:cout<<"Vremya otpravleniya: ";cin>>px[N].Dt.h>>px[N].Dt.min;break;
    case 5:cout<<"Stoimost bileta: ";cin>>px[N].cost;break;
    case 6:return;
    default :cout<<"Neverniy vuibor\n povtorite\n";getch();
    }
    else
    {cout<<"Oshibka vvoda\n";getch();
    cin.clear(); //очистка потока ввода
    while(cin.get()!='\n')
    return;
    }
    }
    }

    void vokzal::add()
    {int i;
    Perech t,
    *p;
    if(px==NULL){cout<<"massiv pyst\n";getch();return;}
    cout<<"Nomer avtobusa: ";cin>>t.nomer;
    cout<<"Punkt otpravleniya: ";cin>>t.outpunkt;
    cout<<"Punkt naznacheniya: ";cin>>t.inpunkt;
    cout<<"Vremya otpravleniya: ";cin>>t.Dt.h>>t.Dt.min;
    cout<<"Stoimost bileta: ";cin>>t.cost;
    p=px;
    px=new Perech[n+1];
    if(px==NULL){cout<<"Net pamyati.\n";getch();return;}
    for(i=0;i<n;i++)
    px[i]=p[i];
    px[n]=t;
    n++;
    delete[]p;
    cout<<"Zapis dobavlena\n";getch();
    }

    void vokzal::delt()
    {int i,N;
    Perech *t;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    t=new Perech[n-1];
    if(t==NULL){cout<<"Net pamyati\n";getch();n=0;return;}
    if(n==1){delete[] px;px=NULL;}
    else {N=vuibor();
    for(i=0;i<N;i++)
    t[i]=px[i];
    for(i=N+1;i<n;i++)
    t[i-1]=px[i];
    delete[] px;
    px=t;
    }
    n--;cout<<"zapis udalena\n";getch();
    }

    void vokzal::poisk1()
    { int i,c;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Nomer avtobusa: "; cin>>c;
    f=0;
    for (i=0;i<n;i++)
    if(px[i].nomer==c)
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }

    void vokzal::poisk12()
    { int i;
    char h[10];
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Punkt otpravleniya: "; cin>>h;
    f=0;
    for (i=0;i<n;i++)
    if(strcmp(px[i].outpunkt,h)==0)
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }

    void vokzal::poisk13()
    { int i;
    char h[10];
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Punkt naznacheniya: "; cin>>h;
    f=0;
    for (i=0;i<n;i++)
    if(strcmp(px[i].inpunkt,h)==0)
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }

    void vokzal::poisk14()
    { int i,c,m, k;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Chas otpravleniya: "; cin>>c;
    cout<<"Minutui: ";cin>>m;
    cout<<"1.Vuivesti zapisi do i vkluchaya "<<c<<":"<<m<<endl;
    cout<<"2.Vuivesti zapisi posle "<<c<<":"<<m<<endl;
    cin>>k;
    f=0;
    switch(k)
    {case 1:{for (i=0;i<n;i++)
    {if(px[i].Dt.h<c)
    {px[f]=px[i];
    f++;
    }
    if(px[i].Dt.h==c){if(px[i].Dt.min<=m)
    {px[f]=px[i];
    f++;
    }}}}
    break;
    case 2:
    { for (i=0;i<n;i++)if(px[i].Dt.h>c)
    {px[f]=px[i];
    f++;
    }} break;
    default :cout<<"Neverniy vuibor\n povtorite\n";getch();}
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult(); return ;
    }


    void vokzal::poisk15()
    { int i,c;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Stoimost bileta: "; cin>>c;
    f=0;
    for (i=0;i<n;i++)
    if(px[i].cost==c)
    {px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }


    void vokzal::rezult()
    {
    int i;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    clrscr();
    cout.setf(ios::left);
    cout<<endl<<"Rezultatui poiska\n"<<endl;
    cout<<setw(3)<<"N"<<setw(6)<<"Nomer"<<setw(12)<<"Otpravlenie"<<setw(11)<<"Pribuitie"
    <<setw(8)<<"Vremya"<<setw(8)<<"Stoimost"<<endl;
    for (i=0;i<f;i++)
    if(px[i].Dt.h<10 && px[i].Dt.min<10)
    {cout.setf(ios::left); i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt<<"0"
    <<setw(1)<<px[i-1].Dt.h<<":"<<"0"<<setw(3)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl;i--;
    }
    else if(px[i].Dt.h<10)
    {cout.setf(ios::left); i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt<<"0"
    <<setw(1)<<px[i-1].Dt.h<<":"<<setw(4)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl; i--;
    }
    else if(px[i].Dt.min<10)
    {cout.setf(ios::left);i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt
    <<setw(2)<<px[i-1].Dt.h<<":"<<"0"<<setw(3)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl;i--;
    }
    else
    {cout.setf(ios::left);i++;
    cout<<setw(3)<<i<<setw(6)<<px[i-1].nomer<<setw(12)<<px[i-1].outpunkt<<setw(11)<<px[i-1].inpunkt
    <<setw(2)<<px[i-1].Dt.h<<":"<<setw(4)<<px[i-1].Dt.min<<setw(8)<<px[i-1].cost<<endl;i--;
    } getch();
    }


    void vokzal::poisk2()
    { int i,c;
    char h[10];
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Nomer avtobusa: "; cin>> c;
    cout <<"Punkt otpravleniya: "; cin>> h;
    f=0;
    for (i=0;i<n;i++)
    if (px[i].nomer==c && stricmp(px[i].outpunkt,h)==0)
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }

    void vokzal::poisk22()
    { int i;
    char h[10], c[10];
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Punkt otpravleniya: "; cin>> c;
    cout <<"Punkt naznacheniya: "; cin>> h;
    f=0;
    for (i=0;i<n;i++)
    if (stricmp(px[i].outpunkt,c)==0 && stricmp(px[i].inpunkt,h)==0)
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }

    void vokzal::poisk23()
    { int i,c;
    char h[10];
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Stoimost bileta: "; cin>> c;
    cout <<"Punkt naznacheniya: "; cin>> h;
    f=0;
    for (i=0;i<n;i++)
    if (px[i].cost==c && stricmp(px[i].inpunkt,h)==0)
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }

    void vokzal::poisk24()
    { int i,c,m;
    char h[10];
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Chas otpravleniya: "; cin>> c;
    cout<<"Minutui: ";cin>>m;
    cout <<"Punkt otpravleniya: "; cin>> h;
    f=0;
    for (i=0;i<n;i++)
    if ((px[i].Dt.h==c) && (px[i].Dt.min==m) && stricmp(px[i].outpunkt,h)==0)
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }

    void vokzal::poisk25()
    { int i,c, h;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    cout <<"Nomer avtobusa: "; cin>> c;
    cout <<"Stoimost bileta: "; cin>> h;
    f=0;
    for (i=0;i<n;i++)
    if ((px[i].nomer==c) && (px[i].cost==h))
    { px[f]=px[i];
    f++;
    }
    if(f==0) {cout<<"Net takoi zapisi\n";getch();return;}
    rezult();return;
    }


    void vokzal::sortBD()
    {
    int fl,i,l;
    Perech t;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    l=n-1;
    do
    {
    fl=0;
    for(i=0;i<l;i++)
    if(px[i].nomer>px[i+1].nomer)
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    else if(px[i].nomer==px[i+1].nomer)
    {
    if(strcmp(px[i].outpunkt, px[i+1].outpunkt )>0)
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    }
    l--;
    }
    while(fl==1);
    output();
    return;

    }



    void vokzal::alfsort()
    {
    int fl,i,l;
    Perech t;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    l=n-1;
    do
    {fl=0;

    for(i=0;i<l;i++)

    if(strcmp(px[i].outpunkt, px[i+1].outpunkt )>0)


    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    else if(strcmp(px[i].outpunkt,px[i+1].outpunkt)==0)
    {
    if(strcmp(px[i].inpunkt, px[i+1].inpunkt )>0)
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    }

    l--;
    }
    while(fl==1);
    output();
    return;

    }

    void vokzal::alfsort2()
    {
    int fl,i,l;
    Perech t;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    l=n-1;
    do
    {fl=0;

    for(i=0;i<l;i++)

    if(strcmp(px[i].inpunkt, px[i+1].inpunkt )>0)


    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    else if(strcmp(px[i].inpunkt,px[i+1].inpunkt)==0)
    {
    if(px[i].Dt.h>px[i+1].Dt.h )
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    }

    l--;
    }
    while(fl==1);
    output();
    return;

    }

    void vokzal::sortBD2()
    {
    int fl,i,l;
    Perech t;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    l=n-1;
    do
    {
    fl=0;
    for(i=0;i<l;i++)
    if(px[i].Dt.h>px[i+1].Dt.h)
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    else if(px[i].Dt.h==px[i+1].Dt.h)
    {
    if( px[i].Dt.min>px[i+1].Dt.min)
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    }
    l--;
    }
    while(fl==1);
    output();
    return;

    }

    void vokzal::sortBD3()
    {
    int fl,i,l;
    Perech t;
    if(px==NULL){cout<<"Massiv pust\n";getch();return;}
    l=n-1;
    do
    {
    fl=0;
    for(i=0;i<l;i++)
    if(px[i].cost>px[i+1].cost)
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    else if(px[i].cost==px[i+1].cost)
    {
    if(px[i].nomer==px[i+1].nomer)
    {
    t=px[i];
    px[i]=px[i+1];
    px[i+1]=t;
    fl=1;
    }
    }
    l--;
    }
    while(fl==1);
    output();
    return;
    }

    void main ()
    {vokzal a;
    int j, fl;
    while (1)
    {clrscr();
    cout<<" "<<"1.Novaya baza dannuih\n"
    <<" "<<"2.Prosmotr bazui dannuih iz faila\n"
    <<" "<<"3.Redaktirovanie bazui dannuih\n"
    <<" "<<"4.Dobavlenie novoi zapisi\n"
    <<" "<<"5.Udalenie zapisi\n"
    <<" "<<"6.Prosmotr bazui dannuih\n"
    <<" "<<"7.Poisk po odnomu kriteriui\n"
    <<" "<<"8.Poisk po dvum kriteriyam\n"
    <<" "<<"9.Sortirovka\n"
    <<" "<<"10.Sohranenie bazui dannuih\n"
    <<" "<<"0.Vuihod\n"
    <<"Vash vuibor:";cin>>j;
    if(cin.good())
    switch(j)
    {case 1:a.newBD();break;
    case 2:a.inputfile();a.output();break;
    case 3:a.redaktor();break;
    case 4:a.add();break;
    case 5:a.delt();break;
    case 6:a.output();break;
    case 7:fl=0;
    while(fl==0)
    {clrscr();
    cout<<"1.Poisk po nomeru avtobusa i po punktu otpravleniya\n"
    <<"2.Poisk po punktu otpravleniya i po punktu naznacheniya\n"
    <<"3.Poisk po punktu naznacheniya i po stoimosti\n"
    <<"4.Poisk po vremeni i po puktu otpravleniya\n"
    <<"5.Poisk po stoimosti i po nomeru avtobusa\n"
    <<"6.Menu\n";
    cout<<"Vash vuibor:";
    cin>>j;
    if(cin.good())
    switch(j)
    {case 1:a.poisk1();break;
    case 2:a.poisk12();break;
    case 3:a.poisk13();break;
    case 4:a.poisk14();break;
    case 5:a.poisk15();break;
    case 6:fl=1; break;

    default: cout<<"Net takogo pynkta\n";
    cout<<"Povtorite vash vuibor\n";
    getch();
    }
    else{cout<<"Oshibka vvoda\n";
    cout<<"Posle nagatiya probela, povtorite vash vuibor\n";
    getch();
    cin.clear();
    while(cin.get()!='\n')
    continue;
    }

    }break;

    case 8:while(fl==0)
    {clrscr();
    cout<<"1.Poisk po nomeru avtobusa\n"
    <<"2.Poisk po punktu otpravleniya\n"
    <<"3.Poisk po punktu naznacheniya\n"
    <<"4.Poisk po vremeni\n"
    <<"5.Poisk po stoimosti\n"
    <<"6.Menu\n";
    cout<<"Vash vuibor:";
    cin>>j;
    if(cin.good())
    switch(j)
    {case 1:sortBD();break;
    case 2:alfsort();break;
    case 3:alfsort2();break;
    case 4:sortBD2();break;
    case 5:sortBD3();break;
    case 6:fl=1; break;

    default: cout<<"Net takogo pynkta\n";
    cout<<"Povtorite vash vuibor\n";
    getch();
    }
    else{cout<<"Oshibka vvoda\n";
    cout<<"Posle nagatiya probela, povtorite vash vuibor\n";
    getch();
    cin.clear();
    while(cin.get()!='\n')
    continue;
    }

    }break;
    case 9:while(fl==0)
    {clrscr();
    cout<<"1.Sortirovka po nomeru avtobusa\n"
    <<"2.Sortirovka po punktu otpravleniya\n"
    <<"3.Sortirovka po punktu naznacheniya\n"
    <<"4.Sortirovka po vremeni\n"
    <<"5.Sortirovka po stoimosti\n"
    <<"6.Menu\n"
    cout<<"Vash vuibor:";
    cin>>j;
    if(cin.good())
    switch(j)
    {case 1:poisk2();break;
    case 2:poisk22();break;
    case 3:poisk23();break;
    case 4:poisk24();break;
    case 5:poisk25();break;
    case 6:fl=1; break;

    default: cout<<"Net takogo pynkta\n";
    cout<<"Povtorite vash vuibor\n";
    getch();
    }
    else{cout<<"Oshibka vvoda\n";
    cout<<"Posle nagatiya probela, povtorite vash vuibor\n";
    getch();
    cin.clear();
    while(cin.get()!='\n')
    continue;
    }

    }break;

    case 10:a.outputFile();break;
    case 0:cout<<endl<<"Poka"<<endl;getch ();return;
    default :cout<<"Neverniy vuibor\n povtorite\n";getch();
    }
    else
    {cout<<"Oshibka vvoda\n";getch();
    cin.clear();
    while(cin.get()!='\n')
    continue;
    }
    }
    }[/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i][/i]
     
  2. qqwertty

    qqwertty Гость

    Методы poisk2(); и т.д. принадлежат классу и вызывать их надо vokzal.poisk2(); тока не название класса перед точкой, а имя переменной (объекта) этого класса. И еще вроде ; где-то не хватает.
     
Загрузка...
Похожие Темы - Курсовая Автовокзал
  1. vladis222
    Ответов:
    11
    Просмотров:
    3.652
Статус темы:
Закрыта.

Поделиться этой страницей