Материал: Автоматизована інформаційна система автошколи

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Автоматизована інформаційна система автошколи

ВСТУП

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

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

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

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

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

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

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

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

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

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

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

Вступ

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

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

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

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

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

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

Веде облік категорій водія клієнтів.

Виконує фільтрацію даних.

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

Користувачі

Директор автошколи.

Вчителі.

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

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

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

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

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

Продукт повинен дозволяти вводити дані: Клієнти(Код клієнта, прізвище та ім’я, дата вступу, термін навчання, категорія, код вчителя), Вчителі(Код вчителя, прізвище та ім’я, код паспорту, телефонний номер, код транспорту), Транспорти(Код транспорту, модель, кількість кінських сил, об’єм двигуна);

Продукт повинен дозволяти виводити дані: Клієнти(Код клієнта, прізвище та ім’я, дата вступу, термін навчання, категорія, код вчителя), Вчителі(Код вчителя, прізвище та ім’я, код паспорту, телефонний номер, код транспорту), Транспорти(Код транспорту, модель, кількість кінських сил, об’єм двигуна);

Продукт повинен дозволяти видаляти дані: Клієнти(Код клієнта, прізвище та ім’я, дата вступу, термін навчання, категорія, код вчителя), Вчителі(Код вчителя, прізвище та ім’я, код паспорту, телефонний номер, код транспорту), Транспорти(Код транспорту, модель, кількість кінських сил, об’єм двигуна);

Продукт повинен дозволяти здійснювати фільтрацію даних по полях деяких таблиць: Клієнти(Код клієнта, прізвище та ім’я, категорія), Вчителі(Код вчителя, прізвище та ім’я, код паспорту, телефонний номер), Транспорти(Код транспорту, модель, кількість кінських сил, об’єм двигуна);

Продукт повинен дозволяти друкувати звіти усіх полів таблиць: Клієнти, Вчителі, Транспорти.

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

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

Інтерфейс системи складається з:

Головне меню.

Таблиця бази даних.

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

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

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

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

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

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

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

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

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

Для проектування інтерфейсу додатку знадобилося дізнатись інформацію про користувача, проаналізувати його рівень комп’ютерних знань та вмінь. Я проаналізував можливих користувачів, які будуть користуватися додатком та вивів інформацію в окрему таблицю, табл.2.1.

програма лістинг інтерфейс автошкола

Табл. 2.1 - Характеристика користувача

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

Градації

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

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

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

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

Середній

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

Середній

Освіта

Закінчена середня освіта

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

12 років в школі

Машинопис

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

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

Вік

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

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

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

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

Фізичні вади

Бажано без фізичних вад

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

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

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


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

Проектування інтерфейсу виконано в середовищі C++Builder 6 таким чином:

Головне вікно - вікно «Клієнти»:

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

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

Вікно «Вчителі»:

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

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

Вікно «Транспорт»:

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

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

Вікно «Додавання / Видалення даних»:

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

На Panel1 розміщую PageControl1 на якому міститься 3 вкладки - Клієнти (розміщує в собі PageControl2 на якому міститься 2 вкладки - Додавання даних(містить в собі Label1->Caption = «Введіть код клієнта», Label2->Caption = «Введіть прізвище та ім’я клієнта», Label3->Caption = «Введіть категорію клієнта», Кнопку «Ок» - для підтвердження додавання даних в таблицю «Клієнти»), Видалення даних(містить в собі Label1->Caption = «Введіть код клієнта», Label2->Caption = «Введіть прізвище та ім’я клієнта», Label3->Caption = «Введіть категорію клієнта», Кнопку «Ок» - для підтвердження видалення даних в таблиці «Клієнти»)), Вчителі(розміщує в собі PageControl3 на якому міститься 2 вкладки - Додавання даних(містить в собі Label1->Caption = «Введіть код вчителя», Label2->Caption = «Введіть прізвище та ім’я вчителя» , Label3->Caption = «Введіть код паспорту вчителя» , Label4->Caption = «Введіть телефон вчителя», Кнопку «Ок» - для підтвердження додавання даних в таблицю «Вчителі»), Видалення даних(містить в собі Label1->Caption = «Введіть код вчителя», Label2->Caption = «Введіть прізвище та ім’я вчителя» , Label3->Caption = «Введіть код паспорту вчителя» , Label4->Caption = «Введіть телефон вчителя», Кнопку «Ок» - для підтвердження видалення даних в таблиці «Вчителі»)), Транспорт(розміщує в собі PageControl4 на якому міститься 2 вкладки - Додавання даних(містить в собі Label1->Caption = «Введіть код транспорту», Label2->Caption = «Введіть модель транспорту», Label3->Caption = «кількість кінських сил», Label4->Caption = «Об’єм двигуна (см3)», Кнопку «Ок» - для підтвердження додавання даних в таблицю «Транспорт»), Видалення даних(містить в собі Label1->Caption = «Введіть код транспорту», Label2->Caption = «Введіть модель транспорту», Label3->Caption = «кількість кінських сил», Label4->Caption = «Об’єм двигуна (см3)», Кнопку «Ок» - для підтвердження видалення даних в таблиці «Транспорт»)). Результат створеної форми показано в додатку 2 рис.4.

Вікно «Auto_zvit»:

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

На QuickRep1 розміщую QRBand1(QRLabel1 - в властивостях встановлюю Caption = «Код транспорту»; QRLabel2 - в властивостях встановлюю Caption = «Модель»; QRLabel3 - в властивостях встановлюю Caption = «Кількість кінських сил», QRLabel4 - в властивостях встановлюю Caption = «Об’єм двигуна (см3)»), QRBand2(QRDBText1 - в властивостях встановлюю DataSet = bd_work->Auto_table, DataField = «Код транспорту»; QRDBText2 - в властивостях встановлюю DataSet = bd_work->Auto_table, DataField = «Модель» ; QRDBText3 - в властивостях встановлюю DataSet = bd_work->Auto_table, DataField = «Кількість кінських сил»; QRDBText4 - в властивостях встановлюю DataSet = bd_work->Auto_table, DataField = «Об’єм двигуна»); QRLabel5 - в властивостях встановлюю Caption = «Транспорт». Властивість компоненту QuickRep1 встановлюю DataSet = bd_work->Auto_table, властивість компоненту QRBand2 встановлюю BandType = rbDetail. Результат створеної форми показано в додатку 2 рис.5.

Вікно «Teach_zvit»:

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

На QuickRep1 розміщую QRBand1(QRLabel1 - в властивостях встановлюю Caption = «Код вчителя»; QRLabel2 - в властивостях встановлюю Caption = «Код паспорту»; QRLabel3 - в властивостях встановлюю Caption = «Код транспорту» , QRLabel4 - в властивостях встановлюю Caption = «Прізвище та ім’я» , QRLabel5 - в властивостях встановлюю Caption = «Телефонний номер»), QRBand2(QRDBText1 - в властивостях встановлюю DataSet = bd_work->Teach_table, DataField = «Код вчителя»; QRDBText2 - в властивостях встановлюю DataSet = bd_work->Teach_table, DataField = «Код паспорту» ; QRDBText3 - в властивостях встановлюю DataSet = bd_work->Teach_table, DataField = «Код транспорту» ; QRDBText4 - в властивостях встановлюю DataSet = bd_work->Teach_table, DataField = «Прізвище та ім’я» ; QRDBText5 - в властивостях встановлюю DataSet = bd_work->Teach_table, DataField = «Телефонний номер»), QRLabel5 - в властивостях встановлюю Caption = «Вчителі». Властивість компоненту QuickRep1 встановлюю DataSet = bd_work->Teach_table, властивість компоненту QRBand2 встановлюю BandType = rbDetail. Результат створеної форми показано в додатку 2 рис.5.

Вікно «ZVIT_klienti»:

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

На QuickRep1 розміщую QRBand1(QRLabel1 - в властивостях встановлюю Caption = «Код клієнта»; QRLabel2 - в властивостях встановлюю Caption = «Прізвище та ім’я»; QRLabel3 - в властивостях встановлюю Caption = «Дата вступу»; QRLabel4 - в властивостях встановлюю Caption = «Термін навчання»; QRLabel5 - в властивостях встановлюю Caption = «Код вчителя»; QRLabel6 - в властивостях встановлюю Caption = «Категорія»), QRBand2(QRDBText1 - в властивостях встановлюю DataSet = bd_work->Klient_table, DataField = «Код клієнта»; QRDBText2 - в властивостях встановлюю DataSet = bd_work->Klient_table, DataField = «Прізвище та ім’я» ; QRDBText3 - в властивостях встановлюю DataSet = bd_work->Klient_table, DataField = «Дата вступу» ; QRDBText4 - в властивостях встановлюю DataSet = bd_work->Klient_table, DataField = «Термін навчання»; QRDBText5 - в властивостях встановлюю DataSet = bd_work->Klient_table, DataField = «Код вчителя»; QRDBText6 - в властивостях встановлюю DataSet = bd_work->Klient_table, DataField = «Категорія»;), QRLabel7 - в властивостях встановлюю Caption = «Клієнти». Властивість компоненту QuickRep1 встановлюю DataSet = bd_work->Klient_table, властивість компоненту QRBand2 встановлюю BandType = rbDetail. Результат створеної форми показано в додатку 2 рис.5.

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

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

На Panel1 розміщую Label1 - в властивостях Caption = «#"877399.files/image001.gif">

Рис 3.1.1 - Встановлення зв’язку з БД

Також для зображення бази даних на формі використовується DataSource та ADOTable, потім DataSource підключається до DBGrid і виводиться обрана таблиця.

З'єдную проект з базою даних «Автошкола»:

Додаємо на форму DataModule, на ній розміщуємо такі компоненти: ADOConnection,  DataSource, ADOTable.

Натиснувши 2 рази на ADOConnection  вибираю потрібний драйвер, та підключаю базу даних. У властивостях DataSource : DataSet=ADOTable2 (підключив одну з таблиць бази даних до DataSource ). У властивостях ADOTable : Connection=ADOConnection; Active=true; TableName=Клієнти (підключили таблицю «Клієнти»).

3.2 Генерація схеми бази даних

Драйвер Microsoft ODBC для SQL Server - це ізольований драйвер, який надає API-інтерфейс, який реалізує стандартні інтерфейси ODBC з Microsoft SQL Server. Генерацію схеми бази даних було зроблено для СУБД Аксес, використовуючи  ODBC.

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

За допомогою програми ER-Win було згенеровоно код для майбутньої бази даних, а вже потім за допомогою програми  BatchAccess (консольна утиліта для управління базами MS Access) , в яку був занесений код з ER-Win була створена база даних «Автошколи», генерацію бази даних наведено в рис. 3.2.1.

Рис. 3.2.1 - Створення Бази даних

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

.1 Логічна структура бази даних проекту

Основними об’єктами бази даних автошколи є: Клієнти, Вчителі, Транспорт.

Таблиця «Вчителі» зв’язана з таблицею «Транспорт» полем «Код транспорту». Таблиця «Клієнти» зв’язана з таблицею «Вчителі» полем «Код вчителя». Схему показано в додатку 3 рис.11.

В таблиці «Вчителі» йде опис вчителів, що працюють в автошколі.