Сведения о расходе горючего на автобазах городаРефераты >> Программирование и компьютеры >> Сведения о расходе горючего на автобазах города
cin >> p->nazva;
cout << "Izrashodovano topliva - ";
cin >> p->valprod;
cout << "Colichestvo avtomashin - ";
cin >> p->kolrab;
p->proizv=p->valprod/p->kolrab;
cout << "Vidano - ";
cout << p->proizv<<endl;
}
////////////////////////////////////////////////////////////////////////////
void pech(fstream *q)
{
int kol;
float svalprod=0;
int skolrab=0;
float sproizv=0;
clrscr();
cout << "VVEDITE IM'YA FAILA: ";
char fname[8];
cin >> fname;
q->open(fname, ios::app|ios::binary|ios::nocreate);
if (!*q) {
cout << "NET FAILA S TAKIM IMENEM\n";
return; }
q->seekp(0, ios::end);
kol=q->tellp()/sizeof(predpr);
q->close();
q->open(fname, ios::in|ios::binary);
if (*q)
{ clrscr();
cout<<"--------------------------------------------------------------\n";
cout<<"| N | Avtobaza |Izrashodov |Colichestvo| Sredniy |\n";
cout<<"|p/p| | topliva | Avtomasin | rashod |\n";
cout<<"--------------------------------------------------------------\n";
for (int i=0; i<kol; i++)
{ q->read( (char*)&ved, sizeof(ved) );
cout<<"|";
cout<<setw(3)<<(i+1)<<"|";
cout.setf(ios::left);
cout<<setw(21)<<ved.nazva<<"|";
cout.setf(ios::fixed);
cout.setf(ios::right);
cout<<setprecision(2);
cout<<setw(11)<<ved.valprod<<"|";
svalprod+=ved.valprod;
cout<<setw(11)<<ved.kolrab<<"|";
skolrab+=ved.kolrab;
cout<<setw(10)<<ved.proizv<<"|"<<endl;
sproizv+=ved.proizv;
}
cout<<"--------------------------------------------------------------\n";
cout<<"| | ITOGO|";
cout<<setw(11)<<svalprod<<"|";
cout<<setw(11)<<skolrab<<"|";
cout<<setw(10)<<sproizv<<"|"<<endl;
cout<<"--------------------------------------------------------------\n";
}
q->close();
// cout.unsetf();
}
///////////////////////////////////////////////////////////////////////////
void pause()
{
cout << "DLA PRODOLGENIA NAGMITE \"Enter\"\n";
while ( getch() != 13) ;
}
////////////////////////////////////////////////////////////////////////////
void dopolnen(fstream *q)
{ char otv;
predpr vedread;
int kol,k=1;
clrscr();
cout << "VVEDITE IM'YA DOPOLN'AEMOGO FAILA: ";
char fname[8],*name;
cin>>fname;
q->open(fname, ios::app|ios::binary|ios::nocreate);
if (!*q) {
cout<<"NET FAILA S TAKIM IMENEM!\n";
return; }
do
{ vvod(&ved);
k=1;
name=ved.nazva;
q->seekp(0, ios::end);
kol=q->tellp()/sizeof(predpr);
if (*q)
{
q->close();
q->open(fname, ios::in|ios::binary);
for (int i=0; i<kol; i++)
{
q->read( (char*)&vedread, sizeof(vedread) );
if (strcmp(vedread.nazva,name))
k++;
}
if (k!=kol)
{
q->close();
q->open(fname, ios::app|ios::binary);
q->write( (char*)&ved, sizeof(ved) );
}
else
{
cout<<"DANNAYA ZIPIS' NE MOZET BIT SOHRANENA\n";
cout<<"Tacaya Familia uze est\n";
}
}
cout << "PRODOLGIT DOPOLNENIE?(Y/N) ";
cin >> otv;
} while ((otv!='N')&&(otv!='n'));
q->close();
}
////////////////////////////////////////////////////////////////////////////
void korr(fstream *q)
{
char n[15];
clrscr();
cout << "VVEDITE IM'YA KORREKTIRUEMOGO FAILA: ";
char fname[8];
cin >> fname;
q->open(fname, ios::in|ios::out|ios::binary|ios::nocreate);
if (!*q) {
cout << "NEVOZMOGNO OTKRIT FAIL!\n"
<< "TAKOGO FAILA NET\n";
return; }
do
{clrscr();
cout << "Vvedite redactiruumyu familiu: ";
cin>>n;
do
{
q->read( (char*)&ved, sizeof(ved) );
} while (*q && strcmp(ved.nazva,n) );
if (!strcmp(ved.nazva,n))
{ vvod(&ved);
q->seekp(-streamoff(sizeof(predpr)),ios::cur);
q->write( (char*)&ved, sizeof(ved) );
}
else
cout << "Familia " << n << " NE NAIDENA!\n";
q->seekp(0);
cout << "PRODOLGIT KORREKTIROVKU?(Y/N) ";
cin >> otv;
} while ((otv!='N')&&(otv!='n'));
q->close();
}
////////////////////////////////////////////////////////////////////////////
void iskl(fstream *q)
{
ofstream vspom;
char isk[15];
int col=0;
char fname[8];
cout << "VVEDITE IM'YA TREBUEMOGO FAILA: ";
cin >> fname;
clrscr();
do
{
q->open(fname, ios::in|ios::binary);
vspom.open("vsp",ios::out|ios::binary);
if ( *q && vspom )
{
cout << "Vvedite udaliaimuy familiu: ";
cin >> isk;
do
{
q->read( (char*)&ved, sizeof(ved) );
if (q->eof()) break;
if (!strcmp(ved.nazva,isk))
col=1;
else
vspom.write( (char*)&ved, sizeof(ved) );
} while ( *q );
q->close();
vspom.close();
if (col)
{
remove(fname);
rename("vsp", fname);
cout << "ZAPIS UDALENA "<<endl;
}
else
{ cout << "Tacaia familia nenaidena\n";
remove("vsp"); }
}
else
{
cout << "NEVOZMOGNO OTKRIT FAIL!\n"
<< "NAVERNO NEPRAVILNO VVELI IM'YA FAILA!\n";
break; }
cout << "PRODOLGIT UDALENIE?(Y/N) ";
cin >> otv;
} while ((otv!='N')&&(otv!='n'));
}
///////////////////////////////////////////////////////////////////////////
`
- заголовочный модуль s1.h :
// s1.h
struct predpry
{
char nazva[15];
float valprod;
int kolrab;
float proizv;
predpry* next;
};
predpry buf;
predpry* nach;
predpry* tek;
void sozd(predpry* );
void prints(predpry* );
void vstavka(predpry* );
void udalen(predpry*);
void korekt(predpry*);
void soxran (predpry*);
void ochistka(predpry*);
void vossosdanie(predpry* );
void pause();
///////////////////////////////////////////////////////////////////////////////