Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Розробка моделі бази даних



РЕФЕРАТ

 

 

Кваліфікаційна робота: 88 сторінок, 2 таблиці, 31 рисунок, 2 додатка, 27 джерел. Розроблений програмний продукт 105 файлів загальним обсягом 3385 КБ, застосоване програмне забезпечення 9922  файлів загальним обсягом 10140 КБ.

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

Методи дослідження – вивчення джерел, спостереження, опис, порівняння. Методом розробки обрано локальну технологію, для зберігання даних проекту обрано базу Microsoft Access, мова програмування Object Pascal, середа розробки Delphi. Отримані результати: запропоновано прототип системи перевірки знань учнів автошколи.

При виконанні роботи застосовані програми Delphi, бази даних Microsoft Access, MS Office, Piant.

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

ІНФОРМАЦІЙНА СИСТЕМА, МОВА ПРОГРАМУВАННЯ, БАЗА ДАНИХ, INTERNET, ІНТЕРФЕЙС, ПЕРЕВІРКА ЗНАНЬ, УПРАВЛІННЯ НАВЧАЛЬНИМ ПРОЦЕСОМ, DELPHI, OLE – ТЕХНОЛОГІЯ, ЗВІТ

 

ЗМІСТ

 

 

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ 9
ВСТУП 10
1.ВИВЧЕННЯ ФУНКЦІОНАЛУ СИСТЕМИ BORLAND DELPHI І 12 ПРИНЦИПІВ СТВОРЕННЯ ПРИЗНАЧЕНИХ ДЛЯ КОРИСТУВАЧА                                                                            12 ІНТЕРФЕЙСІВ                                                                                                                                                                                    11    
1.1. Програмна середовище 11
1.2. Головне меню програми 12
1.3. Вікно пригляду об’єктів 13
1.4. Інспектор об’єктів 13
1.5. Текст програми 16
1.6. Початковий код модуля 16
1.7. Форма модуля 17
2. ВИБІР АРХІТЕКТУРИ ПРОЕКТУ І РОЗРОБКА КОМПОНЕНТНОГО СКЛАДУ 20
2.1. Розробка моделі проекту 20
2.2. Розробка моделі бази даних 20
2.3. Ескіз бази даних в Microsoft Access 21
2.3.1 Створення таблиць даних 21
2.3.2  Схема бази даних 23
2.3.3 Створення взаємозв’язків між таблицями 24
3. РОЗРОБКА КОНСТРУКТОРА ТЕСТОВИХ ЗАВДАНЬ 27
3.1. Підключення до бази даних Access з Delphi 27
3.2. Створення головного меню 29
3.3. Редагування правил 30
3.4. Редагування квитків 34
3.5. Додавання зображень 37
3.6. Список учнів 38
3.7. Графік викладачів водіння 40
3.8. Підготовка звітних форм 43
4. РОЗРОБКА ПРОГРАМИ ТЕСТУВАННЯ 46
4.1. Облік часу 46
4.2. Випадковий вибір квитків 49
4.3. Облік процесу здачі іспиту 50
4.4. Підрахунок результатів тестування 51
4.5. Розташування компонент на формі тестування 51
4.6. Авторизація студентів під час тестуваня 53
5. ПОДАЛЬШИЙ РОЗВИТОК ПРОЕКТУ 54
5.1. Безпека проекту 54
5.2. Варіанти розвитку проектів 54
5.3. Експорт проекту на WEB – Server 55
ВИСНОВКИ 57
ПЕРЕЛІК ПОСИЛАНЬ 58
ДОДАТОК А. КОД ПРОГРАМИ АДМІНІСТРУВАННЯ 60
ДОДАТОК Б. МОДУЛЬ ТЕСТУВАННЯ 80
   
   

 


ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ

 

 

БД База даних
ІС Інформаційна система
КПІТ Кафедра програмування та інформаційних технологі
СУБД Система управління базами даних
СУРБД Система управління реляційними базами даних
ТД Таблиця даних
IDE Integrated Development Environment
RAD Rapid Application Development
UML Unified Modeling Language
   

 


ВСТУП

 

 

Тематика роботи є актуальною, вона відповідає напрямкам, визначеним у Державній програмі інформатизації України на 2006–2010 роки, пріоритетним напрямам розвитку науки і техніки, визначеним Міністерством освіти і науки України, технічному завданню на виконання кафедрою ПІТ ЕІДМУ «КПУ» науково-дослідного проекту за темою «Створення програмних засобів і технологій забезпечення комп’ютерного інформаційного середовища».

Мета дослідження: розробка прототипу системи перевірки результатів навчання в автошколі.

Методи дослідження: вивчення джерел, спостереження, опис, порівняння.

Практичне значення роботи: результат (системи перевірки результатів навчання в автошколі) може бути використаним для створення реальної системи тестування працюючої автошколи.

Апробація результатів кваліфікаційної роботи: результати роботи у вигляді тез подані на XVІІ Міжнародну наукову конференцію молодих науковців «Наука і вища освіта» Класичного приватного університету» (квітень 2011 р.).

 

 

1. ВИВЧЕННЯ ФУНКЦІОНАЛУ СИСТЕМИ BORLAND DELPHI І

ПРИНЦИПІВ СТВОРЕННЯ ПРИЗНАЧЕНИХ ДЛЯ КОРИСТУВАЧА

ІНТЕРФЕЙСІВ



Програмне середовище

Delphi - це RAD, або Rapid Application Development - середовище швидкої розробки додатків. Інакше кажучи, Delphi включає в себе не тільки всі засоби для роботи з мовою Object Pascal (тим більше, що починаючи з версії, 2005 в Delphi є підтримка інших мов програмування, зокрема, C #), але і ряд додаткових коштів, покликаних максимально прискорити і спростити створення програм. До таких засобів належать, насамперед, візуальний редактор форм, за допомогою якого за лічені хвилини і без зайвих зусиль можна створити повноцінно виглядаючу програму, а так само інші складові частини візуальною складовою розробки програм.

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

Укупі з розвиненими засобами для написання і налагодження коду - спеціалізованим текстовим редактором, компілятором з оптимізацією і відладчиком, Delphi являє собою засіб швидкої розробки додатків. При цьому основою Delphi для кінцевого користувача є IDE - Integrated Development Environment (інтегрована середовище розробки), яка об’єднує в собі редактор коду та засоби візуальної розробки, а також пов’язує це з

компілятором, засобами розробки баз даних та іншими складовими частинами Delphi.

Компілятори Delphi і Builder виявляють собою особливе покоління програм. Виявляючи собою, цілу і достатню систему візуального проектування, ці програми володіють якнайкращим взаємозв’язком візуального проектування і написанням коду обробників. Маючи в своєму арсеналі багатий набір компонентів, Delphi використовується у всіх сферах прикладного програмування в світі. Використовуючи об'єктно-орієнтовану структуру модулів, допускає написання власних компонентів на основі базових, що ще більш розширює сферу застосування програм написаних на Delphi. Компілятор складається з декількох взаємозв’язаних вікон, кожне з яких виконує певні задачі. [1, 3]

 

 

Головне меню програми

 

 

Суть і задача головного меню – управління проектами їх файлами, формами, допоміжними вікнами. Команда «Run» для запуску проекту на виконання (з попередньою компіляцією) винесена у вигляді зеленого трикутника на панель часто використовуваних команд. На рис. 1.1 показаний зовнішній вигляд меню. 

 

Рис. 1.1 Головне меню.

 

У Delphi є відмітна від більшості компіляторів палітра компонентів, на якій зібрані в групи різні елементи для створення програм. Набори компонентів, рівно як і їх вміст може змінюватися. [6, 8]

     

 

Вікно пригляду об’єктів

Основа об’єктно-орієнтованого програмування – об’єкти і класи. У Delphi існує зручне вікно для поглядання дочірніх об’єктів розміщених на Form1. На рис 1.2. на формі 1 додані два компоненти Кнопка1 і МемоПоле1. Як видно на рисунку об'єкти зображені згідно ієрархії, така побудова спрощує пошук, до того ж, об'єкти сортуються по видах.

 

Рис. 1.2 Дерево об’єктів.

 

 За допомогою цього вікна можна знайти не «видимі» об'єкти. Наприклад, об'єкти розташовані один над іншим.  [9]

 

 

Інспектор об'єктів

Об’єкти в Delphi володіють рядом властивостей (Properties) і подій (Events). Властивості дозволяють настроювати зовнішній вигляд об’єктів їх зміст, і є набором змінних різних типів даних в класі TForm, що пере визначається (рис. 1.3). Інспектор об’єктів побудований таким чином, що залежно від властивості поряд з його назвою з’являється меню потрібного типу даних. Тобто якщо поле у нас називається Visible і містить тільки два можливі параметри Та чи ні, то інспектор об’єктів окрім цих двох виразів

 

Рис. 1.3 Властивості форми.

 

(True|False) не дозволить помилково ввести інші дані. Типи властивостей бувають дуже різноманітними від тексту, цілих чисел до підтипів мають складну структуру.

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

 

Рис. 1.4 Події в Delphi.

 

При подвійному натисненні на полі поряд з такою властивістю згенерує процедура наступного змісту:  

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

Ця процедура – обробник події, яка буде перевірена при створенні форми (Form1). І якщо між командами begin і end буде знайдений код, він запуститься на виконання. Варто помітити, що компілятор сам помістив процедуру:

procedure FormCreate(Sender: TObject);

до опису типу TForm1 в Unit1.pas. Саме завдяки тому, що рутинні операції Delphi реалізує сама, вона і користується такою популярністю. [13, 14]

 

Текст програми

 

Програма Delphi – проекту складається із списку модулів, що підключаються (за допомогою команди uses):

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};   // Підключити Unit1.pas (початковий код Модуля1)

{$R *.res}

Begin                                                    // Початок програми

Application.Initialize;                              

Application.CreateForm(TForm1, Form1); // Створити Форму1

Application.Run;                                          // Запуск додатку

end.                                                  // Кінець

[1, 2, 11]

 

 

Початковий код модуля

Початковий код в Delphi пишеться на мові Object Pascal, яка є продовженням відомої мови Pascal в світі об’єктного орієнтування. Розглянемо текст програмного модуля Unit1.pas який за умовчанням створюється при запуску Delphi:

unit Unit1;                // Назва модуля

uses                          // модулі, що Підключаються

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

type       // Тип – в цьому розділі створюється новий тип даних і перевизначається базовий клас

TForm1 = class(TForm) // Клас ТФорма1 – похідний від класу ТФорма

private                   // розділ для опису приватних змінних і функцій

{ Private declarations } // доступних тільки в цьому розділі

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

end.

Початковий код Модуля1 створений автоматично, так само додаватимуться і обробники подій в розділ private і public. Програміст при такому підході позбавлений від контролю за станом проекту, він займається створення функцій обробників подій відбуваються в програмі. Натиснення на кнопку – подія, закриття програми, - теж подія. [7, 12]

 

 

Форма модуля

Для реалізації призначеного для користувача інтерфейсу в Delphi передбачені форми (Form), конфігурація яких зберігається у вигляді файлу з назвою *.dfm. Розглянемо конфігурацію модуля Unit1.dfm, пропонованого за умовчанням у вигляді форми. На рис. 1.5 показаний зовнішній вигляд форми №1.

 

Рис. 1.5 Зовнішній вигляд форми в Delphi.

 

Розглянемо unit.dfm  в текстовому вигляді:

object Form1: TForm1

Left = 280                            // Відстань від лівого краю екрану

Top = 190                                 // Відстань від верхнього краю екрану

Width = 415                                       // Ширина форми

Height = 200                                      // Висота форми

Caption = 'Form1'                        // Заголовок форм

Color = clBtnFace                              // Колір форми

Font.Charset = DEFAULT_CHARSET // Шрифт за умовчанням

Font.Color = clWindowText         // Колір шрифту

Font.Height = -11                               // Висота шрифту

Font.Name = 'MS Sans Serif'             // Ім'я шрифту

Font.Style = []                          // Стиль шрифту

TextHeight = 13                        // Висота тексту

end

Як бачимо Форма1 - це об’єкт початкового класу ТФорма1, кожен створений на ній компонент буде представлений у вигляді об’єкту якогось певного класу. Файл з розширенням dfm нам редагувати не потрібно – компілятор сам пропише параметр Left, у випадку якщо змінитися положення форми щодо екрану монітора вліво або управо.

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

На рис.1.6 показаний розміщення компонент на формі №1.

 

Рис. 1.6 Розміщення компонент на формі.

 

Видимі компоненти реалізують інтерфейс з користувачем, невидимі потрібні для внутрішньої організації. Компоненти взаємодіють між собою за допомогою зв’язків. Простим прикладом може служити «Таблиця даних» - «Джерело даних» - «Поле для редагування». [8, 12]

 


2. ВИБІР АРХІТЕКТУРИ ПРОЕКТУ І РОЗРОБКА
КОМПОНЕНТНОГО СКЛАДУ



Розробка моделі проекту

 

Для реалізації проекту я використовуватиму Клієнт – Серверну архітектуру. Як сервер виступатиме комп’ютер інструктора автошколи. До нього підключатимуться комп’ютери студентів.

У задачі серверу входять:

- зберігання даних автошколи про учнів;

- зберігання і редагування тим і питань для навчання;

- роздача квитків під час іспиту;

- зберігання результатів здачі іспиту;

- друк супроводжуючих документів.

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

Оскільки сервер несе основне навантаження, вимоги до його устаткування і надійності будуть вищими, ніж у робочих станцій. Для підвищення надійності і розділення по виконуваних функціях програма складатиметься з двох модулів: модуля адміністрування (викладацький) і модуля для здачі іспиту. [4, 7]

Розробка моделі бази даних

 

При розробці програми для тестування учнів автошколи, я пропоную небагато розширити діапазон дослідження і охопити весь процес навчання в цілому. Задачі обліку і роботи з учнями неможливі без їх списку і організації по групах. Процес навчання динамічно змінним правилам, згідно чинному законодавству, також неможливий без актуального на сьогоднішній день електронного керівництва яке підтримується в актуальному вигляді. Бажано також мати можливість цей документ надавати при необхідності учням. [17, 24]

 

 

Створення таблиць даних

Що б створити таблицю в Microsoft Access. Потрібно натиснути кнопку «Створення таблиці в режимі конструктора». На рис. 2.7 зображений процес створення головної таблиці бази даних, таблиці учнів. 

 

Рис. 2.1 Створення таблиці «uchenik» бази даних.

 

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

Розділимо задачі, які нам потрібно охопити по таблицях:

­­­- зберігання даних автошколи про учнів:

а) облік персональних даних – таблиця «uchenik »;

б) облік платежів за навчання – таблиця «oplata »;

в) облік груп навчання – таблиця «gruppa »;

- зберігання і редагування тем і параграфів ПДР для вивчення:

а) облік тем - таблиця «tema »;

б) облік тем - таблиця «tema_paragraf »;

- зберігання і редагування бiлетiв, питань, правильних відповідей:

а) список квитків на екзамен- таблиця «bilet »;

б) перелік питань до кожного квитка - таблиця «bilet_vopros »;

в) варіанти відповіді до кожного питання - таблиця «bilet_otvet »;

- зберігання результатів здачі іспиту і виданих на іспит бiлетiв:

а) облік питань виданих на іспит і результатів здачі - таблиця «ekzamen »;

- запис студентів для навчання водіння:

а) облік майстрів для навчання - таблиця «master »;

б) облік розподілу і запису для навчання водінню - таблиця «zapis ».

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

 

 

Схема бази даних

 

Для наочнішого відображення таблиць великих баз даних в Access є «Схема даних». Це вікно, в якому встановлюються всі відносини між картярством СУРБД. Для відображення таблиць на схемі їх необхідно додати на полі. На рис. 2.2 показані операції доступні на схемі даних.

 

Рис. 2.2 Додавання таблиці на схему даних.

 

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

Після того, як всі таблиці створені і додані на схему, можна переходити до створення зв’язків між ними. [23]

 

 

2.3.3 Створення взаємозв’язків між таблицями

 

Задачі, які раніше доводилося вирішувати тільки програмними засобами, сучасні системи управління реляційними базами даних вирішують за допомогою внутрішніх тригерів і функцій. Microsoft Access надає засоби для підтримки цілісності бази даних, такі як каскадне оновлення і видалення зв’язаних записів. На рис. 2.3 показані параметри об’єднання таблиці даних ekzamen і spisok_biletov.

 

Рис. 2.3 Вікно зміни зв'язків в Microsoft Access.

 

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

Результат створення взаємозв’язків між таблицями можна спостерігати ще в Access. Для цього відкриємо таблицю із вже створеним зв’язком. Напроти кожного запису з’явився знак «+», натиснувши на який можна побачити підлеглі записи з іншої таблиці дивіться рис. 2.4

Рис 2.4.  Приклад відношення один до багатьох

 

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

 

Рис. 2.5 Схема бази даних автошколи.

Очевидно, що таблиця uchenik – головна таблиця проекту, до неї по зв’язку один до багатьох підключені – оплата за навчання, оскільки у одного студента може бути декілька оплат. За принципом багато хто до одного підключений групи, оскільки в одній групі може бути декілька студентів, зв’язок має зворотний напрям. [20]


3. РОЗРОБКА КОНСТРУКТОРА ТЕСТОВИХ ЗАВДАНЬ

 

 

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

 

 


Створення головного меню

На рис. 3.4 показано головне меню програми адміністрування. Для того, що б розділити задачі програми адміністрування автошколи, необхідно створити головне меню. На Форме1 розміщуємо набір кнопок,

подія кожної з яких запускатиме роботу з кожним напрямом конкретно. Основні напрями адміністрування – це:

- редагування учбових матеріалів за правилами дорожнього руху;

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

- робота по обліку учнів (платежі, документи і т. д.);

- графік викладачів водіння.

 

Рис 3.4. Головне меню програми адміністрування

 

Після додавання кнопок, потрібно додати нові форми в проект Delphi. Для цього в головному меню натискаємо Файл – Новий – Нова форма. Зберігаємо її. Друга форма в проекті створюється з властивістю – Видима = False, тому що б її побачити потрібно звернеться до цієї властивості форми і зробити його видимим:

Form2.Visible: = True;

Або скористатися іншим способом. Є так званий модальний режим, коли вікно з’являється поверх інших вікон і блокує роботу інших розділів програми. Це буває корисне, коли розділені дані знаходяться на різних формах, а необхідно зробити так, що б користувач не зміг втрутитися в роботу інших форм. Показати вікно модально можна так:

Form2.ShowModal;

[3, 8]

 

 

Редагування правил

 

 

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

Організовуємо зв’язок між таблицями за принципом один до багатьох. Головною буде таблиця глав, підлеглої таблиця параграфів. Як поле сортування параграфів організовуємо спеціальне поле nomer в таблиці tema_paragraf. Для зберігання великих об’ємів текстових даних використовуємо тип поля MEMO. Вельми специфічний тип даних, оскільки дозволяє зберігати текстову інформацію практично в необмеженому об’ємі.

Для управління процесом додавання, видалення, редагування даних додамо відповідні кнопки в тіло процедур яких, додамо відповідні команди:

Додавання нової теми:

Temy.Insert;

DBGrid1.SelectedField.FocusControl;

Де Temy – Query (запит).

 

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

If MessageDlg(‘Видалити запис? ’, mtConfirmation, [mbYes, mbNo], 0)=6 then

Temy.Delete;

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

 

Рис. 3.5 Зовнішній вигляд форми для редагування ПДР.

 

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

програми Word і Excel. Перша призначена для друку текстових документів, друга потрібна для роботи з таблицями даних. Delphi володіє технологією OLE, яка дозволяє підключатися до цих програм, вивантажувати в них дані і віддавати команди.

Розглянемо як виглядає експорт даних та виведемо у Word зміст правил:

VAR Word: Variant; // Змінна типу варіант

i, j: integer;

begin

   try // Конструкція Try … Except для коментування виключень

   Word: = CreateOleObject(‘Word.Application’);

   Except

   Raise Exception. Create (‘Не можу запустити Word’);

   End;

try

Word.Documents.Add; // Додати новий документ у Word

Word.Selection.Font.Bold: = True; // Встановити жирний шрифт  

Word.Selection.Font.Size: = 16; // встановити 16 кегль

Word.Selection.TypeText(‘Правила дорожнього руху’+#10+#10);

for i: =1 to temy.RecordCount do

begin

  Word.Selection.Font.Bold: = True; // Встановити жирний шрифт

  Word.Selection.Font.Size: = 13; // встановити 13 кегль

  Word.Selection.TypeText(temytema_name.AsString);

  Word.Selection.TypeText(#10+#10);

for j: =1 to paragraf.RecordCount do

begin

  Word.Selection.Font.Bold: = false; // Встановити жирний шрифт

  Word.Selection.Font.Size: = 12; // встановити 12 кегль

  Word.Selection.TypeText(paragraftext.AsString);

  Word.Selection.TypeText(#10+#10);

paragraf.Next

end;

temy.Next;

end;

Word.Visible: = True; // Показати програму Word

finally

Word: =UnAssigned;

end;

 

Результат роботи програми можна побачити на рис. 3.6.

 

Рис 3.6. Експорт даних в Microsoft Word. [7, 9]

Редагування білетів

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

На формі розташуємо три запити, з яких поступають дані. Провідна таблиця «billet » забезпечує перелік квитків для іспиту в такому порядку Бiлет1, Бiлет2, … БiлетN, друга, підлегла цій таблиці таблиця «vopros » містить набір питань, що містяться в квитку. Перелік відповідей на кожне питання міститься в таблиці «otvet ». Виходить послідовність з трьох підлеглих по порядку один одному таблиць (рис 2.5.).

Для того, щоб організувати взаємозв’язок двох таблиць необхідно в джерелі даних вказати в DataSource ім’я таблиці, з якої як з ведучої ми зможемо одержати дані. Ці дані можна вказати в запиті через символ «: ».

SELECT id_voprosa, id_bileta, nomer, vopros, image

FROM bilet_vopros

WHERE id_bileta =: id_bileta

ORDER BY nomer;

Id_bileta – це поле по якому організований взаємозв’язок між таблицями bilet і vopros. Це ключове поле в таблиці bilet, і поле цілочисельного типу в таблиці vopros. Таким чином, організований взаємозв’язок один до багатьох. У таблиці bilet з кодом 12 один запис, а в таблиці vopros їх може бути до 20 (по кількості питань).

Перерахуємо всі компоненти розташовані на формі для редагування екзаменаційних квитків:

- ADOQuery – Запит;

- DataSource – Джерело даних;

- DBGrid – Таблиця представлення даних;

- GroupBox – Контейнер для угрупування компонентів;

- DBControlGrid – Контейнер таблиці даних;

- Image – Контейнер для рисунка завдання;

- BitBtn – Кнопка із зображенням;

- Button – Кнопка;

- DBMemo – контейнер для МЕМО-поля;

- Label – Текстова мітка;

- OpenPictureDialog – діалог відкриття файлу.

На рис. 3.7 показани компоненти форми для редагування екзаменаційних білетів. Екзаменаційні питання, як і відповіді до них – великі об'єми текстової інформації. Для зберігання великих текстових масивів мені знадобляться Memo поля. Їх вміст можна побачити за допомогою одного компоненту, він називається DBMemo. Для редагування одного питання його підключаємо до поля vopros запиту Query через DataSource. Результат – він відображає текстовий вміст одного запису. Але як бути якщо мені потрібно відобразити текстові контейнера у вигляді таблиці?

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

 

Рис. 3.7 Компоненти форми для редагування екзаменаційних білетів.

 

Наприклад, на рис. 3.8 легко бачити, що один запис таблиці міститиме як DBMemo компонент, так і компонент DBCheckBox.  

 

Рис. 3.8 Редагування поля даних.

 

Таким чином, в одному рядку можна розташувати і інші компоненти, такі як DBEdit і інші. [15]

 

 

Додавання зображень

Окремо розглянемо додавання зображень. Серед наборів компонентів Delphi є компонент Image. Його як контейнер використовуватимемо для зберігання графічних даних. На рис. 3.9 показано вікно додавання зображень. Для роботи із зображеннями додамо наступні кнопки: Додати зображення, Видалити зображення.

Для зручності пропоную використовувати найпоширеніший формат файлів – JPG. Цей формат зручний з ряду причин: файл часто хорошої якості і добре стислий, він підтримується всіма WEB – браузерами.

Розмір файлів повинен бути обмежений і не перевищувати 600х200 пікселів. [4]

 

Рис 3.9. Вікно додавання зображень

 

Список учнів

Список учнів автошколи складається з двох частин. Перша частина – це «групи», друга – «учні». Оскільки провідна таблиця у нас – групи, в їх складі вчаться студенти, то одного запису в таблиці група відповідатимуть декілька записів про учнів в цій групі. Для редагування груп нам потрібні стандартні операції роботи з даними. Перерахуємо їх:

- додавання;

- видалення;

- редагування;

- збереження;

- відміна редагування.

На рис. 3.10 показаний зовнішній вигляд лівої сторони форми для редагування учнів. Сортування здійснюється у зворотному напрямі по стовпцю «рік початку навчання». Зроблено це для того, щоб групи поточного року навчання постійно знаходилися попереду і не було необхідності постійно прокручувати список в кінець. Реалізується це за допомогою запиту з приставкою DESC (descending) по спаданню:

SELECT id_gruppa, god_nachala_obucheniya, name_gruppy, fio_prepodavatelya

FROM gruppa

ORDER BY god_nachala_obucheniya desc;

 

 

Рис. 3.10 Редагування груп студентів.

 

Тепер додамо нову групу. Після натиснення кнопки з’явиться новий рядок, зліва від якої є символ «*». На рис. 3.11 показан перехід в режим редагування.

 

Рис 3.11. Перехід в режим редагування

 

Зараз можна переходити до редагування текстових даних. Деякі кнопки відключені не випадково. Існує два стани: редагування даних і режим перегляду даних. У різних режимах недопустимі певні операції. Так при редагуванні не можна додавати новий запис, тому що це приведе до збереження редагованого запису; видаляти при редагуванні теж не варто, - це викличе помилку. 

Права частина форми призначена для редагування студентів.
На рис. 3.12 показаний список учнів однієї групи 206-т:

 

Рис. 3.12 Список студентів

 

Ми спеціально залишили два перші стовпчики для наочного відображення взаємозв’язку таблиць груп і учнів. Код учня – це код конкретного учня, а id_gruppa – це код групи 206-т (у нашому випадку він рівний 3). [18]

 

 


Графік викладачів водіння

Даний розділ необхідний для організації графіка навчання водінню майстрами виробничого навчання. Що б зробити графік зручним додамо на форму стандартний компонент – MonthCalendar. Він дозволить в зручному вигляді працювати з календарем на місяць (рис. 3.13).        

 

Рис. 3.13 Графік роботи майстрів.

 

Крім MonthCalendar, на форму встановимо компонент DateTimePicker – зовні схожий на полі для редагування Edit, але зі встановленим фільтром значень у вигляді дат. Саме він буде джерелом для запиту, який вибиратиме, хто з учнів і на який час записаний на водіння. Таблиця zapis містить стовпець з id_mastera – кодом майстра, дату і 8 стовпців цілочисельних значень, кожне з яких – id_uchenika. Така модель небагато порушує загальні поняття нормалізації таблиць, але в нашому випадку зручність в роботі і

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

випадок запису учня на водіння, а новий робочий день з учнями для навчання.

Що б додати нового учня на водіння, необхідно: вказати дату на календарі; потім вибрати майстра, до якого бажає записатися учень; визначитися з часом, на яке може підійти учень і вибрати ФІО студента із списку.

Розглянемо детальніше запит на отримання даних про запис студентів

SELECT * FROM zapis

where id_mastera=: id_mastera and data=: datas

Як видно з тексту запиту, щоб вибрати один запис, нам потрібні дві змінні: код майстра і дата, на яку вироблявся запис.

Для отримання даних ці змінні необхідно підставити в запит з різних джерел. Ці джерела – таблиця майстрів, в якій перераховані всі майстри і покажчик дати DateTimePicker1:

Zapis.Close;                                 // Закрити запит

zapis.Parameters[0].Value: =masterid_mastera.AsInteger; // привласнити

                                          // першому параметру код майстра

zapis.Parameters[1].Value: = // другому параметру привласнити
(DateTimePicker1.DateTime);               // день для навчання   

zapis.Open;                                  // виконати запит

На рис. 3.16 показана діаграма даних і зв’язку між параметричними запитами. [8, 18]

 

Рис. 3.16 Відображення форми у вигляді діаграми.

 


Варто відзначити, що в Delphi є дві вкладки при роботі з формою: Code і Diagram. Code – відображення початкового коду, Diagram – схематичне зображення моделі даних, розташованих на формі у вигляді запитів і таблиць. При перенесенні таблиць з дерева об’єктів на діаграму будівник сам указує, які зв’язки між ними існують.

Підготовка звітних форм

Перед нами стоїть завдання експорту даних у форматі MS Word або MS Excel, то з чого треба почати? Текстовий процесор MS Word і табличний процесор MS Excel, що входять до складу MS Office, є СОМ-об’єктами. Це означає, що будь-яка програма, написана для сучасних версій Windows, може управляти цими об’єктами, якщо вона підтримує інтерфейс СОМ. Тонкощі механізму роботи цього чудового інтерфейсу описані в спеціальній літературі, а ми займемося об’єктами Word, Excel і документами, з якими

вони працюють, оскільки вони також є об’єктами.
Відповідь на питання «з чого почати? » напрошується сам собою – почати потрібно з розгляду структури моделей об’єктів MS Office, взаємозв’язків їх складових частин, особливостей вбудованої мови програмування, підійти до розгляду загальних принципів автоматизації MS Office і розібратися, як цим можна управляти з програм, написаних у середовищі Delphi.
MS Word має деревоподібну структуру, на вершині якої знаходиться об’єкт Application. Колекції (Collection), що входять до складу об’єктної моделі, є списками однотипних об’єктів, доступ до яких здійснюється за індексом. Окремі об’єкти можуть містити колекції, у свою чергу елементи колекції є звичайними об’єктами. Доступ до будь-якого об’єкта або елементу колекції можливий тільки через кореневий об’єкт Application.

Що б створити підключення необхідне підключити бібліотеку ComObj, Wodr97 і Excel97, оголосити змінну варіантного типу, і пов’язати її з Excel або Word командою CreateOleObject:

VAR XL: Variant;       

BEGIN

   try

   XL: = CreateOleObject(‘Excel. Application’);

   Except

   Raise Exception. Create (‘Не можу запустити Excel’);

   End;

Дані в Excel вивантажуються за допомогою звернення до конкретного осередку:

XL.Cells[x, y].Value: =s;

Змінна для вивантаження повинна мати текстовий формат, оскільки завантажуємо ми її в осередок Excel. Практично всі команди можна передавати в Excel у тому числі і команди настройки сторінки (висота,

ширина, поля, колонтитули, формули) завдяки такій могутній взаємодії Object Pascal і Visual Basic необхідність в інших компонентних засобах висновку відсутня.

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

 

Рис. 3.17 Графік роботи майстра водіння.

 

Запит необхідний для вибору всього графіка виглядає таким чином: вибрати всі записи з таблиці записів по конкретному майстру, де дата менше кінця місяця і більше початку, сортування по полю data. На рис. 3.18 представлений підсумок вибірки даних по такому запиту. Залишилося в циклі від 1 до 8 вибрати учнів за їх кодами.

 

Рис. 3.18 Результат запиту.

 

Але як набути значення із стовпців запиту в циклі? Я не дарма назви стовпців зробив відмінними тільки номером. Є в Delphi чудова функція FindComponent. Оскільки всі стовпці, по яких нам потрібно пройти в базі даних мають назви otchetstudent1… otchetstudent8, а компоненти які ми шукаємо, одного і того ж класу – TintegerField, значення кожного стовпця можна набути таким чином:

TintegerField(FindComponent(‘otchetstudent’+IntToStr(i))).Value;

Варто відзначити той факт, що формат дати при виконанні текстових запитів в різних базах даних формат дати може відрізнятися наприклад:

Postgres: 2011-12-31 (YYYY-MM-DD)

Access: 12/31/2011 (MM/DD/YYYY)

Тому при підготовці текстових запитів необхідно користуватися функціями перетворення (DateToStr(), StrToDate()) і копіювання сopy()).[12]

 


4. РОЗРОБКА ПРОГРАМИ ТЕСТУВАННЯ

 

 

Для організації тестування необхідно розібратися з наступними механізмами:

- облік часу (для тестування відводиться 20 хв. часу);

- випадковий вибір білетів;

- облік питань/відповідей учня;

- підрахунок результатів тестування.

 

 




Облік часу

Для організації обліку часу, скористаємося стандартним компонентом Timer(лічильник). Він спрацьовує через певні інтервали часу. Властивість «інтервал» встановлює через, скільки мілі секунд він спрацює. Значення Interval = 1000 означає, що він спрацює через 1 секунду.

Тепер необхідно додати дві змінні, в яких зберігатимуться хвилини і секунди, що залишилися до кінця тестування:

public

{ Public declarations }

min, sec: integer;

Для правильного відображення секунд і годинника у вигляді 01, 02…20 пишемо не складну функцію перетворення:

function OdinToDva(x: integer): string;

begin

 if Length(IntToStr(x))=1 then

OdinToDva: =’0’+IntToStr(x)

 else

OdinToDva: =IntToStr(x)

end;

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

procedure TForm1.Timer1Timer(Sender: Tobject);

var i, prav_otvetov: integer; // Опис локальних змінних

begin

// Виводимо час у вигляді: 00: 00 за допомогою Label

vremya.Caption: =OdinToDva(min)+’: ’+OdinToDva(sec);

 

if sec=0 then // Якщо закінчилася 1 хвилина

Begin

If (min=0) then // Якщо час вийшов – стоп іспит!

   Begin

    Timer1.Enabled: =false; // Відключаємо таймер

           prav_otvetov: =0; // Зануляєм кількість правильних відповідей

           for i: =1 to 20 do

                              // Проходимося по масиву правильних відповідей

                       // якщо відповідь не правильна кнопку з номером

                       // позначаємо жирним шрифтом. Це потрібно

                       // для того, щоб після здачі іспиту можна

                                 // було подивитися неправильні відповіді і

                                     // зробити для себе висновки.

           Begin            

              Tbutton(FindComponent(‘Button’+IntToStr(i))).Enabled: =True;

           if pravilniy_otvet[i]=true then

             begin

             prav_otvetov: =prav_otvetov+1;

             Tbutton(FindComponent(‘Button’+IntToStr(i))).Font.Style: =[];

             end

           else 

   Tbutton(FindComponent(‘Button’+IntToStr(i))).Font.Style: = [fsBold];

           end;

  Tbutton(FindComponent(‘Button’+IntToStr(i))).Enabled: =True;

  Application.MessageBox(‘Тестування завершене! ’, ’Вышло час.’, 0);

  Application.MessageBox(Pchar(‘Правильних    

   відповідей: ’+IntToStr(prav_otvetov)), ’’, 0);

           Button21.Enabled: =false; // Відключаємо кнопки «Відповісти»

           Button22.Enabled: =false; // і «Пропустити»

            Abort; // Коли закінчується час я завершую тестування

               // і перериваю роботу процедури 

   end;         

   sec: =60; // Міняємо 1 хвилину на 60 секунд.

   Min: =min-1; // Зменшуємо час на 1 хвилину

end;

sec: =sec-1; // Зменшуємо на 1 секунду кожного разу при спрацьовуванні

              // таймера

end;

Якщо зобразити у вигляді алгоритму сам процес зворотного відліку вийде наступний алгоритм, представлений на рис. 4.1. На ньому добре видно, що кожного разу при спрацьовуванні таймера йде зменшення на 1 кількості секунд в глобальній змінній sec. Якщо секунди рівні 0, а це може бути тільки в двох випадках: закінчилася хвилина або закінчилося загальний час. Щоб визначити закінчення загального часу потрібно перевірити змінну min, якщо вона рівна 0 значить, пора підраховувати результат.

Для підрахунку результатів мені потрібен масив pravilniy_otvet[i] в якому зберігаються варіанти відповідей на кожне з 20 питань. [7, 16]

 

Рис 4.1 Алгоритм зворотного відліку.

 

 

Випадковий вибір білетів

За випадковий вибір значень в Delphi відповідає функція random. Вона генерує значення від 0 до 1. Необхідно пам’ятати, що запуск генерації випадкового значення відбувається після виконання команди Randomize.

Max_bilet.close; // Підраховуємо кількість білетів

 max_bilet.Open; // Віконаті запитий

 

 Randomize; // Активізуємо генерацію випадкового значення

 bilet_nomer: =StrToInt(floatToStr(random(max_biletmaxx.Value+1)));

           // № білета отримуємо з базі даних

 

bilety.Open; // Відкриваємо запит білетів

 for i: =1 to bilet_nomer do // Переводиться до потрібного квитку зсувом

 bilety.Next; // щоб не обирати номері видалених білетів

 Label1.Caption: =’Бiлет №’+IntToStr(biletyname.AsInteger);

                 // Номер білету отримуємо з поля name базі даних

 Timer1.Enabled: =true; // Увімкнути зворотній відлік

[8, 25]

 

 

Облік процесу здачі іспиту

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

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

public

{ Public declarations }

min, sec: integer; // Змінні для обліку часу

bilet_nomer: integer; // Номер випадкового білета

activniy_vopros: integer; // Питання на який відповідаємо

pravilniy_otvet: array[1..20] of Boolean; // масив для результатів відповідей

nomer_otveta: array[1..20] of integer; // № відповіді на питання

end;

Як бачимо для всього необхідне правильне зберігання. Задача показу студенту після здачі іспиту питання, на який він відповів розв’язується за допомогою масиву nomer_otveta[1..20] де зберігається номер відповіді, який вибрав учень. [8]

 

 

Безпека проекту

 

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

- Немає Інтернет – серверів яких не можна зламати. У будь-якому навіть найзахищенішому web-сервері багато вразливих місць. Постійно знаходяться нові.

- Програмний код може містити не захищені частини.

- Викладати в Інтернет секретну інформацію, або інформацію обмеженого доступу – небезпечно.

Тому для автоматизації внутрішніх процесів на підприємстві добре підходять проекти, реалізовані на Delphi. [8, 26]

 

 

Варіанти розвитку проектів

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

демонстрації правил роботи з даними. Тепер розберемо що потрібне для його реалізації в локальній і глобальній мережі.

Основним обмеженням для розміщення проекту в ЛВС є розташування бази малюнків. Що б всі програми мали до них доступ їх як і базу даних Access необхідно розмістити на сервері. Іншим цікавим рішенням може бути зберігання бази малюнків прямо в базі даних у вигляді бінарних послідовностей. У такому вигляді можна зберігати будь-які дані і файли.

Для того, щоб проект став повноцінним web-проектом в Інтернеті можна розташувати сервер з даними. А додаткам для тестування і адміністрування дати адресу для зв’язку у вигляді IP – адреси видаленого серверу (наприклад: 265.15.25.205). Наступним етапом глобалізації може стати програма на web-сервері, яка захистить сервер з даними від загального доступу. [7, 10]

 

 

РЕФЕРАТ

 

 

Кваліфікаційна робота: 88 сторінок, 2 таблиці, 31 рисунок, 2 додатка, 27 джерел. Розроблений програмний продукт 105 файлів загальним обсягом 3385 КБ, застосоване програмне забезпечення 9922  файлів загальним обсягом 10140 КБ.

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

Методи дослідження – вивчення джерел, спостереження, опис, порівняння. Методом розробки обрано локальну технологію, для зберігання даних проекту обрано базу Microsoft Access, мова програмування Object Pascal, середа розробки Delphi. Отримані результати: запропоновано прототип системи перевірки знань учнів автошколи.

При виконанні роботи застосовані програми Delphi, бази даних Microsoft Access, MS Office, Piant.

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

ІНФОРМАЦІЙНА СИСТЕМА, МОВА ПРОГРАМУВАННЯ, БАЗА ДАНИХ, INTERNET, ІНТЕРФЕЙС, ПЕРЕВІРКА ЗНАНЬ, УПРАВЛІННЯ НАВЧАЛЬНИМ ПРОЦЕСОМ, DELPHI, OLE – ТЕХНОЛОГІЯ, ЗВІТ

 

ЗМІСТ

 

 

ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ 9
ВСТУП 10
1.ВИВЧЕННЯ ФУНКЦІОНАЛУ СИСТЕМИ BORLAND DELPHI І 12 ПРИНЦИПІВ СТВОРЕННЯ ПРИЗНАЧЕНИХ ДЛЯ КОРИСТУВАЧА                                                                            12 ІНТЕРФЕЙСІВ                                                                                                                                                                                    11    
1.1. Програмна середовище 11
1.2. Головне меню програми 12
1.3. Вікно пригляду об’єктів 13
1.4. Інспектор об’єктів 13
1.5. Текст програми 16
1.6. Початковий код модуля 16
1.7. Форма модуля 17
2. ВИБІР АРХІТЕКТУРИ ПРОЕКТУ І РОЗРОБКА КОМПОНЕНТНОГО СКЛАДУ 20
2.1. Розробка моделі проекту 20
2.2. Розробка моделі бази даних 20
2.3. Ескіз бази даних в Microsoft Access 21
2.3.1 Створення таблиць даних 21
2.3.2  Схема бази даних 23
2.3.3 Створення взаємозв’язків між таблицями 24
3. РОЗРОБКА КОНСТРУКТОРА ТЕСТОВИХ ЗАВДАНЬ 27
3.1. Підключення до бази даних Access з Delphi 27
3.2. Створення головного меню 29
3.3. Редагування правил 30
3.4. Редагування квитків 34
3.5. Додавання зображень 37
3.6. Список учнів 38
3.7. Графік викладачів водіння 40
3.8. Підготовка звітних форм 43
4. РОЗРОБКА ПРОГРАМИ ТЕСТУВАННЯ 46
4.1. Облік часу 46
4.2. Випадковий вибір квитків 49
4.3. Облік процесу здачі іспиту 50
4.4. Підрахунок результатів тестування 51
4.5. Розташування компонент на формі тестування 51
4.6. Авторизація студентів під час тестуваня 53
5. ПОДАЛЬШИЙ РОЗВИТОК ПРОЕКТУ 54
5.1. Безпека проекту 54
5.2. Варіанти розвитку проектів 54
5.3. Експорт проекту на WEB – Server 55
ВИСНОВКИ 57
ПЕРЕЛІК ПОСИЛАНЬ 58
ДОДАТОК А. КОД ПРОГРАМИ АДМІНІСТРУВАННЯ 60
ДОДАТОК Б. МОДУЛЬ ТЕСТУВАННЯ 80
   
   

 


ПЕРЕЛІК УМОВНИХ ПОЗНАЧЕНЬ

 

 

БД База даних
ІС Інформаційна система
КПІТ Кафедра програмування та інформаційних технологі
СУБД Система управління базами даних
СУРБД Система управління реляційними базами даних
ТД Таблиця даних
IDE Integrated Development Environment
RAD Rapid Application Development
UML Unified Modeling Language
   

 


ВСТУП

 

 

Тематика роботи є актуальною, вона відповідає напрямкам, визначеним у Державній програмі інформатизації України на 2006–2010 роки, пріоритетним напрямам розвитку науки і техніки, визначеним Міністерством освіти і науки України, технічному завданню на виконання кафедрою ПІТ ЕІДМУ «КПУ» науково-дослідного проекту за темою «Створення програмних засобів і технологій забезпечення комп’ютерного інформаційного середовища».

Мета дослідження: розробка прототипу системи перевірки результатів навчання в автошколі.

Методи дослідження: вивчення джерел, спостереження, опис, порівняння.

Практичне значення роботи: результат (системи перевірки результатів навчання в автошколі) може бути використаним для створення реальної системи тестування працюючої автошколи.

Апробація результатів кваліфікаційної роботи: результати роботи у вигляді тез подані на XVІІ Міжнародну наукову конференцію молодих науковців «Наука і вища освіта» Класичного приватного університету» (квітень 2011 р.).

 

 

1. ВИВЧЕННЯ ФУНКЦІОНАЛУ СИСТЕМИ BORLAND DELPHI І

ПРИНЦИПІВ СТВОРЕННЯ ПРИЗНАЧЕНИХ ДЛЯ КОРИСТУВАЧА

ІНТЕРФЕЙСІВ



Програмне середовище

Delphi - це RAD, або Rapid Application Development - середовище швидкої розробки додатків. Інакше кажучи, Delphi включає в себе не тільки всі засоби для роботи з мовою Object Pascal (тим більше, що починаючи з версії, 2005 в Delphi є підтримка інших мов програмування, зокрема, C #), але і ряд додаткових коштів, покликаних максимально прискорити і спростити створення програм. До таких засобів належать, насамперед, візуальний редактор форм, за допомогою якого за лічені хвилини і без зайвих зусиль можна створити повноцінно виглядаючу програму, а так само інші складові частини візуальною складовою розробки програм.

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

Укупі з розвиненими засобами для написання і налагодження коду - спеціалізованим текстовим редактором, компілятором з оптимізацією і відладчиком, Delphi являє собою засіб швидкої розробки додатків. При цьому основою Delphi для кінцевого користувача є IDE - Integrated Development Environment (інтегрована середовище розробки), яка об’єднує в собі редактор коду та засоби візуальної розробки, а також пов’язує це з

компілятором, засобами розробки баз даних та іншими складовими частинами Delphi.

Компілятори Delphi і Builder виявляють собою особливе покоління програм. Виявляючи собою, цілу і достатню систему візуального проектування, ці програми володіють якнайкращим взаємозв’язком візуального проектування і написанням коду обробників. Маючи в своєму арсеналі багатий набір компонентів, Delphi використовується у всіх сферах прикладного програмування в світі. Використовуючи об'єктно-орієнтовану структуру модулів, допускає написання власних компонентів на основі базових, що ще більш розширює сферу застосування програм написаних на Delphi. Компілятор складається з декількох взаємозв’язаних вікон, кожне з яких виконує певні задачі. [1, 3]

 

 

Головне меню програми

 

 

Суть і задача головного меню – управління проектами їх файлами, формами, допоміжними вікнами. Команда «Run» для запуску проекту на виконання (з попередньою компіляцією) винесена у вигляді зеленого трикутника на панель часто використовуваних команд. На рис. 1.1 показаний зовнішній вигляд меню. 

 

Рис. 1.1 Головне меню.

 

У Delphi є відмітна від більшості компіляторів палітра компонентів, на якій зібрані в групи різні елементи для створення програм. Набори компонентів, рівно як і їх вміст може змінюватися. [6, 8]

     

 

Вікно пригляду об’єктів

Основа об’єктно-орієнтованого програмування – об’єкти і класи. У Delphi існує зручне вікно для поглядання дочірніх об’єктів розміщених на Form1. На рис 1.2. на формі 1 додані два компоненти Кнопка1 і МемоПоле1. Як видно на рисунку об'єкти зображені згідно ієрархії, така побудова спрощує пошук, до того ж, об'єкти сортуються по видах.

 

Рис. 1.2 Дерево об’єктів.

 

 За допомогою цього вікна можна знайти не «видимі» об'єкти. Наприклад, об'єкти розташовані один над іншим.  [9]

 

 

Інспектор об'єктів

Об’єкти в Delphi володіють рядом властивостей (Properties) і подій (Events). Властивості дозволяють настроювати зовнішній вигляд об’єктів їх зміст, і є набором змінних різних типів даних в класі TForm, що пере визначається (рис. 1.3). Інспектор об’єктів побудований таким чином, що залежно від властивості поряд з його назвою з’являється меню потрібного типу даних. Тобто якщо поле у нас називається Visible і містить тільки два можливі параметри Та чи ні, то інспектор об’єктів окрім цих двох виразів

 

Рис. 1.3 Властивості форми.

 

(True|False) не дозволить помилково ввести інші дані. Типи властивостей бувають дуже різноманітними від тексту, цілих чисел до підтипів мають складну структуру.

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

 

Рис. 1.4 Події в Delphi.

 

При подвійному натисненні на полі поряд з такою властивістю згенерує процедура наступного змісту:  

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

Ця процедура – обробник події, яка буде перевірена при створенні форми (Form1). І якщо між командами begin і end буде знайдений код, він запуститься на виконання. Варто помітити, що компілятор сам помістив процедуру:

procedure FormCreate(Sender: TObject);

до опису типу TForm1 в Unit1.pas. Саме завдяки тому, що рутинні операції Delphi реалізує сама, вона і користується такою популярністю. [13, 14]

 

Текст програми

 

Програма Delphi – проекту складається із списку модулів, що підключаються (за допомогою команди uses):

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1};   // Підключити Unit1.pas (початковий код Модуля1)

{$R *.res}

Begin                                                    // Початок програми

Application.Initialize;                              

Application.CreateForm(TForm1, Form1); // Створити Форму1

Application.Run;                                          // Запуск додатку

end.                                                  // Кінець

[1, 2, 11]

 

 

Початковий код модуля

Початковий код в Delphi пишеться на мові Object Pascal, яка є продовженням відомої мови Pascal в світі об’єктного орієнтування. Розглянемо текст програмного модуля Unit1.pas який за умовчанням створюється при запуску Delphi:

unit Unit1;                // Назва модуля

uses                          // модулі, що Підключаються

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs;

type       // Тип – в цьому розділі створюється новий тип даних і перевизначається базовий клас

TForm1 = class(TForm) // Клас ТФорма1 – похідний від класу ТФорма

private                   // розділ для опису приватних змінних і функцій

{ Private declarations } // доступних тільки в цьому розділі

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

end.

Початковий код Модуля1 створений автоматично, так само додаватимуться і обробники подій в розділ private і public. Програміст при такому підході позбавлений від контролю за станом проекту, він займається створення функцій обробників подій відбуваються в програмі. Натиснення на кнопку – подія, закриття програми, - теж подія. [7, 12]

 

 

Форма модуля

Для реалізації призначеного для користувача інтерфейсу в Delphi передбачені форми (Form), конфігурація яких зберігається у вигляді файлу з назвою *.dfm. Розглянемо конфігурацію модуля Unit1.dfm, пропонованого за умовчанням у вигляді форми. На рис. 1.5 показаний зовнішній вигляд форми №1.

 

Рис. 1.5 Зовнішній вигляд форми в Delphi.

 

Розглянемо unit.dfm  в текстовому вигляді:

object Form1: TForm1

Left = 280                            // Відстань від лівого краю екрану

Top = 190                                 // Відстань від верхнього краю екрану

Width = 415                                       // Ширина форми

Height = 200                                      // Висота форми

Caption = 'Form1'                        // Заголовок форм

Color = clBtnFace                              // Колір форми

Font.Charset = DEFAULT_CHARSET // Шрифт за умовчанням

Font.Color = clWindowText         // Колір шрифту

Font.Height = -11                               // Висота шрифту

Font.Name = 'MS Sans Serif'             // Ім'я шрифту

Font.Style = []                          // Стиль шрифту

TextHeight = 13                        // Висота тексту

end

Як бачимо Форма1 - це об’єкт початкового класу ТФорма1, кожен створений на ній компонент буде представлений у вигляді об’єкту якогось певного класу. Файл з розширенням dfm нам редагувати не потрібно – компілятор сам пропише параметр Left, у випадку якщо змінитися положення форми щодо екрану монітора вліво або управо.

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

На рис.1.6 показаний розміщення компонент на формі №1.

 

Рис. 1.6 Розміщення компонент на формі.

 

Видимі компоненти реалізують інтерфейс з користувачем, невидимі потрібні для внутрішньої організації. Компоненти взаємодіють між собою за допомогою зв’язків. Простим прикладом може служити «Таблиця даних» - «Джерело даних» - «Поле для редагування». [8, 12]

 


2. ВИБІР АРХІТЕКТУРИ ПРОЕКТУ І РОЗРОБКА
КОМПОНЕНТНОГО СКЛАДУ



Розробка моделі проекту

 

Для реалізації проекту я використовуватиму Клієнт – Серверну архітектуру. Як сервер виступатиме комп’ютер інструктора автошколи. До нього підключатимуться комп’ютери студентів.

У задачі серверу входять:

- зберігання даних автошколи про учнів;

- зберігання і редагування тим і питань для навчання;

- роздача квитків під час іспиту;

- зберігання результатів здачі іспиту;

- друк супроводжуючих документів.

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

Оскільки сервер несе основне навантаження, вимоги до його устаткування і надійності будуть вищими, ніж у робочих станцій. Для підвищення надійності і розділення по виконуваних функціях програма складатиметься з двох модулів: модуля адміністрування (викладацький) і модуля для здачі іспиту. [4, 7]

Розробка моделі бази даних

 

При розробці програми для тестування учнів автошколи, я пропоную небагато розширити діапазон дослідження і охопити весь процес навчання в цілому. Задачі обліку і роботи з учнями неможливі без їх списку і організації по групах. Процес навчання динамічно змінним правилам, згідно чинному законодавству, також неможливий без актуального на сьогоднішній день електронного керівництва яке підтримується в актуальному вигляді. Бажано також мати можливість цей документ надавати при необхідності учням. [17, 24]

 

 


Поделиться:



Последнее изменение этой страницы: 2019-04-09; Просмотров: 250; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.656 с.)
Главная | Случайная страница | Обратная связь