Не компилируется код.

Тема в разделе "C/C++/C#", создана пользователем ilya1989, 17 июн 2011.

  1. ilya1989

    ilya1989 Гость

    Уважаемые форумчане!Помогите мне пожалуйста в следующей проблеме :
    имеется код программы(курсовик).Он выполнен до конца,но вот беда,код ни в какую мне хочет компилироваться...Уже все облазил,весь код пересмотрел,но он выдает,что где-то не хватает одной точки с запятой и чего-то...помогите,пожалуйста.За ранее благодарен всем откликнувшимся!

    Код (C++):
    #include <stdlib.h>
    #include <iostream.h>
    #include <iomanip.h>
    #include <string.h>
    #include <fstream.h>
    #include <conio.h>
    #include <io.h>
    #define fio 15
    #define marka 11
    #define time 8
    #define tub 4

    ofstream report;

    class Driver
    {
    public:
    char FIO[fio];
    char Marka_Avto[marka];
    char tub_num[tub];
    char Time_Start[time];
    char Time_Finish[time];
    int milage;
    double fuel_consumption;
    };


    void sozdanie();
    void prosmotr();
    void tabl();
    void endtabl();
    void poisk();
    void del();


    //1.Ввод с клавиатуры
    istream &operator>>(istream &istr,Driver &drv)
    {
    cout<<"Введите ФИО ВОДИТЕЛЯ: ";
    istr.ignore();
    istr.get(drv.FIO,fio,'\n');
    cout<<"Введите МАРКУ АВТОМОБИЛЯ :";
    istr.ignore();
    istr.get(drv.Marka_Avto,marka,'\n');
    cout<<"Введите табельный номер водителя :";
    istr.ignore();
    istr.get(drv.tub_num,tub,'\n');
    cout<<"Введите время выхода(начала) на смену:";
    istr.ignore();
    istr.get(drv.Time_Start,time,'\n');
    cout<<"Введите время окончания на смену:";
    istr.ignore();
    istr.get(drv.Time_Finish,time,'\n');
    cout<<"Введите общий пробег спидометра(киллометраж) :";
    istr.ignore();
    istr>>drv.milage;
    return istr;
    }
    //2.Запись в файл
    ofstream &operator<<(ofstream &write,Driver &drv)
    {
    write<<drv.FIO<<endl;
    write<<drv.Marka_Avto<<endl;
    write<<drv.tub_num<<endl;
    write<<drv.Time_Start<<endl;
    write<<drv.Time_Finish<<endl;
    write<<drv.milage<<endl;
    write<<drv.fuel_consumption<<endl;
    return write;
    }

    //3.Вывод на дисплей
    ostream &operator<<(ostream &out,Driver &vod)
    {
    out.setf(ios::left);
    out<<"|"<<setw(14)<<vod.FIO<<"|"<<setw(10)<<vod.Marka_Avto<<"|"<<setw(7)
    <<vod.tub_num<<"|"<<setw(9)<<vod.Time_Start<<"|"<<setw(9)<<vod.Time_Finish
    <<"|"<<setw(7)<<vod.fuel_consumption<<"|"<<setw(8)<<vod.milage<<"|"<<endl;


    report.setf(ios::left);
    report<<"|"<<setw(14)<<vod.FIO<<"|"<<setw(10)<<vod.Marka_Avto<<"|"<<setw(7)
    <<vod.tub_num<<"|"<<setw(9)<<vod.Time_Start<<"|"<<setw(9)<<vod.Time_Finish
    <<"|"<<setw(7)<<vod.fuel_consumption<<"|"<<setw(8)<<vod.milage<<"|"<<endl;
    return out;
    }

    //4.Чтение из файла
    ifstream &operator>>(ifstream &read, Driver &shofer)
    {
    read.getline(shofer.FIO,15,'\n');
    read.getline(shofer.Marka_Avto,11,'\n');
    read.getline(shofer.tub_num,4,'\n');
    read.seekg(2L,ios::cur);
    read.getline(shofer.Time_Start,8,'\n');
    read.getline(shofer.Time_Finish,8,'\n');
    read>>shofer.milage;
    read>>shofer.fuel_consumption;
    read.seekg(2L,ios::cur);
    return read;
    }

    void sozdanie(char a)
    {
    ofstream vvod;
    cout<<"ВВОД ДАННЫХ О ВОДИТЕЛЕ АТП: \n";
    Driver Voditel;
    char d;
    if(a==1)
    {
    vvod.open("Drivers.txt",ios::binary);
    report<<"СОЗДАНИЕ НОВОГО ФАЙЛА ДЛЯ ЗАПИСИ\n\n";
    }
    else
    {
    vvod.open("Drivers.txt",ios::binary,ios::app);
    report<<"ДОБАВЛЕНИЕ ИНФОРМАЦИИ В ФАЙЛ\n\n";
    }
    if(!vvod)
    {
    cerr<<"Don`t open file Drivers.txt for writing!";
    report<<"НЕ УДАЛОСЬ ОТКРЫТЬ ФАЙЛ ДЛЯ ЗАПИСИ!\n";
    }
    do
    {
    cin>>Voditel;
    if(Voditel.milage>0)
    {
    Voditel.fuel_consumption=0.4*Voditel.milage;
    }
    else if(Voditel.milage==0)
    {
    Voditel.fuel_consumption=0;
    }
    vvod<<Voditel;
    cout<<"Продолжить ввод(Y\N или Д\Н)?: ";
    cin.ignore();
    cin.get(d);
    }
    while(d=='Y'||d=='y'||d=='Д'||d=='д');
    vvod.close();
    }

    void tabl()
    {
    cout<<"=======================================================================|\n";
    cout<<"|     ФИО  |  Марка |Табельн|Вр.нач. | Время |Расход |Пробег |\n";
    cout<<"|             |автомобиля| номер | смены |оконч.см.|Топлива| (км)  |\n";
    cout<<"=======================================================================|\n";
    cout<<"|                                                                     |\n";

    report<<"=======================================================================|\n";
    report<<"|   ФИО  |  Марка |Табельн|Вр.нач. | Время |Расход |Пробег |\n";
    report<<"|           |автомобиля| номер | смены |оконч.см.|Топлива| (км)  |\n";
    report<<"=======================================================================|\n";
    report<<"|                                                                   |\n";
    return;
    }

    void endtabl()
    {
    cout<<"|______________________________________________________________________|\n";
    report<<"|______________________________________________________________________|\n";
    return;
    }

    void prosmotr()
    {
    ifstream reading("Drivers.txt",ios::binary);
    if(!reading)
    {
    cerr<<"Don`t opening of file Drivers.txt for reading\n";
    report<<"НЕ УДАЛОСЬ ОТКРЫТЬ ФАЙЛ DRIVERS.TXT ДЛЯ ЧТЕНИЯ\n";
    return;
    }
    clrscr();
    gotoxy(30,1);
    Driver bcd;
    cout<<"Просмотр всех записей базы данных водителей АТП\n";
    report<<"ПРОСМОТР ВСЕХ ЗАПИСЕЙ БАЗЫ ДАННЫХ ВОДИТЕЛЕЙ АТП\n\n";
    tabl();
    while(reading)
    {
    reading>>bcd;
    if(strlen(bcd.FIO)<=0)
    break;

    cout<<bcd;
    }
    reading.close();
    endtabl();
    cout<<"Для продолжения нажмите любую клавишу\n";
    cin.ignore();
    cin.get();
    }

    void poisk()
    {
    Driver a;
    int kol=0;
    char v;
    char FIO_S[fio];
    char TUB_S[tub];
    char MARKA[marka];
    ifstream find("Drivers.txt",ios::binary);
    if(!find)
    {
    cout<<"Error reading of file Drivers.txt\n";
    cerr<<"ERROR READING OF FILE DRIVERS.TXT\n";
    return;
    }
    while(1)
    {
    clrscr();
    gotoxy(25,7);
    cout<<"=====================================\n";
    gotoxy(25,8);
    cout<<"||                                ||\n";
    cout<<" ПОИСК ВОДИТЕЛЯ ПО СЛ.АТРИБУТАМ :\n";
    gotoxy(25,9);
    cout<<"||        1.ПО ФИО               ||\n";
    gotoxy(25,10);
    cout<<"||  2.ПО МАРКЕ АВТОМОБИЛЯ        ||\n";
    gotoxy(25,11);
    cout<<"||  3.ПО ТАБЕЛЬНОМУ НОМЕРУ      ||\n";
    gotoxy(25,12);
    cout<<"||        4.ВЫХОД В ГЛ.МЕНЮ      ||\n";
    gotoxy(25,13);
    cout<<"||                                ||\n";
    gotoxy(25,14);
    cout<<"======================================\n";
    gotoxy(25,18);
    find.seekg(0L,ios::beg);
    find.clear(!ios::eofbit);
    cout<<"Вы выбрали: ";
    cin.get(v);
    clrscr();
    cout<<"Поиск информации\n";
    report<<"\n\nПОИСК ИНФОРМАЦИИ\n";

    switch(v)
    {
    case '5':
    return;

    case'1':
    cout<<"Введите ФИО водителя: ";
    cin.getline(FIO_S,fio,'\n');
    report<<"ФИО ВОДИТЕЛЯ :"<<FIO_S<<endl;
    break;

    case '2':
    cout<<"Введите марку автомобиля водителя: ";
    cin.getline(MARKA,marka,'\n');
    report<<"МАРКА АВТОМОБИЛЯ ВОДИТЕЛЯ :"<<MARKA<<endl;
    break;

    case 3:
    cout<<"Введите табельный номер водителя: ";
    cin.getline(TUB_S,tub,'\n');
    report<<"ТАБЕЛЬНЫЙ НОМЕР ВОДИТЕЛЯ :"<<TUB_S<<endl;
    break;
    }
    tabl();
    while(!find.eof())
    {
    find>>a;
    if((v==1&&!strcmp(FIO_S,a.FIO))||
    (v==2&&!strcmp(MARKA,a.Marka_Avto))||
    (v==3&&!strcmp(TUB_S,a.tub_num)))
    {
    if(strlen(a.FIO)<=0)
    break;
    if(strlen(a.Marka_Avto)<=0)
    break;
    if(strlen(a.tub_num)<=0)
    break;
    kol++;
    cout<<a;
    }
    }
    if(kol==0)
    cout<<"Найдено 0 записей в БД по введенным данным!\n";
    report<<"НАЙДЕНО 0 ЗАПИСЕЙ В БД ПО ВВЕДЕННЫМ ДАННЫМ!\n";
    find.close();
    endtabl();
    return;
    }

    void del()
    {
    ofstream temp("Temp.txt",ios::binary);
    ifstream read("Drivers.txt",ios::binary);
    char FIO_DEL[fio];
    int kol=0;
    Driver z;
    clrscr();
    cout<<"Удаление водителя по ФИО \n";
    report<<"УДАЛЕНИЕ ВОДИТЕЛЯ ПО ФИО \n";
    cout<<"Введите ФИО водителя для удаления :";
    cin.getline(FIO_DEL,fio,'n');
    report<<"\nФИО ВОДИТЕЛЯ ДЛЯ УДАЛЕНИЯ :"<<FIO_DEL<<endl;
    if(!temp)
    {
    cerr<<"Ошибка открытия файла для удаления информации!\n";
    report<<"ОШИБКА ОТКРЫТИЯ ФАЙЛА ДЛЯ УДАЛЕНИЯ ИНФОРМАЦИИ\n\n";
    exit(1);
    }
    read.seekg(0,ios::beg);
    if(!temp)
    {
    cerr<<"Ошибка открытия файла для записи\n";
    report<<"ОШИБКА ОТКРЫТИЯ ФАЙЛА ДЛЯ ЗАПИСИ\n\n";
    exit(1);
    }

    temp.seekp(0,ios::beg);
    while(!read.eof())
    {
    read>>z;
    if(!strlen(FIO_DEL,z.FIO))
    break;
    if(!strcmp(FIO_DEL,z.FIO))
    {
    kol=1;
    cout<<"\nИнформация удалена\n";
    report<<"ИНФОРМАЦИЯ УДАЛЕНА\n";
    cout<<"Продолжение-Enter";
    cin.ignore();
    cin.get();
    }
    else temp<<z;
    }
    read.close();
    temp.close();
    if(kol==0)
    {
    cout<<"Нет информации для удаления\n";
    report<<"НЕТ ИНФОРМАЦИИ ДЛЯ УДАЛЕНИЯ\n\n";
    }
    else
    {
    remove("Drivers.txt");
    rename("Temp.txt","Drivers.txt");
    }
    }
    }

    void main()
    {
    report.open("Report.txt");
    if(!report)
    {
    cout<<"Не удается открыть файл для записи протокола!";
    return;
    }
    char a;
    cout<<"БАЗА ДАННЫХ ВОДИТЕЛЕЙ АТП\n";
    while(1)
    {
    cout<<"||--------------------------------------------||\n";
    cout<<"||1.Создание файла(записи в БД)              ||\n";
    cout<<"||2.Вывод всех записей из БД на дисплей   ||\n";
    cout<<"||3.Поиск водителя по ФИО и ТАБ.НОМЕРУ       ||\n";
    cout<<"||4.Удаление записи из БД                   ||\n";
    cout<<"||5.Выход                                    ||\n";
    cout<<"||____________________________________________||\n";
    cout<<"Вы ввели: \n";
    cin.get(a);
    switch(a)
    {
    case '1':
    case '2':
    sozdanie(a);
    break;
    case '3':
    prosmotr();
    break;
    case '4':
    poisk();
    break;
    case '5':
    del();
    break;
    case '6':
    report.close();
    return;
    default:
    cout<<"Диапазон ввода от 1 до 4!\n";
    }
    }
    }
     
  2. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Ошибки при компиляции где?
    Будет проще найти ошибку, если выделить блоки табуляцией или хотя бы пробелами.
     
  3. ilya1989

    ilya1989 Гость

    Компилятор почему-то выдает ошибки именно в блоке del()....а Вы,если честно,сами визуально нашли ошибку?
     
  4. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Да. Выровни блоки и ты сам ее найдешь.
    Вот тебе пример если ты не понимаешь что от тебя хотят:
    Код (C++):
    void func()
    {
    if ( ... )
    {
    while ( ... )
    {
    ...
    }
    ...
    } else {
    ...
    }
    }
     
  5. lazybiz

    lazybiz Well-Known Member
    C\C++ Team

    Регистрация:
    3 ноя 2010
    Сообщения:
    1.344
    Симпатии:
    0
    Прогресс есть?
     
Загрузка...

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