Автоматизована інформаційна система медичного діагностичного центру

Проектування інтерфейсу програми. Вимоги до продукту. Вхідні дані на розробку автоматизованої системи. Вибір середовища програмування. Розробка структури бази даних. Функціональна та логічна структура програми. Розробка структури таблиць бази даних.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык украинский
Дата добавления 30.06.2015
Размер файла 43,1 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Вступ

Виробництво програмного забезпечення (ПЗ) сьогодні - це найбільша галузь світової економіки, в якій зайнято більше семи мільйонів фахівців. Саме приголомшливий прогрес в області ПЗ допоміг впоратися з інформаційним бумом кінця 20 століття.

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

Потреба контролювати процес розробки ПЗ, прогнозувати і гарантувати вартість розробки, терміни і якість результатів призвела до необхідності переходу від кустарних до індустріальних способам створення ПЗ і появі сукупності інженерних методів і засобів створення ПЗ, об'єднаних загальною назвою програмна інженерія (software engineering).

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

Виконання курсової роботи має на меті:

· систематизацію, закріплення та розширення теоретичних та практичних знань, застосування їх при розв'язанні конкретних фахових задач;

· розвиток навиків самостійної роботи та оволодіння методикою дослідження при розв'язанні проблем, які розробляються в курсовій роботі.

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

Даний додаток створюється за допомогою інструмента швидкої розробки додатків Builder c++ 6, який містить в собі компілятор, відладчик, редактор коду та всі необхідні компоненти для створення програмного додатку Medical© center, які поділяються на візуальні та не візуальні.

Візуальні компоненти: Edit(поле для введення), DBNavigator(панель управління БД), DBGrid(для вдображення та редагування таблиць), StatusBar(для виведення певних повідомлень), ToolBar(панель швидкого доступу), ComboBox(список вибору), Button(кнопка), Label(для виводу текстової інформації).

Не візуальні компоненти: MainMenu(головне меню - підключається до певної форми, щоб стати візуальною), ADOConnection(для підключення до БД), ADOQuery(для виконання запитів, підключається до ADOConnection), DataSource(для створення зв'язку між ADOQuery та DBNavigator і DBGrid), ImageList(містить іконки).

1. СИСТЕМНИЙ АНАЛІЗ

1.1 Вимоги до продукту(Визначення С, D-вимог)

Специфікація вимог до ПЗ «Medical© control »

1. Вступ

1.1 Призначення, мета

Даний документ проектується студентом ПР - 9 - 12 для опису програмного продукту «Medical© control». А також системних, функціональних і не функціональних вимог до даного продукту.

Даний продукт буде вести облік клієнтів, їх діагнозів, виконувати пошук по діагнозам або по ПІБ, обчислювати вартість за день та друкувати звіти.

2. Загальний опис

2.1 Характеристики

2.2.1. Веде облік клієнтів;

2.2.2. Веде облік діагнозів клієнтів;

2.2.3. Виконує пошук;

2.1.4. Обчислює вартість за день;

2.1.5. Друкує звіти.

2.2 Користувачі

2.2.1. Старша медсестра;

2.2.2. Лікарі;

2.2.3. Головний лікар.

2.3 Середовище функціонування

Даний продукт працює на операційній системі Windows 95 / 98 / 2003 / Vista / 7 / 8 / 8.1 / 10.

Апаратна платформа: Клавіатура, миша, монітор, системний блок(материнська плата, вінчестер, процесор, блок живлення, відеоадаптер 16Mb).

3. Характеристики системи

3.1 Функціональні вимоги

3.1.1 Продукт повинен дозволяти вводити дані: Діагнози(Код діагнозу, термін, термін лікування), Клієнти(Код клієнта, діагноз, код лікаря, прізвище та ім'я, код паспорту, телефонний номер, місто проживання), Лікарі(Код лікаря, прізвище і ініціали, код паспорту, телефонний номер, місто проживання), Препарати(Код препарату, назва препарату, дата виготовлення, термін придатності), Квитанції(Код квитанції, код клієнта, всього до оплати, дата видачі, прізвище та ім'я клієнта, діагноз клієнта, код препарату);

3.1.2 Продукт повинен дозволяти виводити дані: Діагнози(Код діагнозу, термін, термін лікування), Клієнти(Код клієнта, діагноз, код лікаря, прізвище та ім'я, код паспорту, телефонний номер, місто проживання), Лікарі(Код лікаря, прізвище і ініціали, код паспорту, телефонний номер, місто проживання), Препарати(Код препарату, назва препарату, дата виготовлення, термін придатності), Квитанції(Код квитанції, код клієнта, всього до оплати, дата видачі, прізвище та ім'я клієнта, діагноз клієнта, код препарату);

3.1.3 Продукт повинен дозволяти видаляти дані: Діагнози(Код діагнозу, термін, термін лікування), Клієнти(Код клієнта, діагноз, код лікаря, прізвище та ім'я, код паспорту, телефонний номер, місто проживання), Лікарі(Код лікаря, прізвище і ініціали, код паспорту, телефонний номер, місто проживання), Препарати(Код препарату, назва препарату, дата виготовлення, термін придатності), Квитанції(Код квитанції, код клієнта, всього до оплати, дата видачі, прізвище та ім'я клієнта, діагноз клієнта, код препарату). По заданим полями таблиці: Діагнози(Код діагнозу, термін, термін лікування), Клієнти(Код клієнта, діагноз, код лікаря, прізвище та ім'я, код паспорту, телефонний номер, місто проживання), Лікарі(Код лікаря, прізвище і ініціали, код паспорту, телефонний номер, місто проживання), Препарати(Код препарату, назва препарату), Квитанції(Код квитанції, код клієнта, всього до оплати, прізвище та ім'я клієнта, діагноз клієнта, код препарату);

3.1.4 Продукт повинен дозволяти здійснювати пошук даних по полях деяких таблиць: Діагнози(Код діагнозу, термін, термін лікування), Клієнти(Код клієнта, діагноз, код лікаря, прізвище та ім'я, код паспорту, телефонний номер, місто проживання), Лікарі(Код лікаря, прізвище і ініціали, код паспорту, телефонний номер, місто проживання), Препарати(Код препарату, назва препарату, дата виготовлення, термін придатності), Квитанції(Код квитанції, код клієнта, всього до оплати, дата видачі, прізвище та ім'я клієнта, діагноз клієнта, код препарату);

3.1.5 Продукт повинен обчислювати прибуток за день на основі даних в таблиці Квитанції по полю «Всього до оплати»;

3.1.6 Продукт повинен дозволяти друкувати звіти усіх полів таблиць: Діагнози, Квитанції, Лікарі, Препарати, Клієнти.

4. Вимоги до зовнішніх інтерфейсів

4.1 Користувацькі інтерфейси

На інтерфейсі продукту повинно бути:

4.1.1 Головне меню;

4.1.2 Таблиця бази даних;

4.1.3 Вікна додавання та видалення даних.

4.1.4 Вікна пошуку даних.

4.1.5 Меню швидкого доступу.

4.2 Апаратні інтерфейси

4.2.1 Взаємодіє з принтером.

5. Не функціональні вимоги

5.1 Вимоги продуктивності

5.1.1 Продукт повинен обчислювати вартість за день менше ніж за секунду;

5.1.2 Програма повинна бути розроблена на мові С++.

5.2 Вимоги безпеки

5.2.1 Продукт повинен містити ідентифікацію по паролю.

2. РОЗРОБКА ІНТЕРФЕЙСУ ПРОГРАМИ

2.1 Кроки розробки призначених для користувача інтерфейсів

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

Таблиця 2.1.1 Характеристика користувача програми

Характеристика

Градації

Рівень знань і досвід

Комп'ютерна грамотність

Середній. Користувач повинен володіти елементарними навиками користування комп'ютером

Системний досвід

Середній

Досвід роботи з подібними програмами

Середній

Освіта

Закінчена вища освіта

Рівень читання

9 років в школі

Машинопис

100 слів за хвилину

Фізичні характеристики користувача

Вік

Молодий, середнього віку, літній

Стать

Чоловіча, жіноча

Розвиненість рук

Лівша, правша, володіє однаково обома руками

Характеристики завдань і роботи користувача

Спосіб використання цієї програми

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

2.2 Проектування інтерфейсу

1. Головне вікно - вікно «Ідентифікація»:

Додаю на форму PasswordDlg Panel1, Label2.

На Panel1 розміщую Label1 - в властивостях встановлюю Caption = «Введіть пароль:»; Edit1 - текстове поле для введення паролю, в властивостях встановлюю PasswordChar = «*»; Button1 - для підтвердження паролю введений в Edit1, в властивостях встановлюю Caption = «Підтвердити»; Button2 - для виходу з програми, в властивостях встановлюю Caption = «Вихід»; BitBtn1 - для виклику вікна «Зміна паролю», в властивостях встановлюю Glyph іконку для кнопки. Label2 - в властивостях встановлюю Caption = «Ідентифікація»;

2. Вікно «Зміна паролю»:

Додаю на форму Pass_renew Panel1;

На Panel1 розміщую Panel2(розміщую Label1 - в властивостях встановлюю Caption = «Введіть старий пароль:»; Label2 - в властивостях встановлюю Caption = «Введіть новий пароль:»; Label3 - в властивостях встановлюю Caption = «Повторіть новий пароль:»), Panel3(Edit1 - текстове поле для введення старого паролю, в властивостях встановлюю PasswordChar = «*»;Edit2 - текстове поле для введення нового паролю, в властивостях встановлюю PasswordChar = «*»;Edit3 - текстове поле для повторного введення нового паролю, в властивостях встановлюю PasswordChar = «*»), Button1 - для підтвердження зміни паролю, в властивостях встановлюю Caption = «Ок».

3. Вікно «Діагнози»:

Додаю на форму Diagnoz Panel1.

На Panel1 розміщую DBGrid1 - для відображення таблиці Діагнози, в властивостях встановлюю DataSource = «bd_work->DS_diagnoziz»; DBNavigator1 - для управління таблицею, в властивостях встановлюю DataSource = «bd_work->DS_diagnoziz»; StatusBar1 - створюю TStatusPanel[0](для виведення підказок при наведенні мишею на певний компонент), TStatusPanel[1](для виведення кількості записів), в властивостях встановлюю AutoHint = true, ShowHint = true; MainMenu1 - підключаю форму до нього в подіях встановлюю Menu = bd_work->MainMenu1, в ньому створюю кнопки та приписую до них назви; ToolBar1 - панель швидкого доступу, на якій створюю 8 кнопок, в подіях встановлюю HotImages = bd_work->ImageList1, Images = bd_work->ImageList1; Panel2(Button1 - для фільтрації по полю Edit1, який орієнтується на атрибут вибраний в ComboBox1; ComboBox1 - для вибору фільтрації по «Код діагнозу» або «Термін» або «Термін лікування» або зняття фільтрації; Edit1 - текстове поле для введення певних символів для фільтрації по таблиці Діагнози).

4. Вікно «Квитанції»:

Додаю на форму kvitancii Panel1.

На Panel1 розміщую DBGrid1 - для відображення таблиці Квитанції, в властивостях встановлюю DataSource = «bd_work->DS_pripar»; DBNavigator1 - для управління таблицею, в властивостях встановлюю DataSource = «bd_work->DS_pripar»; StatusBar1 - створюю TStatusPanel[0](для виведення підказок при наведенні мишею на певний компонент), TStatusPanel[1](для виведення кількості записів, TStatusPanel[2](для виведення заробленої суми за певний день), в властивостях встановлюю AutoHint = true, ShowHint = true; MainMenu1(for_kvit) - підключаю форму до нього в подіях встановлюю Menu = bd_work->for_kvit, в ньому створюю кнопки та приписую до них назви; ToolBar1 - панель швидкого доступу, на якій створюю 9 кнопок, в подіях встановлюю HotImages = bd_work->ImageList1, Images = bd_work->ImageList1; Panel2(Button1 - для фільтрації по полю Edit1, який орієнтується на атрибут вибраний в ComboBox1; ComboBox1 - для вибору фільтрації по «Код квитанції» або «Код клієнта» або «Всього до оплати» або «Дата видачі» або «Прізвище та ім'я клієнта» або «Діагноз клієнта» або «Код препарату» або зняття фільтрації; Edit1 - текстове поле для введення певних символів для фільтрації по таблиці Квитанції).

5. Вікно «Препарати»:

Додаю на форму Priparats Panel1.

На Panel1 розміщую DBGrid1 - для відображення таблиці Препарати, в властивостях встановлюю DataSource = «bd_work->DS_prip»; DBNavigator1 - для управління таблицею, в властивостях встановлюю DataSource = «bd_work->DS_prip»; StatusBar1 - створюю TStatusPanel[0](для виведення підказок при наведенні мишею на певний компонент), TStatusPanel[1](для виведення кількості записів), в властивостях встановлюю AutoHint = true, ShowHint = true; MainMenu1(for_prip) - підключаю форму до нього в подіях встановлюю Menu = bd_work->for_prip, в ньому створюю кнопки та приписую до них назви; ToolBar1 - панель швидкого доступу, на якій створюю 8 кнопок, в подіях встановлюю HotImages = bd_work->ImageList1, Images = bd_work->ImageList1; Panel2(Button1 - для фільтрації по полю Edit1, який орієнтується на атрибут вибраний в ComboBox1; ComboBox1 - для вибору фільтрації по «Код препарату» або «Назва препарату» або «Дата вироблення» або «Термін придатності» або зняття фільтрації; Edit1 - текстове поле для введення певних символів для фільтрації по таблиці Препарати).

6. Вікно «Лікарі»:

Додаю на форму likar Panel1.

На Panel1 розміщую DBGrid1 - для відображення таблиці Лікарі, в властивостях встановлюю DataSource = «bd_work->DS_likar»; DBNavigator1 - для управління таблицею, в властивостях встановлюю DataSource = «bd_work->DS_likar»; StatusBar1 - створюю TStatusPanel[0](для виведення підказок при наведенні мишею на певний компонент), TStatusPanel[1](для виведення кількості записів), в властивостях встановлюю AutoHint = true, ShowHint = true; MainMenu1(for_likar) - підключаю форму до нього в подіях встановлюю Menu = bd_work->for_likar, в ньому створюю кнопки та приписую до них назви; ToolBar1 - панель швидкого доступу, на якій створюю 8 кнопок, в подіях встановлюю HotImages = bd_work->ImageList1, Images = bd_work->ImageList1; Panel2(Button1 - для фільтрації по полю Edit1, який орієнтується на атрибут вибраний в ComboBox1; ComboBox1 - для вибору фільтрації по «Код лікаря» або «Прізвище і ініціали» або «Код паспорту» або «Телефонний номер» або «Місто проживання» або зняття фільтрації; Edit1 - текстове поле для введення певних символів для фільтрації по таблиці Лікарі).

7. Вікно «Клієнти»:

Додаю на форму klient Panel1.

На Panel1 розміщую DBGrid1 - для відображення таблиці Клієнти, в властивостях встановлюю DataSource = «bd_work->DS_klient»; DBNavigator1 - для управління таблицею, в властивостях встановлюю DataSource = «bd_work->DS_klient»; StatusBar1 - створюю TStatusPanel[0](для виведення підказок при наведенні мишею на певний компонент), TStatusPanel[1](для виведення кількості записів), в властивостях встановлюю AutoHint = true, ShowHint = true; MainMenu1(for_klient) - підключаю форму до нього в подіях встановлюю Menu = bd_work->for_klient, в ньому створюю кнопки та приписую до них назви; ToolBar1 - панель швидкого доступу, на якій створюю 8 кнопок, в подіях встановлюю HotImages = bd_work->ImageList1, Images = bd_work->ImageList1; Panel2(Button1 - для фільтрації по полю Edit1, який орієнтується на атрибут вибраний в ComboBox1; ComboBox1 - для вибору фільтрації по «Код клієнта» або «Діагноз» або «Код лікаря» або «Прізвище та ім'я» або «Код паспорту» або «Телефонний номер» або «Місто проживання» або зняття фільтрації; Edit1 - текстове поле для введення певних символів для фільтрації по таблиці Клієнти).

8. Вікно «Вставка запису в “Діагнози”»:

Додаю на форму diag_insert Panel1.

На Panel1 розміщую Panel2(Label1 - в властивостях встановлюю Caption = «Введіть код діагноза»; Label2 - в властивостях встановлюю Caption = «Введіть термін»; Label1 - в властивостях встановлюю Caption = «Введіть термін лікування:»;), Panel3(Edit1 - для введення коду діагноза; Edit2 - для введення терміну; Edit3 - для введення терміну лікування), Button1 - встановлюю властивість Caption = «Ок», додає в таблицю «Діагнози» послідовно дані прописані в Edit1, Edit2, Edit3.

9. Вікно «Видалення запису в “Діагнози”»:

Додаю на форму diag_delete Panel1.

На Panel1 розміщую Panel2(Label1 - в властивостях встановлюю Caption = «Введіть код діагноза»; Label2 - в властивостях встановлюю Caption = «Введіть термін»; Label1 - в властивостях встановлюю Caption = «Введіть термін лікування:»;), Panel3(Edit1 - для введення коду діагноза; Edit2 - для введення терміну; Edit3 - для введення терміну лікування), Button1 - встановлюю властивість Caption = «Ок», видаляє в таблиці «Діагнози» послідовно дані прописані в Edit1, Edit2, Edit3.

10. Вікно «Пошук в “Діагнози”»:

Додаю на форму diag_search Panel1

Ha Panel1 розміщую Panel2(Label1 - в властивостях встановлюю Caption = «Введіть код діагноза»; Label2 - в властивостях встановлюю Caption = «Введіть термін»; Label3 - в властивостях встановлюю Caption = «Введіть термін лікування»; RadioButton1 - для того щоб пошук відбувався по коду діагнозу, в властивостях встановлюю Checked = true; RadioButton2 - для того щоб пошук відбувався по терміну; RadioButton3 - для того щоб пошук відбувався по терміну лікування;), Panel3(Edit1 - вводиться код діагнозу; Edit2 - вводиться термін: Edit3 - вводиться термін лікування), Button1 - в властивостях встановлюю Caption = «Ок», виконує пошук орієнтуючись на вибраний RadioButton та по його відповідному Edit.

11. Вікно «Друк “Діагнози”»:

Додаю на форму ZVIT_diagnozi QuickRep1

На QuickRep1 розміщую QRBand1(QRLabel1 - в властивостях встановлюю Caption = «Код діагнозу»; QRLabel2 - в властивостях встановлюю Caption = «Термін»; QRLabel3 - в властивостях встановлюю Caption = «Термін лікування»), QRBand2(QRDBText1 - в властивостях встановлюю DataSet = bd_work->diagnoziz, DataField = «Код діагнозу»; QRDBText2 - в властивостях встановлюю DataSet = bd_work->diagnoziz, DataField = «Термін»; QRDBText3 - в властивостях встановлюю DataSet = bd_work->diagnoziz, DataField = «Термін лікування»), QRLabel5 - в властивостях встановлюю Caption = «Діагнози». Властивість компоненту QuickRep1 встановлюю DataSet = bd_work->INSERT_kvitanc, властивість компоненту QRBand2 встановлюю BandType = rbDetail.

12. Вікно «Прибуток» :

Додаю на форму suma_za_den_form Panel1.

На Panel1 розміщую Label1 - в властивостях встановлюю Caption = «Виберіть день:»; Button1 - в властивостях Caption = «Ок», при натиску підраховує суму за вибраний день в MonthCalendar1; DBText1 - для виведення суми за день, в властивостях DataSource = bd_work->summa_za_den, DataField = Expr1000; MonthCalendar1 - календар для вибору дня по якому буде проводитися підрахунок заробленої суми за день.

13. Вікно «Про нас» :

Додаю на форму Me Panel1.

На Panel1 розміщую Label1 - в властивостях Caption = «http://radiotex.org.ua/»; Label2 - в властивостях Caption = «© 2015 made by Hrebeniuk I. A.».

14. Вікно «Довідка» :

Додаю на форму Help Panel1.

Ha Panel1 розміщую Image1 - в властивостях Picture = (TJPEGImage)(завантажую фірмову картинку Medical© control); Label1 - в властивостях встановлюю Caption = «Medical© control (version: 1.0)»; Label2 в властивостях встановлюю Caption = «Програма призначена для:»; Label3 - в властивостях встановлюю Caption = «зберігання;»; Label4 - в властивостях встановлюю Caption = «редагування;»; Label5 - в властивостях встановлюю Caption = «видалення даних;»; Label6 - в властивостях встановлюю Caption = «підрахування заробленої суми за день»; Label7 - в властивостях встановлюю Caption = «фільтрація та пошук даних».

таблиця інтерфейс функціональний логічний

3. ВИБІР АРХІТЕКТУРИ

3.1 Функціональна структура програми(Типи моделі розробки)

IDEF0 - Діаграма декомпозиції. Дану модель використовують для показу функціональної діяльності системи.

Спочатку в програму вводяться дані про клієнта, лікарів та коштів(в квитанціях). Із отриманих даних обчислюється прибуток за певний день та на основі цих даних здійснюється пошук. До обчислення прибутку за день прикріплюється довідка та бухгалтерська система, та із обчислення отримується вартість за день. Із пошуку отримуються певні дані, які шукались, та на друк поступають дані про ліки та клієнтів. Із друкування звітів отримуємо чек по оплаті та діагноз.

DFD - діаграми потоків даних.

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

3.2 Вхідні дані на розробку автоматизованої системи

Для розробки даної автоматизованої системи медичного діагностичного центру використовується ERwin, BatchAccess та Builder c++ 6.

· ERwin - для створення схеми бази даних(БД) та генерування коду БД для BatchAccess;

· BatchAccess - для створення БД, на основі генерованого коду на основі схеми БД із ERwin.

· Builder c++ 6 - для програмної реалізації додатку, який буде працювати із генерованою БД, де для зв'язку з нею буде використовуватися драйвер ADO.

3.3 Вибір середовища програмування

Програмний додаток Medical© control створюється в середовищі Builder С++ 6 на мові високого рівня C++. Builder С++ 6 містить в собі достатню кількість компонентів для зв'язку та обробки даних з обраної бази даних.

Для зв'язку з базою даних використовується компонент ADOConnection, в якому вказується шлях до потрібної бази даних(“MDC.mdb”) та використовується драйвер «Microsoft Jet 4.0 OLE DB Provider». Для того щоб користувач мав змогу керувати даними через програмний додаток, на форму поміщається DataSource, ADOTable(для таблиць) або ADOQuery(для запитів) і після цього до візуальних компонентів DBGrid та DBNavigator з'єднується DataSource. Для того щоб обрану таблицю було видно, потрібно в ADOTable в властивостях Connection = ADOConnection, TableName = Table(обрана таблиця із бази даних), Active = true та підключити її до DataSource. Якщо ж використовувати ADOQuery, то в властивостях Connection = ADOConnection, SQL = Strings(певний SQL код), Active = true та підключити її до DataSource.

3.4 Вибір сервера баз даних

Для генерації бази даних було використано драйвер сервера ODBC. Драйвер Microsoft ODBC для SQL Server - це ізольований драйвер, який надає API-інтерфейс, який реалізує стандартні інтерфейси ODBC з Microsoft SQL Server.

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

4. ДЕТАЛЬНЕ ПРОГРАМУВАННЯ

4.1 Логічна структура програми

Основними об'єктами бази даних медичного діагностичного центру є: Діагнози, Квитанції, Лікарі, Клієнти, Препарати.

Таблиця «Діагнози» зв'язана з таблицею «Клієнти» полем «Код діагнозу». Таблиця «Клієнти» зв'язана з таблицею «Квитанція» полем «Код клієнта» та зв'язана з таблицею «Лікарі» полем «Код лікаря». Таблиця «Квитанція» зв'язується з таблицею «Препарати» полем «Код препарату».

Під час проектування програмного додатку, до нього були добавлені компоненти ADOQuery, що містять в собі SQL код даної бази даних.

4.2 Розробка структури бази даних проекту

Визначаю схематично потрібні таблиці для проектованого додатку, а саме: Препарати, Лікарі, Квитанції, Клієнти, Діагнози.

Таблиця «Препарати» буде містити в собі дані про препарати медичного діагностичного центру з атрибутами(з типом даних): Код препарату (Текстовий), Назва препарату(Текстовий), Дата виготовлення(Дата/Час), Термін придатності(Дата/Час). Таблиця «Лікарі» буде містити в собі дані про лікарів медичного діагностичного центру з атрибутами(з типом даних): Код лікаря(Текстовий), Прізвище і ініціали(Текстовий), Код паспорту(Текстовий), Телефонний номер(Текстовий), Місто проживання(Текстовий). Таблиця «Квитанція» міститиме дані про квитанції медичного діагностичного центру з атрибутами(з типом даних): Код квитанції(Текстовий), Код клієнта(Текстовий), Всього до оплати(Числовий), Дата видачі(Дата/Час), Прізвище та ім'я клієнта(Текстовий), Діагноз(Текстовий), Код препарату(Текстовий). Таблиця «Клієнти» буде містити в собі дані про клієнтів медичного діагностичного центру з атрибутами(з типом даних): Код клієнта(Текстовий), Діагноз(Текстовий), Код лікаря(Текстовий), Прізвище та ім'я(Текстовий), Код паспорту(Текстовий), Телефонний номер(Текстовий), Місто проживання(Текстовий). Таблиця «Діагнози» буде містити в собі дані про діагнози, які діагностують в медичному діагностичному центрі з атрибутами(з типом даних): Код діагнозу(Текстовий), Термін(Текстовий), Термін лікування(Текстовий). Схема структури таблиць показано в додатку.

4.3 Розробка структури таблиць бази даних

Таблиця «Діагнози» містить такі поля:

· Код діагнозу - дане поле містить дані про код кожного діагнозу певного терміну.

· Термін - дане поле містить дані про назву кожного діагнозу.

· Термін лікування - дане поле містить дані про тривалість лікування кожного діагнозу.

Таблиця «Препарати» містить такі поля:

· Код препарату - дане поле містить дані про код кожний препарат медичного діагностичного центру.

· Назва препарату - дане поле містить дані про назву кожного препарату медичного діагностичного центру.

· Дата виготовлення - дане поле містить дані про дату виготовлення кожного препарату медичного діагностичного центру.

· Термін придатності - дане поле містить дані про термін придатності кожного препарату медичного діагностичного центру.

Таблиця «Клієнти» містить такі поля:

· Код клієнта - дане поле містить дані про код клієнта кожного клієнта медичного діагностичного центру.

· Діагноз клієнта - дане поле містить дані про діагнози кожного клієнта медичного діагностичного центру.

· Код лікаря - дане поле містить дані про всі коди лікарів, які були лікарем певного клієнта

· Прізвище та ім'я - дане поле містить дані про прізвище та ім'я кожного клієнта медичного діагностичного центру.

· Код паспорту - дане поле містить дані про код паспорту кожного клієнта медичного діагностичного центру.

· Телефонний номер - дане поле містить дані про телефонні номери кожного клієнта медичного діагностичного центру.

· Місто проживання - дане поле містить дані про місто проживання кожного клієнта медичного діагностичного центру.

· Код діагнозу - дане поле містить дані про код діагнозу кожного клієнта медичного діагностичного центру.

Таблиця «Лікарі» містить такі поля:

· Код лікаря - дане поле містить дані про код лікаря кожного лікаря медичного діагностичного центру.

· Прізвище і ініціали - дане поле містить дані про прізвище та ініціали кожного лікаря медичного діагностичного центру.

· Код паспорту - дане поле містить дані про код паспорту кожного лікаря медичного діагностичного центру.

· Телефонний номер - дане поле містить дані про телефонний номер кожного лікаря медичного діагностичного центру.

· Місто проживання - дане поле містить дані про місто проживання кожного лікаря медичного діагностичного центру.

Таблиця «Квитанція» містить такі поля:

· Код квитанції - дане поле містить дані про код квитанції кожної квитанції медичного діагностичного центру.

· Код клієнта - дане поле містить дані про кожного клієнти медичного діагностичного центру.

· Всього до оплати - дане поле містить дані про кошти, які потрібно сплатити кожному клієнту.

· Дата видачі - дане поле містить дані про дату видачі кожної квитанції.

· Прізвище та ім'я клієнта - дане поле містить дані про прізвище та ім'я кожного клієнта медичного діагностичного центру.

· Діагноз - дане поле містить дані про діагнози кожного клієнта медичного діагностичного центру.

· Код препарату - дане поле містить дані про код певний препарат медичного діагностичного центру, який був куплений певним клієнтом.

Ключові поля:

1. Таблиця «Діагнози» - Код діагнозу.

2. Таблиця «Препарати» - Код препарату.

3. Таблиця «Лікарі» - Код лікаря.

4. Таблиця «Квитанція» - Код квитанції.

5. Таблиця «Клієнти» - Код клієнта.

Зовнішні поля ключових полів таблиць:

1. Таблиця «Клієнти» - Код лікаря, Код діагнозу.

2. Таблиця «Квитанція» - Код препарату.

Налаштовую цілісність даних в схемі бази даних проекту.

Висновок

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

При розробці курсового проекту було створено програмний додаток медичного діагностичного центру «Medical© control», який працює з базою даних медичного діагностичного центру. Через Medical© control можна здійснювати ряд операцій з базою даних медичного діагностичного центру: редагування, пошук та фільтрування за довільними полями, друкувати звіти, обчислювати прибуток за день, підраховувати кількість записів в таблицях: Діагнози, Квитанції, Клієнти, Препарати, Лікарі.

Створений додаток було з'єднано з базою даних за допомогою компонента ADOConnection та драйвера Microsoft Jet 4.0 OLE DB Provider. Таблиці бази даних були підключені до програмного додатку за допомогою компонентів DataSource та ADOQuery, який містить в собі повний код SQL певної таблиці(Діагнози, Квитанції, Препарати, Лікарі, Клієнти). Виведення даних з таблиць було здійснено за допомогою компонента DBGrid. Було створено головне меню програмного додатку за допомогою MainMenu та панель швидкого доступу ToolBar на якому було розташовано 8 кнопок(Додати запис, Видалити запис, Пошук, Друк, Про нас, Довідка, Зміна паролю, Вихід) та додаткова 9 кнопка швидкого доступу( «Підрахунок» на формі «Квитанції»). Було розміщено компонент DBNavigator за допомогою якого можна додавати, видаляти, оновлювати дані, перемикати на наступний або попередній запис таблицях: Діагнози, Квитанції, Клієнти, Препарати, Лікарі. Також було розміщено панель фільтрації, яка містить компоненти: ComboBox(випадаючий список, в якому вибирається за яким атрибутом фільтрувати, або скинути фільтр), Edit(поле введення символів, по яких здійснюється фільтрація), Button(кнопка для підтвердження фільтрації по заданому атрибуту в ComboBox на основі введених символів в Edit). Було розташовано компонент StatusBar - для виведення підказок та кількості записів в таблиці, додатково виводить зароблену суму за день в формі «Квитанції».

Для розробки програмного додатку знадобилось створити схему функціональної діяльності проектованої системи (IDEF0), додаток 2; діаграму потоків даних проектованої системи (DFD), Рис.2.; діаграма варіантів використання проектованої системи, Рис.3; логічну модель бази даних проектованої системи в ERwin, Рис.3.2.1.

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

Список літератури

1. Іан Соммервілла. Інженерія програмного забезпечення 2002.

2. Орлов С. А. Технології розробки програмного забезпечення: Розробка складних програмних систем (Вид. 3), 2004.

3. Ерік Дж. Брауде. Технологія розробки програмного забезпечення, 2004.

4. Липаев, В. В. Програмна інженерія. Методологічні основи [Текст]: Учеб. / В. В. Липаев; Держ. ун-т - Вища школа економіки. - М. : ТЕИС, 2006. 608 с. - 1000 екз. - ISBN 5-7598-0424-3, УДК 004,41 (075,8), ББК 32.973.26-018я73, Липаев, Вища школа економіки, ТЕИС, 2006, PDF, економіка, програмування.

5. Лапланте, Філ (2009). Вимоги Техніка для програмного забезпечення і систем (вид. 1). Редмонд, штат Вашингтон: CRC Press. ISBN 1-42006-467-3.

6. Макконнелл Стів (1996). Швидкий розвиток: Приборкання Дикого Software Розклади (. Вид 1). Редмонд, штат Вашингтон: Microsoft Press. ISBN 1-55615-900-5.

7. Віджерс, Карл Е. (2003). Вимоги до програмного забезпечення (вид. 2). Редмонд, штат Вашингтон: Microsoft Press. ISBN 0-7356-1879-8.

8. Андрій Стельман і Дженніфер Грін (2005). Прикладне програмне забезпечення для управління проектами. Кембридж, Массачусетс: O'Reilly Media. ISBN 0-596-00948-8.

9. Брайан Беренбач, Даніель Пауліш, Юрген Катзмеєр, Арнольд Рудофер (2009). Програмне забезпечення та системи технічних вимог: на практиці. Нью-Йорк: McGraw-Hill Професійний. ISBN 0-07-1605479.

10. Вальтер Собків (2008). Сталий розвиток можливий при Creative System Engineering. Нью-Джерсі: CassBeth. ISBN 0615216307.

Додаток 1

Лістинг програми

/*

- Управління базою даних «Медична діагностична клініка» MDC.mdb

- Автор Гребенюк Іван Андрійович

- Версія 1.0

- Програмування модулів (форм) алгоритмами

*/

//diagnozi_delete_zaput.cpp (daig_delete)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi_delete_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tdiag_delete *diag_delete;

__fastcall Tdiag_delete::Tdiag_delete(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tdiag_delete::Button1Click(TObject *Sender)

{ Memo1->Clear(); bd_work->diagnoziz->Active=false; AnsiString text[]={"DELETE FROM Діагнози",

" WHERE Діагнози.[Код діагнозу]=\""+Edit1->Text+"\"", " OR Діагнози.[Термін лікування]=\""+Edit3->Text+"\" OR",

"Діагнози.Термін=\""+Edit2->Text+"\""}; for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]);

bd_work->diagnoziz->Close(); bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text);

bd_work->diagnoziz->ExecSQL(); AnsiString text2[]={"SELECT *", "FROM Діагнози;"}; Memo1->Clear();

for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++) Memo1->Lines->Add(text2[t]); bd_work->diagnoziz->Close();

bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text); bd_work->diagnoziz->Open();

bd_work->diagnoziz->Active=true; bd_work->count_diagnozi->Active=false; bd_work->count_diagnozi->Active=true; }

void __fastcall Tdiag_delete::FormCreate(TObject *Sender) { Left = 387; Top = 523; }

void __fastcall Tdiag_delete::Edit3KeyPress(TObject *Sender, char &Key)

{ if(Key == VK_RETURN) Button1Click(Sender); }

// diagnozi_insert_zaput.cpp (diag_insert)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi_insert_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tdiag_insert *diag_insert;

__fastcall Tdiag_insert::Tdiag_insert(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tdiag_insert::Button1Click(TObject *Sender)

{ Memo1->Clear();

bd_work->diagnoziz->Active=false; AnsiString text[]={"INSERT INTO Діагнози([Код діагнозу], Термін,[Термін лікування])",

" VALUES ( \""+Edit1->Text+"\",\""+Edit2->Text+"\",\""+Edit3->Text+"\")"};

for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]);

bd_work->diagnoziz->Close(); bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text);

bd_work->diagnoziz->ExecSQL(); AnsiString text2[]={"SELECT *", "FROM Діагнози;"}; Memo1->Clear();

for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++) Memo1->Lines->Add(text2[t]); bd_work->diagnoziz->Close();

bd_work->diagnoziz->SQL->Clear(); bd_work->diagnoziz->SQL->Add(Memo1->Text); bd_work->diagnoziz->Open();

bd_work->diagnoziz->Active=true; bd_work->count_diagnozi->Active=false; bd_work->count_diagnozi->Active=true; }

void __fastcall Tdiag_insert::FormCreate(TObject *Sender) { Left = 387; Top = 523; }

void __fastcall Tdiag_insert::Button1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN) Button1Click(Sender); }

//diagnozi_search_zaput.cpp (diag_search)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi_search_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tdiag_search *diag_search;

__fastcall Tdiag_search::Tdiag_search(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tdiag_search::Button1Click(TObject *Sender)

{ if((RadioButton2->Checked==true)&&(bd_work->diagnoziz->Locate("Термін",Edit2->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton1->Checked==true)&&(bd_work->diagnoziz->Locate("Код діагнозу",Edit1->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton3->Checked==true)&&(bd_work->diagnoziz->Locate("Термін лікування",Edit3->Text, TLocateOptions())))

{ShowMessage("Присутній!");} }

void __fastcall Tdiag_search::Edit3KeyPress(TObject *Sender, char &Key) { if(Key==VK_RETURN) Button1Click(Sender); }

void __fastcall Tdiag_search::FormCreate(TObject *Sender) { Left = 387; Top = 523; }

//connect.cpp (Me)

#include <vcl.h>

#pragma hdrstop

#include "connect.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TMe *Me;

__fastcall TMe::TMe(TComponent* Owner) : TForm(Owner) { }

void __fastcall TMe::FormCreate(TObject *Sender) { Left = 522; Top = 274; }

//Helps.cpp (Help)

#include <vcl.h>

#pragma hdrstop

#include "Helps.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

THelp *Help;

__fastcall THelp::THelp(TComponent* Owner) : TForm(Owner) { }

void __fastcall THelp::FormCreate(TObject *Sender) { Left = 460; Top = 178; }

void __fastcall THelp::FormActivate(TObject *Sender) { system("start Довідка.chm"); }

//diagnozi.cpp (Diagnoz)

#include <vcl.h>

#pragma hdrstop

#include "diagnozi.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TDiagnoz *Diagnoz;

String atribute[] = {"Код діагнозу","Термін","Термін лікування"};

__fastcall TDiagnoz::TDiagnoz(TComponent* Owner) : TForm(Owner) { }

void __fastcall TDiagnoz::FormClose(TObject *Sender, TCloseAction &Action)

{ PasswordDlg->Close(); }

void __fastcall TDiagnoz::ComboBox1KeyPress(TObject *Sender, char &Key)

{ if(Key==Key)Key = 0x00; }

void __fastcall TDiagnoz::Button3Click(TObject *Sender) { Panel2->Visible=false; }

void __fastcall TDiagnoz::DBGrid1MouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ bd_work->count_diagnozi->Active=false;

bd_work->count_diagnozi->Active=true; Diagnoz->StatusBar1->Panels->Items[1]->Text = DBText1->Caption; }

void __fastcall TDiagnoz::FormCanResize(TObject *Sender, int &NewWidth, int &NewHeight, bool &Resize)

{ Edit1->Width=Diagnoz->Width-260; }

void __fastcall TDiagnoz::Button1Click(TObject *Sender)

{ if((ComboBox1->Text=="Скинути фільтр")||(Edit1->Text=="")) bd_work->diagnoziz->Filtered = false;

else if((ComboBox1->Text=="Фільтр по \"Код діагнозу\"")&&(Edit1->Text!=""))

{ bd_work->diagnoziz->Filtered = false; bd_work->diagnoziz->Filter = "[Код діагнозу] like '"+Edit1->Text+"*'";

bd_work->diagnoziz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Термін\"")&&(Edit1->Text!=""))

{ bd_work->diagnoziz->Filtered = false; bd_work->diagnoziz->Filter = "[Термін] like '"+Edit1->Text+"*'";

bd_work->diagnoziz->Filtered = true; }

else if((ComboBox1->Text=="Фільтр по \"Термін лікування\"")&&(Edit1->Text!=""))

{ bd_work->diagnoziz->Filtered = false;

bd_work->diagnoziz->Filter = "[Термін лікування] like '"+Edit1->Text+"*'"; bd_work->diagnoziz->Filtered = true; } }

void __fastcall TDiagnoz::ToolButton1Click(TObject *Sender) { bd_work->table1Click(Sender); }

void __fastcall TDiagnoz::ToolButton2Click(TObject *Sender) { bd_work->vidalit1Click(Sender); }

void __fastcall TDiagnoz::ToolButton4Click(TObject *Sender) { bd_work->N1Click(Sender); }

void __fastcall TDiagnoz::ToolButton6Click(TObject *Sender) { bd_work->N3Click(Sender); }

void __fastcall TDiagnoz::ToolButton8Click(TObject *Sender) { bd_work->MeButtonClick(Sender); }

void __fastcall TDiagnoz::ToolButton10Click(TObject *Sender) { bd_work->N2Click(Sender); }

void __fastcall TDiagnoz::ToolButton12Click(TObject *Sender) { bd_work->N5Click(Sender); }

void __fastcall TDiagnoz::FormCreate(TObject *Sender) { Left = 387; Top = 74; }

void __fastcall TDiagnoz::ToolButton13Click(TObject *Sender) { bd_work->N63Click(Sender); }

void __fastcall TDiagnoz::DBGrid1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//password_new.cpp (Pass_renew)

#include <vcl.h>

#pragma hdrstop

#include "password_new.h"

#include "password.h"

#include "diagnozi.h"

#include "klienti.h"

#include "kvitanciji.h"

#include "likari.h"

#include "priparati.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TPass_renew *Pass_renew;

__fastcall TPass_renew::TPass_renew(TComponent* Owner) : TForm(Owner) { }

void __fastcall TPass_renew::FormCreate(TObject *Sender) { Left = 416; Top = 314; }

void __fastcall TPass_renew::FormClose(TObject *Sender, TCloseAction &Action)

{ if((Diagnoz->Visible == true)||(klient->Visible == true)|| (kvitancii->Visible == true)||(likar->Visible == true)||

(Priparats->Visible == true)) {Complete_pass->Text = ""; Old_pass->Text = "";New_pass->Text = "";Close();}

else PasswordDlg->Visible = true; Complete_pass->Text = "";New_pass->Text = "";Old_pass->Text = ""; }

void __fastcall TPass_renew::Button1Click(TObject *Sender)

{ bool turned = false; String mess1 = "Поля 'Введіть новий пароль' і ";

String mess2 = "'Повторіть новий пароль' повинні співпадати!"; Memo1->Clear();

Memo1->Lines->LoadFromFile("renew.bin"); String pass_file = Memo1->Text; if(Old_pass->Text==pass_file) {

if(New_pass->Text == Complete_pass->Text) { Memo1->Text = Complete_pass->Text; Memo1->Lines->SaveToFile("renew.bin");

turned = true; } else ShowMessage(mess1+mess2); } else ShowMessage("Невірний старий пароль!");

if(turned == true) { ShowMessage("Зміна пароля пройшла успішно!"); Visible = false; Close(); } }

void __fastcall TPass_renew::Old_passMouseMove(TObject *Sender,TShiftState Shift, int X, int Y)

{ Old_pass->Hint = Old_pass->Text; }

void __fastcall TPass_renew::New_passMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ New_pass->Hint = New_pass->Text; }

void __fastcall TPass_renew::Complete_passMouseMove(TObject *Sender, TShiftState Shift, int X, int Y)

{ Complete_pass->Hint = Complete_pass->Text; }

void __fastcall TPass_renew::Button1KeyPress(TObject *Sender, char &Key)

{ if(Key == VK_RETURN)Button1Click(Sender); }

//password.cpp (PasswordDlg)

#include <vcl.h>

#pragma hdrstop

#include "password.h"

#include "diagnozi.h"

#include "work_bd.h"

#include "password_new.h"

#include "fstream.h"

#pragma resource "*.dfm"

TPasswordDlg *PasswordDlg;

__fastcall TPasswordDlg::TPasswordDlg(TComponent* AOwner) : TForm(AOwner) { }

void __fastcall TPasswordDlg::OKBtnClick(TObject *Sender)

{ Memo1->Clear(); Memo1->Lines->LoadFromFile("renew.bin"); String pass_file = Memo1->Text;

if(pass_file != Password->Text) { ShowMessage("Невірний пароль!"); } else { PasswordDlg->Visible=false; Diagnoz->Show(); } }

void __fastcall TPasswordDlg::CancelBtnClick(TObject *Sender) { PasswordDlg->Close(); }

void __fastcall TPasswordDlg::FormCreate(TObject *Sender)

{ fstream file("renew.bin"); if(!file.is_open()) { ofstream sozdat("renew.bin"); sozdat.close(); } Left = 529; Top = 317; }

void __fastcall TPasswordDlg::SpeedButton1Click(TObject *Sender)

{ PasswordDlg->Visible = false; Pass_renew->Visible = true; }

//connect.cpp (Me)

#include <vcl.h>

#pragma hdrstop

#include "connect.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

TMe *Me;

__fastcall TMe::TMe(TComponent* Owner) : TForm(Owner) { }

void __fastcall TMe::FormCreate(TObject *Sender) { Left = 522; Top = 274; }

//kvitanciji.cpp (kvitancii)

#include <vcl.h>

#pragma hdrstop

#include "kvitanciji.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_delete *kvit_delete;

__fastcall Tkvit_delete::Tkvit_delete(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_delete::Button1Click(TObject *Sender)

{ String ed1 = "[Код квитанції]=\""+Edit1->Text+"\" OR "; String ed2 = "[Код клієнта]=\""+Edit2->Text+"\" OR "; String ed3;

if(Edit3->Text != "") ed3 = "[Всього до оплати]="+Edit3->Text+" OR "; else Edit3->Text = "0";

String ed5 = "[Прізвище та ім'я клієнта]=\""+Edit5->Text+"\" OR "; String ed6 = "Діагноз=\""+Edit6->Text+"\" OR ";

String ed7 = "[Код препарату]=\""+Edit7->Text+"\""; String mainText = ed1+ed2+ed3+ed5+ed6+ed7;

Memo1->Clear(); bd_work->kvitanciiz->Active=false; AnsiString text[]={"DELETE FROM Квитанція where "+mainText+""};

for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]); bd_work->kvitanciiz->Close();

bd_work->kvitanciiz->SQL->Clear(); bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->ExecSQL();

AnsiString text2[]={"SELECT *", "FROM Квитанція;"}; Memo1->Clear(); for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)

Memo1->Lines->Add(text2[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->Open(); bd_work->kvitanciiz->Active=true; }

void __fastcall Tkvit_delete::FormCreate(TObject *Sender) { Left = 913; Top = 453; }

void __fastcall Tkvit_delete::Edit1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//kvitancii_delete_zaput.cpp (kvit_delete)

#include <vcl.h>

#pragma hdrstop

#include "kvitancii_delete_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_delete *kvit_delete;

__fastcall Tkvit_delete::Tkvit_delete(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_delete::Button1Click(TObject *Sender)

{ String ed1 = "[Код квитанції]=\""+Edit1->Text+"\" OR "; String ed2 = "[Код клієнта]=\""+Edit2->Text+"\" OR ";

String ed3; if(Edit3->Text != "") ed3 = "[Всього до оплати]="+Edit3->Text+" OR ";

else Edit3->Text = "0"; String ed5 = "[Прізвище та ім'я клієнта]=\""+Edit5->Text+"\" OR ";

String ed6 = "Діагноз=\""+Edit6->Text+"\" OR "; String ed7 = "[Код препарату]=\""+Edit7->Text+"\"";

String mainText = ed1+ed2+ed3+ed5+ed6+ed7; Memo1->Clear(); bd_work->kvitanciiz->Active=false;

AnsiString text[]={"DELETE FROM Квитанція where "+mainText+""}; for(unsigned t=0; t<sizeof(text)/sizeof(int); t++)

Memo1->Lines->Add(text[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->ExecSQL();

AnsiString text2[]={"SELECT *", "FROM Квитанція;"}; Memo1->Clear(); for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)

Memo1->Lines->Add(text2[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->Open(); bd_work->kvitanciiz->Active=true; }

void __fastcall Tkvit_delete::FormCreate(TObject *Sender) { Left = 913; Top = 453; }

void __fastcall Tkvit_delete::Edit1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//kvitancii_insert_zaput.cpp (kvit_insert)

#include <vcl.h>

#pragma hdrstop

#include "kvitancii_insert_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_insert *kvit_insert;

__fastcall Tkvit_insert::Tkvit_insert(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_insert::Button1Click(TObject *Sender)

{ String ed1 = "\""+Edit1->Text+"\","; String lcb1 = "\""+DBLookupComboBox2->Text+"\",";

String ed2 = "\""+Edit2->Text+"\","; String dtp1 = "\""+DateToStr(DateTimePicker1->Date)+"\",";

String ed3 = "\""+Edit3->Text+"\","; String lcb2 = "\""+DBLookupComboBox1->Text+"\",";

String lcb3 = "\""+DBLookupComboBox3->Text+"\""; String mainText = ed1+lcb1+ed2+dtp1+ed3+lcb2+lcb3;

Memo1->Clear(); bd_work->kvitanciiz->Active=false; AnsiString text[]={"INSERT INTO Квитанція([Код квитанції],[Код клієнта],",

"[Всього до оплати],[Дата видачі],[Прізвище та ім'я клієнта],Діагноз,[Код препарату])", " VALUES ("+mainText+")"};

for(unsigned t=0; t<sizeof(text)/sizeof(int); t++) Memo1->Lines->Add(text[t]); bd_work->kvitanciiz->Close();

bd_work->kvitanciiz->SQL->Clear(); bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->ExecSQL();

AnsiString text2[]={"SELECT *", "FROM Квитанція;"}; Memo1->Clear(); for(unsigned t=0; t<sizeof(text2)/sizeof(int); t++)

Memo1->Lines->Add(text2[t]); bd_work->kvitanciiz->Close(); bd_work->kvitanciiz->SQL->Clear();

bd_work->kvitanciiz->SQL->Add(Memo1->Text); bd_work->kvitanciiz->Open(); bd_work->kvitanciiz->Active=true; }

void __fastcall Tkvit_insert::FormCreate(TObject *Sender) { Left = 913; Top = 441; }

void __fastcall Tkvit_insert::Edit1KeyPress(TObject *Sender, char &Key) { if(Key == VK_RETURN)Button1Click(Sender); }

//kvitancii_search_zaput.cpp (kvit_search)

#include <vcl.h>

#pragma hdrstop

#include "kvitancii_search_zaput.h"

#include "work_bd.h"

#pragma package(smart_init)

#pragma resource "*.dfm"

Tkvit_search *kvit_search;

__fastcall Tkvit_search::Tkvit_search(TComponent* Owner) : TForm(Owner) { }

void __fastcall Tkvit_search::Button1Click(TObject *Sender)

{ if((RadioButton1->Checked==true)&&(bd_work->kvitanciiz->Locate("Код квитанції",Edit1->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton2->Checked==true)&&(bd_work->kvitanciiz->Locate("Код клієнта",Edit2->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton3->Checked==true)&&(bd_work->kvitanciiz->Locate("Всього до оплати",Edit3->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton4->Checked==true)&&(bd_work->kvitanciiz->Locate("Прізвище та ім'я клієнта",Edit4->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton5->Checked==true)&&(bd_work->kvitanciiz->Locate("Діагноз",Edit5->Text, TLocateOptions())))

{ShowMessage("Присутній!");}

if((RadioButton6->Checked==true)&&(bd_work->kvitanciiz->Locate("Код препарату",Edit6->Text, TLocateOptions())))

{ShowMessage("Присутній!");} }

void __fastcall Tkvit_search::FormCreate(TObject *Sender) { Left = 913; Top = 441; }

void __fastcall Tkvit_search::RadioButton1KeyPress(TObject *Sender, char &Key) {if(Key==VK_RETURN)Button1Click(Sender); }


Подобные документы

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

    курсовая работа [2,0 M], добавлен 21.08.2015

  • Розробка інтерфейсу програми "Автоматизована інформаційна система автошколи". Вибір архітектури, характеристика користувача. Генерація, проектування схеми бази даних, детальне програмування. Розробка структури таблиць. Лістинг програми, результат роботи.

    курсовая работа [2,7 M], добавлен 11.09.2015

  • Проектування бази даних для КП "ВодГео" - комунального підприємства у сфері водопостачання та водовідведення в м. Сміла. Предметна область, вимоги до продукту. Розробка інтерфейсу програми. Вибір архітектури та сервера бази даних, її логічна структура.

    курсовая работа [1,2 M], добавлен 14.07.2015

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

    курсовая работа [4,8 M], добавлен 27.12.2013

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

    дипломная работа [6,1 M], добавлен 06.01.2012

  • Теоретичні відомості про пакет ІЗВП Borland Delphi та СУБД MS Access, оцінка їх функціональних особливостей. Опис структури бази даних. Проектування інтерфейсу програми, опис її логічної структури та функцій. Контроль коректності вхідних, вихідних даних.

    курсовая работа [4,5 M], добавлен 03.01.2014

  • Вибір середовища програмування Borland Delphi 7.0 для створення електронно-медичного довідника. Формування бази даних для перегляду та пошуку медичних препаратів для лікування. Особливості програмування інтерфейсу програми, інструкція користувача.

    курсовая работа [2,2 M], добавлен 19.09.2012

  • Розробка структури бази даних. ER-моделі предметної області. Проектування нормалізованих відношень. Розробка форм, запитів, звітів бази даних "Автосалон". Тестування роботи бази даних. Демонстрація коректної роботи форми "Додавання даних про покупців".

    курсовая работа [4,0 M], добавлен 02.12.2014

  • Проектування бази даних (БД). Проектування логічної моделі БД. Реалізація БД та створення таблиць. Встановлення зв’язків, вибір мови та середовища програмування. Опис функціональних елементів та реалізація програми. Опис та тестовий приклад програми.

    дипломная работа [1,6 M], добавлен 07.01.2017

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

    курсовая работа [147,2 K], добавлен 02.06.2019

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.