Система автоматизації функцій секретаря

Автор работы: Пользователь скрыл имя, 26 Марта 2014 в 17:00, курсовая работа

Краткое описание

Завдання курсового проекту: деяка фірма включає K різних відділів (5 ≤ K ≤ 9), для узгодження роботи яких використовується щотижневий спільний календар. У цьому календарі представлені різноманітні заходи та події: щоденні планерки співробітників кожного відділу, щотижневі наради керівників відділів, відрядження співробітників відділів та керівництва, періодичні тематичні семінари, в яких можуть брати участь співробітники різних розділів і т.п. У кожного календарного події є дата, час початку і кінця (або його тривалість), місце проведення, учасники, ступінь важливості та інші характеристики. Внутрішні заходи фірми можуть проходити або в приміщеннях відділів, або в конференц -залі фірми.

Содержание

ЗМІСТ
ЛИСТ МЕТИ ТА ЗАВДАННЯ …………………………………………….....3
РЕФЕРАТ………………………………………………………………………4
ВСТУП…………………………………………………………………………5
РОЗДІЛ І. ОСОБЛИВОСТІ ФУНКЦІЙ СЕКРЕТАРЯ ………..…………….6
Функції секретаря ………………………………………………….6
РОЗДІЛ II. ОСОБЛИВОСТІ ОБ’ЄКТНО ОРІЄНТОВНОГО ПРОГРАМУВАННЯ НА С++ ……………………………………………………..8
2.1 Теоретичні відомості ………………………………………………8
РОЗДІЛ III. ПОСТАНОВКА ЗАДАЧІ ДЛЯ РОЗРОБКИ ПОГРАМИ ….....17
Постановка задачі ………………………………………………….17
РОЗДІЛ ІV. ПРОГРАМНА РЕАЛІЗАЦІЯ АЛГОРИТМУ ФУНКЦІЙ СЕКРЕТАРЯ ……………………………………………………………………….19
4.1 Схема алгоритму програми, та його аналіз …………………….19
ВИСНОВКИ ТА ПРОПОЗИЦІЇ .…………………………………………….28
СПИСОК ВИКОРИСТАНОЇ ЛІТЕРАТУРИ ……………………………….29

Вложенные файлы: 1 файл

Міністерство.doc

— 420.50 Кб (Скачать файл)

                                    }

                    }

            }

            n=0;

  while(c.name[n]!="")n++;

for(int j=0;j<n;j++){ // алгоритм сортування

            for(int i=0;i<n;i++){

                    if(c.poizdky[i][0]>c.poizdky[i+1][0] && i!=n-1){

                                    int tmp;

                                    tmp=c.poizdky[i+1][0];

                                    c.poizdky[i+1][0]=c.poizdky[i][0];

                                    c.poizdky[i][0]=tmp;

                                    string t;

                                    t=c.name[i+1];

                                    c.name[i+1]=c.name[i];

                                    c.name[i]=t;

                                    tmp=c.poizdky[i+1][1];

                                    c.poizdky[i+1][1]=c.poizdky[i][1];

                                    c.poizdky[i][1]=tmp;

                                    }

                    }

            }

             n=0;

             int u=0;

  while(d.narad[n][0]!="")n++;

            for(int j=0;j<n;j++){ // алгоритм сортування

            for(int i=0;i<n;i++){

                    if(d.naradd[i][0]>d.naradd[i+1][0] && i!=n-1){

                                    int tmp;

                                    tmp=d.naradd[i+1][0];

                                    d.naradd[i+1][0]=d.naradd[i][0];

                                    d.naradd[i][0]=tmp;

                                    string t;

                                   

                                    for(u=0;u<25;u++){

                                    t=d.narad[i+1][u];

                                    d.narad[i+1][u]=d.narad[i][u];

                                    d.narad[i][u]=t;

                                   

                                    }

                                   

                                   

                                    tmp=d.naradd[i+1][1];

                                    d.naradd[i+1][1]=d.naradd[i][1];

                                    d.naradd[i][1]=tmp;

                                    }

                    }

            }

 

 

}

void print(){//функція виводу на екран інформації про наявні пункти меню

cout<<"Введiть вашу операцiю  вiдповiдною цифрою"<<endl;

cout<<"1 - Телефонне обслуговування "<<endl;

cout<<"2 - Прийом вiдвiдувачiв"<<endl;

cout<<"3 - Пiдготовка вiдрядження"<<endl;

cout<<"4 - Пiдготовка наради"<<endl;

cout<<"5 - Вивести операцiї"<<endl;

cout<<"6 - Вихiд"<<endl;

cout<<"7 - Вивести журнали на  екран"<<endl; 

cout<<"8 - Пошук подiї за днем"<<endl;

cout<<"9 - Видалення всiх подiй з пам'ятi"<<endl;  

}

void FileOut(time &a, Boss &b,  Prac &c, Calendar &d){/*функція виводу в файл журналів (для програми)*/

      ofstream file2("FileOut");

    int n=0;

while(d.tel[n]!="")n++;

file2<<n<<endl;

    file2.close();

ofstream file1("FileOut",ios::app);

int i=0;

while(d.tel[i]!=""){// запис журналу

file1<<d.tel[i]<<" "<<d.tell[i][0]<<" "<<d.tell[i][1]<<" "<<endl;

i++ ;

}

n=0;

while(d.vidvid[n]!="")n++;

file1<<n<<endl;

for(i=0;i<n;i++) file1<<d.vidvid[i]<<" "<<d.vidvidd[i][0]<<endl;

 

n=0;

while(b.podia[n]!="")n++;

file1<<n<<endl;

for(i=0;i<n;i++) file1<<b.podia[i]<<" "<<b.chasBoss[i][0]<<" "<<b.chasBoss[i][1]<<endl;

n=0;

while(c.name[n]!="")n++;

file1<<n<<endl;

    for(i=0;i<n;i++) file1<<c.name[i]<<" "<<c.poizdky[i][0]<<" "<<c.poizdky[i][1]<<endl;

    n=0;

    int o=0;

while(d.narad[n][0]!="")n++;

file1<<n<<endl;

   for(i=0;i<n;i++){ file1<<d.naradd[i][0]<<" "<<d.naradd[i][1]<<" ";

    o=0;

     while(d.narad[i][o]!="")o++;

     file1<<o<<" ";

    for(int j=0;j<o;j++)file1<<" "<<d.narad[i][j];

file1<<endl;

}

file1.close();

}

void FileIn(time &a, Boss &b,  Prac &c, Calendar &d){ /*функція вводу з файлу журналів (для програми)*/

ifstream file1("FileOut");//відкриття файлу

int n;

file1>>n;//зчитування кількості записів у журналі

for(int i=0; i<n; i++) file1>>d.tel[i]>>d.tell[i][0]>>d.tell[i][1];//зчитування журнала

file1>>n;

for(int i=0; i<n; i++) file1>>d.vidvid[i]>>d.vidvidd[i][0];

file1>>n;

for(int i=0; i<n; i++) file1>>b.podia[i]>>b.chasBoss[i][0]>>b.chasBoss[i][1];

file1>>n;

for(int i=0; i<n; i++) file1>>c.name[i]>>c.poizdky[i][0]>>c.poizdky[i][1];

int o;

file1>>n;

for(int i=0; i<n; i++){file1>>d.naradd[i][0]>>d.naradd[i][1];

file1>>o;

for(int j=0;j<o;j++)file1>>d.narad[i][j]; 

}

file1.close();

}

void screan(time a, Boss b,  Prac c, Calendar d){//функція виводу фурналів на екран

int i=0;

cout<<"\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n";

cout<<" ----------------------------ЖУРНАЛ ДЗВIНКIВ---------------------------\n";

cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n\n";

cout.fill('.');

while(d.tel[i]!=""){

cout.fill('.');

    cout.width(30);

cout<<d.tel[i]<<" ";

a.pro=d.tell[i][0];

a.ProToIn();

cout<<" номер телефону: "<<d.tell[i][1]<<endl;

i++ ;

}

i=0;

cout<<"\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n";

cout<<" ----------------------------ЖУРНАЛ ВIДВIДУВАЧIВ-----------------------\n";

cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n\n";

while(d.vidvid[i]!=""){

cout.fill('.');

cout.width(30);

     cout<<d.vidvid[i]<<" ";

     a.pro=d.vidvidd[i][0];

     a.ProToIn();

     cout<<endl;

i++; 

}

     i=0;

cout<<"\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n";

cout<<" -------------------------------ЖУРНАЛ  НАРАД---------------------------\n";

cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n\n";

while(d.narad[i][0]!=""){

 

int o=0;

cout<<" з ";

     a.pro=d.naradd[i][0];

     a.ProToIn();

     cout<<" до ";

     a.pro=d.naradd[i][1];

     a.ProToIn();

     while(d.narad[i][o]!=""){

      cout<<" "<<d.narad[i][o];

      o++;

     }

     cout<<endl;

i++; 

}

i=0;

cout<<"\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n";

cout<<" ------------------------------ЖУРНАЛ  ВIДРДЖЕНЬ------------------------\n";

cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ \n\n";

cout<<"                                              КЕРIВНИКА                 \n\n";

while(b.podia[i]!=""){

cout.fill('.');

cout.width(30);

     cout<<b.podia[i]<<" з ";

     a.pro=b.chasBoss[i][0];

     a.ProToIn();

     cout<<" до ";

     a.pro=b.chasBoss[i][1];

     a.ProToIn();

     cout<<endl;

i++; 

}

     cout<<"                                              ПРАЦIВНИКА                \n\n";

     i=0;

while(c.name[i]!=""){

cout.fill('.');

cout.width(30);

     cout<<c.name[i]<<" з ";

     a.pro=c.poizdky[i][0];

     a.ProToIn();

     cout<<" до ";

     a.pro=c.poizdky[i][1];

     a.ProToIn();

     cout<<endl;

i++; 

}

FileUSER(a, b, c, d);//функція запису жерналів в файл (для користувача)

}

void prnarad(Prac c,  Calendar &q, int i){//функція  перевірки даних, необхідних для проведення наради

 

int a=0;

int j=0;

string t;

try{

  while(j<i){

f(!((q.naradd[i][0]>=q.naradd[j][1])||(q.naradd[i][1]<=q.naradd[j][0])))

//умова чи вільний актовий  зал

throw a;

j++;}

int w=0;

cout<<"Введiть учасникiв наради (щоб закiнчити введiть -1):\n";

while((cin>>t)&&(t!="-1")){//введення імен учасників наради

q.narad[i][w]=t;

int j=0;

int p=0;

try{

  while(c.name[j]!=""){

if((c.name[j]==q.narad[i][w])&&!((q.naradd[i][0]>=c.poizdky[j][1])||(q.naradd[i][1]<=c.poizdky[j][0])))

//умова чи зайнята дана особо  в чей час

throw p;

j++;}

j=0;

while(q.narad[i][j]!=""){

if((q.narad[i][j]==q.narad[i][w])&&(w!=j)){

throw p;}

j++;}

w++;

}

catch(int p){

     

        cout<<"````````````````````````````````````````````````````````````````````````````````"<<endl;

cout<<"   ЦЯ ЛЮДИНА ЗАЙНЯТА  В ЦЕЙ ЧАС!!! ЩОБ ВВЕСТИ НОВI ДАНI ВИКOНАЙТЕ ОПЕРАЦIЮ ЗНОВУ!"<<endl;

cout<<"````````````````````````````````````````````````````````````````````````````````"<<endl;

}

//Запис співробітників нв нараду 

}}

catch(int a){

            if(i!=0)

        i--;

        cout<<"````````````````````````````````````````````````````````````````````````````````"<<endl;

cout<<"АКТОВИЙ ЗАЛ ЗАЙНЯТИЙ  В ЦЕЙ ЧАС!!! ЩОБ ВВЕСТИ НОВI ДАНI ВИКOНАЙТЕ ОПЕРАЦIЮ ЗНОВУ!"<<endl;

cout<<"````````````````````````````````````````````````````````````````````````````````"<<endl;

}

 

}

void pushuk(time a, Boss b,  Prac c, Calendar d){//функція пошуку

int i=0;

int t=0;

cout<<"Введiть дату та час  для пошуку \n";

  cin>> a.ind;//введення часу пошуку

  a.ing=0; a.inh=0;

  a.InToPro();

  t=a.pro;

  if(t%(24*60)==0){

   while(d.tel[i]!=""){//прокрутка журналу

    if((d.tell[i][0]>=t)&&(d.tell[i][0]<=(t+(24*60))))//умова пошуку

  { cout<<d.tel[i]<<" ";//вивід інформації запису

           a.pro=d.tell[i][0];

          a.ProToIn();

          cout<<" номер телефону: "<<d.tell[i][1]<<endl;

    }i++;

  }

  i=0;

  while(d.vidvid[i]!=""){

   if((d.vidvidd[i][0]>=t)&&(d.vidvidd[i][0]<=(t+(24*60)))){

    cout.fill('.');

cout.width(30);

     cout<<d.vidvid[i]<<" ";

     a.pro=d.vidvidd[i][0];

     a.ProToIn(); 

     cout<<endl;

   }

  i++; 

  }

  i=0;

  while(b.podia[i]!=""){

 if(((b.chasBoss[i][0]>=t)&&(b.chasBoss[i][0]<=(t+(24*60))))||((b.chasBoss[i][1]>=t)&&(b.chasBoss[i][1]<=(t+(24*60))))){

    cout.fill('.');

cout.width(30);

     cout<<b.podia[i]<<" з ";

     a.pro=b.chasBoss[i][0];

     a.ProToIn();

     cout<<" до ";

     a.pro=b.chasBoss[i][1];

     a.ProToIn(); 

     cout<<endl;

   }

  i++; 

  }

  i=0;

  while(c.name[i]!=""){

   if(((c.poizdky[i][0]>=t)&&(c.poizdky[i][0]<=(t+(24*60))))||((c.poizdky[i][1]>=t)&&(c.poizdky[i][1]<=(t+(24*60))))){

    cout.fill('.');

cout.width(30);

     cout<<c.name[i]<<" з ";

     a.pro=c.poizdky[i][0];

     a.ProToIn();

     cout<<" до ";

     a.pro=c.poizdky[i][1];

     a.ProToIn();

     cout<<endl;

   }

  i++; 

  } 

  }

}

 

//*--------------------------------------------------------------------------------------------

int main()//тіло програми

{ setlocale(LC_ALL,"Russian");

Boss I;//створення об’єкта класу 

int a=0;//для перевірки

Prac You;

Secretar Ana;

cout<<"Введiть Прiзвище Iм'я секретаря (Через '_'):";

cin>>Ana.name;

int w;

time perr;

Calendar Col;

FileIn(perr, I , You, Col);//зчитування журналів з файлу

//лічильники записів в журналах 

int i=0;//телефонні дзвінки

int j=0;//відвідувачі

int k=0;//босс

int y=0;//працівники

int n=0;//наради

while(Col.tel[i]!="")i++;//знаходження довжини журналу

while(Col.vidvid[j]!="")j++;

while(I.podia[k]!="") k++;

while(You.name[y]!="" )y++;

while(Col.narad[n][0]!="")n++;

print();

while(cin>>w){

      try{

if((w<1)||(w>9)) throw a;//перевірка введених даних

 

}

catch(int a){

cout<<"ВИ ВВЕЛИ НЕ ПРАВИЛЬНО"<<endl;

print();}

if(w==1){//......................................................................................

cout<<"Введiть Час телефонування(день година хвилина - через пробiл): ";

if(cin>>perr.ind>>perr.ing>>perr.inh){//перевірка чи є на місці керівник

perr.InToPro();

 

try{int term=0 ;

int l=0;

while(Col.tel[term]!=""){

if(((perr.pro<=I.chasBoss[term][1])&&(perr.pro>=I.chasBoss[term][0])))

throw l;

term++;

}

cout <<" Введiть Прiзвище Iм'я  телефонуючого (Через '_'):";

cin>>Col.tel[i];

Col.tell[i][0]=perr.pro;

cout<<"Введiть номер :";

cin>>Col.tell[i][1];

i++;

}

catch(int l){

cout<<"------------------- Керiвника немає  на мiсцi ------------------------\n ";

}

}

}

 

if(w==2){//......................................................................................

cout<<"Введiть Час запису  на коли(день година хвилина - через пробiл): \n";

if(cin>>perr.ind>>perr.ing>>perr.inh){ /перевірка чи є на місці керівник та чи немає в нього іншого //відвідувача

perr.InToPro();

try{int term=0 ;

int l=0;

while(I.podia[term]!=""){

if(((perr.pro<=I.chasBoss[term][1])&&(perr.pro>=I.chasBoss[term][0])))

throw l;

term++;

}

term=0 ;

while(Col.vidvid[term]!=""){

if(((perr.pro<Col.vidvidd[term][0]+30)&&(perr.pro>Col.vidvidd[term][0])))

throw l;

term++;

}

cout<<"Введiть Прiзвище Iм'я вiдвiдувача  (Через '_'):";

    cin>>Col.vidvid[j];

Col.vidvidd[j][0]=perr.pro;

j++;

}

catch(int l){

cout<<"--------------- Керiвника немає на мiсцi або вiн зайнятий---------------\n ";

}

}

}

if(w==3){//......................................................................................

cout<<"Хто iде у вiдрядження \n 1 - Босс \n 2 - Працiвник\n";

cin>>w;

if(w==1){

cout<<"Введiть Час вiдрядження (денi з - по через пробiл)\n";

cin>>perr.ind;

perr.ing=0;

    perr.inh=0;

    perr.InToPro();

    I.chasBoss[k][0]=perr.pro;

    cin>>perr.ind;

    perr.InToPro();

    I.chasBoss[k][1]=perr.pro;

    cout<<"Введiть мету вiдрялження:\n";

    cin>>I.podia[k];

    k++;

}

if(w==2){

cout<<"Введiть Прiзвище Iм'я працiвника  (Через '_'):";

cin>>You.name[y];

cout<<"Введiть Час вiдрядження (денi з - по через пробiл)\n";

cin>>perr.ind;

perr.ing=0;

    perr.inh=0;

    perr.InToPro();

    You.poizdky[y][0]=perr.pro;

    cin>>perr.ind;

    perr.InToPro();

    You.poizdky[y][1]=perr.pro;

    You.obr(y);

    y++;

}

}

if(w==4){//......................................................................................

cout<<"Введiть Час проведення наради (день година хвилина - через пробiл):\nз ";

cin>>perr.ind>>perr.ing>>perr.inh;

perr.InToPro();

Col.naradd[n][0]=perr.pro;

cout<<"Введiть Час проведення  наради (день година хвилина - через  пробiл):\nдо ";

cin>>perr.ind>>perr.ing>>perr.inh;

perr.InToPro();

Col.naradd[n][1]=perr.pro;

prnarad(You, Col, n);

n++;

}

if(w==5) {

}

if(w==6) break; //......................................................................................

if(w==7){

 

Sort(perr, I , You, Col);

screan(perr, I , You, Col); 

}

if(w==8) {pushuk(perr, I , You, Col);

}

if(w==9) {

ofstream file1("FileOut");

file1<<0<<endl<<endl<<0<<endl<<0<<endl<<0<<endl<<0; 

int i=0;//телефонні дзвінки

int j=0;//відвідувачі

int k=0;//босс

int y=0;//працівники

int n=0;//наради

Col.tel[0]="";

Col.vidvid[j]="";

I.podia[k]="";

You.name[y]="";

Информация о работе Система автоматизації функцій секретаря