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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)


 

Табл. 2. 4 Успадкування базового класу похідним

 

Необхідно усвідомити наступні основні концепції:

  • Якщо програми використовують успадкування, то для породження нового класу необхідний базовий клас, тобто новий клас успадковує елементи уже існуючого базового класу.
  • Для ініціалізації елементів похідного класу програма повинна викликати конструктори базового і похідного класів.
  • Використовуючи оператор крапку, програми можуть легко звертатися до елементів базового і похідного класів.
  • На додаток до загальних (public) (доступним всім) і приватних (private) (доступним методам класу) елементів C++ надає захищені (protected) елементи, які доступні базовому і похідному класам.
  • Для вирішення конфлікту імен між елементами базового і похідного класів програма може використовувати оператор глобального дозволу, указуючи перед ним ім'я базового або похідного класу.

 

 

Успадкування є фундаментальною концепцією об'єктно-орієнтованого програмування.[5]

 

Дружня функція

 

Дружня функція є функцією, яка не є членом класу, може мати доступ до його приватним членам у випадку, якщо вона оголошена другом (friend) класу (Табл. 2. 5).


 

Табл. 2. 5 Оголошення дружньої функції

 

Ідентифікатор класу

 

Ідентифікатор є ім'ям, наприклад ім'ям змінни або класу. Якщо ваші програми використовують дружні класи, то може трапитися, що визначення одного класу посилається на інший клас (його ім'я або ідентифікатор), про який компілятор C++ ще нічого не знає. В таких випадках компілятор C++ буде повідомляти про синтаксичні помилки. Щоб позбутися помилок типу "що слідує визначати спочатку", C++ дозволяє вам включати в початок початкового тексту програми оголошення класу, тим самим вводячи ідентифікатор класу.

 

Поліморфізм. Віртуальні методи.

 

Коли програмісти говорять про C++ і об'єктно-орієнтованому програмуванні, то дуже часто використовують термін поліморфізм. В загальному випадку поліморфізм є здатністю об'єкту змінювати форму. Якщо розділити цей термін на частини, то неважко помітити, що полі означає багато, а морфизм відноситься до зміни форми. Отже, поліморфний об'єкт – це об'єкт, який може приймати різні форми. Необчідно освоїти наступні основні концепції:

  • Поліморфізм є здатністю об'єкту змінювати форму під час виконання програми.
  • Для створення поліморфних об'єктів необхідно використовувати так звані віртуальні (virtual) функції.
  • Віртуальна (virtual) функція — це функція базового класу, перед ім'ям якої стоїть ключове слово virtual.
  • Будь-який похідний від базового клас може використовувати або перенавантажувати віртуальні функції.
  • Для створення поліморфного об'єкту слідує використовувати покажчик на об'єкт базового класу.

Поліморфний об'єкт представляє собою такий об'єкт, який може змінювати форму під час виконання програми. Припустимо, наприклад, що необхідно написати програму, яка знаходить суму двох чисел.

 

 

 

 

Виняткові ситуації

 

Обробка виняткових ситуацій у мові С++ є об’єктно-орієнтованою. Це значить, що виняткова ситуація є об'єктом, що генерується при виникненні незвичайних умов, передбачених програмістом, і передається оброблювачу, що неї перехоплює. Об'єктом, що описує природу виняткової ситуації, може бути будь-як сутність — літерал, рядок, об'єкт класу, число і т.д. Не слід думати, що виняткова ситуація обов'язково повинна бути об'єктом якого-небудь класу.

В основі обробки виняткових ситуацій у мові С++ лежать три ключових слова: try, catch і throw. Якщо програміст підозрює, що визначений фрагмент програми може спровокувати помилку, він повинний занурити цю частину коду в блок try (Табл. 2. 6).

 

Табл. 2. 6 Виняткова ситуація

Необхідно мати на увазі, що зміст помилки (за винятком стандартних ситуацій) визначає сам програміст. Це значить, що програміст може задати будь-яку умову, що приведе до створення виняткової ситуації. Після цього необхідно вказати, у яких умовах варто генерувати виняткову ситуацію. Для цієї мети призначене ключове слово throw. І нарешті, виняткову ситуацію потрібно перехопити й обробити в блоці catch. Ось як виглядає ця конструкція.

 

 

Операція помістити в потік і операція взяти з потоку

 

C++ підтримує всі функції введення-виведення C і визначає свою власну об’єктно-орієнтовану систему введення-виведення. Щоб забезпечити доступ програмі до бібліотеки потоків, необхідно підключити заголовний файл <iostream>, у якому визначені складні набори ієрархії класів, що підтримують операції введення-виведення. Клас ios забезпечує підтримку форматованого введення-виведення, контроль помилок і інформацію про стан потоку введення-виведення. Від нього породжені класи istream, ostream, iostream, які використовуються відповідно для створення потоків введення, виведення і введення-виведення. 

Операція лівого зсуву використовується в С++ як операція помістити в потік, а операція правого зсуву використовується як операція взяти з потоку. Кожна з цих операцій перевантажена в бібліотеці класів С++. Таке перевантаження дозволяє використати одноманітний синтаксис для введення і виведення, символів рядків, цілого і дійсних чисел. У загальному випадку для виведення на екран монітора використовується така форма операції <<:

«cout << вираз» або «file1<< вираз».

Для роботи з файлами потрібно підключити бібліотеку <fstream>, вона включає набір класів, методів і функцій, які надають інтерфейс для читання та запису даних файлу або в файл (Табл. 2. 7).[1]

Табл. 2. 7 Робота з файлами 

 

РОЗДІЛ III. ПОСТАНОВКА ЗАДАЧІ ДЛЯ РОЗРОБКИ ПОГРАМИ

 

 

    1. Постановка задачі

 

 

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

Потрібно створити комп'ютерну систему, що автоматизує окремі функції секретаря фірми - формування та підтримку календаря фірми і контроль позначених у ньому подій. Основні функції системи:

    • Уточнення (актуалізація) календаря: з календаря автоматично видаляються вже відбулися події дня, а також (за вказівкою користувача) додаються нові заплановані заходи або ж уточнюються характеристики подій, вже представлених в календарі;
    • Видача за запитом користувача всієї інформації про календарні події, включаючи зручний перегляд подій, запланованих на певний день або період дня - або для всієї фірми, або для певного відділу, або для певного співробітника;

При додаванні в календар нових подій перевіряється їх здійсненність, при цьому можуть бути виявлені конфлікти: наприклад, участь деякого співробітника в один і той же час у двох різних заходах, або ж накладення за часом двох різних заходів, що проводяться в конференц -залі. Інформація про виявлені конфліктах показується користувачеві системи, і він повинен дозволити кожен конфлікт, змінюючи деякі характеристики або додається в календар події або ж вже призначеного і внесеного до календаря події. Можливість останнього залежить, взагалі кажучи, від категорії користувача: наприклад, керівники можуть міняти вже призначені час і місце подій, але рядовим співробітникам це не дозволено. Бажано реалізувати в комп'ютерній системі автоматичний підбір декількох способів вирішення виникаючих конфліктів - з тим, щоб користувач вибирав потрібний спосіб з числа запропонованих системою.

Необхідно випробувати побудовану систему автоматизації, встановивши для цього деякий первісний стан календаря подій і змоделювавши покрокове зміна часу. Мета моделювання - уточнення закладених в систему процедур актуалізації календаря. Період моделювання - N днів (7 ≤ N ≤ 30), крок - півгодини або годину. У параметри моделювання можна включити умови видачі нагадувань про події календаря і / або умови дозволу виявлених конфліктів. По закінченні моделювання система виводить підсумковий звіт по всіх подіям, що сталися на фірмі протягом періоду моделювання.

 

 

 

 

 

РОЗДІЛ ІV. ПРОГРАМНА РЕАЛІЗАЦІЯ АЛГОРИТМУ ФУНКЦІЙ СЕКРЕТАРЯ

 

4.1 Схема алгоритму програми, та його аналіз

 

Дивлячись на завдання, я побудував загальну схему алгоритму програмного продукту (Схема 4. 1):

 


 

 

Схема. 4. 1 Загальна схема роботи програми

Загальне завдання роботи програми є отримати завдання та виконати його. Відповідно до завдання в програму вводяться деякі первинні дані що потрібно перевірити, обробити та записати в календар відповідним чином(Схема 4. 2).


Схема 4. 2 Принцип роботи програми

 

Завдання задається користувачем вибираючи функції та задаючи дані необхідні для роботи програми.

Для можливості вибору функцій було створене меню, яке вмикається одразу після введення ім’я секретаря. Для створення такого меню я використав цикл, який працює поки вводять дані відповідного типу (Табл. 4. 3).


Табл. 4. 3 Алгоритм роботи меню

Меню програми включає в  себе наступні  пункти:

  • Телефонне обслуговування
  • Прийом відвідувачів
  • Підготовка відрядження
  • Підготовка наради
  • Вивести операції
  • Вихід
  • Вивести журнали на екран 
  • Пошук події за днем
  • Видалення всіх подій з пам'яті

Телефонне обслуговування

Реалізація цієї функції закладалась в тому, щоб ввести ім’я людини що телефонує а також час дзвінка, звісно повинна бути перевірка того чи є керівник на робочому місці.


Табл. 4. 4 Алгоритм роботи телефонного обслуговування

На «Табл. 4. 4» зображено роботу алгоритму телефонного обслуговування із перевіркою. В 3-му рядку вводиться час (день, година та хвилина) телефонного дзвінка, пізніше цей час конвертується з ручного нам вигляду до формату програми, щоб можливо було звірити час із іншими записами(4 рядок). З 6-го по 19-тий рядки виконується блок перевірки. В цьому блоці з 8 по 12 рядки прокручується цикл в якому звіряється введений час із час де керівник зайнятий. Якщо керівник зайнятий тоді видається помилка (10-тий рядок) і виконується вивід повідомлення (21-ший рядок). У випадку якщо не видає помилки виконується алгоритм запису часу дзвінка (15-тий рядок), ім’я (14-тий рядок) та номер (17-тий рядок).

Введені дані записуються у відповідні комірки масивів. Ці масиви знаходиться в класі «Calendar» (Табл. 4. 5).

Клас «Calendar» являє собою сукупність масивів у яких записуються дані про телефонне обслуговування, прийом відвідувачів та підготовка нарад.

 


Табл. 4. 5 Клас «Calendar»

В класі «Calendar» також введені іменна дружніх функцій, які працюють із даними класу.

За конвертування часу із різних форматів відповідає клас «time»        (Табл. 4.6).

Табл. 4. 6 Клас «time»

 

В даному класі створенні елементи різних типів часу, а також методи конвертування часу з одного формату в інший та дружні функції, які можуть використовувати елементи класу.

До дружніх функцій належить:

    • screan() – ця функція виводить на екран всю інформацію записану в масиви (Табл. 4. 7).

Табл. 4. 7 Функція screan()

    • FileUSER() – фукція подібна функції screan(), вона виводить інформацію в файл (Табл. 4. 8).

Табл. 4. 8 Функція FileUSER()

 

    • pushuk() – фукція пошуку по часу, вона працює звіренням введеного часу із часами записів журналів, якщо час співпадає то виводить на екран всю інформацію про запис (Табл. 4. 9).

Табл. 4. 9 Функція pushuk()

    • Sort() – функція сортування, побудована на основі бульбашкового сортування, сортування здійснюється відносно часу запису       (Табл. 4. 10).

Табл. 4. 10 Функція Sort()

    • FileOut() – це функція для виводу в файл журналів, щоб при закритті програми можливо було зберегти журнали (Табл. 4. 11).

Табл. 4. 11 Функція FileOut()

    • FileIn() – функція зчитування журналів з файлу та запис цих журналі у відповідні масиви (Табл. 4. 12).

Табл. 4. 12 Функція FileIn()

Прийом відвідувачів

Реалізація цієї функції закладалась в тому, щоб ввести відвідання та звірити чи є керівник на робочому місці або чи немає іншого запису на введений час. Якщо керівник вільний тоді записується час та ім’я відвідувача  у відповідний журнал. Алгоритм перевірки та запису прийому відвідувачів аналогічний алгоритму перевірки та запису телефонного обслуговування    (Табл. 4. 4).

Підготовка відрядження

Пункт меню «Підготовка відрядження» має два пукти, а саме підготовка відрядження керівника та підготовка відрядження працівника (Табл. 4. 13).

 

Табл. 4. 13 Алгоритм роботи пункту меню «Підготовка відрядження»

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