//файл заголовков TPlab4_1.h
#ifndef TPlab4_1_h
#define TPlab4_1_h
#include <iostream>
using std::cout;
using std::cin;
using std::cerr;
using std::endl;
using std::ios;
#include <fstream>
using std::ofstream;
using std::ostream;
using std::fstream;
using std::istream;
#include <iomanip>
using std::setiosflags;
using std::resetiosflags;
using std::setw;
using std::setprecision;
#include <cstdlib>
struct tip_client
{
int nomer;
char fam[15];
char im[10];
float balance;
};
int menu();
void textfile(fstream &);
void dobzap(fstream &);
void zamzap(fstream &);
void udzap(fstream &);
void vyvod(ostream &, const tip_client &);
int vvod_nomer(const char * const);
enum option{TEXTFILE=1, DOBAVLENIE, ZAMENA,
UDALENIE, END};
#endif
Помогите написать программу!
Есть программа вот код:
Код:
Код:
//файл кодов TPlab3_4.cpp
#include "stdafx.h"
#include "TPlab4_1.h"
int _tmain(int argc, _TCHAR* argv[])
{
fstream inoutf("client.dat", ios::in|ios::out);
if(!inoutf)
{
cerr<<"File client.dat ne otkr."<<endl;
ofstream outf("client.dat",ios::out);
tip_client client0={0, "", "", 0.0};
for(int i=0; i<100; i++)
outf.write((char *) &client0, sizeof(tip_client));
outf.close();
}
int vybor;
while((vybor=menu())!=END)
{
switch(vybor)
{
case TEXTFILE:
textfile(inoutf);
break;
case DOBAVLENIE:
dobzap(inoutf);
break;
case ZAMENA:
zamzap(inoutf);
break;
case UDALENIE:
udzap(inoutf);
break;
case END: break;
default:
cerr<<"Neprav. vybor\n";
break;
}
inoutf.clear();
}
return 0;
}
int menu()
{
cout<<"\nMENU\n"
<<"1-Sozdanie textfile-vyvod\n"
<<"2-Dobavlenie zap\n"
<<"3-Zamena zap\n"
<<"4-Udalenie zap\n"
<<"5-Konec\n\n"
<<"\nVash vybor: ";
int menuvybor;
cin>>menuvybor;
return menuvybor;
}
void textfile(fstream &readf)
{
ofstream outprintf("print.txt", ios::out);
if(!outprintf)
{
cerr<<"File ne otkr."<<endl;
exit(1);
}
outprintf<<setiosflags(ios::left)<<setw(10)
<<"Nomer"<<setw(16)<<"Familija"<<setw(11)
<<"Imja"<<resetiosflags(ios::left)
<<setw(10)<<"Balance"<<endl;
cout<<setiosflags(ios::left)<<setw(10)
<<"Nomer"<<setw(16)<<"Familija"<<setw(11)
<<"Imja"<<resetiosflags(ios::left)
<<setw(10)<<"Balance"<<endl;
readf.seekg(0, ios::beg);
tip_client client;
readf.read((char *)&client, sizeof(tip_client));
while(!readf.eof())
{
if(client.nomer !=0)
{
vyvod(outprintf, client);
vyvod(cout, client);
}
readf.read((char *)&client, sizeof(tip_client));
}
}
void dobzap(fstream &dobf)
{
int schet=vvod_nomer("Vvedite novyj nomer scheta: ");
dobf.seekg((schet-1)*sizeof(tip_client), ios::beg);
tip_client client;
dobf.read((char *) &client, sizeof(tip_client));
if(client.nomer==0)
{
cout<<"Vvedite familiju, imja, balance\n: ";
cin>>client.fam>>client.im>>client.balance;
client.nomer=schet;
dobf.seekp((schet-1)*sizeof(tip_client), ios::beg);
dobf.write((char *) &client, sizeof(tip_client));
}
else
cerr<<"Schet № "<<schet<<" imeetcja"<<endl;
}
void zamzap(fstream &zamf)
{
int schet=vvod_nomer("Vvedite nomer scheta zamenj: ");
zamf.seekg((schet-1)*sizeof(tip_client), ios::beg);
tip_client client;
zamf.read((char *) &client, sizeof(tip_client));
if(client.nomer!=0)
{
vyvod(cout, client);
cout<<"Vvedite rashod (+) ili doplatu (-): ";
float rasdop;
cin>>rasdop;
client.balance+=rasdop;
vyvod(cout, client);
zamf.seekp((schet-1)*sizeof(tip_client), ios::beg);
zamf.write((char *) &client, sizeof(tip_client));
}
else
cerr<<"Schet № "<<schet<<" ne imeet inf."<<endl;
}
void udzap(fstream &udf)
{
int schet=vvod_nomer("Vvedite nomer scheta udalenija: ");
udf.seekg((schet-1)*sizeof(tip_client), ios::beg);
tip_client client;
udf.read((char *) &client, sizeof(tip_client));
if(client.nomer!=0)
{
tip_client client0={0, "", "", 0.0};
udf.seekp((schet-1)*sizeof(tip_client), ios::beg);
udf.write((char *) &client0, sizeof(tip_client));
cout<<"Schet № "<<schet<<" udalen"<<endl;
}
else
cerr<<"Schet № "<<schet<<" pustoj"<<endl;
}
void vyvod(ostream &output, const tip_client &cl)
{
output<<setiosflags(ios::left)<<setw(10)
<<cl.nomer<<setw(16)<<cl.fam<<setw(11)
<<cl.im<<setw(10)<<setprecision(2)<<resetiosflags(ios::left)
<<setiosflags(ios::fixed | ios::showpoint)<<cl.balance<<endl;
}
int vvod_nomer(const char * const nom)
{
int schet;
do
{
cout<<nom<<" (1 - 100):";
cin>>schet;
}
while(schet<1 || schet>100);
return schet;
}
#include "stdafx.h"
#include "TPlab4_1.h"
int _tmain(int argc, _TCHAR* argv[])
{
fstream inoutf("client.dat", ios::in|ios::out);
if(!inoutf)
{
cerr<<"File client.dat ne otkr."<<endl;
ofstream outf("client.dat",ios::out);
tip_client client0={0, "", "", 0.0};
for(int i=0; i<100; i++)
outf.write((char *) &client0, sizeof(tip_client));
outf.close();
}
int vybor;
while((vybor=menu())!=END)
{
switch(vybor)
{
case TEXTFILE:
textfile(inoutf);
break;
case DOBAVLENIE:
dobzap(inoutf);
break;
case ZAMENA:
zamzap(inoutf);
break;
case UDALENIE:
udzap(inoutf);
break;
case END: break;
default:
cerr<<"Neprav. vybor\n";
break;
}
inoutf.clear();
}
return 0;
}
int menu()
{
cout<<"\nMENU\n"
<<"1-Sozdanie textfile-vyvod\n"
<<"2-Dobavlenie zap\n"
<<"3-Zamena zap\n"
<<"4-Udalenie zap\n"
<<"5-Konec\n\n"
<<"\nVash vybor: ";
int menuvybor;
cin>>menuvybor;
return menuvybor;
}
void textfile(fstream &readf)
{
ofstream outprintf("print.txt", ios::out);
if(!outprintf)
{
cerr<<"File ne otkr."<<endl;
exit(1);
}
outprintf<<setiosflags(ios::left)<<setw(10)
<<"Nomer"<<setw(16)<<"Familija"<<setw(11)
<<"Imja"<<resetiosflags(ios::left)
<<setw(10)<<"Balance"<<endl;
cout<<setiosflags(ios::left)<<setw(10)
<<"Nomer"<<setw(16)<<"Familija"<<setw(11)
<<"Imja"<<resetiosflags(ios::left)
<<setw(10)<<"Balance"<<endl;
readf.seekg(0, ios::beg);
tip_client client;
readf.read((char *)&client, sizeof(tip_client));
while(!readf.eof())
{
if(client.nomer !=0)
{
vyvod(outprintf, client);
vyvod(cout, client);
}
readf.read((char *)&client, sizeof(tip_client));
}
}
void dobzap(fstream &dobf)
{
int schet=vvod_nomer("Vvedite novyj nomer scheta: ");
dobf.seekg((schet-1)*sizeof(tip_client), ios::beg);
tip_client client;
dobf.read((char *) &client, sizeof(tip_client));
if(client.nomer==0)
{
cout<<"Vvedite familiju, imja, balance\n: ";
cin>>client.fam>>client.im>>client.balance;
client.nomer=schet;
dobf.seekp((schet-1)*sizeof(tip_client), ios::beg);
dobf.write((char *) &client, sizeof(tip_client));
}
else
cerr<<"Schet № "<<schet<<" imeetcja"<<endl;
}
void zamzap(fstream &zamf)
{
int schet=vvod_nomer("Vvedite nomer scheta zamenj: ");
zamf.seekg((schet-1)*sizeof(tip_client), ios::beg);
tip_client client;
zamf.read((char *) &client, sizeof(tip_client));
if(client.nomer!=0)
{
vyvod(cout, client);
cout<<"Vvedite rashod (+) ili doplatu (-): ";
float rasdop;
cin>>rasdop;
client.balance+=rasdop;
vyvod(cout, client);
zamf.seekp((schet-1)*sizeof(tip_client), ios::beg);
zamf.write((char *) &client, sizeof(tip_client));
}
else
cerr<<"Schet № "<<schet<<" ne imeet inf."<<endl;
}
void udzap(fstream &udf)
{
int schet=vvod_nomer("Vvedite nomer scheta udalenija: ");
udf.seekg((schet-1)*sizeof(tip_client), ios::beg);
tip_client client;
udf.read((char *) &client, sizeof(tip_client));
if(client.nomer!=0)
{
tip_client client0={0, "", "", 0.0};
udf.seekp((schet-1)*sizeof(tip_client), ios::beg);
udf.write((char *) &client0, sizeof(tip_client));
cout<<"Schet № "<<schet<<" udalen"<<endl;
}
else
cerr<<"Schet № "<<schet<<" pustoj"<<endl;
}
void vyvod(ostream &output, const tip_client &cl)
{
output<<setiosflags(ios::left)<<setw(10)
<<cl.nomer<<setw(16)<<cl.fam<<setw(11)
<<cl.im<<setw(10)<<setprecision(2)<<resetiosflags(ios::left)
<<setiosflags(ios::fixed | ios::showpoint)<<cl.balance<<endl;
}
int vvod_nomer(const char * const nom)
{
int schet;
do
{
cout<<nom<<" (1 - 100):";
cin>>schet;
}
while(schet<1 || schet>100);
return schet;
}
надо её переделать, чтобы соответствовала заданию:
Имеются данные нарядов на выполнение работ: табельный номер рабочего, ФИО, код работы, норма времени. Имеется справочник тарифов работ: код работы, наименование, тариф часа в руб. Рассчитать ведомость стоимости работ рабочего, задаваемого по запросу.
Есть у кого какие соображения?
Вы не подумайте, я не ленюсь сам сделать, просто мыслей даже никаких нормальных нет.
Пытался делать, но увы ничего не вышло...
Никогда не понимал, зачем люди просят переделать чей-то код, вместо того чтобы написать программу с нуля? Это же может быть даже быстрее.
Цитата: Alm3n
Никогда не понимал, зачем люди просят переделать чей-то код, вместо того чтобы написать программу с нуля? Это же может быть даже быстрее.
Там задание такое, написать на подобие этой программы.
Я просто даже переделать не знаю как, с нуля вообще не представляю...
Цитата: JimmyEarthworm
Я просто даже переделать не знаю как, с нуля вообще не представляю...
Ви так говог'ите, как будто пг'едставляете, как уже имеющееся пег'еделать.
Помогу, пиши в лс...
Да это просто жирный тролль захотел халявы!