Автор работы: Пользователь скрыл имя, 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
}
}
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[
int tmp;
t=c.name[i+1];
}
}
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+
d.naradd[i+1][0]=d.naradd[i][
t=d.narad[i+1][u];
}
}
}
}
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]>
file1>>n;
for(int i=0; i<n; i++) file1>>d.vidvid[i]>>d.vidvidd[
file1>>n;
for(int i=0; i<n; i++) file1>>b.podia[i]>>b.chasBoss[
file1>>n;
for(int i=0; i<n; i++) file1>>c.name[i]>>c.poizdky[i]
int o;
file1>>n;
for(int i=0; i<n; i++){file1>>d.naradd[i][0]>>d.
file1>>o;
for(int j=0;j<o;j++)file1>>d.narad[i][
}
file1.close();
}
void screan(time a, Boss b, Prac c, Calendar d){//функція виводу фурналів на екран
int i=0;
cout<<"\n ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cout<<" ----------------------------
cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cout<<" ----------------------------
cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cout<<" ------------------------------
cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cout<<" ------------------------------
cout<<" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
cout<<"
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=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[
//умова чи вільний актовий зал
throw a;
j++;}
int w=0;
cout<<"Введiть учасникiв
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])&
//умова чи зайнята дана особо в чей час
throw p;
j++;}
j=0;
while(q.narad[i][j]!=""){
if((q.narad[i][j]==q.narad[i][
throw p;}
j++;}
w++;
}
catch(int p){
cout<<"```````````````````````
cout<<" ЦЯ ЛЮДИНА ЗАЙНЯТА В ЦЕЙ ЧАС!!! ЩОБ ВВЕСТИ НОВI ДАНI ВИКOНАЙТЕ ОПЕРАЦIЮ ЗНОВУ!"<<endl;
cout<<"```````````````````````
}
//Запис співробітників нв
}}
catch(int a){
if(i!=0)
i--;
cout<<"```````````````````````
cout<<"АКТОВИЙ ЗАЛ ЗАЙНЯТИЙ
В ЦЕЙ ЧАС!!! ЩОБ ВВЕСТИ НОВI
ДАНI ВИКOНАЙТЕ ОПЕРАЦIЮ ЗНОВУ!"<<
cout<<"```````````````````````
}
}
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.
{ 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)&&(
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)&&(
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)&&(
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<<"ВИ ВВЕЛИ НЕ ПРАВИЛЬНО"<
print();}
if(w==1){//...................
cout<<"Введiть Час телефонуван
if(cin>>perr.ind>>perr.ing>>
perr.InToPro();
try{int term=0 ;
int l=0;
while(Col.tel[term]!=""){
if(((perr.pro<=I.chasBoss[
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.InToPro();
try{int term=0 ;
int l=0;
while(I.podia[term]!=""){
if(((perr.pro<=I.chasBoss[
throw l;
term++;
}
term=0 ;
while(Col.vidvid[term]!=""){
if(((perr.pro<Col.vidvidd[
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.
perr.InToPro();
Col.naradd[n][0]=perr.pro;
cout<<"Введiть Час проведення наради (день година хвилина - через пробiл):\nдо ";
cin>>perr.ind>>perr.ing>>perr.
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<
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]="";