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

Система рейтингового контролю знань

РефератДопомога в написанніДізнатися вартістьмоєї роботи

Система підтримує такі індекси — первинний (може бути повторюваних ключових полів), вторинний — за одним полю, складовою — за групою полів. На жаль, якщо таблиця має низку індексів, то, при працювати з записами виробляється модифікація лише одну індексу, проте інших перебудовуватися або за завершенні роботи з таблицею, або за запиту користувача. Можна зробити той процес «прозорим «для користувача… Читати ще >

Система рейтингового контролю знань (реферат, курсова, диплом, контрольна)

Завдання курсову работу.

1.1 Завдання.

1.2 Реалізація.

Глава I: Системы підтримки прийняття решений.

1. Система Paradox.

Глава II: Особливості объектно-ориентированного аналізу.

Інформаційна модель.

Модель станів для об'єкта «Операції над БД».

Модель станів для об'єкта «Введення до бази».

Модель взаємодії об'єктів.

Таблиця переходів в стану для об'єкта «Операції над БД».

Таблиця переходів в стану для об'єкта «Введення в бузу».

Список подій.

ДПДД для стану «Ініціалізація» об'єкта «Операції над БД».

ДПДД для стану «Створення БД» об'єкта «Операції над БД».

ДПДД для стану «Відкриття БД» об'єкта «Операції над БД».

ДПДД для стану «Редагування БД» об'єкта «Операції над БД».

ДПДД для стану «Закриття БД» об'єкта «Операції над БД».

ДПДД для стану «Введення даних» об'єкта «Операції над БД».

ДПДД для стану «Збереження БД» об'єкта «Операції над БД».

ДПДД для стану «Неуспешное відкриття БД» об'єкта «Операції над БД».

ДПДД для стану «Оновлення БД» об'єкта «Операції над БД».

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

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

Завдання курсову работу.

з дисципліни «Технологія программирования».

тема:

Система рейтингого контролю за навчанням .

1.1 Задание.

У цьому курсової роботі довелося б написати програму, з допомогою объектно-ориентированного методу програмування і объектно-ориентированного аналізу, яка б вести дисконтну запис студентів за десятьма предметів з оцінкам. До програми заноситися Ф.И.О. студента, факультет де вона навчається, спеціальність, яку набирає також група відповідно. Програма автоматично вважає середньої бал і заносить їх у базу. Ця програма сортує, знаходить і фільтрує дані про студентам, що полегшує пошук чи перегляд перед печаткою потрібних студентів. Результатом програми є висновок перед печаткою всіх студентів чи з кожному студентові соответственно.

1.2 Реализация.

Ця програма реалізували на объектно-ориентированном мові З++ і написана серед розроблювача програмного забезпечення С++Builder.

? ??? ???:

??? ??? ??? 70-? ??? — ??? ???:

— ??? ???;

— ??? ???;

— ??? ??? ???? ??? (??? ??? goto).

??? ??? — ??? ??? ???? ??? ??? ??? ??? ??? ??? …

??? ??? — ??? ??? — ???? ??? ??? ??? ??? ??? ???? ???, ??? ??? ??? ??? ??? ???, ??? ???? ??? … ??? ??? ??? ??? ??? …

??? ??? — ???? ??? … ??? ??? ??? ??? ???, ??? ??? ??? ???? ??? ??? ??? ???, ??? ??? …? ?? ??? ??? ??? ??? struct,? ??? — ??? (record). ??? ??? ??? ??? ??? ??? … ???-??? ???? ??? ??? ???, ???? ??? ??? ???-??? ??? ??? ??? ???,.

??? ???,? ??? ???, ???, ?? ???, ??? ??? (? ??? ??? ??? " ??? " ??? ??? ??? ???).

??? ???: ————— ??? ??? ???

???-??? ???:

??? ??? ??? ??? ??? ???

??? ??? ??? ??? ??? ??? ???, ??? ??? ??? (? ???, ??? ??? ???)??? ??? ??? ??? ??? ??? …

??? ??? ??? ??? ??? ??? — ??? ?? ??? ???, ??? ??? ??? … ??? ??? ??? ??? ??? ??? ??? ???, ??? ??? ??? ??? ??? ??? ??? ??? ???? ??? ?? ??? (?? ??? ???).

??? ??? ??? ??? ??? ??? ???? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? ??? (???) ??? … ??? ??? ??? ?? ??? ???? ???, ??? ??? ??? ???,? ??? ???? ??? ??? …

??? ??? ??++ ??? ??? ??? ??? ?? ??? ??? ???? ?? … ??? ??? ??? ??? ??? ??? ?? ??? ??? ??? ??? …

Глава I.

Системи підтримки прийняття решений.

1. Система Paradox.

Paradox представляє з себе реляционную базі даних, розроблену формою Borland. Ця база даних призначена як непрофесіоналів, які мають виконувати завдання типу картотеки тощо., оскільки має досить розвиненій і зрозумілою системою меню і підказки, так професійних програмістів, котрі розробляють складні інформаційні системи, використовуючи у своїй мову запитів QBE чи мову розробки додатків PAL. Крім версій під DOS, розроблена версія Paradox for Windows. Вимоги до технічних засобів і порівняльні характеристики по швидкодії див. Глава ??. Підтримуються такі типи полей:

— алфавитно-цифровые (строковые);

— числовые;

— денежные;

— дата;

— Memo — поля;

— графические;

— OLE — поля;

— BLOB (Binary Large OBject);

Причому, типи полів від Memo до Blob підтримуються лише у Paradox for Windows.

Строковые поля дозволяють утримувати будь-яку послідовність символів довжиною до 255 байт.

Числові поля можуть утримувати як цілі, і справжні числа з числов цифр до 15.

Грошові поля — теж як і числові з цими двома знаками після коми, окремий тип використовують тільки визначення Paradox-ом формату виведення даних полей.

Поля дати — відповідно містять дату й дозволяють проводити з себе відповідні операції порівняння і вычитания.

Мемо — поля містять будь-який текст необмеженої довжини (разом із атрибутами тексту — шрифт, накреслення, колір і др.).

У графічних полях можуть утримуватися графіка типу bitmat.

У OLE — полях можуть утримуватися об'єкти з інших додатків Windows.

У BLOB — полях можна зберігати будь-які дані про вибору користувача (насправді з погляду Paradox, Memo, Graphic і OLE — поля також є полями типу BLOB). Нині можливо зберігання об'єктів MultiMedia, креслення та інші приложения.

Досить зручним є також те, що з всіх типів полів існує значення «порожній полі «.

Також треба сказати тип даних «BLOB », т.к. в полях подібного типу можна зберігати будь-які дані довільного розміру, що вигідно відрізняється від MEMO-полей в dBASE і Clipper, що дозволяють зберігати лише сам віршик, та й обмеженого про «ема (4K).

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

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

Функції маніпулювання даними можна розділити ми такі досить стандартні группы:

— роботу з таблицями;

— роботу з окремими записями;

— підготовки отчетов;

— роботу з запросами;

— роботу з сетью;

— роботу з макросами;

— роботи з ділової графикой.

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

Функції роботи з записами — стандартні (додати, видалити, отредактировать).

Зручними засобами має генератор звітів — форму звіту можна «намалювати «на екрані й одержати фактично те, що ви бачите. Генератор звітів дозволяє створювати як звітів у «стандартної «(табличній) формі, і звіт у вільному формі (зокрема. наліпки, ділові листи тощо.), виробляти угруповання звіту по значенням полів (причому кількох рівнів вкладеності), використовувати вычисляемые поля.

Функції запитів реалізовані на реляционном мові QBE, причому звіти можна формувати і з запитальним формам. У Paradox for Windows побудова запитів ще более.

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

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

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

Система ділової графіки дозволяє за таблицями будувати до шести функцій як різноманітних діаграм і графиков.

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

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

типи if — then — else, цикли, перемінні, оператори вводу-виводу, додаткові математичні і статистичні функції, можливість створення процедур і бібліотек процедур) і коштами доступу до продукту фірми Borland — SQL-link. Засобами Pal можна користувальні меню, вікна и.

інші радощі для недосвідченого користувача, котрій картинка важливіше, ніж содержание.

У системі є отладчик, з допомогою якого досить зручно налагоджувати програми на PAL. На жаль, до роботи програм на PAL необхідна або система Paradox, або відповідний модуль виконання, тобто. проблематичною стає можливість поширення програм (кожен користувач повинен придбати відповідний Run-time модуль виспівати программ.

За вищезгаданими показниками швидкодії система перебуває у перших лавах серед собі подібних.

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

Система підтримує доступом до БД на сервері через мережу типу Novell, 3Com, Starlan, Banyan, і навіть іншими, сумісними з NetBios і відданість забезпечує необхідну блокування даних на рівні таблиць, і лише на рівні окремих записів. Paradox for Windows дозволяє працювати з усіма типами мереж, підтримуваних Windows. Система має і цю корисну особливість, як визначити під час роботи, змінювалися чи дані в таблицях, яких мають доступ кілька користувачів одночасно, хоча й збільшує навантаження на мережу і може створити певні проблеми були за наявності значної частини користувачів .

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

Є кошти експорту й імпорту даних із/у формат Qattro/Pro, 1−2-3, Symphony, dBase, VisiCalc, а системі Paradox for Windows можливо працювати з файлами dBase без преобразования.

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

засоби захисту даних від несанкціонованого доступу. Усе це дозволяє будувати складні докладання, працюють у мережі із багатьма користувачами. Проте відсутність одержати виконуваний модуль накладає певні обмеження на стала вельми поширеною розроблених програм (хоча Run-Time модуль коштує дешево, все-таки психологічно краще купити одну чи кілька програм в однієї виготовлювача, ніж зв’язуватися з кількома) А робота фактично на режимі інтерпретації PAL хоч та практично позначається при побудові складних информационныо-поисковых систем, у яких час до пошуку даних значно довше виконання розрахунків, але накладає певні обмеження на системи, у яких крім завдань пошуку стоять досить складні завдання обробки даних. Але Paradox for Windows дозволяє подолати це обмеження, т.к. у ньому можливо мати доступом до функцій, написаних на звичайних мовами програмування і зібрані в Прохаськовому динамічні бібліотеки (DDL). Отже можна користуватися цією можливістю, хоча перенесення програм, у середу Windows (у цьому числе.

і СУБД) роботу цих програм року ускоряет.

На користь вибору даної системи нашій завдання можуть бути такі чинники (наверное):

— програмування мовою програмування PAL дає змогу провадити досить складну обробку даних, дозволяє вживати розвинені кошти діалог із користувачем;

— дані в БД зберігаються у їх природному вигляді, що дозволяє швидкість оброблення і зменшити необхідне зберігання даних пространство;

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

— можливість мережного взаємодії дає змогу провадити подальше розширення системи рівня інститути з підключенням інших підсистем (скажімо, УэО, деканат тощо.) забезпечуватиме необхідну у межах подібних систем захист данных;

— багаті спроби з експорту і імпорту данных;

— можливість роботи з Windows;

— досить прості, але потужні кошти на побудови запитів до бази данных.

Хоча, звісно, вищевказані обмеження (неможливість отримати .ЕХЕ — файл і інтерпретатор) — це задля нас явні минусы.

Глава IV.

Особливості объектно-ориентированного анализа.

Під час розробки даної курсової роботи використали объектно-ориентированный підхід до визначення даної програми. Проектування відбувалося наступним образом:

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

2. До кожного об'єкта склалася модель станів, яка відбивала події та стану, у яких міг перебувати об'єкт, тобто. його життєвий цикл. Для кількох об'єктів був моделі станів. Це з тим, що роки поведінка даних об'єктів є суто статичним і зазнає значних змін. Навпаки, об'єкти, мають динамічний поведінка були повно відбито на моделях станів. Особливість представлених моделей станів у тому, що у них представлені події та дії, які виникають у разі виникнення первых.

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

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

5. Всім об'єктів склалася таблиця всіх можливих подій объектов.

6. До кожного дії в кожного певного об'єкта склалася ДПДД, відбиває послідовність дій, які виникають за певному дії.

Інформаційна модель.

Модель станів для об'єкта «Операції над БД».

Модель станів для об'єкта «Введення данных».

Модель взаємодії объектов.

Таблиця переходів в состояния.

для об'єкта «Операції над БД».

Состояние.

O1.

O2.

O3.

O4.

O5.

O6.

O7.

O8.

O9.

Инициализация.

;

;

;

;

;

;

;

Создание.

;

;

;

;

;

;

;

;

Открытие.

;

;

;

;

;

;

;

Неуспех.

;

;

;

;

;

;

;

;

Закрытие.

;

;

;

;

;

;

;

;

Редактирование.

;

;

;

;

;

;

;

;

Обновление.

;

;

;

;

;

;

;

Введення в базу.

;

;

;

;

;

;

;

;

Схранение.

;

;

;

;

;

;

;

;

Таблиця переходів в состояния.

для об'єкта «Введення данных».

Состояние.

В1.

В2.

В3.

В4.

В5.

В6.

Инициализация.

;

;

;

;

;

Відключення редактирования.

;

;

;

;

;

Формування пошуку, фильт., сортир.,.

;

;

;

;

;

Формування групп.

;

;

;

;

;

Просмотр

Перед печ.

Печать.

;

;

;

;

;

;

Список событий.

Метка.

Значение.

Дані события.

Источник.

Предназначение.

О1.

Инициализация.

ID Основний интерфейс. ID Операции.

Основний интерфейс.

Операции.

О2.

Створення БД.

ID Основний интерфейс. ID Операции.Создание.

Операция.

Создание.

О3.

Відкриття БД.

ID Основний интерфейс. ID Операции.Открытие.

Операция.

Открытие.

О4.

Неуспех.

ID Основний интерфейс. ID Операции.Открытие.Статус.

Операция.

Статус.

О5.

Закриття БД.

ID Основний интерфейс. ID Операции.Закрытие.

Операция.

Закрытие.

О6.

Редагування БД.

ID Основний интерфейс. ID Операции.Редактирование.

Операция.

Редактирование.

О7.

Оновлення БД.

ID Основний интерфейс. ID Операции.Обновление.

Операция.

Обновление.

О8.

Введення в БД.

ID Основний интерфейс. ID Операции.

Операция.

Редактирование.

О9.

Збереження БД.

ID Основний интерфейс. ID Операции.Сохранение.

Операция.

Сохранение.

В1.

Инициализация.

ID Основний интерфейс. ID Операції.

Основний интерфейс.

База данных.

В2.

Відключення редактирования.

ID Основний интерфейс. ID Операции.

Операция.

Перехід в основний интерфейс.

В3.

Формування пошуку, фільтра, сортировки.

ID Основний интерфейс. ID Операции.ID.

Основний интерфейс.

Формування фильтра.

В4.

Формування групп.

ID Основний интерфейс. ID Операции.

Основний интерфейс.

Формировать.

В5.

Перегляд перед печатью.

ID Основний интерфейс. ID Операции.ID.

Основний интерфейс.

Перегляд учащихся.

В6.

Печать.

ID Основний интерфейс. ID Операции.ID.

Основний интерфейс.

Учащихся.

ДПДД для стану Инициализация.

об'єкта «Операції над БД».

ДПДД для стану Створення базы.

об'єкта «Операції над БД».

ДПДД для стану Відкриття базы.

об'єкта «Операції над БД».

ДПДД для стану Редагування базы.

об'єкта «Операції над БД».

ДПДД для стану Закриття базы.

об'єкта «Операції над БД».

ДПДД для стану Збереження БД.

об'єкта «Операції над БД».

ДПДД для стану Неуспешное відкриття БД.

об'єкта «Операції над БД».

ДПДД для стану Оновлення БД.

об'єкта «Операції над БД».

Текст программы.

У лістинг програми, був включений той код, який був написаний процесі вироблення і включення тих рядків коду, хто був автоматично сгенерированы З++ Builder:

1. Заголовкові файлы:

Kur1.h:

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

#ifndef kur1H.

#define kur1H.

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

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include «Grids.hpp «.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

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

class TForm1: public TForm.

{.

__published: // IDE-managed Components.

TMainMenu *MainMenu1;

TMenuItem *N1;

TMenuItem *N3;

TMenuItem *N4;

TMenuItem *N10;

TMenuItem *N14;

TMenuItem *N16;

TMenuItem *N17;

TOpenDialog *OpenDialog1;

TSaveDialog *SaveDialog1;

TMenuItem *N18;

TMenuItem *N20;

TPrintDialog *PrintDialog1;

TPrinterSetupDialog *PrinterSetupDialog1;

TStatusBar *StatusBar1;

TPanel *Panel1;

TDBGrid *DBGrid1;

TDBNavigator *DBNavigator1;

TMenuItem *N2;

TMenuItem *N5;

TMenuItem *N6;

TBitBtn *BitBtn1;

TBitBtn *BitBtn2;

TBitBtn *BitBtn3;

TMenuItem *N7;

void __fastcall N10Click (TObject *Sender);

void __fastcall N17Click (TObject *Sender);

void __fastcall N14Click (TObject *Sender);

void __fastcall N5Click (TObject *Sender);

void __fastcall N2Click (TObject *Sender);

void __fastcall N16Click (TObject *Sender);

void __fastcall N20Click (TObject *Sender);

void __fastcall BitBtn1Click (TObject *Sender);

void __fastcall BitBtn2Click (TObject *Sender);

void __fastcall BitBtn3Click (TObject *Sender);

void __fastcall N7Click (TObject *Sender);

void __fastcall N4Click (TObject *Sender);

private: // User declarations.

public: // User declarations.

// AnsiString file2;

__fastcall TForm1(TComponent* Owner);

};

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

extern TForm1 *Form1;

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

#endif.

Datam.h:

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

#ifndef DatamH.

#define DatamH.

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

#include.

#include.

#include.

#include.

#include.

#include.

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

class TDM1: public TDataModule.

{.

__published: // IDE-managed Components.

TDataSource *DataSource1;

TTable *Table1;

TQuery *Query1;

TDataSource *DataSource2;

private: // User declarations.

public: // User declarations.

__fastcall TDM1(TComponent* Owner);

};

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

extern TDM1 *DM1;

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

#endif.

filename.h:

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

#ifndef filenameH.

#define filenameH.

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

#include.

#include.

#include.

#include.

#include.

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

class TForm6: public TForm.

{.

__published: // IDE-managed Components.

TEdit *Edit1;

TLabel *Label2;

TBevel *Bevel1;

TButton *Button1;

TButton *Button2;

void __fastcall Button1Click (TObject *Sender);

private: // User declarations.

public: // User declarations.

__fastcall TForm6(TComponent* Owner);

};

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

extern TForm6 *Form6;

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

#endif.

filter.h:

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

#ifndef filterH.

#define filterH.

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

#include.

#include.

#include.

#include.

#include.

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

class TForm5: public TForm.

{.

__published: // IDE-managed Components.

TBevel *Bevel1;

TLabel *Label1;

TLabel *Label2;

TComboBox *ComboBox1;

TEdit *Edit1;

TButton *Button1;

TButton *Button2;

TButton *Button3;

void __fastcall Button3Click (TObject *Sender);

private: // User declarations.

public: // User declarations.

__fastcall TForm5(TComponent* Owner);

};

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

extern TForm5 *Form5;

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

#endif.

Findcust.h:

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

#ifndef filterH.

#define filterH.

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

#include.

#include.

#include.

#include.

#include.

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

class TForm5: public TForm.

{.

__published: // IDE-managed Components.

TBevel *Bevel1;

TLabel *Label1;

TLabel *Label2;

TComboBox *ComboBox1;

TEdit *Edit1;

TButton *Button1;

TButton *Button2;

TButton *Button3;

void __fastcall Button3Click (TObject *Sender);

private: // User declarations.

public: // User declarations.

__fastcall TForm5(TComponent* Owner);

};

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

extern TForm5 *Form5;

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

#endif.

Repopt.h:

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

#ifndef ReportH.

#define ReportH.

//——————————————————————————————————————.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

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

class TQRListForm: public TForm.

{.

__published:

TQuickReport *QuickReport;

TQRBand *Title;

TQRBand *PageHeader;

TQRBand *Detail;

TQRBand *PageFooter;

TQRLabel *QRLabel4;

TQRLabel *QRLabel1;

TQRLabel *QRLabel2;

TQRLabel *QRLabel3;

TQRLabel *QRLabel5;

TQRLabel *QRLabel6;

TQRGroup *QRGroup1;

TQRSysData *QRSysData1;

TQRShape *QRShape1;

TQRDBText *QRDBText3;

TQRDBText *QRDBText1;

TQRDBText *QRDBText9;

TQRDBText *QRDBText10;

TQRDBText *QRDBText2;

void __fastcall QRGroup1NeedData (AnsiString &Value);

private:

public:

virtual __fastcall TQRListForm (TComponent* AOwner);

};

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

extern TQRListForm *QRListForm;

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

#endif.

RichАbt.h:

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

#ifndef RichAbtH.

#define RichAbtH.

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

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

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

class TForm2: public TForm.

{.

__published:

TImage *ProgramIcon;

TButton *OKButton;

public:

virtual __fastcall TForm2(TComponent *Owner);

};

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

extern TForm2 *Form2;

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

#endif.

Sort.h:

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

#ifndef SortH.

#define SortH.

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

#include.

#include.

#include.

#include.

#include.

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

class TForm4: public TForm.

{.

__published: // IDE-managed Components.

TBevel *Bevel1;

TComboBox *ComboBox1;

TLabel *Label1;

TButton *Button1;

TButton *Button2;

void __fastcall ComboBox1Change (TObject *Sender);

private: // User declarations.

public: // User declarations.

__fastcall TForm4(TComponent* Owner);

};

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

extern TForm4 *Form4;

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

#endif.

Unit1.h:

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

#ifndef Unit1H.

#define Unit1H.

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

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include.

#include «Grids.hpp «.

#include.

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

class TForm3: public TForm.

{.

__published: // IDE-managed Components.

TLabel *Label1;

TLabel *Label2;

TLabel *Label3;

TLabel *Label4;

TDBEdit *DBEdit3;

TDBEdit *DBEdit6;

TLabel *Label6;

TLabel *Label7;

TDBEdit *DBEdit8;

TButton *Button1;

TButton *Button2;

TButton *Button5;

TLabel *Label5;

TDBEdit *DBEdit4;

TDBEdit *DBEdit1;

TDBEdit *DBEdit2;

TLabel *Label8;

TDBEdit *DBEdit5;

TBitBtn *BitBtn1;

TBitBtn *BitBtn2;

TButton *Button3;

TStatusBar *StatusBar1;

void __fastcall FormCreate (TObject *Sender);

void __fastcall Button1Click (TObject *Sender);

void __fastcall Button2Click (TObject *Sender);

void __fastcall Button6Click (TObject *Sender);

void __fastcall Button4Click (TObject *Sender);

void __fastcall Button5Click (TObject *Sender);

void __fastcall Table1AfterOpen (TDataSet *DataSet);

void __fastcall Button3Click (TObject *Sender);

private: // User declarations.

public: // User declarations.

__fastcall TForm3(TComponent* Owner);

};

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

extern TForm3 *Form3;

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

#endif.

2. Файли з методами:

Project1.cpp:

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

#include.

#pragma hdrstop.

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

USEFORM («kur1.cpp », Form1);

USEFORM («Richabt.cpp », Form2);

USERES («Project1.res »);

USEFORM («Report.cpp », QRListForm);

USEDATAMODULE («Datam.cpp », DM1);

USEFORM («Unit1.cpp », Form3);

USEFORM («Findcust.cpp », fmFindCust);

USEFORM («Sort.cpp », Form4);

USEFORM («filter.cpp », Form5);

USEFORM («filename.cpp », Form6);

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

WINAPI WinMain (HINSTANCE, HINSTANCE, LPSTR, int).

{.

try.

{.

Application->Initialize ();

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

Application->CreateForm (__classid (TQRListForm), &QRListForm);

Application->CreateForm (__classid (TDM1), &DM1);

Application->CreateForm (__classid (TForm3), &Form3);

Application->CreateForm (__classid (TfmFindCust), &fmFindCust);

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

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

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

Application->Run ();

}.

catch (Exception &exception).

{.

Application->ShowException (&exception);

}.

return 0;

}.

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

Kur1.cpp:

#include.

#include.

#pragma hdrstop.

#include «kur1.h «.

#include «RichAbt.h «.

#include «Datam.h «.

#include «Report.h «.

#include «Unit1.h «.

#include «Findcust.h «.

#include «Sort.h «.

#include «filter.h «.

#include «filename.h «.

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

#pragma link «Grids «.

#pragma resource «*.dfm «.

TForm1 *Form1;

AnsiString ff;

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

__fastcall TForm1: TForm1(TComponent* Owner).

: TForm (Owner).

{.

ff=Form1->Caption;

}.

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

void __fastcall TForm1: N10Click (TObject *Sender).

{.

Form1->Caption=ff;

Form6->ShowModal ();

N2->Enabled=true;

N20->Enabled=true;

N5->Enabled=true;

N14->Enabled=true;

N16->Enabled=true;

Form1->Caption =Form1->Caption+ «-> «+DM1->Table1->TableName;

}.

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

void __fastcall TForm1: N17Click (TObject *Sender).

{.

Close ();

}.

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

void __fastcall TForm1: N14Click (TObject *Sender).

{.

QRListForm->QuickReport->Print ();

}.

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

void __fastcall TForm1: N5Click (TObject *Sender).

{.

DBGrid1->Visible=false;

DBNavigator1->Enabled=false;

BitBtn1->Enabled=false;

BitBtn2->Enabled=false;

BitBtn3->Enabled=false;

}.

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

void __fastcall TForm1: N2Click (TObject *Sender).

{.

DBGrid1->Visible=true;

DBNavigator1->Enabled=true;

BitBtn1->Enabled=true;

DBGrid1->ReadOnly=true;

BitBtn2->Enabled=true;

BitBtn3->Enabled=true;

}.

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

void __fastcall TForm1: N16Click (TObject *Sender).

{.

QRListForm->QuickReport->Preview ();

}.

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

void __fastcall TForm1: N20Click (TObject *Sender).

{.

Form3->ShowModal ();

DM1->Table1->Refresh ();

}.

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

void __fastcall TForm1: BitBtn1Click (TObject *Sender).

{.

DBGrid1->DataSource=DM1->DataSource2;

fmFindCust->ShowModal ();

if (fmFindCust->ModalResult == mrOk).

DM1->Table1->GotoCurrent (DM1->Table1);

}.

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

void __fastcall TForm1: BitBtn2Click (TObject *Sender).

{.

DBGrid1->DataSource=DM1->DataSource1;

Form4->ShowModal ();

if (Form4->ModalResult == mrOk).

DM1->Table1->GotoCurrent (DM1->Table1);

}.

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

void __fastcall TForm1: BitBtn3Click (TObject *Sender).

{.

DBGrid1->DataSource=DM1->DataSource1;

Form5->ShowModal ();

if (Form4->ModalResult == mrOk).

DM1->Table1->GotoCurrent (DM1->Table1);

}.

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

void __fastcall TForm1: N7Click (TObject *Sender).

{.

if (OpenDialog1->Execute ()).

{.

Form1->Caption=ff;

N2->Enabled=true;

N20->Enabled=true;

N5->Enabled=true;

N14->Enabled=true;

N16->Enabled=true;

if (DM1->Table1->Active == true).

DM1->Table1->Active = false;

DM1->Table1->DatabaseName = ExtractFilePath (OpenDialog1->FileName);

DM1->Table1->TableName = ExtractFileName (OpenDialog1->FileName);

DM1->Table1->Active = true;

Form1->Caption =Form1->Caption+ «-> «+DM1->Table1->TableName;

}.

}.

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

void __fastcall TForm1: N4Click (TObject *Sender).

{.

Form2= new TForm2(Application);

Form2->ShowModal ();

delete Form2;

}.

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

Datam.cpp:

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

#include.

#pragma hdrstop.

#include «Datam.h «.

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

#pragma resource «*.dfm «.

TDM1 *DM1;

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

__fastcall TDM1: TDM1(TComponent* Owner).

: TDataModule (Owner).

{.

}.

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

filename.cpp:

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

#include.

#pragma hdrstop.

#include «filename.h «.

#include «Datam.h «.

#include «kur1.h «.

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

#pragma resource «*.dfm «.

TForm6 *Form6;

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

__fastcall TForm6: TForm6(TComponent* Owner).

: TForm (Owner).

{.

}.

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

void __fastcall TForm6: Button1Click (TObject *Sender).

{.

DM1->Table1->Active=false;

DM1->Query1->Active=false;

if (Edit1->Text == «»).

Edit1->Text= «ITF.db » ;

TFileStream *Old = new TFileStream («baza1.db », fmOpenRead);

TFileStream *New = new TFileStream (Edit1->Text, fmCreate);

New->CopyFrom (Old, Old->Size);

delete Old; delete New;

DM1->Table1->TableName=Edit1->Text;

DM1->Query1->Active=true;

DM1->Table1->Active=true;

}.

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

filter.cpp:

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

#include.

#pragma hdrstop.

#include «filter.h «.

#include «Datam.h «.

#include «kur1.h «.

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

#pragma resource «*.dfm «.

TForm5 *Form5;

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

__fastcall TForm5: TForm5(TComponent* Owner).

: TForm (Owner).

{.

}.

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

void __fastcall TForm5: Button3Click (TObject *Sender).

{.

AnsiString filter;

filter=Edit1->Text;

if (ComboBox1->Text ≠ «»){.

if (Edit1->Text ≠ «»){.

if (ComboBox1->Text == «L.L.+. »){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Where A= «» +filter+ «» «);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «Lръєы№ЄхЄ «){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Where W= «» +filter+ «» «);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «TяхЎшры№эюёЄ№ «){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Where Q= «» +filter+ «» «);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «+Ёєяяр »){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Where P. S= «» +filter+ «» «);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «TЁ.+рыы »){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Where Z>= «+filter);

DM1->Query1->Open ();

DM1->Table1->Open ();}}.

else.

{.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza »);

DM1->Query1->Open ();

DM1->Table1->Open ();}}.

else{.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza »);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

DM1->Table1->Refresh ();}.

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

findcust.cpp:

#include.

#pragma hdrstop.

#include «FindCust.h «.

#include «Datam.h «.

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

#pragma resource «*.dfm «.

TfmFindCust* fmFindCust;

char field[2]={ «A », «Z «};

char w1;

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

__fastcall TfmFindCust: TfmFindCust (TComponent* Owner).

: TForm (Owner).

{.

}.

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

void __fastcall TfmFindCust: ComboBox1Change (TObject *Sender).

{.

if (ComboBox1->Text == «L.L.+. »).

w1=field[0];

else if (ComboBox1->Text == «TЁ.+рыы »).

{w1=field[1];

//Edit1->Text = «» ;

}.

else.

ComboBox1->Text = «L.L.+. » ;

w1=field[0];

}.

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

void __fastcall TfmFindCust: Edit1Change (TObject *Sender).

{.

bool Success;

Set flags;

flags Table1->Locate (w1,Edit1->Text, flags);

DM1->Table1->Refresh ();

}.

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

Report.cpp:

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

#include.

#pragma hdrstop.

#include «Report.h «.

#include «Datam.h «.

#include «kur1.h «.

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

#pragma resource «*.dfm «.

TQRListForm *QRListForm;

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

// QuickReport simple list.

// - Connect a datasource to the QuickReport component.

// - Put QRDBText components on the Detail band.

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

__fastcall TQRListForm: TQRListForm (TComponent* AOwner).

: TForm (AOwner).

{.

}.

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

void __fastcall TQRListForm: QRGroup1NeedData (AnsiString &Value).

{.

//QuickReport->NewPage ();

}.

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

RichAbt.cpp:

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

//Borland C++Builder.

//Copyright (з) 1987, 1997 Borland International Inc. All Rights Reserved.

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

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

#include.

#pragma hdrstop.

#include «RichAbt.h «.

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

#pragma resource «*.dfm «.

TForm2 *Form2;

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

__fastcall TForm2: TForm2(TComponent *Owner).

: TForm (Owner).

{.

}.

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

Sort.cpp:

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

#include.

#pragma hdrstop.

#include «Sort.h «.

#include «Datam.h «.

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

#pragma resource «*.dfm «.

TForm4 *Form4;

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

__fastcall TForm4: TForm4(TComponent* Owner).

: TForm (Owner).

{.

}.

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

void __fastcall TForm4: ComboBox1Change (TObject *Sender).

{.

if (ComboBox1->Text == «L.L.+. »){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Order by A asc »);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «Lръєы№ЄхЄ «){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Order by W asc »);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «TяхЎшры№эюёЄ№ «){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Order by Q asc »);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «+Ёєяяр »){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Order by P. S asc »);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

else if (ComboBox1->Text == «Lръєы№ЄхЄ «){.

DM1->Query1->SQL->Clear ();

DM1->Query1->SQL->Append («Select * From baza Order by Z asc »);

DM1->Query1->Open ();

DM1->Table1->Open ();}.

DM1->Table1->Refresh ();

}.

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

Unit1.cpp:

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

#include.

#pragma hdrstop.

#include «Unit1.h «.

#include «Datam.h «.

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

#pragma link «Grids «.

#pragma resource «*.dfm «.

TForm3 *Form3;

char predmet1[9]={ «H », «N », «U », «J », «M », «I », «K », «1 », «O «};

char predmet2[9]={ «E », «D », «З », «R », «F », «V », «T », «G », «B «};

double ozenka1[12];

int i=0;

double r;

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

__fastcall TForm3: TForm3(TComponent* Owner).

: TForm (Owner).

{.

}.

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

void __fastcall TForm3: FormCreate (TObject *Sender).

{.

//-юсрты хь эютє¦ чряшё№ т срчє.

DM1->Table1->Append ();

}.

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

void __fastcall TForm3: Button1Click (TObject *Sender).

{.

if (DM1->Table1->State == dsInsert||DM1->Table1->State == dsEdit).

DM1->Table1->Post ();

DM1->Table1->Append ();

for (i=0;i.

predmet1[i]=0;}.

i=0;

Button5->Enabled=true;

Button2->Enabled=true;

DBEdit8->DataField= «x » ;

DBEdit5->DataField= «y » ;

DBEdit5->ReadOnly=false;

DBEdit8->ReadOnly=false;

DBEdit1->ReadOnly=false;

DBEdit2->ReadOnly=false;

DBEdit4->ReadOnly=false;

DBEdit6->ReadOnly=false;

DBEdit4->Visible=false;

Label8->Visible=false;

DM1->Table1->Refresh ();

}.

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

void __fastcall TForm3: Button6Click (TObject *Sender).

{.

if (!DM1->Table1->Bof).

DM1->Table1->Prior ();

i=10;

}.

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

void __fastcall TForm3: Button4Click (TObject *Sender).

{.

if (!DM1->Table1->Eof).

DM1->Table1->Next ();

i=10;

}.

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

void __fastcall TForm3: Button2Click (TObject *Sender).

{.

DM1->Table1->Delete ();

DM1->Table1->Refresh ();

if (DM1->Table1->Eof && DM1->Table1->Bof).

Button2->Enabled=false;

DBEdit4->Visible=false;

Label8->Visible=false;

}.

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

void __fastcall TForm3: Button5Click (TObject *Sender).

{.

if (i.

{.

int Size = DBEdit8->GetTextLen ();

char *name = new char[++Size];

DBEdit8->GetTextBuf (name, Size);

DBEdit8->Text = name;

r=atoi (name);

ozenka1[i]=r;

delete name;

r=0;

DBEdit5->DataField=predmet1[i];

DBEdit8->DataField=predmet2[i];

i++;

Button3->Enabled=true;

}.

else {if (i==9){.

int Size = DBEdit8->GetTextLen ();

char *name = new char[++Size];

DBEdit8->GetTextBuf (name, Size);

DBEdit8->Text = name;

r=atoi (name);

ozenka1[i]=r;

delete name;

r=0;}.

ozenka1[10]=(ozenka1[0]+ozenka1[1]+ozenka1[2]+ozenka1[3]+ozenka1[4]+ozenka1[5]+ozenka1[6]+ozenka1[7]+ozenka1[8]+ozenka1[9])/10;

DBEdit4->SelText=ozenka1[10];

DM1->Table1->FieldValues[ «Z «] = ozenka1[10];

Button5->Enabled=false;

Button3->Enabled=false;

DBEdit5->ReadOnly=true;

DBEdit8->ReadOnly=true;

DBEdit1->ReadOnly=true;

DBEdit2->ReadOnly=true;

DBEdit4->ReadOnly=true;

DBEdit6->ReadOnly=true;

DBEdit4->Visible=true;

Label8->Visible=true;

}}.

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

void __fastcall TForm3: Table1AfterOpen (TDataSet *DataSet).

{.

if (DM1->Table1->Eof && DM1->Table1->Bof).

Button2->Enabled=false;

}.

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

void __fastcall TForm3: Button3Click (TObject *Sender).

{.

if (i>=0).

{i—;

DBEdit5->DataField=predmet1[i];

DBEdit8->DataField=predmet2[i];

}.

else.

Button3->Enabled=false;

Button5->Enabled=true;}.

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

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

1. Трахтенгерц Э. А. «Комп'ютерна підтримка прийняття решений».

2. Том Сван «Програмування в Borland З++ 5.02».

3. «Объектно-ориентированный анализ».

4. Мет Теллес «Borland З++ Builder».

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