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

Тема в разделе "C/C++/C#", создана пользователем eta-777, 22 фев 2012.

  1. eta-777

    eta-777 Гость

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

    База данных: НИР.
    Таблица 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();
    }
     
Загрузка...

Поделиться этой страницей