Допомога у написанні освітніх робіт...
Допоможемо швидко та з гарантією якості!

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

КурсоваДопомога в написанніДізнатися вартістьмоєї роботи

Поява інформатики на «горизонті» сучасної науки виявилося несподіваним в різних аспектах і для багатьох дослідників. Багато хто поспішає додати їй риси загальності, визначити відношення її до кібернетики, підкреслити природу її «безпаперовості» і ін. В той же час курс сучасних лекцій по інформатиці вже декілька років є нормативними у ряді вузів і на його основі розроблені інші прикладні курси… Читати ще >

Система автоматизації функцій секретаря (реферат, курсова, диплом, контрольна)

ЗМІСТ

  • ВСТУП
  • РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ
    • 1.1 Поняття автоматизація
    • 1.2 Автоматизація і інформаційні технології
    • 1.3 Поняття системи автоматизації
    • 1.4 Елементи об'єктного підходу
    • 1.5 Постановка задачі
  • РОЗДІЛ 2. ОБ'ЄКТНО-ОРІЄНТОВАНИЙ АНАЛІЗ
    • 2.1 Вибір мови програмування
    • 2.2 Аналіз
    • 2.3 Бібліотеки класів
    • 2.4 Основна робота програми
    • РОЗДІЛ 3. ПРОГРАМНА РЕАЛІЗАЦІЯ
    • 3.1 Реалізація інтерфейсу
    • 3.2 Діаграма класів до основних функцій программи
    • 3.3 Інструкція користуваня
  • ВИСНОВКИ
  • СПИСОК ВИКОРИСТАННИХ ДЖЕРЕЛ
  • ДОДАТОК

ВСТУП Об'ємктно-орієнтомване програмувамння (ООП) — одна з парадигм програмування, яка розглядає програму як множину «об'єктів», що взаємодіють між собою. В ній використано декілька технологій від попередніх парадигм, зокрема успадкування, модульність, поліморфізм та інкапсуляцію. Незважаючи на те, що ця парадигма з’явилась в 1960;тих роках, вона не мала широкого застосування до 1990;тих. Сьогодні багато мов програмування (зокрема, Java, C#, C++, Python, PHP, Ruby та Objective-C, ActionScript 3) підтримують ООП.

Об'єктно-орієнтована мова добре підходить для написання складних програм для керування комп’ютерних систем. Оскільки кожна частина системи може бути представлена об'єктом, заміна однієї з них, наприклад програми управління друкуючим пристроєм (принтером) або екраном, може бути здійснена без змін на інші частини системи. Програміст просто домагається того, щоб нова частина відповідала на ті ж повідомлення, що і замінена. Яким чином досягається результат — несуттєво. Об'єктно-орієнтоване програмування сягає своїм корінням до створення мови програмування Симула в 1960;тих роках, одночасно з посиленням дискусій про кризу програмного забезпечення. Разом із тим, як ускладнювалось апаратне та програмне забезпечення, було дуже важко зберегти якість програм. Об'єктно-орієнтоване програмування частково розв’язує цю проблему шляхом наголошення на модульності програми.

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

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

Мета роботи: розробити програму для реалізації cистеми автоматизації функцій секретаря. Для досягнення мети потрібно вирішити наступні задачі:

— вивчити літературу за темою роботи;

— розробити модель автоматизацій функцій секретаря;

— реалізувати програмно систему автоматизацій функцій секретаря;

— протестувати розроблену програму.

РОЗДІЛ 1. АНАЛІЗ ПРЕДМЕТНОЇ ОБЛАСТІ

1.1 Поняття автоматизація Автоматизамція— один з напрямів науково-технічного прогресу, спрямований на застосування саморегульованих технічних засобів, економіко-математичних методів і систем керування, що звільняють людину від участі в процесах отримання, перетворення, передачі і використання енергії, матеріалів чи інформації, істотно зменшують міру цієї участі чи трудомісткість виконуваних операцій. Разом з терміном автоматичний, використовується поняття автоматизований, що підкреслює відносно великий ступінь участі людини в процесі.

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

Автоматизуються:

виробничі (технологічні) процеси;

проектування;

організація, планування та управління;

наукові дослідження.

бізнес-процеси.

1.2 Автоматизація і інформаційні технології

Поява інформатики на «горизонті» сучасної науки виявилося несподіваним в різних аспектах і для багатьох дослідників. Багато хто поспішає додати їй риси загальності, визначити відношення її до кібернетики, підкреслити природу її «безпаперовості» і ін. В той же час курс сучасних лекцій по інформатиці вже декілька років є нормативними у ряді вузів і на його основі розроблені інші прикладні курси лекцій (наприклад, в Київському університеті). В найближчі роки розробка сучасної інформатики повинна стати і стане центральною науковою тематикою багатьох інститутів теоретичного і прикладного напрямів. Становлення як фундаментальної науки в даний час цілком закономірно, але, на жаль, відбувається з великим спізненням. Багато фахівців і вчених, що стояли біля витоків побудови методології створення АІС на базі ЕОМ, не розглянули вчасно майбутню основу сучасної автоматизації. Вони вважали, що бази даних (БД) і системи управління ними (СУБД) «покриють» всі прикладні проблеми створення АІС і стануть універсальним інструментарієм реалізації інформаційних процесів, візьмуть на свої «плечі» сучасну інформатизацію у всіх наочних областях на багато десятиріч.

Тематика БД і СУБД заповнила головні наукові потужності і зайняла основний науковий потенціал всіх без виключення НДІ і СКБ програмного забезпечення, АСУ і обчислювальної техніки на тривалий час. Сторінки наукових журналів, програми наукових конференцій, теми дисертацій були незаслужено переповнені рядовими інженерними результатами. Про це свідчить велика кількість «власних» розробок в цій області, виконаних некваліфіковано «без почуття» і знання перспективи — по держбюджету і госпдоговорам і в порядку власної ініціативи.

В результаті дослідження і розв’язання фундаментальних проблем інформатики в сучасному розумінні були відсунуті на задній план як передчасні, оскільки передній план зайняла автоматизація процесів, об'єктів, підприємств, галузей і т. п. Не дивлячись на уявну загальність автоматизації, АІС представляють собою досить-таки локальні інформаційні системи, сконцентровані у ОЦ або просто в окремих ЕОМ. Проблема полягає ж в зміні інформаційної основи сучасного суспільства, яка представляє собою нову і досить складну інфраструктуру. Зрозуміти останню неможливо без розгляду основних напрямів розвитку інформатики в її основних аспектах.

Важливі роботи по інформатиці системних досліджень, штучного інтелекту, автоматизації проектування, інформатиці систем автоматизації сучасних технологій велися малими силами, практично без всякої централізованої координації і матеріального забезпечення. В цій ситуації японська національна програма інформатизації виробництва, економіки і соціальних процесів прозвучала як «виклик» по відношенню до традиційних програм розробки нових поколінь ЕОМ, що склалися, і створення на їхній основі АІС в багатьох країнах світу. Японська програма ставить ціль створення в найближчі десятиріччя загальнонаціональної інформаційної технології, що розробляється на концепціях сучасної інформатики, вбудованих в ЕОМ систем штучного інтелекту, новітньої робототехніки і мікроелектроніки. Програма включає освоєння нової інформаційної технології у всіх осередках суспільства починаючи з дитячих садів, шкіл і поліклінік і кінчаючи офісами, державними установами і заводами-автоматами з безлюдною промисловою технологією.

1.3 Поняття системи автоматизації

Мета автоматизації - підвищення продуктивності праці, поліпшення якості продукції, оптимізація управління, усунення людини від виробництв, небезпечних для здоров’я.

Автоматизація, за винятком простих випадків, вимагає комплексного, системного підходу до рішення задачі, тому конкретні вирішення завдань засобами автоматизації, зазвичай називаються системами, наприклад:

§ система автоматичного керування (САК);

§ автоматизована система управління (АСУ);

§ система автоматизації проектних робіт (САПР);

§ автоматизована система керування технологічним процесом (АСК ТП).

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

Галузі, де автоматизація є актуальною: виробництво сталі, гірнича справа, машинобудування, хімічне виробництво, харчова промисловість, енергетика, керування автомобільним, залізничним і повітряним транспортом.

Складовими елементами системи автоматизації є підсистеми:

1. Технологічної та аварійної сигналізації.

2. Автоматичного блокування і технологічного захисту.

3. Аварійного керування.

4. Реєстрації стану керованого процесу і дій оператора.

5. Комунікації даних між пристроями системи та із зовнішніми інформаційними системами.

1.4 Елементи об'єктного підходу Абстрагування є одним із головних засобів, використовуваних для розв’язування складних задач.

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

Абстрагування концентрує увагу на зовнішніх особливостях об'єкта й дозволяє відокремити найістотніші особливості поведінки від деталей їх здійснення. Таке відокремлення (поведінки від здійснення) називається бартером абстракції, який базується на принципі мінімізації зв’язків, коли інтерфейс об'єкта містить лише істотні аспекти поведінки. Корисним є ще один додатковий принцип, який називається принципом найменшої виразності, згідно з яким абстракція має відбивати лише саму суть об'єкта, не більше, але і не менше. Вибір достатньої множини абстракцій для заданої предметної області є головною проблемою об'єктно-орієнтованого проектування.

Абстракція сутності об'єкта — об'єкт являє собою модель істотних сторін предметної області.

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

Абстрагування щодо вигляду — об'єкт об'єднує групи операцій віртуальної машини, які або використовуються для управління об'єктом, або відповідають функціям нижнього рівня.

Довільна абстракція — об'єкт включає в себе набір не залежних одна від одної операцій.

Головний інтерес становлять для нас абстракції сутності об'єктів, оскільки вони відповідають словнику предметної області. Об'єкт, який використовує ресурси інших об'єктів, називається клієнтом. Опис поведінки об'єкта включає в себе опис операцій, які можуть виконуватися над ним, та операцій, які сам об'єкт виконує над іншими об'єктами. Такий підхід концентрує увагу на зовнішніх особливостях об'єкта. Повний набір операцій, які об'єкт може здійснювати над іншим об'єктом, називається протоколом. Протокол відображає всі дії, яким об'єкт може бути підданий сам та якими може впливати на інші об'єкти, визначаючи тим самим повністю зовнішню поведінку абстракції зі статичного та динамічного погляду.

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

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

Программа повина виконувати систему автоматизациї функцій секретаря:

— можливість подивитися завдання на поточний день;

— переглянути список співробітників відділу;

— переглядати керевників відділу;

— можливість переглянути список завдання на певного співробітника;

— переглядати завдання для всіх відділів;

— переглядати дату і час проведення кожного собитія;

— місце проведення і трівалість;

Система розроблена у вигляді програми Windows, для роботи з графічним інтерфейсом ОС були використані засоби Microsoft Visual C# 2010 Epress.

Синтаксис C# близький до С++ і Java. Мова має строгу статичну типізацію, підтримує поліморфізм, перевантаження операторів, вказівники на функції-члени класів, атрибути, події, властивості, винятки, коментарі у форматі XML. Перейнявши багато що від своїх попередників — мов С++, Delphi, Модула і Smalltalk — С#, спираючись на практику їхнього використання, виключає деякі моделі, що зарекомендували себе як проблематичні при розробці програмних систем: так, C# не підтримує множинне спадкування класів (на відміну від C++) або виведення типів (на відміну Haskell).

C# є дуже близьким родичем мови програмування Java. Мова Java була створена компанією Sun Microsystems, коли глобальний розвиток інтернету поставив задачу роззосереджених обчислень. Взявши за основу популярну мову C++, Java виключила з неї потенційно небезпечні речі (типу вказівників без контролю виходу за межі). Для роззосереджених обчислень була створена концепція віртуальної машини та машинно-незалежного байт-коду, свого роду посередника між вихідним текстом програм і апаратними інструкціями комп’ютера чи іншого інтелектульного пристрою.

Нововведенням C# стала можливість легшої взаємодії, порівняно з мовами-попередниками, з кодом програм, написаних на інших мовах, що є важливим при створенні великих проектів. Якщо програми на різних мовах виконуються на платформі .NET, .NET бере на себе клопіт щодо сумісності програм (тобто типів даних, за кінцевим рахунком).

Станом на сьогодні C# визначено флагманською мовою корпорації Microsoft, бо вона найповніше використовує нові можливості .NET. Решта мов програмування, хоч і підтримуються, але визнані такими, що мають спадкові прогалини щодо використання .NET.

Символ # у назві мови можна інтерпретувати і як дві пари плюсів ++, що натякають на новий крок в розвитку мови в порівнянні з C++ (подібно до кроку від C до C++), і як музичний символ дієз, разом з буквою C, що становить в англійській мові назву ноти до-дієз. Останнє і дало назву мові. Незважаючи на те, що символ # (октоторп) насправді є символом для позначення номера на більшості клавіатур і відрізняється від символу дієз Ѓт (Unicode U+266F), Microsoft, як автор мови, неодноразово зверталася до своїх клієнтів з проханням прийняти таку стилізацію.

РОЗДІЛ 2. ОБ'ЄКТНО-ОРІЄНТОВАНИЙ АНАЛІЗ

2.1 Вибір мови програмування

C# розроблявся як мова програмування прикладного рівня для CLR і, як такий, залежить, перш за все, від можливостей самої CLR. Це стосується, перш за все, системи типів C#. Присутність або відсутність тих або інших виразних особливостей мови диктується тим, чи може конкретна мовна особливість бути трансльована у відповідні конструкції CLR. Так, з розвитком CLR від версії 1.1 до 2.0 значно збагатився і сам C#; подібної взаємодії слід чекати і надалі. (Проте ця закономірність буде порушена з виходом C# 3.0, що є розширеннями мови, що не спираються на розширення платформи .NET.) CLR надає C#, як і всім іншим .NET-орієнтованим мовам, багато можливостей, яких позбавлені «класичні» мови програмування. Наприклад, збірка сміття не реалізована в самому C#, а проводиться CLR для програм, написаних на C# точно так, як і це робиться для програм на VB.NET, J# тощо.

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

Приклади СМО: телефонні станції, квиткові каси, системи організації транспорту (вантажоперевезення, потік автомобілів через міст) і т. п. Кожна така система складається з певної кількості обслуговуючих одиниць: «каналів» обслуговування (наприклад, лінії зв’язку). Робота будь-якої СМО полягає в обробці (обслуговуванні) надходить на неї потоку вимог або заявок. Заявки надходять одна за одною у випадкові моменти часу. Обслуговування надійшла заявки продовжується якийсь час, після чого канал звільняється і може приймати наступну заявку.

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

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

2.3 Бібліотеки класів

Має сенс використовувати стандартні класи і функції для реалізації поставленної задачі, для роботи з якими необхідно включити бібліотеки:

using System — Містить класи, що дозволяють зіставляти коди URI з шаблонами URI і групами шаблонів URI.

using System.Collections.Generic — містить інтерфейси і класи, що визначають універсальні колекції, які дозволяють користувачам створювати строго типізуються колекції, забезпечують підвищену продуктивність і безпеку типів в порівнянні з неуніверсальними колекціями, що строго типізуються.

using System. ComponentModel — простір імен для часу виконання і поведінка проектного часу для серверних контролів. З цим ви можете з проектувати ваші власні контролі розширювачі.

using System. Data — містить класи для доступу до даних з різних джерел і для управління цими даними. Простір імен верхнього рівня і декілька дочірніх просторів імен утворюють архітектуру ADO.NET і постачальники даних ADO.NET. Наприклад, доступні постачальники для SQL Server, Oracle, ODBC і OLEDB. Інші дочірні простори імен містять класи, використовувані моделлю EDM ADO.NET і службами даних WCF.

using System. Drawing — батьківський простір імен, який містить типи, що підтримують базові графічні функції Gdi+. Дочірні простори імен підтримують складніші функції двомірної і векторної графіки, додаткові функції обробки зображень, а також служби, пов’язані з друком і тіпографікой. Дочірній простір імен також містить типи, які розширюють логічні і графічні можливості призначеного для користувача інтерфейсу під час розробки.

using System. Linq — містять типи, що підтримують запити з використанням LINQ. Сюди відносяться типи, що представляють запити у вигляді об'єктів в деревах виразів.

using System. Text — містять типи для роботи з кодуваннями символів і для управління рядками. Дочірній простір імен дозволяє обробляти текст з використанням регулярних виразів.

using System.Windows.Forms — містить класи для створення додатків Windows, які дозволяють найефективніше використовувати розширені можливості призначеного для користувача інтерфейсу, доступні в операційній системі Microsoft Windows.

2.4 Основна робота програми

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

РОЗДІЛ 3. ПРОГРАМНА РЕАЛІЗАЦІЯ

3.1 Реалізація інтерфейсу

При використанні програми Visual C# 2010 Express, ми створюємо форму Form1, яка дає змогу красивого оформлення програми, і помістити на ній компоненти:

Button — просматріваем список завдань;

Label — пітпис окошков Listbox

Monthcalendar — перегляд дат на які заплановані події;

Listbox — перегляд співробітників і подій;

Richtextbox — інформація про події. (Рис. 1.1);

автоматизація програмування інтерфейс інформаційний Рис. 1.1. Головне вікно програми

3.2 Діаграма класів до основних функцій программи

Рис. 1.3. Діаграма класів Всі дії та розрахунки виконуються шляхом взаємодії (обміну даними) між об'єктами, при якій один об'єкт потребує, щоб інший об'єкт виконав деяку дію. Об'єкти взаємодіють, надсилаючи і отримуючи повідомлення. Повідомлення — це запит на виконання дії, доповнений набором аргументів, які можуть знадобитися при виконанні дії.

Кожен об'єкт має незалежну пам’ять, яка складається з інших об'єктів.

Кожен об'єкт є представником (екземпляром, примірником) класу, який виражає загальні властивості об'єктів.

У класі задається поведінка (функціональність) об'єкта. Таким чином усі об'єкти, які є екземплярами одного класу, можуть виконувати одні й ті ж самі дії.

Класи організовані у єдину деревовидну структуру з загальним корінням, яка називається ієрархією успадкування.

3.3 Інструкція користуваня Щоб переглюнути події для певного співробітника, потрібно вибрати працівника. А потім натиснути клавішу «Показать по сотруднику» .

Рис. 1.4. Зображенно завдання по співробітнику

Для того щоб переглянути завдання на визначений день, виберіть у календарі дату (віделеную чорним кольором) i натісніть «Показать по дате» .

Рис. 1.5. Зображенно завдання по даті

Щоб переглянути всі собитія, натисніть кнопку «Показать все». В вікні «Информация о событии» можна дізнатися де і коли буде собитіе і тривалість.

Рис. 1.6. Переглядання всіх подій

ВИСНОВКИ

В процесі виконання роботи розроблена програма для автоматизацій функцій секретаря, яка дозволяє користувачеві переглядати події:

· список сотрудників;

· головних в каждом отделе;

· завдання кожного співробітника;

· події по дате;

· коли і де буде проводитися подія;

· кількість працівників;

Для досягнення мети були вирішені задачі:

— вивчена літературу за темою роботи;

— розроблена модель секретаря;

— розроблена програма автоматизації функцій секретаря;

— проведена серія тестів, в ході яких підтверджено правильність роботи розробленої програми.

СПИСОК ВИКОРИСТАННИХ ДЖЕРЕЛ

1. Полный справочник по C# Автор. Герберт Шилдт Издательство: Вильямс Год: 2004

2. Терехов А. Н.

Введение

в технологию программирования.

3. С. С. Гайсарян, Объектно-ориентированные технологии проектирования прикладных программных систем, Центр Информационных Технологий.

4. Эрик Гуннерсон Введение в C#, Издательство: «Питер», 2001.

Трей Нэш — C# 2008. Ускоренный курс для профессионалов/Accelerated

C# 2008

5. C#. Агуров Разработка компонентов в MS Visual Studio 2005/2008. БХВПетербург, 2008

6. Агуров П. В. C#. Сборник рецептов. БХВ-Петербург, 2007 г.

7. Либерти Д. Программирование на C#. БХВ-Петербург, 2007

ДОДАТОК

Лістинг модулів програми Файл 1. Form1. cs

using System;

using System.Collections.Generic;

using System. ComponentModel;

using System. Data;

using System. Drawing;

using System. Linq;

using System. Text;

using System.Windows.Forms;

using System. IO;

namespace Секретарь

{

public partial class Form1: Form

{

string[] Lines = new string[1]; //Массив строк для считывания из файла

Random Rand = new Random ();//Случайное число

public List Ofice = new List ();//Спысок отделов

public List WList = new List ();//Список работников

public List AllEvents = new List ();//Список событий

List EvenShow = new List ();//Список Событий что выбраны

DateTime[] Dates;//Масив дат событий

public Form1()

{

InitializeComponent ();

for (int i = 0; i < 9; i++)//Создаем 9-ть отделов

{

Part PartObj = new Part («Отдел №» + (i + 1));//Отдел

Ofice.Add (PartObj);

}

foreach (Part i in Ofice)//Выводим работников

{

foreach (Worker j in i. Members)

{

listBox.Items.Add (i.Name + «» + j.Name1 + «» + j.Name2 + «» + j. TypeStr);

WList.Add (j);

}

}

listBox.SelectedIndex = 0;

Lines = File. ReadAllLines («Events.txt»);//Считываем с файла

foreach (string s in Lines)//Создаем экземпляры событий по считаной информации

{

string[] w = s. Split ('#');

Event NewEvent = new Event (new DateTime (Convert.ToInt32(w[2]),

Convert.ToInt32(w[3]),

Convert.ToInt32(w[4]),

Convert.ToInt32(w[5]),

Convert.ToInt32(w[6]), 0), Rand. Next (60, 80), Convert. ToInt32(w[0]), w[1],

Ofice);

AllEvents.Add (NewEvent);

}

Dates = new DateTime[AllEvents.Count]; //выделили память под массив

for (int i = 0; i < AllEvents. Count; i++)//Запонили масив датами событий

{

Dates[i] = AllEvents[i]. Date;

}

monthCalendar.BoldedDates = Dates;//Отпарили даты календарю как отметки

}

public void ShowAll ()//Функция вывода всего списка событий

{

listBox1.Items.Clear ();

EvenShow.Clear ();

foreach (Event i in AllEvents)

{

listBox1.Items.Add (i.Name + i. Date);

EvenShow.Add (i);

}

}

public void ShowFromDate ()//Функция вывода событий по Выбраной (му) дате (промежктке времени) календаря

{

listBox1.Items.Clear ();

EvenShow.Clear ();

foreach (Event i in AllEvents)//В цикле по событиям проверяем попадание в выбраный промежуток времени

{

if ((monthCalendar.SelectionRange.Start ≠ monthCalendar.SelectionRange.End &&

i.Date > monthCalendar.SelectionRange.Start &&

i.Date < monthCalendar.SelectionRange.End)

|| (monthCalendar.SelectionRange.Start == monthCalendar.SelectionRange.End &&

i.Date.Year == monthCalendar.SelectionRange.Start.Year &&

i.Date.Month == monthCalendar.SelectionRange.Start.Month &&

i.Date.Day == monthCalendar.SelectionRange.Start.Day))

{

listBox1.Items.Add (i.Name + i. Date);

EvenShow.Add (i);

}

}

if (listBox1.Items.Count == 0)//Выводим сообщение об неудачном поиске

//и запрещяем вывод информациии из пустого поля

{

listBox1.Items.Add («Событий не найдено»);

listBox1.Enabled = false;

}

else listBox1. Enabled=true;

}

public void ShowFromWorker ()//Функция вывода события в котором участвует выбраный сотрудник

{

listBox1.Items.Clear ();

EvenShow.Clear ();

foreach (Event i in AllEvents)

{

foreach (Worker j in i. Mem)

{

if (j == WList[listBox.SelectedIndex])

{

listBox1.Items.Add (i.Name + i. Date);

EvenShow.Add (i);

}

}

}

}

//Далее в событиях нажатия кнопок вызовы выше описаных функций

private void button1_Click (object sender, EventArgs e)

{

ShowAll ();

listBox1.Enabled = true;//Разрешили просмотр информации

}

private void button2_Click (object sender, EventArgs e)

{

ShowFromDate ();

}

private void button3_Click (object sender, EventArgs e)

{

ShowFromWorker ();

listBox1.Enabled = true;

}

private void listBox1_SelectedIndexChanged (object sender, EventArgs e)

{

//При смене выбраной ячейки listBox1 выводится информация об событии с индексом выбраной ячейки

richTextBox.Text = EvenShow[listBox1.SelectedIndex]. Name + «nДата проведения «+

EvenShow[listBox1.SelectedIndex]. Date+" nМесто «+EvenShow[listBox1.SelectedIndex]. Plase+

" nПродолжительность «+ EvenShow[listBox1.SelectedIndex]. TimeLong;

}

}

public class Part//Отделение

{

public string Name;//Название

Random Rand = new Random ();//Случ. величина

public List Members = new List ();//Список сотрудников

public Part (string N)

{

Name=N;

Worker w1 = new Worker (Rand, 1);//Добавили руководителя

Members.Add (w1);

Worker w2= new Worker (Rand, 2);//Добавили Менеджера

Members.Add (w2);

for (int i = 0; i < 5; i++)

{

Worker w3 = new Worker (Rand, 0);//Сотрудники

Members.Add (w3);

}

}

}

public class Worker//Сотрудник

{

string[] Lines = new string[1]; //масив строк для считывания из файла

public string Name1;//Имя

public string Name2;//Фамилия

public int Type;//Должность

public string TypeStr;//Должность в текстовой форме

SelectionRange Vecation = new SelectionRange ();//Период отпуска

public Worker (Random R, int T)

{

Type = T;

switch (Type)

{

case 0: TypeStr = «Сотрудник отдела»; break;

case 1: TypeStr = «Руководитель отдела»; break;

case 2: TypeStr = «Менеджер»; break;

}

try

{//Формируем случайно имя и фамилию

Lines = File. ReadAllLines («Names.txt»);

Name1 = Lines[R.Next (Lines.Length)];

Lines = File. ReadAllLines («Names1.txt»);

Name2 = Lines[R.Next (Lines.Length)];

}

catch (Exception ex)

{

MessageBox.Show (ex.Message);

}

}

}

public class Event//Событие

{

public DateTime Date = new DateTime ();//Дата проведения

public string Name;// Название

public int TimeLong;//Продожительность

public string Plase;//Место проведения

int Type;//0-Проводит Начальник отдела 1-проводит Менеджер

public List Mem= new List ();//Учасники

public Event (DateTime D, int time, int T, string N, List Of)

{

Date = D;

TimeLong = time;

Type = T;

Name = N;

switch (T)

{

case 0:

{

Plase = «Конференц зал» ;

foreach (Part i in Of)

{

foreach (Worker j in i. Members)

{

if (j.Type == 2) continue;//Пропустили Менеджера

else

{

Mem.Add (j);

}

}

}

} break;

case 1:

{

Plase = «Актовый зал» ;

foreach (Part i in Of)

{

foreach (Worker j in i. Members)

{

if (j.Type == 1) continue;//Пропустили Руководителя

else

Mem.Add (j);

}

}

} break;

}

}

}

}

Показати весь текст
Заповнити форму поточною роботою