• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

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

  • Автор темы Автор темы ilya1989
  • Дата начала Дата начала
I

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";
}
}
}
 
Ошибки при компиляции где?
Будет проще найти ошибку, если выделить блоки табуляцией или хотя бы пробелами.
 
Ошибки при компиляции где?
Будет проще найти ошибку, если выделить блоки табуляцией или хотя бы пробелами.
Компилятор почему-то выдает ошибки именно в блоке del()....а Вы,если честно,сами визуально нашли ошибку?
 
Да. Выровни блоки и ты сам ее найдешь.
Вот тебе пример если ты не понимаешь что от тебя хотят:
C++:
void func()
{
if ( ... )
{
while ( ... )
{
...
}
...
} else {
...
}
}
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!