Реферат: Система рейтингового контроля знаний

Приднестровский Государственный Университет

им. Т. Г. Шевченко


 

Кафедра АСОИиУ Курсовая работа

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


на тему: 

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


Работу выполнили:                                                 Работупроверили:

студент ИТФ –96В                                                 преподаватели:     

Кольцов Е.С.                                                             ГалюшинаО.В.


Тирасполь 1999 г.Содержание:

Задание на курсовую работу

1.1Задание                                                                                                                                    4

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

Введение

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

1. Система Paradox

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

Информационная модель                                                                                                                 21

Модель состояний для объекта «Операции над БД»                                                                    22

Модель состояний для объекта «Ввод в базу»                                                                              25

Модель взаимодействия объектов                                                                                                  26

Таблица переходов в состояния для объекта «Операции над БД»                                             27

Таблица переходов в состояния для объекта «Ввод в бузу»                                                        28

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

ДПДД для состояния «Инициализация» объекта «Операции над БД»                                      40

ДПДД для состояния «Создание  БД» объекта «Операции над БД»                                          40

ДПДД для состояния «Открытие  БД» объекта «Операции над БД»                                         41

ДПДД для состояния «Редактирование  БД» объекта «Операции надБД»                              41

ДПДД для состояния «Закрытие  БД» объекта «Операции над БД»                                          42

ДПДД для состояния «Ввод данных» объекта «Операции над БД»                                          42

ДПДД для состояния «Сохранение  БД» объекта «Операции над БД»                                     43

ДПДД для состояния «Неуспешное открытие БД»  объекта«Операции над БД»                   43

ДПДД для состояния «Обновление  БД» объекта «Операции над БД»                                     44

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

Список использованной литературы                                                                                             77

Задание на курсовую работу

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

тема:                              

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

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 forWindows.

    Строковые поля позволяют содержать любую последовательность символов длиной до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.    Для каждого действия у каждогоопределенного объекта была сформирована ДПДД, отражающая последовательностьдействий, возникающих при определенном действии.          

Информационная модель

/>


Модель состояний для объекта «Операции над БД»

/>


7

Модель состояний для объекта «Ввод данных»

/>


/>Модель взаимодействия объектов

/>


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

для объекта «Операции над БД»

 

Состояние

O1

O2

O3

O4

O5

O6

O7

O8

O9

Инициализация - 2 3 - - - - - - Создание - - - - - 6 - - - Открытие - - - 4 - 6 - - - Неуспех - - - - 5 - - - - Закрытие 1 - - - - - - - - Редактирование - - - - - - 7 - - Обновление - - - - - 6 - 8 - Ввод в базу - - - - - - - - 9 Схранение 1 - - - - - - - - Таблица переходов в состояния

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

 

Состояние

В1

В2

В3

В4

В5

В6

Инициализация - 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 <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\Menus.hpp>

#include <vcl\Dialogs.hpp>

#include <vcl\ExtCtrls.hpp>

#include <vcl\ComCtrls.hpp>

#include <vcl\DBGrids.hpp>

#include «Grids.hpp»

#include <vcl\Buttons.hpp>

#include <vcl\DBCtrls.hpp>

#include <vcl\Mask.hpp>

#include <vcl\DB.hpp>

#include <vcl\DBTables.hpp>

#include <vcl\QuickRep.hpp>

#include <vcl\system.hpp>

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

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 <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\DB.hpp>

#include <vcl\DBTables.hpp>

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

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 <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\ExtCtrls.hpp>

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

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 <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\ExtCtrls.hpp>

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

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 <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\ExtCtrls.hpp>

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

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 <vcl\ExtCtrls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Quickrep.hpp>

#include <vcl\Dialogs.hpp>

#include <vcl\Forms.hpp>

#include <vcl\Controls.hpp>

#include <vcl\Graphics.hpp>

#include <vcl\Classes.hpp>

#include <vcl\SysUtils.hpp>

#include <vcl\Messages.hpp>

#include <vcl\Windows.hpp>

#include <vcl\System.hpp>

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

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 <ExtCtrls.hpp>

#include <StdCtrls.hpp>

#include <Dialogs.hpp>

#include <Forms.hpp>

#include <Controls.hpp>

#include <Graphics.hpp>

#include <Classes.hpp>

#include <SysUtils.hpp>

#include <Messages.hpp>

#include <Windows.hpp>

#include <System.hpp>

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

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 <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\ExtCtrls.hpp>

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

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 <vcl\Classes.hpp>

#include <vcl\Controls.hpp>

#include <vcl\StdCtrls.hpp>

#include <vcl\Forms.hpp>

#include <vcl\DBTables.hpp>

#include <vcl\DB.hpp>

#include <vcl\DBCtrls.hpp>

#include <vcl\Mask.hpp>

#include <vcl\Buttons.hpp>

#include <vcl\ComCtrls.hpp>

#include <vcl\DBGrids.hpp>

#include «Grids.hpp»

#include <vcl\ExtCtrls.hpp>

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

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 <vcl\vcl.h>

#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 <vcl\vcl.h>

#include <stdio.h>

#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 <vcl\vcl.h>

#pragma hdrstop

#include «Datam.h»

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

#pragma resource "*.dfm"

TDM1 *DM1;

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

__fastcall TDM1::TDM1(TComponent* Owner)

     : TDataModule(Owner)

{

}

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

filename.cpp:

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

#include <vcl\vcl.h>

#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 = newTFileStream(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 <vcl\vcl.h>

#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 * Frombaza Where A=\»"+filter+"\"");

  DM1->Query1->Open();

  DM1->Table1->Open();}

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

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

  DM1->Query1->SQL->Append(«Select * Frombaza Where W=\»"+filter+"\"");

  DM1->Query1->Open();

  DM1->Table1->Open();}

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

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

  DM1->Query1->SQL->Append(«Select * Frombaza Where Q=\»"+filter+"\"");

  DM1->Query1->Open();

  DM1->Table1->Open();}

  else if (ComboBox1->Text == "+Ёєяяр"){

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

  DM1->Query1->SQL->Append(«Select * Frombaza Where S=\»"+filter+"\"");

  DM1->Query1->Open();

  DM1->Table1->Open();}

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

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

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

  DM1->Query1->Open();

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

  else

  {

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

  DM1->Query1->SQL->Append(«Select * Frombaza „);

  DM1->Query1->Open();

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

  else{

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

  DM1->Query1->SQL->Append(“Select * Frombaza „);

  DM1->Query1->Open();

  DM1->Table1->Open();}

  DM1->Table1->Refresh();}

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

findcust.cpp:

#include <vcl.h>

#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<TLocateOption,0,1> flags;

    flags << loCaseInsensitive <<loPartialKey;

    TLocateOptions Options;

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

  DM1->Table1->Refresh();

}

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

Report.cpp:

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

#include <vcl.h>

#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 (c) 1987, 1997 Borland International Inc. AllRights Reserved.

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

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

#include <vcl.h>

#pragma hdrstop

#include «RichAbt.h»

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

#pragma resource "*.dfm"

TForm2 *Form2;

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

__fastcall TForm2::TForm2(TComponent *Owner)

 : TForm(Owner)

{

}

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

Sort.cpp:

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

#include <vcl\vcl.h>

#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 * Frombaza Order by A asc»);

  DM1->Query1->Open();

  DM1->Table1->Open();}

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

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

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

  DM1->Query1->Open();

  DM1->Table1->Open();}

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

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

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

  DM1->Query1->Open();

  DM1->Table1->Open();}

  else   if (ComboBox1->Text == "+Ёєяяр"){

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

  DM1->Query1->SQL->Append(«Select * Frombaza Order by S asc»);

  DM1->Query1->Open();

  DM1->Table1->Open();}

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

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

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

  DM1->Query1->Open();

  DM1->Table1->Open();}

  DM1->Table1->Refresh();

 }

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

Unit1.cpp:

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

#include <vcl\vcl.h>

#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','C','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<=9;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<=8)

{

 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 C++ 5.02»

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

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

еще рефераты
Еще работы по информатике, программированию