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

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

ilya1989

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

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";
}
}
}
 

lazybiz

Well-Known Member
03.11.2010
1 339
0
#2
Ошибки при компиляции где?
Будет проще найти ошибку, если выделить блоки табуляцией или хотя бы пробелами.
 
I

ilya1989

Гость
#3
Ошибки при компиляции где?
Будет проще найти ошибку, если выделить блоки табуляцией или хотя бы пробелами.
Компилятор почему-то выдает ошибки именно в блоке del()....а Вы,если честно,сами визуально нашли ошибку?
 

lazybiz

Well-Known Member
03.11.2010
1 339
0
#4
Да. Выровни блоки и ты сам ее найдешь.
Вот тебе пример если ты не понимаешь что от тебя хотят:
C++:
void func()
{
if ( ... )
{
while ( ... )
{
...
}
...
} else {
...
}
}