43131

Розробка програми «Кулінарна книга» в середовищі програмування Borland C++ Builder

Курсовая

Информатика, кибернетика и программирование

У першій частині «Специфікація проекту» викладено призначення розробки та підстави для її виконання, дана постановка завдання з описом того, що повинна виконувати майбутня програма, описані взаємозв'язки між таблицями і подано фізичний опис моделі. Крім того, розглянуто вимоги до програми і програмної документації. Описані структура програми, тобто використовувані класи і розробляється графічний інтерфейс.

Украинкский

2013-11-03

3.17 MB

30 чел.

54

PAGE  8

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ,

МОЛОДІ ТА СПОРТУ УКРАЇНИ

ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД

«ПРИАЗОВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ»

МАРІУПОЛЬСКИЙ МЕХАНІКО-МЕТАЛЛУРГІЙНИЙ КОЛЕДЖ

Розробити прикладення

«Кулінарна книга»

КУРСОВИЙ ПРОЕКТ

Пояснювальна записка

КП.05010301.9.034.42.00ПЗ

Розробив                                                                     Студент групи ОК 44/09

                                                                                      Рогозіна О.Є.

Керівник проекту                                                           Івлієва Н.В.

                                                            Лосева Т.В

2012

МІНІСТЕРСТВО ОСВІТИ ТА НАУКИ,

МОЛОДІ ТА СПОРТУ УКРАЇНИ

ДЕРЖАВНИЙ ВИЩИЙ НАВЧАЛЬНИЙ ЗАКЛАД

«ПРИАЗОВСЬКИЙ ДЕРЖАВНИЙ ТЕХНІЧНИЙ УНІВЕРСИТЕТ»

МАРІУПОЛЬСКИЙ МЕХАНІКО-МЕТАЛЛУРГІЙНИЙ КОЛЕДЖ

Завдання на курсовий проект

з дисципліни:  «Об’єктно - орієнтоване програмування»

спеціальності 5.05010301 «Розробка программного забезпечення»

студенту III курсу групи ОК-50 МММК ДВНЗ «ПГТУ»

Перепелиці Олександру Анатолійовичу

1 Тема проекту: Розробити прикладення «Кулінарна книга»

2 Дата сдачі студентом завершеного проекту: 04.05.2012 р.

.

3 Початкові дані для проекту:

Перелік таблиць: Блюдо», «Склад блюда», «Продукти», «Тип харчування».

4 Зміст пояснювальної записки:

Реферат

Зміст

Вступ

1 Специфікація проекту  

1.1 Призначення розробки та основи для її виконання

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

1.3 Вимоги до програми

1.4 Вимоги до програмної документації 

1.5 Структура програми

2 Програмна документація  

2.1 Керівництво системного програміста  

2.1.1 Архітектура програми

2.1.2 Встановлення і перевірка програми 

2.2 Керівництво користувача 

2.2.1 Призначення програми

2.2.2 Виконання програми

2.2.3 Повідомлення оператору  

Висновки

Перелік використаних джерел

Додатки

Рекомендована література

Основна:

  •  Архангельський А.Я. Програмування у C++ Builder –М.: Бином, 2003.– 1152 с.
  •  ДСТУ  3008-95.  Документація.  Звіти  у  сфері  науки  і  техніки. Структура  і  правила  оформлення.  –  К.:  Держстандарт  України, 1995. – 38 с.

Додаткова:

  •  Чарли Калверт. Borland C++ Builder. Энциклопедия пользователя: Пер. с англ./ – К.: Издательство «ДиаСофт», 1997. – 848 с.
  •  Шамис В.А. Borland C++ Builder. Программирование на С++ без проблем – М.: “Нолидж”, 1997. – 266 с., с ил.

Ресурсы сети Internet

  •  http://msdn.microsoft.com/ru-ru/default.aspx - база знаний  Microsoft Developer Network (на русском языке)
  •  www.functionx.com – материалы по C++ (на английском языке)  
  •  www.intuit.ru – Internet-институт  информационных технологий
  •  www.rsdn.ru – материалы по C++ (на русском языке)

Календарний план виконання курсового проекту

Назва етапу роботи

Приблизний обсяг роботи, %

Срок виконання

Узгодження  загальної постановки задачі. Розробка чернетки введення, специфікації проекту

35

29.03-10.04

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

10

13.03-22.03

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

35

23.03.-29.04

Підсумкове налагодження та тестування програми. Розробка підсумкового варіанту програмної документації, висновків, додатків.

10

30.04-01.05

Розробка підсумкового варіанту пояснювальної записки. 

10

02.05-03.05

Дата видачі                                                                                             02.02.2012 р.

Термін закінчення                                                                                  04.05.2012 р.

Завдання прийняла                      __________________           Рогозіна О.Є.

Керівник проекту                         __________________          Івлієва Н.В.

Голова циклової комісії              __________________           Красковська Н. О.       


РЕФЕРАТ

Тема курсового проекту: «Розробити  прикладення «Кулінарна книга». Метою курсового проекту є  створення програми «Кулінарна книга» в середовищі програмування  Borland C++ Builder.

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

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

У першій частині «Специфікація проекту» викладено призначення розробки та підстави для її виконання, дана постановка завдання з описом того, що повинна виконувати майбутня програма, описані взаємозв'язки між таблицями і подано фізичний опис моделі. Крім того, розглянуто вимоги до програми і програмної документації. Описані структура програми, тобто використовувані класи і розробляється графічний інтерфейс.

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

В висновках приведена оцінка отриманих результатів роботи, а також тих, які не були реалізовані. Наведено перелік використаних джерел, використаних при написання курсового проекту. Додаток А містить вихідний код розробленої програми. Проект містить 20 малюнків, 7 таблиць, виконаний в обсязі 38 аркушів.

ОБЄКТНО-ОРІЄНТОВАНЕ ПРОГРАМУВАННЯ,  C++ BUILDER, АВТОМАТИЗОВАНА СИСТЕМА, ПРОГРАММА, БАЗА ДАНИХ, UML-ДІАГРАМА, МЕТОД, КЛАС, ПРОГРАМНИЙ КОД, ІНТЕРФЕЙС

ЗМІСТ

Стор.

Вступ………………………………………………………………………………….6

1 Специфікація проекту.…………………………………………………………….7  

1.1 Призначення розробки та підстави для її виконання.......………………….7

1.2 Постановка завдання…………………………………………………………7  

1.3 Вимоги до програми………………………………………………………….9

1.4 Вимоги до програмної документації……….……………………………...10 

1.5 Структура програми...………………………………………………………10

2 Програмна документація….……………………………………………………..12  

2.1 Керівництво системного програміста...…………………………………...12

2.1.1 Архітектура програми ………………………………………………12

2.1.2 Установка і перевірка програми……………………………………16  

2.2 Керівництво користувача.………………………………………………….21

2.2.1 Призначення програми.……………………………………………..22

2.2.2 Виконання програми….……………………………………………..22

2.2.3 Повідомлення оператору………………………………………........28

Висновки……………………………………………………………………………28

Перелік використаних джерел……….……………………………………………30

Додаток А Вихідний код програми……..………………………………………...31


ВСТУП

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

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

Через розвиток обчислювальної техніки з‘явилася потреба у ефективних засобах розробки програмного забезпечення. Це призвело до появи систем програмування, орієнтованих на так звану «швидку розробку». В основі систем швидкої розробки (RAD-систем, Rapid Application Development – швидка розробка прикладень) лежить технологія візуального проектування і подієвого програмування, суть якої полягає у тому, що середовище розробки бере на себе більшу частину рутини, залишаючи програмісту роботу по конструюванню інтерфейсу та створенню функцій обробки подій. Ефектом цієї технології є колосальний приріст продуктивності програміста.

Borland C++ Builder – одна з широко використовуваних RAD-систем, що дозволяє створювати широкий спектр програм: від найпростіших одновіконних прикладень до програм управління розподіленими базами даних. Мова програмування середовища – С++.

Тема даного курсового проекту є розробка прикладення «Кулінарна книга».

Мета курсового проекту – вивчити мову програмування та середовище розробки С++ Builder  для автоматизації процесу вирішення конкретних завдань з різних областей застосування та придбання практичних навичок програмування.  


1 СПЕЦІФІКАЦІЯ ПРОЕКТУ

1.1 Призначення розробки та основи для її виконання

Програма, яке розробляється у курсовому проекті, має назву «Кулінарна книга».

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

Документом, на підставі якого ведеться розробка програмного забезпечення, є завдання для курсового проекту, видане керівником проекту та узгоджене головою циклової комісії «Розробка програмного забезпечення». Тематика курсового проекту розглянута і затверджена на засіданні циклової комісії.

1.2 Постановка завдання  

Розробити автоматизовану програму «Альбом».

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

База даних складається з чотирьох таблиць: «Блюдо», «Склад блюда», «Продукти», «Тип харчування». 

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

Фізичний опис бази даних представлено в таблицях 1-4.

Таблиця 1 Блюдо(bludo)

Назва поля

Атрибут

Тип  поля

Обмеження

UK_Bluda

Код блюда

Лічильник

Nazva

Назва

Текстовий

Tip_xarchuvannia

Тип альбому

Текстовий

Таблица 2 – Склад блюда (sklad bluda)

Назва поля

Атрибут

Тип  поля

Обмеження

UK_skladu_bluda

Код складу блюда

Лічильник

Recept

Рецепт

Текстовий

Uk_bluda

Код блюда

Лічильник

UK_producta

Код продукта

Лічильник

Kilkist_productu

Кількість продукта

Числовий

Таблица 3 –Продукти  (producti)

Назва поля

Атрибут

Тип  поля

Обмеження

UK_producta

Код

Лічильник

Nazvanie

Назва

Текстовий

Kalorii

Калорії

Числовий

Vidsotok_jirnosti

Відсоток жирності

Числовий

Ed_izmerenia

Одиниці вимірювання

Текстовий

Таблица 4 – Тип харчування (tip_xarchuvannia)

Назва поля

Атрибут

Тип  поля

Обмеження

UK_tipu_xarchuvannia

Код типу харчування

Лічильник

Tip_ xarchuvannia

Тип харчування

Текстовий

1.3 Вимоги до програми

Мова реалізації – C++ Builder.

Вимоги до графічного інтерфейсу користувача:

  •  Назви елементів інтерфейсу повинні бути виконані українською мовою;
  •  Головне вікно програми – фрейм з наступними елементами:

а) панель меню з підтримкою «акселератів»;

б) користувальницька піктограма системного меню;

в) панель інструментів з підтримкою спливаючих «підказок»

г) рядок стану, в якому повинна відображатися інформація про основні режими роботи програми;

  •  дані бази повинні відображатися в табличному вигляді;
  •  наявність модального діалогового вікна «Про програму» з інформацією про розробника програми, зокрема з його фотографією;

Вимоги до архітектури програми: використання механізму виключень для  обробки помилок введення-виведення даних. 

Вимоги до функціональності програми:

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

Вимоги до вихідного коду програми:

  •  вихідний код кожного з класів програми повинен міститись в окремому файлі;
  •  наявність коментарів (для класів – призначення класів; для методівпризначення методів,  опис параметрів та призначення, яке повертається);
  •  виконання угод щодо запису тексту програм мовою програмування C++ Builder.

 

1.4 Вимоги до програмної документації 

Програмна документація складається з двох документів: «Керівництво програміста» та «Керівництво користувача».

Програмна документація повинна бути складена відповідно до   ДСТУ-3008-95 і стандарту підприємства – Маріупольського механіко-металургійного коледжу ПДТУ.

1.5 Структура програми

Створення бази даних. База даних буде створена в Paradox 7 і буде складатися з чотирьох таблиць:

- bludo: UK_Bluda, Nazva, Tip_xarchuvannia;

         - sklad bluda : UK_skladu_bluda , Recept, Uk_bluda, UK_producta,  Kilkist_productu;

-  producti : UK_producta, Nazvanie, Kalorii, Vidsotok_jirnosti, Ed_izmerenia;

- tip_xarchuvannia : UK_tipu_xarchuvannia, Tip_ xarchuvannia.

Таблиці будуть взаємопов'язані типом «один до багатьох» в C++ згідно постановки завдання.

Використання класів

В програмі будуть використовуватись пять  класів.

У першому класі використовується метод вибору пункту меню головної форми для відкриття відповідної форми для роботи з даними. При цьому реалізована можливість відкриття форм «Альбом, Фотографія та Часовий період», «Фотографія та Часовий період», «Часовий період та тема», «Розробник» за допомогою натискання на кнопки з назвами форм, які знаходяться на головній формі та за допомогою комбінацій клавіш Ctrl+А, Ctrl+S,  Ctrl+D, Ctrl+F відповідно.

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

В третьому класі буде вводитись, переглядатись, видалятись інформація про Фотографію та Часовий період.   Використовується організація введення даних для фільтрації за датою знімку. Використовуються кнопки: «Фільтрація по даті знімку» для виконання фільтру по введеній даті знімку,  «Відміна фільтру» для відміни фільтрації та  «Звіт» для формування текстового документу про фотографію та часовий період.

В четвертому класі буде вводитись, переглядатись, видалятись інформація про Тему та Часовий період.

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

Графічний інтерфейс

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

На другій формі в DBGrid1 та DBGrid2 будуть відображатись дані для роботи з таблицями «Albom», «Fotografiya» та також для зручності роботи з даними буде використатись DBNavigator1 і DBNavigator2. Також на формі будуть знаходитись поля Edit1 для вводу типу альбому та кнопки Button1 та Button2 для створення, фільтрації за типом альбому та скасування її. Також на формі є елемент DBImage1 для відображення графічних зображень за таблиці «Fotografiya».

На третій формі будуть знаходитись DBGrid1 та DBGrid2, в яких будуть відображатись  дані  для роботи з таблицями «Tema» та «Fotografiya», для зручності роботи з даними будуть використовуватись DBNavigator1 та DBNavigator2. Дані про дату початку періода та ПІБ власника будуть узяті з таблиць «Albom» та «Chasovoy_period». Також на формі будуть знаходитись: поле Edit1 для вводу теми та кнопка Button1 для фільтрації записів за введеною темою, а також Button2 для відміни фільтрації.

На четвертій формі у TDBGrid1 та TDBGrid2  будуть відображуватись дані для роботи з таблицями «Fotografiya» та «Chasovoy_period», для зручності роботи з даними будуть використовуватися DBNavigator1 та DBNavigator2. Для фільтрації данних кінцем або початком часового періоду будуть використовуватись Edit1, Button1, Button2 та Button3 – для скасування фільтрації.

На п’ятій формі буде знаходитись TDBGrid1 з інформацією із таблиці «Fotografiya», а за допомогою Button1, Button2, Button3, Edit1 та  Edit2 буде виконуватися фільтрація за датою створення знімку, та не точний пошук за описом. Також на формі можна зробити звіт за фільтрованими даними, ща розміщюється на шостій формі, за допомогою Button4.

А на сьомій формі буде винесена інформація про розробника цього прикладення.   

2 ПРОГРАМНА ДОКУМЕНТАЦІЯ

2.1 Керівництво системного програміста  

2.1.1 Архітектура програми

Була створена база даних в Paradox 7, яка складається з чотирьох таблиць. Таблиці, властивості їх полів представлені на рисунках 1-4.

Рисунок 1 – Таблиця «Блюдо»

Рисунок 2 – Таблиця «Продукти»

Рисунок 3 – Таблиця «Склад блюда»

Рисунок 4 – Таблиця «Тип харчування»

Дві таблиці можуть бути  пов’язані одна за одною по ключу. Одна з цих пов’язаних таблиць є головною (master), а інша допоміжною, деталізуючей (detail).

Схема взаємозв’язків між таблицями в С++ Builder у вигляді діаграми даних, створеної в Проектувальнику Модуля Даних, представлена на рисунку 5.

При розробці програми автоматизованої системи «Альбом» був використаний  язик модулювання  Unified Modeling Language (UML), заснований на технології об'єктного моделювання (CASE-технології проектування програмних комплексів в області розробки програмного забезпечення). Мова UML дозволяє відобразити всі взаємозв'язки модельованого об'єкта, його інтерфейси, а також особливості реалізації, які визначають внутрішню структуру і функції.

Рисунок 5 – Діаграма даних

Діаграма класів (class diagram) використовується для моделювання статичної структури класів системи. Діаграма реалізована в ПП Sparx Systems Enterprise Architect 7.5. На діаграмі відображаються статичні аспекти структурної побудови системи (рисунок 6).

Дана діаграма є логічною моделлю, яка складається з шести класів. П’ять з них: ТForm1, ТForm2, ТForm4, ТForm5, ТForm6 мають графічний інтерфейс. Клас TDM не має графічного інтерфейсу.

Клас ТForm1 є головним вікном програми автоматизованої системи, містить методи для вибору дії, пов’язаної з обробником подій вибору пункту меню для роботи з формами. Метод N1Click - для роботи з формою ТForm2, метод N2Click - з формою ТForm4, метод N3Click - з формою ТForm5, метод void N4Click  - з формою ТForm6, та метод N6Click для вихіду із програми. Також Клас ТForm1містить методи для вибору дії, пов’язаної з обробником подій натискання на кнопки для роботи з формами. Метод Button1Click для роботи з формою ТForm2,  метод void Button2Click  - з формою ТForm4, метод void Button3Click - з формою ТForm5, та метод  SpeedButton1Click – для виходу з програми.

Рисунок 6 – Діаграма класів

Клас ТForm2 містить елемент управління DBGrid1, DBGrid2 з  таблицями  Albom, Fotografiya,  які відображають дані про кількість фото, тип альбому, дату його створення, власника, ПІБ власника, його адресу, дату знімку, розмір фото, якість фото, описання фото. Має DBNavigator1, DBNavigator2,  дозволяючі працювати з записами таблиць.  На формі міститься поле для фільтрації за типом альбому, яке використовує метод Button1Click та відміна фільтрації Button2Click.

Клас ТForm4  має два елементи управління DBGrid1 та DBGrid2 з таблицями «Fotografiya» та  «Tema». Також на формі знаходяться кнопки: Фільтрація за темою, що використовує метод Button1Click,  відміна фільтру з методом Button2Click.

Клас ТForm5 містить елемент управління DBGrid1 та DBGrid2 з таблицями, які відображають дані про Часовий період та фотографію. Також на формі знаходяться кнопки: Фільтрація за початком та кінцем часового періоду, що використовують методи Button1Click та Button2Click,  відміна фільтру з методом Button3Click. 

Клас ТForm6 призначений для подання інформації щодо розробника програми.

Клас ТForm7 призначений для надання звіту по відфільтрованим даним з прикладом пожного зображення.

Клас ТForm8 містить DBGrid1 із інформацією про фотографії та DBNavigator1 для зручності пересування та редагування даних у таблиці. Методи Button1Click та Button2Click виконують функцію фільтрації за датою створення знімку та її скасування, а метод Button3Click організовує не точний пошук за описом фотографії. Також можно продивитися звіт за фільтрованими даними, що знаходиться на іншій формі за допомогою методу Button4Click.

2.1.2 Встановлення та перевірка програми

Для нормального функціонування програми необхідно виконання наступних вимог до параметрів ПК: процесор Intel Pentium, AMD Athlon, AMD Sempron, оперативний запам'ятовуючий пристрій - 256 Mб, 20 Мб вільного дискового простору, відеокарта з можливістю відображення 256 кольорів. Якщо ці вимоги не будуть виконані, програма може функціонувати некоректно.

Вимоги до програмного забезпечення: на комп'ютері має бути встановлено таке програмне забезпечення:

  •  операційна система Microsoft Windows (98, ME, 2000, XP, Vista, Windows 7);

платформа BDE administrator  (версія 2.0 або вище). S 7);

Перед початком роботи з програмою необхідно встановити програму на комп'ютері користувача: в BDE administrator прописати alias «SP» із зазначенням шляху до папки, де зберігаються таблиці бази даних (рисунок 7).

Запуск програми в операційній системі сімейства Windows відбувається одним із стандартних способів:

  •   подвійним клацанням лівою кнопкою мишки по ярлику програми;
  •   викликом контекстного меню з вибором його пункту «Відкрити»;

-      натисканням кнопки «Пуск» панелі завдань з наступним вибором пункту «Усі програми» і подвійним клацанням лівою кнопкою мишки по ярлику програми.

Рисунок 7 – Створення псевдоніма бази даних

Робота з програмою починається з відкриття файлу програми Project1.exe (рисунок 8).

Рисунок 8 – Відкриття програми

Перевірку програми здійснимо за допомогою тестових прикладів. 

Тестовий приклад 1: перевірка того, що введені користувачем данні коректні та можуть бути використані для подальшої роботи, перевірка функцій зберігання даних в таблицю. Критерій проходження тесту: всі данні вводяться коректно, зберігаються у таблицях, можуть бути використані при підстановці у відповідні поля інших таблиць   Результат тестового прикладу 1 представлений в таблиці 5.

Таблиця 5- Тестовий приклад 1

п/п

Крок сценарію

Очікуваний результат

Отриманий результат

Відмітка про проход-ження кроку сценарію (Так / Ні)

1

Запустити програму з файлу Project1.exe

Повинна запуститися програма

Програма запустилася

Так

2

Відкрити форми з головного меню форми «Головна форма», або за допомогою кнопок, які містя-ться на цій формі,  або за допомогою комбінацій клавіш: Ctrl+А, Ctrl+S,  Ctrl+D, Ctrl+F 

Повинні запуститися форми

Відкрились форми

Так

3

Додати/видалити запис на формах 

Після введення запису до строки і натиснення на навігаторі «»/«-» запис вводиться/видаляється

Додається/

видаляється запис

Так

4

Пересування по записах за допо-могою навігатора, або за допомогою повзунка вгору / вниз/вправо/вліво

Після натискання на відповідні кнопки в навігаторі, або повзунка вгору / вниз/вправо/вліво пересуваємося по записах

Пересуваємося по записах

Так

Відмітка о проходженні тесту: Пройдено.

Тестовий приклад 2: перевірка того, що на формах «Альбом, фотографія та часовий період», «Фотографія та часовий період», «Тема та часовий період» за допомогою відповідних кнопок відбувається пошук даних, фільтрація даних та по них формується звіт. Критерій проходження тесту: в вільне поле записуємо дату знімку, фільтрація відбувається, формується звіт. Результат текстового прикладу 3 представлений в таблиці 6.  

Таблиця 6 Тестовий приклад 2

п/п

Крок сценарію

Очікуваний результат

Отриманий результат

Відмітка про проход-ження кроку сценарія (Так/Ні)

1

На формі «Альбом» Відфільтруємо записи натиснувши на кнопку «Фільтрувати за типом альбому»  

При вводі тексту у поле для вводу та натисненні на кнопку «Фільтрувати за типом альбому» повинні залишитись записи на формі, які відповідають вказаному у фільтрі типу альбому.

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

Так

2

На формі «Тема» Відфільтруємо записи натиснувши на кнопку «Фільтрувати за темою»  

При вводі тексту у поле для вводу та натисненні на кнопку «Фільтрувати за темою» повинні залишитись записи на формі, які відповідають вказаній у фільтрі темі.

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

Так

3

На формі «Часовий період» Відфільтруємо записи натиснувши на кнопку «Фільтрувати за початком періоду»  

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

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

Так

п/п

Крок сценарію

Очікуваний результат

Отриманий результат

Відмітка про проход-ження кроку сценарію (Так / Ні)

4

На формі «Фотографії» зробимо не точний пошук  за описом знімку, натиснувши кнопку «Пошук за фрагментом опису».

При вводі тексту у поле для вводу та натисненні на кнопку «Пошук за фрагментом опису » індикатор таблиці повинен перейти на поле з описом, яке за змістом схоже на введені критерії пошуку.

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

Так

5

На формі «Фотографії» відфільтруємо записи за датою створення фотографії, натиснувши кнопку «Фільтрувати за датою створення».

При вводі дати знімку у поле для вводу та натисненні на кнопку «Фільтрувати за датою створення » повинні залишитись записи, які відповідають вказаній даті знімку.

При вводі дати знімку у поле для вводу та натисненні на кнопку «Фільтрувати за датою створення» залишились записи, які відповідають вказаній даті знімку.

Так

Продовження таблиці 6

Відмітка о проходженні тестового прикладу 2: Пройдено.

2.2 Посібник користувача

2.2.1 Призначення програми  

Дана програма призначена для введення записів в:

  •  Альбом: кількість фото, тип альбому, дата створення, власник, ПІБ власника, адреса власника;
  •  Фотографія: дата знімку, розмір фото, якість фото, знімок, описання фото, ПІБ фотографа ;
  •  Тема: назва теми;
  •  Часовий період: початок періоду, кінець періоду.

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

 

2.2.2 Виконання програми

Для роботи з автоматизованою системою  «Альбом»  необхідно запустити відповідну програму. Після запуску програми на екрані монітора зявиться головне вікно програми «Альбом» (рисунок 9).

Рисунок 9 – Головне вікно програми

Основні елементи графічного інтерфейсу програми:

Графічний інтерфейс складається з головного вікна та додаткових вікон. Головне вікно програми має панель меню, яке дозволяє переходити на форми для роботи з даними та має структуру: «Головне меню», «Розробник», «Вихід». При цьому на формі містяться кнопки з назвами форм, за допомогою яких також можна переходити на форми програми. Також перехід на форми «Альбом, фотографія та Часовий період», «Фотографія та Часовий період», «Тема та часовий період», «Розробник» можна здійснити за допомогою комбінацій клавіш Ctrl+А, Ctrl+S,  Ctrl+D, та Ctrl+F відповідно.

При виборі пункту меню «Головне меню: Таблиця альбом, фотографія та  часовий період» або за допомогою комбінації клавіш  Ctrl+А, або при натисканні на кнопку «Альбом» відкривається відповідна форма (рисунок 10). На даній формі можемо вводити дані про альбом, фотографію, добавляти чи видаляти записи за допомогою навігатора, а також здійснювати фільтрацію за типом альбому (рисунок 11), та обірати поля із таблиць «Часовий період» та «Тема» за допомогою випадаючих списків (рисунок 12).

Рисунок 10 – Вигляд форми «Альбом»

Рисунок 11 – Результат фільтрації за типом альбому.

Рисунок 12 – Випадаючі списки полей у формі «Альбом».

 

При виборі пункту головного меню «Тема» або за допомогою комбінації клавіш Ctrl+S, або при натисканні на кнопку «Тема» відкривається відповідна форма (рисунок 13). На даній формі можемо вводити дані про фотографію та часовой період. Також на формі маємо можливість фільтрувати записи за темою. Фільтр вводимо с пусте поле, після чого натискаємо на кнопку «Фільтрувати за назвою теми». Результат представлений на рисунку 14.

Рисунок 13 – Вигляд форми «Тема»

Рисунок 14 – Результат фільтрації за темою.

На формі присутні випадаючі списки, за допомогою яких можна обирати записи із таблиць «Часовий період» та «Альбом» (рисунок 15).

Рисунок 15 – Вигляд звіту «Звіт за інформацією про фото»

При виборі пункту головного меню «Часовий період» або за допомогою комбінації клавіш Ctrl+D, або при натисканні на кнопку «Часовий період» відкривається відповідна форма (рисунок 16). На даній формі можемо вводити дані про тему та часовий період, здійснювати фільтрацію за початком та кінцем часового періоду (рисунок 17) та пересуватися по записах за допомогою навігатора.

Рисунок 16 – вигляд форми «Часовий період».

Рисунок 17 – Результат фільтрації за початком часового періоду.

При натисканні на головній формі на кнопку «Фотографія», відкриється відповідна їй форма, що зображена на рисунку 18.

Рисунок 18 – вид форми «Фотографія»

На цій формі можна обробити не точний пошук за описом фотографій (рисунок 19), відфільтрувати знімки за датою створення (рисунок 20) та зробити звіт за відфільтрованими даними (рисунок 21).

Рисунок 19 – результат пошуку за фрагментом опису.

Рисунок 20 – результат фільтрації за датою створення.

Рисунок 21 – звіт за відфільтрованими даними.

При виборі пункту меню «Розробник», або за допомогою комбінації клавіш Ctrl+F, або при натисненні на кнопку «Розробник» відкривається форма, на якій відображена інформація про розробника програми (Рисунок 22).

Рисунок 22 – Вигляд форми «Розробник»

2.2.3 Повідомлення оператору  

У програмі не передбачені повідомлення оператору, тому що в цьому немає необхідності.

ВИСНОВКИ

Під час написання курсового проекту я детальніше вивчив і отримав навички роботи в середовищі програмування Borland C + + Builder.

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

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

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

Під час написання програми вона була протестована. Всі помилки були виявлені і усунені під час тестування, тобто програма готова до використання.

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

Під час розробка курсового проекту я досягла всіх поставлених цілей на початку: закріпила знання дисципліни «Об'єктно-орієнтоване програмування», склала досить просту у використанні й працездатну автоматизовану систему. Закріпила навички роботи з текстовим редактором Word, навички оформлення звітів, навички розробки автоматизованих систем, а також роботи в середовищі об'єктно-орієнтованої мови програмування Borland C Builder.

Отже, підводячи підсумок курсового проекту можна сміливо сказати, що поставлені цілі були виконані.

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

  •  Архангельський А.Я. Програмування у C++ Builder –М.: Бином, 2003.– 1152 с.
  •  Шамис В.А. Borland C++ Builder. Программирование на С++ без проблем – М.: “Нолидж”, 1997. – 266 с., с ил.
  •  Микита Культин  «C++ Builder в задачах и примерах» БХВ-Петербург  2005 р.
  •  ДСТУ  3008-95.  Документація.  Звіти  у  сфері  науки  і  техніки. Структура  і  правила  оформлення.  –  К.:  Держстандарт  України, 1995. – 38 с.

                                                                                                         ДОДАТОК А

Вихідний код програми

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

//---------------------------------------------------------------------------

USEFORM("Unit1.cpp", Form1);

USEFORM("Unit2.cpp", Form2);

USEFORM("Unit3.cpp", D3); /* TDataModule: File Type */

USEFORM("Unit4.cpp", Form4);

USEFORM("Unit5.cpp", Form5);

USEFORM("Unit6.cpp", Form6);

USEFORM("Unit7.cpp", Form7);

USEFORM("..\Unit8.cpp", Form8);

//---------------------------------------------------------------------------

WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)

{

       try

       {

                Application->Initialize();

                Application->CreateForm(__classid(TForm1), &Form1);

                Application->CreateForm(__classid(TForm2), &Form2);

                Application->CreateForm(__classid(TD3), &D3);

                Application->CreateForm(__classid(TForm4), &Form4);

                Application->CreateForm(__classid(TForm5), &Form5);

                Application->CreateForm(__classid(TForm6), &Form6);

                Application->CreateForm(__classid(TForm7), &Form7);

                Application->CreateForm(__classid(TForm8), &Form8);

                Application->Run();

       }

       catch (Exception &exception)

       {

                Application->ShowException(&exception);

       }

       catch (...)

       {

                try

                {

                        throw Exception("");

                }

                catch (Exception &exception)

                {

                        Application->ShowException(&exception);

                }

       }

       return 0;

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

#include "Unit5.h"

#include "Unit6.h"

#include "Unit8.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;

//---------------------------------------------------------------------------

__fastcall TForm1::TForm1(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N1Click(TObject *Sender)

{

Form2->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)

{

   Form2->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N2Click(TObject *Sender)

{

Form4->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button2Click(TObject *Sender)

{

  Form4->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button3Click(TObject *Sender)

{

  Form5->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N3Click(TObject *Sender)

{

   Form5->Show();     

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N4Click(TObject *Sender)

{

Form6->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton1Click(TObject *Sender)

{

Form1->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::N6Click(TObject *Sender)

{

Form1->Close();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::SpeedButton2Click(TObject *Sender)

{

Form2->Show();

}

//---------------------------------------------------------------------------

void __fastcall TForm1::Button4Click(TObject *Sender)

{

Form8->Show();

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit1H

#define Unit1H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <jpeg.hpp>

#include <Menus.hpp>

#include <Buttons.hpp>

#include <Chart.hpp>

#include <TeEngine.hpp>

#include <TeeProcs.hpp>

//---------------------------------------------------------------------------

class TForm1 : public TForm

{

__published: // IDE-managed Components

       TImage *Image1;

       TLabel *Label1;

       TMainMenu *MainMenu1;

       TMenuItem *N1;

       TMenuItem *N2;

       TMenuItem *N3;

       TMenuItem *N4;

       TButton *Button1;

       TButton *Button2;

       TButton *Button3;

       TSpeedButton *SpeedButton1;

       TMenuItem *N5;

       TMenuItem *N6;

       TButton *Button4;

       void __fastcall N1Click(TObject *Sender);

       void __fastcall Button1Click(TObject *Sender);

       void __fastcall N2Click(TObject *Sender);

       void __fastcall Button2Click(TObject *Sender);

       void __fastcall Button3Click(TObject *Sender);

       void __fastcall N3Click(TObject *Sender);

       void __fastcall N4Click(TObject *Sender);

       void __fastcall SpeedButton1Click(TObject *Sender);

       void __fastcall N6Click(TObject *Sender);

       void __fastcall SpeedButton2Click(TObject *Sender);

       void __fastcall Button4Click(TObject *Sender);

private: // User declarations

public:  // User declarations

       __fastcall TForm1(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm1 *Form1;

//---------------------------------------------------------------------------

#endif //---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit1.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button1Click(TObject *Sender)

{

 D3->Album->Filtered=false;

D3->Album->Filter="Tip_Alboma='"+Edit1->Text+"'";

D3->Album->Filtered=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm2::Button3Click(TObject *Sender)

{

D3->Album->Filtered=false;        

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit2H

#define Unit2H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DBCtrls.hpp>

#include <DBGrids.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <jpeg.hpp>

//---------------------------------------------------------------------------

class TForm2 : public TForm

{

__published: // IDE-managed Components

       TImage *Image1;

       TDBGrid *DBGrid1;

       TDBNavigator *DBNavigator1;

       TImage *Image2;

       TDBNavigator *DBNavigator2;

       TDBGrid *DBGrid2;

       TDBImage *DBImage1;

       TButton *Button3;

       TButton *Button1;

       TEdit *Edit1;

       void __fastcall Button1Click(TObject *Sender);

       void __fastcall Button3Click(TObject *Sender);

private: // User declarations

public:  // User declarations

       __fastcall TForm2(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm2 *Form2;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit3.h"

#include "Unit1.h"

#include "Unit2.h"

#include "Unit4.h"

#include "Unit5.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TD3 *D3;

//---------------------------------------------------------------------------

__fastcall TD3::TD3(TComponent* Owner)

       : TDataModule(Owner)

{

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit3H

#define Unit3H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DB.hpp>

#include <DBTables.hpp>

//---------------------------------------------------------------------------

class TD3 : public TDataModule

{

__published: // IDE-managed Components

       TDatabase *DataBase;

       TTable *Photo;

       TTable *Tema;

       TTable *Chas;

       TDataSource *SoursAlbum;

       TDataSource *SoursPhoto;

       TDataSource *SoursTema;

       TDataSource *SoursChas;

       TTable *Album;

       TAutoIncField *TemaUK_Temi;

       TStringField *TemaNazvanie_temi;

       TAutoIncField *ChasUK_Chasovoy_Period;

       TDateField *ChasNachalo_perioda;

       TDateField *ChasKonec_perioda;

       TTable *Photo2;

       TDataSource *SoursPhoto2;

       TTable *Photo3;

       TDataSource *SoursPhoto3;

       TStringField *PhotoChas;

       TAutoIncField *AlbumUK_Alboma;

       TIntegerField *AlbumKolichestvo_foto;

       TStringField *AlbumTip_Alboma;

       TDateField *AlbumData_sozdaniya;

       TStringField *AlbumFIOVlasnika;

       TStringField *AlbumAdresa_vlasnika;

       TAutoIncField *PhotoUK_foto;

       TIntegerField *PhotoUK_Alboma;

       TIntegerField *PhotoUK_temi;

       TIntegerField *PhotoUK_chasov_per;

       TStringField *PhotoNazvanie;

       TStringField *PhotoFIO_Fotografa;

       TDateField *PhotoData_snimka;

       TStringField *PhotoRazmer_foto;

       TStringField *PhotoKachesrvo_foto;

       TStringField *PhotoOpisannya_foto;

       TAutoIncField *Photo2UK_foto;

       TIntegerField *Photo2UK_Alboma;

       TIntegerField *Photo2UK_temi;

       TIntegerField *Photo2UK_chasov_per;

       TStringField *Photo2Nazvanie;

       TStringField *Photo2FIO_Fotografa;

       TDateField *Photo2Data_snimka;

       TStringField *Photo2Razmer_foto;

       TStringField *Photo2Kachesrvo_foto;

       TStringField *Photo2Opisannya_foto;

       TAutoIncField *Photo3UK_foto;

       TIntegerField *Photo3UK_Alboma;

       TIntegerField *Photo3UK_temi;

       TIntegerField *Photo3UK_chasov_per;

       TStringField *Photo3Nazvanie;

       TStringField *Photo3FIO_Fotografa;

       TDateField *Photo3Data_snimka;

       TStringField *Photo3Razmer_foto;

       TStringField *Photo3Kachesrvo_foto;

       TStringField *Photo3Opisannya_foto;

       TStringField *PhotoTema;

       TStringField *Photo2Chas;

       TStringField *Photo2Alb;

       TStringField *Photo3Tema;

       TStringField *Photo3Alb;

       TGraphicField *PhotoPhoto;

       TGraphicField *Photo2Photo;

       TGraphicField *Photo3Photo;

       TTable *Table1;

       TAutoIncField *AutoIncField1;

       TIntegerField *IntegerField1;

       TIntegerField *IntegerField2;

       TIntegerField *IntegerField3;

       TStringField *StringField1;

       TStringField *StringField2;

       TDateField *DateField1;

       TStringField *StringField3;

       TStringField *StringField4;

       TStringField *StringField5;

       TStringField *StringField6;

       TStringField *StringField7;

       TGraphicField *GraphicField1;

       TDataSource *DataSource1;

private: // User declarations

public:  // User declarations

       __fastcall TD3(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TD3 *D3;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit4.h"

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit7.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm4 *Form4;

//---------------------------------------------------------------------------

__fastcall TForm4::TForm4(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm4::Button1Click(TObject *Sender)

{

D3->Tema->Filtered=false;

D3->Tema->Filter="Nazvanie_temi='"+Edit1->Text+"'";

D3->Tema->Filtered=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm4::Button3Click(TObject *Sender)

{

D3->Tema->Filtered=false;

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit4H

#define Unit4H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DBCtrls.hpp>

#include <DBGrids.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <jpeg.hpp>

//---------------------------------------------------------------------------

class TForm4 : public TForm

{

__published: // IDE-managed Components

       TImage *Image1;

       TDBGrid *DBGrid1;

       TDBNavigator *DBNavigator2;

       TDBGrid *DBGrid2;

       TEdit *Edit1;

       TButton *Button1;

       TButton *Button3;

       void __fastcall Button1Click(TObject *Sender);

       void __fastcall Button3Click(TObject *Sender);

private: // User declarations

public:  // User declarations

       __fastcall TForm4(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm4 *Form4;

//---------------------------------------------------------------------------

#endif //---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit5.h"

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm5 *Form5;

//---------------------------------------------------------------------------

__fastcall TForm5::TForm5(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm5::Button1Click(TObject *Sender)

{

  D3->Chas->Filtered=false;

D3->Chas->Filter="Nachalo_perioda='"+Edit1->Text+"'";

D3->Chas->Filtered=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm5::Button3Click(TObject *Sender)

{

  D3->Chas->Filtered=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm5::Button2Click(TObject *Sender)

{

  D3->Chas->Filtered=false;

D3->Chas->Filter="Konec_perioda='"+Edit1->Text+"'";

D3->Chas->Filtered=true;

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit5H

#define Unit5H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DBCtrls.hpp>

#include <DBGrids.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <jpeg.hpp>

//---------------------------------------------------------------------------

class TForm5 : public TForm

{

__published: // IDE-managed Components

       TImage *Image1;

       TDBGrid *DBGrid1;

       TDBNavigator *DBNavigator1;

       TDBGrid *DBGrid2;

       TDBNavigator *DBNavigator2;

       TEdit *Edit1;

       TButton *Button1;

       TButton *Button2;

       TButton *Button3;

       void __fastcall Button1Click(TObject *Sender);

       void __fastcall Button3Click(TObject *Sender);

       void __fastcall Button2Click(TObject *Sender);

private: // User declarations

public:  // User declarations

       __fastcall TForm5(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm5 *Form5;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit6.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm6 *Form6;

//---------------------------------------------------------------------------

__fastcall TForm6::TForm6(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit6H

#define Unit6H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <jpeg.hpp>

//---------------------------------------------------------------------------

class TForm6 : public TForm

{

__published: // IDE-managed Components

       TImage *Image1;

       TLabel *Label1;

       TLabel *Label2;

       TLabel *Label3;

private: // User declarations

public:  // User declarations

       __fastcall TForm6(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm6 *Form6;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit7.h"

#include "Unit1.h"

#include "Unit2.h"

#include "Unit3.h"

#include "Unit4.h"

#include "Unit5.h"

#include "Unit8.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm7 *Form7;

//---------------------------------------------------------------------------

__fastcall TForm7::TForm7(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

//---------------------------------------------------------------------------

#ifndef Unit7H

#define Unit7H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <ExtCtrls.hpp>

#include <QRCtrls.hpp>

#include <QuickRpt.hpp>

//---------------------------------------------------------------------------

class TForm7 : public TForm

{

__published: // IDE-managed Components

       TQuickRep *QuickRep1;

       TQRBand *QRBand1;

       TQRLabel *QRLabel1;

       TQRBand *QRBand2;

       TQRBand *QRBand3;

       TQRDBText *QRDBText1;

       TQRDBText *QRDBText2;

       TQRDBText *QRDBText4;

       TQRDBImage *QRDBImage1;

       TQRLabel *QRLabel4;

       TQRLabel *QRLabel8;

       TQRLabel *QRLabel9;

private: // User declarations

public:  // User declarations

       __fastcall TForm7(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm7 *Form7;

//---------------------------------------------------------------------------

#endif

//---------------------------------------------------------------------------

#include <vcl.h>

#pragma hdrstop

#include "Unit8.h"

#include "Unit3.h"

#include "Unit7.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm8 *Form8;

//---------------------------------------------------------------------------

__fastcall TForm8::TForm8(TComponent* Owner)

       : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button1Click(TObject *Sender)

{

 D3->Table1->Filtered=false;

D3->Table1->Filter="Data_snimka='"+Edit1->Text+"'";

D3->Table1->Filtered=true;

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button2Click(TObject *Sender)

{

D3->Table1->Filtered=false;

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button3Click(TObject *Sender)

{

AnsiString poisk;

poisk=(Edit2->Text);

TVarRec vrec = poisk;

D3->Table1->FindNearest(&vrec, 0);

}

//---------------------------------------------------------------------------

void __fastcall TForm8::Button4Click(TObject *Sender)

{

Form7->QuickRep1->Preview();

}

//--------------------------------------------------------------------------- 

//---------------------------------------------------------------------------

#ifndef Unit8H

#define Unit8H

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DBGrids.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

#include <jpeg.hpp>

//---------------------------------------------------------------------------

class TForm8 : public TForm

{

__published: // IDE-managed Components

       TImage *Image1;

       TDBGrid *DBGrid1;

       TButton *Button1;

       TEdit *Edit1;

       TButton *Button2;

       TEdit *Edit2;

       TButton *Button3;

       TButton *Button4;

       void __fastcall Button1Click(TObject *Sender);

       void __fastcall Button2Click(TObject *Sender);

       void __fastcall Button3Click(TObject *Sender);

       void __fastcall Button4Click(TObject *Sender);

private: // User declarations

public:  // User declarations

       __fastcall TForm8(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm8 *Form8;

//---------------------------------------------------------------------------

#endif


 

А также другие работы, которые могут Вас заинтересовать

49035. Технологический процесс изготовления заготовки опоры 735.17 KB
  При литье в кокиль отливки получают путем заливки расплавленного металла в металлические формы – кокили. Полости в отливках оформляют песчаными, оболочковыми или металлическими стержнями. Кокили с песчаными или оболочковыми стержнями используют для получения отливок сложной конфигурации.
49036. СИСТЕМА АВТОМАТИЧЕСКОГО РЕГУЛИРОВАНИЯ ЧАСТОТЫ ВРАЩЕНИЯ ДВИГАТЕЛЯ ПОСТОЯННОГО ТОКА 2 MB
  Анализ действующих на систему возмущающих воздействия и их влияние на статические характеристики САР Принцип работы системы Классификация САР Позвенное аналитическое описание процессов в САУ. Получим дифференциальные уравнения и передаточные функции звеньев САУ Разработка структурной схемы САР Уравнения динамики замкнутой САР Анализ на структурную устойчивость САР Расчёт требуемого коэффициента усиления в разомкнутом состоянии...
49037. Экономическая теория. Особенности экономических процессов 957.34 KB
  Экономика – одна из древнейших наук, которая всегда привлекала внимание ученых и образованных людей. Объясняется это тем, что изучение экономической теории – это реализация объективной необходимости познания мотивов, действий людей в хозяйственной деятельности, законов хозяйствования во все времена.
49038. ПРАВА ГРОМАДЯН У СФЕРІ ВИКОНАВЧОЇ ВЛАДИ: АДМІНІСТРАТИВНО-ПРАВОВЕ ЗАБЕЗПЕЧЕННЯ РЕАЛІЗАЦІЇ ТА ЗАХИСТУ 798.5 KB
  Досліджуються актуальні проблеми адміністративно-правового забезпечення реалізації та захисту прав громадян у сфері виконавчої влади. Ґрунтовно розглядаються політико-правові аспекти взаємодії людини, держави і управління, розвиток демократичних засад державного управління у світлі сучасного європейського досвіду...
49039. Выполнение действия в виде функций с динамическим распределением памяти программным способом 365.5 KB
  Вывести результат сглаживания заданной вещественной матрицы размером 10 на 10. Соседями элемента Аij в матрице назовем элементы. Операция сглаживания матрицы дает новую матрицу того же размера, каждый элемент которой получается как среднее арифметическое имеющихся соседей соответствующего элемента исходной матрицы.
49040. Решение дифференциального уравнение с заданными начальными значениями 451 KB
  Данное уравнение необходимо решить методом Эйлера и Эйлера модифицированного а также сравнить результаты и сделать вывод об эффективности методов построить их графики.Метод Эйлера Данный метод одношаговый. Обобщим формулу для решения дифференциальных уравнений методом Эйлера: 3.Эйлер модифицированный Для уменьшения погрешности вычислений часто используется модифицированный метод Эйлера.
49041. WEB – СЕРВИС 1.21 MB
  Приходится разбираться с многочисленными параметрами конфигурации pche PHP и MySQL. Денвер это те же самые дистрибутивы pche PHP MySQL. Денвер создавался для того чтобы упростить настройку и установку свободно распространяемых программ pche PHP MySQL и т. Базовый пакет содержит большинство необходимых Webпрограммисту программ и утилит: pche с поддержкой SSI mod_rewrite mod_php.
49043. Расчёт и моделирование частотно-избирательного усилителя 712.5 KB
  Еще один буферный каскад должен согласовывать последний УК с входным сопротивлением RCфильтра и еще один – на полевом транзисторе – с высоким выходным сопротивлением датчика. Итого схема будет состоять из датчика трех буферных каскадов двух усилительных RCфильтра и нагрузки. Схема будет состоять из датчика 4х каскадов усиления одного буферного каскада для согласования с RCфильтром RCфильтра.