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

Розробка програми для створення телефонного довідника

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

Після дослідження предметної області, постановки завдання і побудови об'єктної моделі можна приступити до реалізації програми на мові програмування. Нашу програму ми будемо реалізовувати в середовищі Borland Delphi 7. Borland Delphi 7 — інтегроване середовище розробки програмного забезпечення, яке працює під операційною системою Microsoft Windows. Це середовище є простим у використанні і має… Читати ще >

Розробка програми для створення телефонного довідника (реферат, курсова, диплом, контрольна)

Реферат Об'єктом дослідження є типові оператори та базові конструкції мови програмування Object Pascal.

Мета роботи — отримати навички коректного використання операторів та конструкцій та побудова ефективних алгоритмів для розв’язку типових задач.

Методика (метод дослідження): комп’ютерна реалізація та комп’ютерне тестування.

Одержані висновки та їх новизна: розроблені алгоритми та складені програми для створення бази даних телефонних номерів.

Результати досліджень можуть бути застосовані при розробці алгоритмів та програм складних задач; створенні великих баз даних.

Перелік ключових слів: АЛГОРИТМ, ПРОГРАМА, КЛАС, ОБ’КТ, ДАНІ, ЗМІННА, СТРУКТУРА, ІНСТРУКЦІЯ, ФУНКЦІЯ, ПРОЦЕДУРА.

Зміст

  • Вступ
  • 1. Опис предметної області
  • 2. Постановка завдання
  • 3. Об'єктно-орієнтоване програмування
    • 3.1 Основи ООП
    • 3.2 Створення класів. Методи, властивості, поля
  • 4. Побудова об'єктної моделі
    • 4.1 Визначення об'єктів і класів
    • 4.2 Визначення залежностей (зв'язків) між класами
    • 4.3 Побудова діаграми ієрархії класів
  • 5. Реалізація програми в середовищі Borland Delphi
    • 5.1 Інтерфейс програми
  • 5.2 Демонстрація можливостей програми. Тестовий приклад
  • Висновок
  • Список використаної літератури
  • Додаток А. Лістинг Unit 1
  • Додаток Б. Лістинг Unit 2
  • Додаток В. Лістинг Unit 3
  • Додаток Г. Лістинг Unit 4

Вступ

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

Курсова робота з об'єктно-орієнтованого програмування передбачає знання студентами об'єктно-орієнтованого проектування та програмування і є завершальним етапом вивчення у рамках курсу об'єктноорієнтованє програмування підготовки студентів.

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

Виконання курсової роботи (КР) направлено на закріплення знань, отриманих при вивченні теоретичної частини курсу, і набуття практичних навичок розробки об'єктно-орієнтованих програм. В результаті виконання курсової роботи студент повинен освоїти:

— концепції об'єктно-орієнтованого програмування;

— спеціалізовані засоби розробки програмного забезпечення мовою Delphi;

— спеціалізовані засоби розробки програмного забезпечення мовою С ++;

знати: загальні питання побудови та використання сучасних систем об'єктно-орієнтованного та візуального проектування програмних засобів комп’ютерних систем управління; основні поняття та методи об'єктно-орієнтованного проектування та програмування, основні засоби розробки програм з використанням багато ієрархічних структур об'єктів та класів об'єктів;

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

Під час виконання курсової роботи студент повинен продемонструвати:

— вміння збирати і аналізувати відповідні матеріали про об'єкт дослідження, використовуючи сучасні джерела інформації, включаючи Інтернет —ресурси;

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

— здатність доводити розв’язання поставленої задачі до логічного кінця;

— вміння аналізувати отримані результати і робити з них висновки.

КР складається з двох взаємопов'язаних частин. Для виконання першої частини КР потрібно побудувати детальну об'єктну модель запропонованої предметної області. Друга частина КР передбачає безпосередню розробку об'єктно-орієнтованого програмного забезпечення, реалізує розроблену об'єктну модель.

1. Опис предметної області

Телефонний довідник — база усіх номерів стаціонарного і мобільного зв? язку по містах і селах різних регіонів і частин певної країни. Телефонні довідники з? явилися не дуже давно, оскільки перший телефон було запатентовано в 1876 році американським винахідником Олександром Белом і пройшло чимало років поки він удосконалився до сьогоднішнього і набув масового поширення. Перші телефони були досить примітивними і не використовувалися масово. Над розробкою і удосконалення телефонів займалося чимало вчених. Телефони пройшли довгий і складний шлях розвитку. Відповідно телефонні довідники і не були потрібні, оскільки телефони існували лише у деяких осіб, які могли дозволити собі цей засіб зв? язку. Не потрібно було об?єднувати всі номера телефонів в одну єдину базу.

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

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

1. ПІБ абонента;

2. Номер телефону;

3. Адресу.

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

2. Постановка завдання Телефонний довідник. Відомості про абонента: ПІБ, адреса, номер телефону. Функції: створення нової бази, пошук абонента по базі.

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

Форма «2» призначена для створення бази. В цьому блоці буде визначено три класи: клас Абонент, клас Адреса, клас Телефон. При створені нової бази, після введення адреси, в рядку, де потрібно ввести номер автоматично появлятиметься код з урахуванням введеної області.

Форма «3» призначена для виведення інформації на екран.

Форма «4» слугуватиме для реалізації пошуку по базі. Пошук буде здійснюватись за будь-яким критерієм (ПІБ, адреса, телефон).

Вся інформація буде зберігатися в файлі бази даних Access на жорсткому диску. Програма виконуватиме всі поставлені цілі і працюватиме ефективно.

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

3. Об'єктно-орієнтоване програмування

3.1 Основи ООП

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

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

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

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

Основні переваги концепції ООП:

· моделювання предметів та явищ реального світу;

· можливість створювати користувацькі типи даних (класи);

· приховування деталей реалізації (інкапсуляція);

· можливість повторного використання коду (наслідування);

· інтерпретація викликів процедур та функцій на етапі виконання (поліморфізм).

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

Модифікатори доступу:

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

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

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

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

Термін поліморфізм має грецьке походження і означає «наявність багатьох форм». З поліморфізмом тісно пов’язані такі поняття, як абстрактні класи, віртуальні методи, перевантаження методів і властивостей.

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

3.2 Створення класів. Методи, властивості, поля

Клас є основою для створення об'єктів. В класі визначаються дані і функціонал, який працює з цими даними. Об'єкти являються екземплярами класу. Ініціалізація змінних екземпляру відбувається в конструкторі. В класі можуть бути декілька конструкторів, тобто клас являється набором проектів, які визначають як будувати об'єкт. Дуже важливо розуміти різницю між класом і об'єктом: клас являється логічною абстракцією до тих пір, поки не буде створений об'єкт і не появиться фізична реалізація цього класу в пам’яті комп’ютера. Методи і змінні, які складають клас називаються членами класу.

Синтаксис оголошення класу в середовищі Borland Delphi наступний:

Type

<�ім'я_класу> = class (<�ім'я_класу-батька>)

public //доступно всім

<�поля, методи, властивості, події>

ublished // видні в Інспекторі Об'єктів і змінювані

<�поля, властивості>

protected // доступ тільки нащадкам

<�поля, методи, властивості, події>

private // доступ тільки в цьому модулі

<�поля, методи, властивості, події>

end;

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

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

4. Побудова об'єктної моделі

Для побудови об'єктної моделі даної системи необхідно виконати наступні етапи:

— визначення об'єктів і класів;

— визначення залежностей між об'єктами;

— визначення атрибутів об'єктів і зв’язків;

— побудова діаграми ієрархії класів.

4.1 Визначення об'єктів і класів

Аналізуючи постановку завдання і предметну область, можна виділити набір можливих класів:

— Форма 1

— Форма 2

— Форма 3

— Форма 4

— Абонент

— Адреса

— Телефон

Після визначення класів нам потрібно виділити об'єкти кожного з вище зазначених класів. Нижче наведено об'єкти класів:

В класі Форма 1 будуть визначені наступні об'єкти: 2 об'єкта Label (використовуються для вибору однієї з дій відповідно до постановки задачі), 3 об'єкти Image (використовується для графічного оформлення програми).

В класі Форма 2 наявні об'єкти: 12 об'єктів Label, 9 об'єктів Edit (призначені для передачі даних, введених користувачем, до класів Абонент, Адреса, Телефон), об'єкти ADOConnection1 і ADOTable1 (для зв’язування програми з зовнішньою БД), об'єкти Ab, Ad, Ph/

В класі Форма 3 використовуються такі об'єкти: об'єкт DBGrid (відображає інформацію з класів), об'єкт DataSource (для зв’язування об'єкта DBGrid з зовнішньою БД), об'єкт Button1 (для переходу до пошуку інформації), об'єкт DBNavigator1 (для навігації по базі).

В класі Форма 4 будуть визначені об'єкти: 5 об'єктів Label, 4 об'єктів Edit (призначені для введення критеріїв пошуку), об'єкт GroupBox, 2 об'єкти RadioButton1 (для вибору критерію пошуку), об'єкт ADOQuery1 (для реалізації механізму пошуку), об'єкт Button (для виконання пошуку), об'єкт DBGrid (для відображення результатів пошуку).

Атрибути класу Абонент: прізвище, ім'я, по-батькові;

Атрибути класу Адреса: місто, область, район, вулиця, будинок;

Атрибути класу Телефон: номер.

4.2 Визначення залежностей (зв'язків) між класами

Між виділеними класами потрібно виділити явні і неявні зв’язки.

Між класами Форма 1 і Форма 2 та Форма 3 існує прямий зв’язок, оскільки перша породжує дві наступні.

Форма 2 має зв’язок з класами Абонент, Адреса, Телефон.

Форма 3 і Форма 4 також мають зв’язок один з одним.

Класи Абонент, Адреса, Телефон мають зв’язок один з одним через клас Форма 2.

Класи Форма 3 і Форма 2 зв’язані між собою класом Форма 1.

4.3 Побудова діаграми ієрархії класів

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

Рис. 1. Діаграма ієрархії класів.

5. Реалізація програми в середовищі Borland Delphi

Після дослідження предметної області, постановки завдання і побудови об'єктної моделі можна приступити до реалізації програми на мові програмування. Нашу програму ми будемо реалізовувати в середовищі Borland Delphi 7. Borland Delphi 7 — інтегроване середовище розробки програмного забезпечення, яке працює під операційною системою Microsoft Windows. Це середовище є простим у використанні і має потужний потенціал для створення масштабних додатків. Так як Delphi заснований на такій мові програмування, як Паскаль вона має подібний синтаксис і тому проблем з написанням програми не повинно виникнути.

5.1 Інтерфейс програми

Для того щоб розпочати працювати над розробкою програми, потрібно відкрити середовище розробки і створити новий проект. Після цього перед нами з’явиться вікно, в якому буде створюватись наша майбутня програма. Після запуску Delphi на екрані комп’ютера можна побачити (див. рис. 2):

Рис. 2. Вікна і панелі середовища Delphi

1 — у верхній частині екрана розташоване головне меню, що забезпечує доступ до команд середовища програмування (головне меню міститься в так називаному головному вікні, що має заголовок: Delphi 7 — Project1);

2 — у головному вікні містяться панелі інструментів, що дозволяють швидко виконувати команди головного меню, які найчастіше використовуються;

3 — у правій нижній частині головного вікна розташована палітра компонентів, що містить великий набір об'єктів, які можна додавати на форму; саме компоненти є засобом створення додатків у середовищі Delphi;

4 — на середині екрана знаходиться вікно форми з заголовком

Form1, що використовується для розміщення компонентів Delphi;

5 — вікно редактора коду, що містить код програми, за замовчуванням має заголовок Unit1. pas і призначено для створення і редагування коду програми;

6 — вікно інспектора об'єктів (Object Inspector) дозволяє змінювати властивості, характеристики компонентів;

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

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

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

Рис. 3.Зображення форми 1.

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics,

Controls, Forms, Dialogs;

type

TForm1 = class (TForm)

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

end.

Кожна форма має свій код, який має назву Unit (Модуль). Проект Delphi складається з модулів і форм. Вміст файлу проекту нашої програми наведений нижче:

program Project1;

uses

Forms,

Unit1 in 'Unit1.pas' {Form1},

Unit2 in 'Unit2.pas' {Form2},

Unit3 in 'Unit3.pas' {Form3},

Unit4 in 'Unit4.pas' {Form4};

{$R *.res}

begin

Application.Initialize;

Application.CreateForm (TForm1, Form1);

Application.CreateForm (TForm4, Form4);

Application.Run;

end.

Лістинг модулів 1, 2, 3, 4 наведений в додатках А, Б, В, Г.

5.2 Демонстрація можливостей програми. Тестовий приклад

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

Для початку нашу програму потрібно скомпілювати. Щоб скомпілювати програму в Delphi 7 можна просто натиснути клавішу F9. Після натиснення цієї клавіші, компілятор автоматично переведе код програми в машинний код і запустить нашу програму на виконання.

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

Рис. 4.Стартове вікно програми.

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

Ввівши дані в поля ми натискаємо на кнопку «Наступний», щоб добавити наступного абонента. Після натиснення кнопки всі дані, які були введені в задані поля зберігаються в файл, а поля форми очищуються.

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

Рис. 5.Форма створення бази.

Рис. 6.Вікно відображення інформації

Внизу, під цією інформацією розміщено кнопку «Пошук», натискаючи на яку ми перейдемо в вікно пошуку, зображеного на рис.7

Рис. 7.Вікно пошуку інформації

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

Рис. 8.Результати пошуку інформації за ПІБ.

Далі нам потрібно провести тестування пошуку за адресою. Для цього вибираємо пошук за адресою і в пункті «місто/село» вводимо місто «Ковель». Програма видасть нам інформацію про всіх абонентів, які живуть в місті Ковель. Результати пошуку зображені на рис.9

Рис. 9.Результати пошуку інформації за адресою.

Результати пошуку можна звузити вводячи критерії і в інші поля. Щоб отримати найкращий результат потрібно заповнювати всі поля.

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

Висновок

В ході виконання завдання курсової роботи з об'єктно-орієнтованого програмування, мною було вивчено базові конструкції мови програмування Object Pascal; використано на практиці знання отримані мною на заняттях з дисципліни «Об'єктно-орієнтованого програмування»; розроблено і протестовано програму для створення телефонного довідника, яка здійснює наступні функції: створення бази телефонних номерів, виведення даних зі створеної бази і пошук номерів за заданим критерієм, розвинено вміння використовувати основні принципи ООП і вміння працювати з класами і об'єктами.

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

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

1. Осипов Д. Delphi. Профессиональное программирование. — СПб.: Символ-Плюс, 2006. -1056 с., ил.

2. Флеиов М. Е. Профаммирование в Delphi глазами хакера. — СПб.: БХВ-Петер-бург, 2003. — 368 с: ил.

3. Т. А. Павловская. Паскаль. Програмирование на языке высокого уровня. Учебник. 2007 год. 400 стр.

Додаток А

Лістинг Unit 1

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, Menus, ExtCtrls;

type

TForm1 = class (TForm)

Image1: TImage;

Image2: TImage;

Label1: TLabel;

Label2: TLabel;

Image3: TImage;

procedure Label1Click (Sender: TObject);

procedure Label2Click (Sender: TObject);

procedure Image3Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

uses Unit2, Unit3;

{$R *.dfm}

procedure TForm1. Label1Click (Sender: TObject); //Створення форми створення бази

var

Form2: TForm2;

begin

Form2:=TForm2.Create (self);

Form2.Show;

end;

procedure TForm1. Label2Click (Sender: TObject); //Створення форми відкриття бази

var

Form3: TForm3;

begin

Form3:=TForm3.Create (self);

Form3.Show;

end;

procedure TForm1. Image3Click (Sender: TObject);

begin

Close;

end;

end.

Додаток Б

Лістинг Unit 2

unit Unit2;

interface

uses

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

Dialogs, StdCtrls, Menus, ADODB, DB;

type

TForm2 = class (TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Button1: TButton;

Label6: TLabel;

Label5: TLabel;

Label7: TLabel;

Label8: TLabel;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Label9: TLabel;

Label10: TLabel;

Edit7: TEdit;

Edit8: TEdit;

Label11: TLabel;

Label12: TLabel;

Edit9: TEdit;

ADOConnection1: TADOConnection;

ADOTable1: TADOTable;

procedure N4Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Edit1KeyPress (Sender: TObject; var Key: Char);

procedure Edit2KeyPress (Sender: TObject; var Key: Char);

procedure Edit3KeyPress (Sender: TObject; var Key: Char);

procedure Edit4KeyPress (Sender: TObject; var Key: Char);

procedure Edit5KeyPress (Sender: TObject; var Key: Char);

procedure Edit6KeyPress (Sender: TObject; var Key: Char);

procedure Edit7KeyPress (Sender: TObject; var Key: Char);

procedure Edit8KeyPress (Sender: TObject; var Key: Char);

procedure Edit9KeyPress (Sender: TObject; var Key: Char);

private

{ Private declarations }

public

{ Public declarations }

end;

type

TAbonent = class

private

pr, im, pb: string[15];

public

constructor Create (NewPr, NewIm, NewPb: string);

end;

type

TAdress = class

private

obl, ra, misto, vul, bud: string[20];

public

constructor Create (NewMisto, NewObl, NewRa, NewVul, NewBud: string);

end;

type

TPhone=class

private

tell:string;

public

constructor CreateTell (NewTell:string);

end;

var

Form2: TForm2;

F:textfile;

Ab:TAbonent;

Ad:TAdress;

Ph:TPhone;

implementation

uses Unit3, Unit4;

{$R *.dfm}

//——————————————————————————;

constructor TAbonent. Create (NewPr, NewIm, NewPb: string);

begin

inherited Create;

pr:=NewPr;

im:=NewIm;

pb:=NewPb;

end;

//——————————————————————————;

//——————————————————————————;

constructor TAdress. Create (NewMisto, NewObl, NewRa, NewVul, NewBud: string);

begin

misto:=NewMisto;

obl:=NewObl;

ra:=NewRa;

vul:=NewVul;

bud:=NewBud;

end;

//——————————————————————————-;

//——————————————————————————;

constructor TPhone. CreateTell (NewTell:string);

begin

inherited Create;

tell:=NewTell;

end;

//——————————————————————————-;

procedure TForm2. Button1Click (Sender: TObject);

begin

Edit1.SetFocus;

Ab:=TAbonent.Create (Edit1.Text, Edit2. Text, Edit3. Text);

Ad:=TAdress.Create (Edit4.Text, Edit5. Text, Edit6. Text, Edit7. Text, Edit8. Text);

Ph:=TPhone.CreateTell (Edit9.Text);

adoTable1.Insert;

adoTable1.FieldByName ('Прізвище').AsString:= Ab. pr;

adoTable1.FieldByName ('Імя').Asstring := Ab. im;

adoTable1.FieldByName ('По-батькові').Asstring := Ab. pb;

adoTable1.FieldByName ('Місто/село').AsString:= Ad. misto;

adoTable1.FieldByName ('Область').Asstring := Ad. obl;

adoTable1.FieldByName ('Район').Asstring := Ad. ra;

adoTable1.FieldByName ('Вулиця').AsString:= Ad. vul;

adoTable1.FieldByName ('Будинок').Asstring := Ad. bud;

adoTable1.FieldByName ('Телефон').Asstring := Ph. tell;

adoTable1.Post;

Ab.Free;

Ad.Free;

Ph.Free;

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

Edit4.Text:='';

Edit5.Text:='';

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

Edit9.Text:='';

end;

procedure TForm2. N4Click (Sender: TObject);

begin

Close;

end;

procedure TForm2. Edit1KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit2.SetFocus;

end;

procedure TForm2. Edit2KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit3.SetFocus;

end;

procedure TForm2. Edit3KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit4.SetFocus;

end;

procedure TForm2. Edit4KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit5.SetFocus;

end;

procedure TForm2. Edit5KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit6.SetFocus;

end;

procedure TForm2. Edit6KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit7.SetFocus;

end;

procedure TForm2. Edit7KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Edit8.SetFocus;

end;

procedure TForm2. Edit8KeyPress (Sender: TObject; var Key: Char);

var

obl:string[24];

kod:string[4];

fil:textfile;

a:integer;

begin

if key=#13 then

begin

Edit9.SetFocus;

assignfile (fil,'1.txt');

reset (fil);

while not eof (fil) do

begin

readln (fil, obl, kod);

a:=pos (' ', obl);

obl:=copy (obl, 1, a-1);

if (edit4.text=obl) or (edit6.text=obl) then

Edit9.text:='0 ('+kod+') ';

end;

end;

end;

procedure TForm2. Edit9KeyPress (Sender: TObject; var Key: Char);

begin

if key=#13 then

Button1.Click;

end;

end.

Додаток В

Лістинг Unit 3

unit Unit3;

interface

uses

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

Dialogs, Menus, StdCtrls, Grids, DBGrids, ADODB, DB, ExtCtrls, DBCtrls;

type

TForm3 = class (TForm)

Label2: TLabel;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

DBNavigator1: TDBNavigator;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

implementation

uses Unit2, Unit4;

{$R *.dfm}

procedure TForm3. Button1Click (Sender: TObject);

begin

form4.show;

end;

end.

Додаток Г

Лістинг Unit 4

unit Unit4;

interface

uses

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

Dialogs, StdCtrls, DB, ADODB, Grids, DBGrids;

type

TForm4 = class (TForm)

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Label1: TLabel;

Label2: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Label3: TLabel;

Edit3: TEdit;

Label4: TLabel;

Edit4: TEdit;

Label5: TLabel;

Button1: TButton;

ADOTable1: TADOTable;

ADOQuery1: TADOQuery;

DBGrid1: TDBGrid;

DataSource1: TDataSource;

procedure RadioButton1Click (Sender: TObject);

procedure RadioButton2Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

uses Unit3, Unit2;

{$R *.dfm}

procedure TForm4. RadioButton1Click (Sender: TObject);

begin

Label2.Caption:='Прізвище';

Label3.Caption:='Імя';

Label4.Caption:='По-батькові';

Label5.Caption:='Телефон';

end;

procedure TForm4. RadioButton2Click (Sender: TObject);

begin

Label2.Caption:='Область';

Label3.Caption:='Район';

Label4.Caption:='Місто/село';

Label5.Caption:='Вулиця';

end;

procedure TForm4. Button1Click (Sender: TObject);

begin

ADOQuery1.Active := False;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add ('SELECT *');

ADOQuery1.SQL.Add ('FROM Довідник');

if radiobutton1. Checked=True then

begin

if (Length (Edit1.Text) > 0) or

(Length (Edit2.Text) > 0) or

(Length (Edit3.Text) > 0) or

(Length (Edit4.Text) > 0) then

begin

ADOQuery1.SQL.Add ('WHERE Прізвище LIKE' + #39 + Edit1. Text + '%' + #39 +' AND ');

ADOQuery1.SQL.Add (' Імя LIKE' + #39 + Edit2. Text + '%' + #39 +' AND ');

ADOQuery1.SQL.Add (' [По-батькові] LIKE' + #39 + Edit3. Text + '%' + #39 +' AND ');

ADOQuery1.SQL.Add (' Телефон LIKE' + #39 + Edit4. Text + '%' + #39);

ADOQuery1.Active := True;

end

else

begin

showmessage ('Введіть критерій пошуку');

end;

end;

if radiobutton2. Checked=True then

begin

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add ('SELECT *');

ADOQuery1.SQL.Add ('FROM Довідник');

if (Length (Edit1.Text) > 0) or

(Length (Edit2.Text) > 0) or

(Length (Edit3.Text) > 0) or

(Length (Edit4.Text) > 0) then

begin

ADOQuery1.SQL.Add ('WHERE Область LIKE' + #39 + Edit1. Text + '%' + #39 +' AND ');

ADOQuery1.SQL.Add (' Район LIKE' + #39 + Edit2. Text + '%' + #39 +' AND ');

ADOQuery1.SQL.Add (' [Місто/село] LIKE' + #39 + Edit3. Text + '%' + #39 +' AND ');

ADOQuery1.SQL.Add (' Вулиця LIKE' + #39 + Edit4. Text + '%' + #39);

ADOQuery1.Active := True;

end

else

begin

showmessage ('Введіть критерій пошуку');

end;

end;

end;

end.

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