Редактировать Код На С++

  • Автор темы eta-777
  • Дата начала
E

eta-777

#1
Нужно отредактировать программу!
Код составлен - не работают запросы. И необходимо "подчистить" программу, чтоб работала как следует.
Задание на курсовой проект

База данных: НИР.
Таблица 1. Для каждого сотрудника предприятия задано: табельный номер, фамилия, имя, отчество, дата рождения, пол, специальность, дата поступления на предприятие, стаж работы на момент поступления.
Таблица 2. научно-исследовательская работа (НИР): шифр работы, тема, табельный номер руководителя, дата начала и окончания работы, расходы на проведение НИР, доход от внедрения НИР.
Таблица 3: специальность, оклад.

Запросы:
1.Определить общую прибыль (убыток) по итогам работ, руководителями которых являются женщины моложе 30 лет.
2.С помощью одного запроса вывести информацию о руководителях:
а) убыточных работ, б) работ, длящихся более 2 лет.
3.Вывести максимальное значение расходов на проведение НИР каждым из руководителей (один научный сотрудник может руководить несколькими работами) со стажем более 5 лет; упорядочив по убыванию максимумов.
4.Вывести информацию о руководителях, возглавляющих работы с прибылью ниже среднего и расходами выше среднего по всем НИР.

Этап 1: создать классы, необходимые для организации базы данных.
Этап 2: прописать и отладить методы ввода информации в файлы данных (создание файлов и добавление записей). При вводе в связанные таблицы должна обеспечиваться целостность данных!
Этап 3: прописать и отладить методы контрольного чтения данных.
Этап 4: прописать и отладить методы изменения данных. Обеспечить каскадное изменение данных в полях связи.
Этап 5: заполнить таблицы данными.
Этап 6: прописать и отладить методы обработки данных.

ЯЗЫК - С++ !!!!
Требование: отредактировать код с пояснениями.
Нужно решить в кратчайшие сроки. Оплату гарантирую.

e-mail: eta-777@yandex.ru


Очень надеюсь на Вас.
С уважением.
Татьяна

ПРОГРАММНЫЙ КОД: ТЕГИ ФОРМАТИРОВАНИЯ КОДА


#include <iostream.h>
#include <conio.h>
#include <stdlib.h>
#include <math.h>
#include <iomanip.h>
#include <string.h>
#include <fstream.h>
#include <stdio.h>

//-----------------------------------------------------------------------------
class Dannie3//1
{public:
char spec[50];
int oklad;
Dannie3(char specc[]=" ", int okladd=0);
Dannie3(Dannie3 &obj);
friend istream& operator >> (istream &ist, Dannie3 &dd);
friend ostream& operator << (ostream &ost, Dannie3 dd);
Dannie3& operator = (Dannie3 &obj);
void vvod();
void vivod();
void shapka();
friend BD;
};
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
Dannie3::Dannie3(char specc[], int okladd)
{
strcpy(spec,specc);
oklad=okladd;}
//-----------------------------------------------------------------------------
Dannie3::Dannie3(Dannie3 &obj)
{
strcpy(spec,obj.spec);
oklad=obj.oklad;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
istream& operator >> (istream &ist, Dannie3 &dd)
{
ist>>dd.spec>>dd.oklad;
return ist;
}
//-----------------------------------------------------------------------------
ostream& operator << (ostream &ost, Dannie3 dd)
{
ost<<" "<<dd.spec<<" "<<dd.oklad<<" ";
return ost;
}
//-----------------------------------------------------------------------------
Dannie3& Dannie3::eek:perator = (Dannie3 &obj)
{
strcpy(spec,obj.spec);
oklad=obj.oklad;
return *this;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void Dannie3::vvod()
{
cout<<"Vvedite spesialnost: ";
cin>>spec;
cout<<"Vvedite oklad: ";
cin>>oklad;
}
//-----------------------------------------------------------------------------
void Dannie3::vivod()
{
cout<<setw(15)<<spec<<setw(10)<<oklad;
cout<<endl;
}
//-----------------------------------------------------------------------------
void Dannie3::shapka()
{
cout<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
cout<<setw(5)<<"N"
<<setw(15)<<"Spesialnost"
<<setw(10)<<"Oklad"<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class Dannie1//2
{public:
int TabNom;
char FIOSotr[50];
int DataRog;
char PolSotr[3];
char Spec[20];
int DataPost;
int StagRab;
Dannie1 (int TabNomm=0, char FIOSotrr[]=" ", int DataRogg=0,
char PolSotrr[]=" ", char Specc[]=" ", int DataPostt=0, int StagRabb=0);
Dannie1 (Dannie1 &obj);
friend istream& operator >> (istream &ist, Dannie1 &dd);
friend ostream& operator << (ostream &ost, Dannie1 dd);
Dannie1& operator = (Dannie1 &obj);
void vvod();
void vivod();
void shapka();
friend BD;
};
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
Dannie1::Dannie1(int TabNomm, char FIOSotrr[], int DataRogg,
char PolSotrr[], char Specc[], int DataPostt, int StagRabb)
{
TabNom=TabNomm;
strcpy(FIOSotr, FIOSotrr);
DataRog=DataRogg;
strcpy(PolSotr,PolSotrr);
strcpy(Spec,Specc);
DataPost=DataPostt;
StagRab=StagRabb;}
//-----------------------------------------------------------------------------
Dannie1::Dannie1(Dannie1 &obj)
{
TabNom=obj.TabNom;
strcpy(FIOSotr, obj.FIOSotr);
DataRog=obj.DataRog;
strcpy(PolSotr, obj.PolSotr);
strcpy(Spec, obj.Spec);
DataPost=obj.DataPost;
StagRab=obj.StagRab;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
istream& operator >> (istream &ist, Dannie1 &dd)
{
ist>>dd.TabNom>>dd.FIOSotr>>dd.DataRog>>dd.PolSotr>>dd.Spec>>dd.DataPost>>dd.StagRab;
return ist;
}
//-----------------------------------------------------------------------------
ostream& operator << (ostream &ost, Dannie1 dd)
{
ost<<" "<<dd.TabNom<<" "<<dd.FIOSotr<<" "<<dd.DataRog<<" "<<dd.PolSotr
<<" "<<dd.Spec<<" "<<dd.DataPost<<" "<<dd.StagRab<<" ";
return ost;
}
//-----------------------------------------------------------------------------
Dannie1& Dannie1::eek:perator = (Dannie1 &obj)
{
TabNom=obj.TabNom;
strcpy(FIOSotr, obj.FIOSotr);
DataRog=obj.DataRog;
strcpy(PolSotr, obj.PolSotr);
strcpy(Spec, obj.Spec);
DataPost=obj.DataPost;
StagRab=obj.StagRab;
return *this;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void Dannie1::vvod()
{
cout<<"Vvedite tab.nomer sotrudnika: ";
cin>>TabNom;
cout<<"Vvedite FIO sotrudnika: ";
gets(FIOSotr);
cout<<"Vvedite datu rojdeniya: ";
cin>>DataRog;
cout<<"Vvedite pol: ";
cin>>PolSotr;
cout<<"Vvedite spesialnist: ";
cin>>Spec;
cout<<"Vvedite datu postupleniya: ";
cin>>DataPost;
cout<<"Vvedite staj raboti: ";
cin>>StagRab;
}
//-----------------------------------------------------------------------------
void Dannie1::vivod()
{
cout<<setw(6)<<TabNom
<<setw(20)<<FIOSotr
<<setw(12)<<DataRog
<<setw(6)<<PolSotr
<<setw(9)<<Spec
<<setw(8)<<DataPost
<<setw(5)<<StagRab<<endl;
}
//-----------------------------------------------------------------------------
void Dannie1::shapka()
{
cout<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
cout<<setw(5)<<"N"
<<setw(6)<<"Tab_n"
<<setw(20)<<"FIOSotr"
<<setw(12)<<"Data_birth"
<<setw(6)<<"Pol"
<<setw(9)<<"Spec"
<<setw(8)<<"Data_p"
<<setw(5)<<"Staj"<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class Dannie2//3
{public:
int TabNom;
int ShifrRab;
char TemaRab[20];
int DataNachRab;
int DataOkonchRab;
int Rashodi;
int Dohodi;
int Pribil;
int GodNachRab;
int GodOkonchRab;
Dannie2(int TabNomm=0, int ShifrRabb=0, char TemaRabb[]=" ", int DataNachRabb=0,
int DataOkonchRabb=0,int Rashodii=0, int Dohodii=0, int Pribill=0, int GodNachRabb=0, int GodOkonchRabb=0);
Dannie2(Dannie2 &obj);
friend istream& operator >> (istream &ist, Dannie2 &dd);
friend ostream& operator << (ostream &ost, Dannie2 dd);
Dannie2& operator = (Dannie2 &obj);
void vvod();
void vivod();
void shapka();
friend BD;
};
//-----------------------------------------------------------------------------
Dannie2::Dannie2(int TabNomm, int ShifrRabb, char TemaRabb[], int DataNachRabb,
int DataOkonchRabb,int Rashodii, int Dohodii, int Pribill, int GodNachRabb, int GodOkonchRabb)
{
TabNom=TabNomm;
ShifrRab=ShifrRabb;
strcpy(TemaRab, TemaRabb);
DataNachRab=DataNachRabb;
DataOkonchRab=DataOkonchRabb;
Rashodi=Rashodii;
Dohodi=Dohodii;
Pribil=Pribill;
GodNachRab=GodNachRabb;
GodOkonchRab=GodOkonchRabb;
}
//-----------------------------------------------------------------------------
Dannie2::Dannie2(Dannie2 &obj)
{
TabNom=obj.TabNom;
ShifrRab=obj.ShifrRab;
strcpy(TemaRab, obj.TemaRab);
DataNachRab=obj.DataNachRab;
DataOkonchRab=obj.DataOkonchRab;
Rashodi=obj.Rashodi;
Dohodi=obj.Dohodi;
Pribil=obj.Pribil;
GodNachRab=obj.GodNachRab;
GodOkonchRab=obj.GodOkonchRab;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
istream& operator >> (istream &ist, Dannie2 &dd)
{
ist>>dd.TabNom
>>dd.ShifrRab
>>dd.TemaRab
>>dd.DataNachRab
>>dd.DataOkonchRab
>>dd.Rashodi
>>dd.Dohodi
>>dd.Pribil
>>dd.GodNachRab
>>dd.GodOkonchRab;
return ist;
}
//-----------------------------------------------------------------------------
ostream& operator << (ostream &ost, Dannie2 dd)
{
ost<<" "<<dd.TabNom
<<" "<<dd.ShifrRab
<<" "<<dd.TemaRab
<<" "<<dd.DataNachRab
<<" "<<dd.DataOkonchRab
<<" "<<dd.Rashodi
<<" "<<dd.Dohodi
<<" "<<dd.Pribil
<<" "<<dd.GodNachRab
<<" "<<dd.GodOkonchRab<<" ";
return ost;
}
//-----------------------------------------------------------------------------
Dannie2 & Dannie2::eek:perator = (Dannie2 &obj)
{
TabNom=obj.TabNom;
ShifrRab=obj.ShifrRab;
strcpy(TemaRab, obj.TemaRab);
DataNachRab=obj.DataNachRab;
DataOkonchRab=obj.DataOkonchRab;
Rashodi=obj.Rashodi;
Dohodi=obj.Dohodi;
Pribil=obj.Dohodi-obj.Rashodi;
GodNachRab=obj.GodNachRab;
GodOkonchRab=obj.GodOkonchRab;
return *this;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void Dannie2::vvod()
{
cout<<"Vvedite tab.nomer rukovoditelya: ";
cin>>TabNom;
cout<<"Vvedite shifr raboti: ";
cin>>ShifrRab;
cout<<"Vvedite temu NIR: ";
cin>>TemaRab;
cout<<"Vvedite datu nachala NIR: ";
cin>>DataNachRab;
cout<<"Vvedite datu okonchaniya NIR: ";
cin>>DataOkonchRab;
cout<<"Vvedite rasxodi: ";
cin>>Rashodi;
cout<<"Vvedite doxodi: ";
cin>>Dohodi;
cout<<"Vvedite god nachala NIR: ";
cin>>GodNachRab;
cout<<"Vvedite god okonchaniya NIR: ";
cin>>GodOkonchRab;
Pribil=Dohodi-Rashodi;
cout<<Pribil;
}
//-----------------------------------------------------------------------------
void Dannie2::vivod()
{
cout<<setw(7)<<TabNom
<<setw(6)<<ShifrRab
<<setw(15)<<TemaRab
<<setw(7)<<DataNachRab
<<setw(7)<<DataOkonchRab
<<setw(6)<<Rashodi
<<setw(6)<<Dohodi
//<<setw(6)<<"*"<<Pribil
<<setw(6)<<GodNachRab
<<setw(6)<<GodOkonchRab<<endl;
}
//-----------------------------------------------------------------------------
void Dannie2::shapka()
{
cout<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
cout<<setw(5)<<"N"
<<setw(7)<<"TabN_r"
<<setw(6)<<"Shifr"
<<setw(15)<<"Tema rab"
<<setw(7)<<"Data_b"
<<setw(7)<<"Data_e"
<<setw(6)<<"Rash"
<<setw(6)<<"Doh"
//<<setw(6)<<"Pr"
<<setw(6)<<"God_b"
<<setw(6)<<"God_e"
<<endl;
cout<<"---------------------------------------------------------------------------"<<endl;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
class BD
{
Dannie3 d1;//Tablica 1
Dannie1 d2;//Tablica 2
Dannie2 d3;//Tablica 3
char d1_name[25];//?
char d2_name[25];
char d3_name[25];
char f_name[25];//?
int count1;
int count2;
int count3;
//////////////////
public:
BD(char[]=" ", char[]=" ", char[]=" ", int countt1=0, int countt2=0, int countt3=0);
void d1_cozd();
void d2_cozd();
void d3_cozd();
void d1_read();
void d2_read();
void d3_read();
void d1_izmen();
void d2_izmen();
void d3_izmen();
void d1_rec();
void d2_rec();
void d3_rec();
void zapros1();
void zapros2();
void zapros3();
void zapros4();
int vopros();
void vihod();
int menu();
};
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
BD::BD(char[], char[], char[], int countt1, int countt2, int countt3)
{
count1=countt1;
count2=countt2;
count3=countt3;
strcpy(d1_name, "d1_file.txt");
strcpy(d2_name, "d2_file.txt");
strcpy(d3_name, "d3_file.txt");
strcpy(f_name, "f_file.txt");
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void BD::d1_cozd()
{
ofstream fff(d1_name);//?
count1=1;//?
fff<<setw(5)<<count1<<" ";
d1.vvod();
fff<<d1;
fff.close();
}
//-----------------------------------------------------------------------------
void BD::d2_cozd()
{
ofstream fff(d2_name);
count2=1;
int f1=0;
fff<<setw(5)<<count2<<" ";
Dannie3 d1;
ifstream ddd(d1_name);
while(!f1)
{
ddd.seekg(0, ios::beg);
d2.vvod();
count2=0;
ddd>>count2;
for(int i=1; i<=count2; i++)
{
ddd>>d1;
if(!strcmp(d1.spec, d2.Spec))
{
f1=1;
break;
}
else
f1=0;
}
if(!f1)
{
cout<<endl<<"ERORR..............."<<endl<<endl;
getch();
}
}
fff<<d2;
ddd.close();
fff.close();
}
//-----------------------------------------------------------------------------
void BD::d3_cozd()
{
ofstream fff (d3_name);
count3=1;
int f1=0, f2=0;
fff<<setw(5)<<count3<<" ";
Dannie1 d2;
Dannie2 d22;
ifstream ddd(d2_name);
ifstream dd(d3_name);
while(!f1)
{
ddd.seekg(0, ios::beg);
d3.vvod();
count3=0;
ddd>>count3;
for(int i=1; i<=count3; i++)
{
ddd>>d2;
dd>>d22;
if(d2.TabNom==d3.TabNom)
{
f1=1;
break;
}
else f1=0;
/*if(d22.ShifrRab==d3.ShifrRab)
{
f2=1;
break;
}
else f2=0; */
}
if (!f1)
{
cout<<endl<<"ERORR..................."<<endl<<endl;
getch();
}
/*if (!f2)
{
cout<<endl<<"Takoe pole yje ect'..........."<<endl<<endl;
getch();
} */
}
fff<<d3;
ddd.close();
fff.close();
}
//-----------------------------------------------------------------------------
void BD::d1_read()
{
ifstream fff(d1_name);
d1.shapka();
fff>>count1;
for (int i=1; i<=count1; i++)
{
cout<<setw(5)<<i;
fff>>d1;
d1.vivod();
}
fff.close();
getch();
}
//-----------------------------------------------------------------------------
void BD::d2_read()
{
ifstream fff(d2_name);
d2.shapka();
fff>>count2;
for (int i=1; i<=count2; i++)
{
cout<<setw(5)<<i;
fff>>d2;
d2.vivod();
}
fff.close();
getch();
}
//-----------------------------------------------------------------------------
void BD::d3_read()
{
ifstream fff(d3_name);
d3.shapka();
fff>>count3;
for (int i=1; i<=count3; i++)
{
cout<<setw(5)<<i;
fff>>d3;
d3.vivod();
}
fff.close();
getch();
}
//-----------------------------------------------------------------------------
void BD::d1_izmen()
{
int f;
clrscr();
ifstream fff(d1_name);
ofstream xxx("tmp.txt");
fff>>count1;
xxx<<setw(5)<<count1<<" ";
int number, pole;
clrscr();
d1.shapka();
for(int i=1; i<=count1; i++)
{//3
fff>>d1;
cout<<setw(5)<<i;
d1.vivod();
}//3
cout<<"Vvedi nomer zapici dlja' redaktirovanija.............."<<endl<<endl;
cin>>number;
fff.seekg(6, ios::beg);
for(i=1; i<number; i++)
{//4
fff>>d1;
xxx<<d1;
}//4
fff>>d1;
int c=count1;
cout<<"4to redaktiryem......................???"<<endl;
cout<<"1 - Nazvanie Specialnocti"<<endl;
cout<<"2 - Oklad"<<endl;
cout<<"Vvedi 4iclo"<<endl;
cin>>pole;
cout<<"Vvedi novoe zna4enie: "<<endl;
switch(pole)
{//5
case 1:
{//6
Dannie3 d11;
char* SPEC;
SPEC=new char[10];
strcpy(SPEC, d1.spec);
cin>>d1.spec;
ifstream fff2 (d2_name);
ofstream f1tmp ("vrem1.txt");
Dannie1 d22;
fff2>>count2;
f1tmp<<setw(5)<<count2<<" ";
for(i=1; i<=count2; i++)
{//11
fff2>>d22;
if(!strcmp(d22.Spec, SPEC))
strcpy(d22.Spec, d1.spec);
f1tmp<<d22;
}//11
fff2.close();
unlink(d2_name);
rename ("vrem1.txt", d2_name);
}break;//6
case 2: cin>>d1.spec; break;
case 3: cin>>d1.oklad; break;
default: vihod();
}//5
xxx<<d1;
for(i=number+1; i<=c; i++)
{//7
fff>>d1;
xxx<<d1;
}//7
fff.close();
xxx.close();
unlink(d1_name);
rename("tmp.txt", d1_name);
}
//-----------------------------------------------------------------------------
void BD::d2_izmen()
{
int f;
clrscr();
ifstream fff(d2_name);
ofstream xxx("tmp.txt");
fff>>count2;
xxx<<setw(5)<<count2<<" ";
int number, pole;
clrscr();
d2.shapka();
for(int i=1; i<=count2; i++)
{//3
fff>>d2;
cout<<setw(5)<<i;
d2.vivod();
}//3
cout<<"Vvedi nomer zapici dlja' redaktirovanija.............."<<endl<<endl;
cin>>number;
fff.seekg(6, ios::beg);
for(i=1; i<number; i++)
{//4
fff>>d2;
xxx<<d2;
}//4
fff>>d2;
int c=count2;
cout<<"4to redaktiryem......................???"<<endl;
cout<<"1 - TabNomer"<<endl;
cout<<"2 - FIO Sotr"<<endl;
cout<<"3 - DataRogeniya"<<endl;
cout<<"4 - PolSotr"<<endl;
cout<<"5 - Specialnoct'"<<endl;
cout<<"6 - DataPost"<<endl;
cout<<"7 - StagRab"<<endl;
cout<<"Vvedi 4iclo"<<endl;
cin>>pole;
cout<<"Vvedi novoe zna4enie: "<<endl;
switch(pole)
{//5
case 1:
{//6
Dannie1 d11;
int TABNOM;
TABNOM=d2.TabNom;
cin>>d2.TabNom;
ifstream fff3 (d3_name);
ofstream f2tmp ("vrem2.txt");
Dannie2 d33;
fff3>>count3;
f2tmp<<setw(5)<<count3<<" ";
for(i=1; i<=count3; i++)
{//12
fff3>>d33;
if(d33.TabNom==TABNOM)
d33.TabNom=d2.TabNom;
f2tmp<<d33;
}//12
fff3.close();
f2tmp.close();
unlink(d3_name);
rename ("vrem2.txt", d3_name);
}break;//6
case 2: cin>>d2.FIOSotr; break;
case 3: cin>>d2.DataRog; break;
case 4: cin>>d2.PolSotr; break;
case 5: cout<<"Izmeni v 1-oj tablice"; break;
case 6: cin>>d2.DataPost; break;
case 7: cin>>d2.StagRab; break;
default: vihod();
}//5
xxx<<d2;
for(i=number+1; i<=c; i++)
{//7
fff>>d2;
xxx<<d2;
}//7
fff.close();
xxx.close();
unlink(d2_name);
rename("tmp.txt", d2_name);
}
//-----------------------------------------------------------------------------
void BD::d3_izmen()
{
cout<<"redaktirovanija.............."<<endl<<endl;
int zap, p;
ifstream fff(d3_name);
ofstream tmp("a2.txt");
fff>>count3;
tmp<<setw(5)<<count3<<" ";
clrscr();
d3.shapka();
for(int i=1; i<=count3; i++)
{//3
fff>>d3;
cout<<setw(5)<<i;//?
d3.vivod();
}//3
cout<<endl<<"Vvedi nom izmenjaemoj zapici"<<endl;
cin>>zap;
fff.seekg(6, ios::beg);
for(i=1; i<=zap; i++)
{
fff>>d3;
tmp<<d3;
}
fff>>d3;
cout<<endl<<"Vvedi nom dl'ja redaktirovanija"<<endl;
cout<<"1 - TabNom"<<endl;
cout<<"2 - ShifrRab"<<endl;
cout<<"3 - TemaRab"<<endl;
cout<<"4 - DataNachRab"<<endl;
cout<<"5 - DataOkonchRab"<<endl;
cout<<"6 - Rachodi"<<endl;
cout<<"7 - Dohodi"<<endl;
cout<<"8 - GodNachRab"<<endl;
cout<<"9 - GodOkonchRab"<<endl;
cin>>p;
cout<<"Vvedi novoe znachenie"<<endl;
switch(p)
{
case 1: cout<<"Izmeni v Dannie1"; break;
case 2: cin>>d3.ShifrRab; break;
case 3: cin>>d3.TemaRab; break;
case 4: cin>>d3.DataNachRab; break;
case 5: cin>>d3.DataOkonchRab; break;
case 6: cin>>d3.Rashodi; break;
case 7: cin>>d3.Dohodi; break;
case 8: cin>>d3.GodNachRab; break;
case 9: cin>>d3.GodOkonchRab; break;
default: vihod();
}
tmp<<d3;
for(i=zap+1; i<=count3; i++)
{
fff>>d3;
tmp<<d3;
}
fff.close();
tmp.close();
unlink(d3_name);
rename("a2.txt", d3_name);
}
//-----------------------------------------------------------------------------
void BD::d1_rec()
{
Dannie3 d;
int f=1;
fstream fff(d1_name, ios::in|ios::eek:ut);
ifstream ttt(d1_name);
ttt>>count1;
count1++;
fff.seekg(0, ios::beg);
d1.vvod();
for(int i=1; i<=count1; i++)
{
ttt>>d;
if(!strcmp(d1.spec, d.spec)) f=0;
}
if(f)
{
fff<<setw(5)<<count1<<" ";
fff.seekp(0, ios::end);
fff<<d1;
}
else
{
cout<<endl<<"ERROR............................................."<<endl<<endl;
//cout<<"Vvodi coglacno roditel'ckoj tablice............."<<endl<<endl;
getch();
}
ttt.close();
fff.close();
}
//-----------------------------------------------------------------------------
void BD::d2_rec()
{
Dannie1 d;
int f1, f2;
f1=f2=1;
ifstream zzz(d1_name);
ifstream aaa(d2_name);
fstream fff(d2_name, ios::in|ios::eek:ut);
d2.vvod();
zzz>>count1;
for(int i=1; i<=count1; i++)
{
zzz>>d1;
if(!strcmp(d1.spec, d2.Spec))
{
f1=1;
break;
}
else
f1=0;
}
if(f1)
{
fff.seekp(0, ios::beg);
fff>>count2;
for(i=1; i<=count2; i++)
{
aaa>>d;
if(d2.TabNom==d.TabNom)
f2=0;
}
if (f2)
{
count2++;
fff.seekp(0, ios::beg);
fff<<setw(5)<<count2<<" ";
fff.seekp(0, ios::end);
fff<<d2;
}
else
{
cout<<"ERROR................!!!"<<endl;
getch();
}
}
else
{
cout<<"ERROR.......................!!!"<<endl;
getch();
}
zzz.close();
aaa.close();
fff.close();
cout<<"PRESS ANY KEY.................."<<endl<<endl;
}
//-----------------------------------------------------------------------------
void BD::d3_rec()
{
Dannie2 d;
int f1, f2;
f1=f2=1;
ifstream zzz(d2_name);
ifstream aaa(d3_name);
fstream fff(d3_name, ios::in|ios::eek:ut);
d3.vvod();
zzz>>count1;
//count3=1;
for(int i=1; i<=count1; i++)
{
zzz>>d2;
if(d2.TabNom==d3.TabNom)
{
f1=1;
break;
}
else
f1=0;
}
if(f1)
{
fff.seekp(0, ios::beg);
fff>>count3;
for(i=1; i<=count3; i++)
{
aaa>>d;
if(d3.ShifrRab==d.ShifrRab)
f2=0;
}
if (f2)
{
count3++;
fff.seekp(0, ios::beg);
fff<<setw(5)<<count3<<" ";
fff.seekp(0, ios::end);
fff<<d3;
}
else
{
cout<<"ERROR1................!!!"<<endl;
getch();
}
}
else
{
cout<<"ERROR.......................!!!"<<endl;
getch();
}
zzz.close();
aaa.close();
fff.close();
cout<<"PRESS ANY KEY.................."<<endl<<endl;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void BD::zapros1()
{
cout<<"Opredelenie obsh'ei pribili po itogam rabot,ruk kotorix starshe 30 let"<<endl;
int sum=0;
int f=0;
ifstream SS(d2_name);
Dannie1 S1;
ifstream NN(d3_name);
Dannie2 N1;
SS>>count3;
NN>>count3;
int a=2008;
int b=30;
//int Ncount=count3=0;
for (int i=1;i<=count3;i++)
{
SS>>S1;
NN>>N1;
if (a-S1.DataRog>:)
//{if(!strcmp(S1.PolSotr, "j"))
{
sum+=N1.Pribil;
f=1;
}
}
if (!f)
cout<<"Takih rykovoditelei net";
else
cout<<"Obshaya pribil rukovod starshe 30 let:"
<<sum<<endl;
getch();
}
//-----------------------------------------------------------------------------
void BD::zapros2()
{
ifstream fff0(d2_name);
ifstream fff1(d3_name);
Dannie1 d11;
Dannie2 d22;
fff0>>count2;
fff1>>count3;
/*Тань я не зная, кокой вариант правильный
ты у неё спроси как осуществить связь Dannie1 & Dannie2
Так он выводит правильно Dannie2 убыточные работы, длящиеся более 2-х лет
но как связать это с Dannie1 и вывести сведения о сотрудниках я не понимаю=))
*/
d22.shapka();
for(int i=1; i<=count3; i++)
{
fff0>>d11;
fff1>>d22;
if(d22.Pribil<0&&(d22.DataOkonchRab-d22.DataNachRab)>2)
//if(d22.TabNom==d11.TabNom)
{cout<<setw(5)<<i;
d22.vivod();}
}
/*for(int i=1; i<=count2; i++)
{
fff0>>d11;
for(int j=1; j<=count3; j++)
{
fff1>>d22;
if(d22.Pribil<0&&(d22.DataOkonchRab-d22.DataNachRab)>2)//????
}
}*/
fff0.close();
fff1.close();
getch();
}
//-----------------------------------------------------------------------------
void BD::zapros3()
{
clrscr();
ifstream fff0(d2_name);
ifstream fff1(d3_name);
Dannie1 d11;
Dannie2 d22;
fff0>>count2;
fff1>>count3;
//int max=0;
Dannie1* mas1=new Dannie1[count2];
Dannie2* mas2=new Dannie2[count3];
for(int i=1; i<=count2; i++)
{
fff0>>d11;
mas1=d11;
}
for(i=1; i<=count3; i++)
{
fff1>>d22;
mas2=d22;
}
cout<<"1 - masiv"<<endl;
for(i=1; i<=count2; i++)
cout<<mas1<<endl;
cout<<endl;
cout<<"2 - masiv"<<endl;
for(i=1; i<=count3; i++)
cout<<mas2<<endl;
///////////////////////
/*for(i=1; i<=count3; i++)
{
max=0;
fff1>>d3;
if(max<d3.Rashodi)
max=d3.Rashodi;
}
cout<<max<<endl;*/
int* max=new int[count2];
for(i=1; i<=count2; i++)
max=0;
///////////////////////////////////////////////
for (i=1; i<=count2; i++)
{
fff0>>d11;
for(int j=1; j<=count3; j++)
{
fff1>>d22;
if(d11.TabNom==d22.TabNom)
for(int c=j; c<=count2; c++)
{
if(max[c]<d22.Rashodi)
max[c]=d22.Rashodi;
}
}
}
cout<<"4 - max"<<endl;
for(i=1; i<=count2; i++)
cout<<max<<" ";
fff0.close();
fff1.close();
getch();
}
//-----------------------------------------------------------------------------
void BD::zapros4()
{
clrscr();
ifstream NNN(d3_name);
ifstream fff(d2_name);
Dannie2 ddd;
Dannie1 sss;
NNN>>count3;
fff>>count2;
float AVG1=0;
float AVG2=0;
for(int i=1;i<=count3;i++)
{
NNN>>ddd;
AVG1+=ddd.Rashodi;
AVG2+=ddd.Pribil;
}
AVG1=AVG1/count3;
cout<<AVG1<<endl;
AVG2=AVG2/count3;
cout<<AVG2<<endl;
fff.seekg (6, ios::beg);
NNN.seekg (6, ios::beg);
sss.shapka();
for (i=1; i<=count3; i++)
{
NNN>>ddd;
fff>>sss;
if ((ddd.Pribil<AVG1)&&(ddd.Rashodi>AVG2))
ddd.vivod();
/*for(int j=1; j<=count2; j++)
if(ddd.TabNom==sss.TabNom)
sss.vivod();*/
}
getch();
fff.close();
NNN.close();
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
int BD::vopros()
{
clrscr();
int ii;
char answ;
cout<<"Vi deistvitelno xotite pokinut' eto menu? (y/n) ";
cin>>answ;
cout<<endl;
if(answ=='y') ii=0;
else ii=1;
cout<<"Press any key...";
getch();
return ii;
}
//-----------------------------------------------------------------------------
void BD::vihod()
{
cout<<"************************************BYE************************************
*****"<<endl;
getch();
exit(-1);
}
//-----------------------------------------------------------------------------
int BD::menu()
{
clrscr();
int ii;
cout<<"************************************* MENU *************************************"<<endl<<endl;
cout<<"Vvedite chislo: "<<endl<<endl;
cout<<"1 - sozdanie fayla"<<endl<<endl;
cout<<"2 - chtenie fayla"<<endl<<endl;
cout<<"3 - dozapis' v fayl"<<endl<<endl;
cout<<"4 - formatenie ukazannogo polya vibirayemoy zapisi"<<endl<<endl;
cout<<"5 - vernutsya v osnovnoe menu"<<endl<<endl;
cout<<"0 - vihod"<<endl<<endl;
cout<<"Vashe chislo: ";
cin>>ii;
cout<<endl;
return ii;
}
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
//-----------------------------------------------------------------------------
void main()
{
clrscr();
BD tt;
int a, k;
do
{
clrscr();
k=1;
cout<<"---------------------------------------MAIN_MENU--------------------------------"<<endl;
cout<<"Vvedite chislo: "<<endl<<endl;
cout<<"1 - Tablica Dannie3"<<endl<<endl;
cout<<"2 - Tablica Dannie1"<<endl<<endl;
cout<<"3 - Tablica Dannie2"<<endl<<endl;
cout<<"4 - Zapros N1"<<endl<<endl;
cout<<"5 - Zapros N2"<<endl<<endl;
cout<<"6 - Zapros N3"<<endl<<endl;
cout<<"7 - Zapros N4"<<endl<<endl;
cout<<"0 - Vihod"<<endl<<endl;
cout<<"Vashe chislo: ";
cin>>a;
cout<<endl;
switch(a)
{
case 1:
{
do
{
switch(tt.menu())
{
case 1: tt.d1_cozd(); break;
case 2: tt.d1_read(); break;
case 3: tt.d1_rec(); break;
case 4: tt.d1_izmen(); break;
case 5: k=tt.vopros(); break;
default: tt.vihod();
}
}
while (k!=0);
} break;
case 2:
{
do
{
switch(tt.menu())
{
case 1: tt.d2_cozd(); break;
case 2: tt.d2_read(); break;
case 3: tt.d2_rec(); break;
case 4: tt.d2_izmen(); break;
case 5: k=tt.vopros(); break;
default: tt.vihod();
}
}
while (k!=0);
} break;
case 3:
{
do
{
switch(tt.menu())
{
case 1: tt.d3_cozd(); break;
case 2: tt.d3_read(); break;
case 3: tt.d3_rec(); break;
case 4: tt.d3_izmen(); break;
case 5: k=tt.vopros(); break;
default: tt.vihod();
}
}
while (k!=0);
} break;
case 4: tt.zapros1(); break;
case 5: tt.zapros2(); break;
case 6: tt.zapros3(); break;
case 7: tt.zapros4(); break;
default: tt.vihod();
}
}
while (a!=0);
getch();
}