База данных: подсистема «ЗАГС»

Курсовая работа

обеспечивающая работу с базой данных (файлами данных) называется системой управления базой данных (СУБД).

Следует обратить внимание, что вместо термина СУБД часто используется термин база данных, при этом файлы данных и СУБД рассматриваются как единое целое.

Информацию компьютерных баз данных обычно выводят на экран в виде таблиц. Поэтому часто вместо словосочетания «файл данных» используют словосочетание «таблица данных» или просто «таблица» .

Целью работы является разработка программы на С++ для обработки данных, представленных в виде таблиц базы данных. Программа должна корректно обрабатывать данные, представленные в виде таблиц с информацией о дисциплинах, преподавателях и студентах.

Программа будет использоваться для хранения данных и создания отчетов в области образования. Программа должна позволять по внесенным исходным данным производить подсчёты, используя вычисляемые поля. В программе должен быть реализован поиск по основным полям. Кроме дополнительных отчетов, программа должна содержать основной отчет по дисциплинам, содержащий полную информацию и результаты вычислений из вычисляемых полей.

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

Программа должна быть создана так, чтобы любой пользователь без труда мог разобраться во всех её функциях и возможностях. Следовательно, можно определить основные функции программы:

1. запоминать вводимые значения, показывать базу данных;

2. добавлять, редактировать данные;

3. осуществлять поиск в базе;

4. выдавать информацию по различным запросом;

5. удалять и сохранять изменения в базе;

6. сохранять всю информацию, а также иметь доступ к открытию информации;

1. Разработка концептуальной модели базы данных и диаграммы классов

Концептуальная модель базы данных — это высокоуровневая объектно-ориентированная модель предметной области, представляющая объектную область в виде набора объектов, обладающих определенными свойствами и находящимися в некоторых отношениях. Основная цель разработки высокоуровневой модели данных заключается в создании модели пользовательского восприятия данных и согласовании большого количества технических аспектов, связанных с проектированием базы данных. Концептуальная модель данных не привязана к конкретной физической реализации баз данных и не зависит от конкретной СУБД. Концептуальная модель создается на основе представлений о предметной области каждого типа пользователей, представляющих собой набор данных, необходимых пользователю для решения своих задач. Основные концепции модели включают такие понятия как сущность (объект), отношение (связь), типы сущностей, типы связей и атрибуты.

3 стр., 1483 слов

Этические и правовые аспекты информационной деятельности. Правовая ...

... и осуществления авторского права на программы для ЭВМ не требуется ее регистрация в какой-либо организации. Авторское право на программы для ЭВМ возникает автоматически при их создании. Для оповещения о своих правах разработчик программы ... к уже существующим. Правовая охрана информации Правовая охрана программ и баз данных. Правовая охрана программ для ЭВМ и баз данных впервые в полном объеме введена ...

Из описания предметной области извлечем все типы сущностей (пример):

  • Муж;
  • Жена;
  • ЗАГС;

Эти сущности взаимодействуют по следующей схеме (схема1):

Схема № 1 (структурная связь доминирующих таблиц)

Эти сущности должны быть представлены в виде таблиц. В программе должны содержаться три таблицы, две из которых соответствуют сущностям из описания предметной области, а одна является вспомогательной, данные из которой нужны для вычислений основной таблицы. Эта вспомогательная первая таблица содержит коэффициенты, используя которые программа производит расчёты полей.

Все поля данных таблиц соответствуют характеристикам этих таблиц. Они представлены в виде диаграммы классов.

Диаграмма классов — это набор статических , декларативных элементов модели . На такой диаграмме классы изображаются в виде прямоугольников, а статические (постоянные) отношения между ними — в форме дуг. Поддерживаются три основных типа отношений между классами:

  • ассоциации.
  • иерархии агрегирования и композиции.
  • иерархия обобщения/специализации Эта концепция хорошо показана на рисунке № 1.

Рисунок 1

2. Проектирование программы

Разработку программы я начала с создания главного меню с помощью компонентов MainMenu и ActionList. Сначала создаем шаблон меню с помощью компонента ActionList, в котором мы создаем пункты меню, указывая их имена, клавиши быстрого доступа к ним. Также в этом же компоненте можно указать картинки к данным кнопкам, связав компонент ActionList c компонентом ImageList, через его свойство Images.

Затем с помощью компонента MainMenu создаем главное меню, выбирая пункты меню из свойства Action. Таким образом, получаем меню, структура которого представлена следующим образом (рисунок № 2):

Рисунок № 2. Структура главного меню Далее создадим псевдоним (альянс), в котором будут храниться все наши таблицы. Псевдоним содержит всю информацию, необходимую для обеспечения доступа к базе данных. Эта информация сообщается только один раз при создании псевдонима. Существует несколько способов создания альянса. Воспользуемся встроенной в Borland Builder C++ программой BDE Administrator. Произведем команду Tools | bdeadmin.exe. Откроется окно программы, где необходимо нажать Object | New выбрать базу данных (в нашем случае Paradox), ввести имя, указать путь, т. е. папку, где будут хранится все таблицы этого альянса, и произвести команду Object | Apply как показано на рисунке№ 3.

Рисунок № 3. Окно программы BDE Administrator

Следующим шагом будет создание таблиц с помощью Database Desktop. Эта программа встроена в Borland Builder C++. С её помощью создадим нужные нам таблицы как видно на рисунке № 4.

24 стр., 11806 слов

Бакалаврская работа содержит страниц таблицы рисунков использованных источников

... весьма примитивными, съемка 9 земельных участков оставалась чисто линейной и проводилась с помощью верёвки и жезла. В дальнейшем система кадастра в разных странах развивалась в ...

Рисунок № 4. Структура таблицы «ЗАГС»

Далее мы видим структуру следующей таблицы. (Рисунок№ 5)

Рисунок № 5. Структура таблицы «Муж»

Структура следующей таблицы показана на рисунке № 6.

Рисунок № 6. Структура таблицы «Жена»

Создав таблицы, необходимо загрузить их в нашу программу. Это можно сделать используя ряд компонентов, но для начала создадим DataModule, на котором они будут размещены. Это делается с помощью команды File | New | Data Module. Разместим на нем три компонента Table и DataSource, как показано на рисунке № 8.

В компоненты Table загрузим созданные таблицы, используя свойства компонента Table — DatabaseName, в котором укажем имя альянса, и TableName, где запишем имя таблицы. Компоненты DataSource нужны для связи компонентов Тable с компонентом графического отображения таблиц на экране DBGreed, т. е. в свойстве DataSet компонента DataSource указываем соответствующий Table, а в свойстве DataSource компонента DBGreed указываем нужный DataSource.

В данной программе используется только один компонент DBGreed. При выборе в компоненте ListBox нужной таблицы, данная таблица и отображается в компоненте DBGreed.

Редактирование таблицы производится с помощью стандартных кнопок «Добавить», «Изменить», «Записать», «Отменить», «Удалить», которые используют встроенные функции языка С++ insert (), edit (), post (), cancel (), delete ().

Код использования этих функций и реализации кнопок приведен в приложении. Кнопки перемещения по таблице используют функции last (), first (), next (), prior ().

Поиск в таблицах с фильтрацией производится с помощью свойств компонента Table — Filter и Filtered. Пример поиска в таблице «Дисциплины» по полю названия дисциплины:

  • DM1->Table1->Filtered=true;
  • DM1->Table1->Filter= «Discipline_name=’» + ComboBox1->Text + «’» ;
  • Поиск в таблицах без фильтрации производится с помощью функции locate ().

    Пример предыдущего поиска без фильтрации:

  • TLocateOptions SearchOptions;
  • if (!DM1->Table1->Locate («Discipline_name», ComboBox1->Text,

SearchOptions << loCaseInsensitive)) ShowMessage («Запись не найдена.»);

— Эти способы поиска фильтрации использованы в кнопках «Найти» и «Завершить поиск» (коды которых имеются в приложении).

Для удобного использования поиска для каждой таблицы имеются свои компоненты RadioGroup с названиями полей для поиска, как показано на рисунке № 9.

Рисунок № 9 Область окна для поиска по таблице «ЗАГС»

В программе использовано много вычисляемых полей для основной таблицы «ЗАГС». Они созданы в компоненте Table, который соответствует данной таблице. Вычисляемые поля создаются следующим образом: двойным щелчком по компоненту Table откроем небольшое окно доступа к полям таблицы; в этом окне после щелчка правой кнопкой мыши откроется контекстное меню, в котором необходимо выбрать пункт New field; после чего откроется окно создания нового поля (Рисунок № 10), в котором указываются нужные свойства вычисляемого поля; по нажатию кнопки «ok» поле будет создано.

Рисунок № 10. Окно отображения полей таблицы (слева) и окно создания вычисляемого поля После создания поля необходимо прописать код, по которому будут производиться вычисления в данном поле. Весь этот код пишется в событии CalcFields соответствующего компонента Table. Пример для вычисления поля, в котором отражается количество кредитов по известному количеству часов:

9 стр., 4276 слов

База данных ‘Учет решений по уголовным делам’

... или внешние ключи. Ниже мы увидим таблицы содержащие столбцы и данные в этих столбцах. Таблица должность: содержит 2 поля и содержит информацию о должности следователей: ... Звание Постановка задачи Написать программу, которая позволит реализовать процедуру функционирования информационной системы «УЧЕТ РЕШЕНИЙ ПО УГОЛОВНЫМ ДЕЛАМ». Разработанный программный продукт должен частично или полностью ...

void __fastcall TDM1: Table1CalcFields (TDataSet *DataSet)

{Table1Lecture_cred->Value = Table1Lecture_hours->Value/15;}

2.1 Общий принцип работы программы

При запуске программы появляется окно, содержащее поле для выбора таблицы. После выбора таблицы происходит открытие этой таблицы и все её данные отражаются в специально-отведенной части. Таблица «ЗАГС» является основной и использует данные из других таблиц для подсчёта результата в своих вычисляемых полях. Кроме вычисляемых полей, в ней содержатся основные поля, такие как название Муж, Жена. Для этих полей производится расчет данных.

Посчитав информацию о дате рождения с указанного поля, программа заносит возраст в соответствующие поля главной таблицы. Затем, исходя из этих данных и данных из таблицы «Муж» производится подсчет различных полей в Отчет, содержащих информацию о нагрузке преподавателей.

Таблица «Муж» содержит информацию о мужьях, в которой отражены их личные данные.

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

Программа позволяет осуществлять поиск данных, используя соответствующую область окна, где пользователь указывает поля и информацию, по которой будет производиться поиск. Поиск можно производить, как использую фильтрацию данных, так и не используя её.

Эти режимы переключаются с помощью пункта выбора «Нет фильтрации» (18, https:// ).

Редактирование осуществляется с помощью кнопок «Добавить», «Изменить», «Записать», «Отменить», «Удалить». При добавлении новой записи заполняются только основные поля, не учитывая вычисляемых, а остальные поля заполняются после заполнения специальной панели и щелчка по кнопке «Изменить».

Кнопки «Записать», «Отменить» осуществляют редактирование отдельной ячейки таблицы, а кнопка «Удалить» полностью удаляет запись из таблицы.

В программе так же есть запросы и отчеты, которые выдают информацию по определенным характеристикам.

Блок-схема: (структурная схема программы)

2.2 Интерфейс пользователя

В части интерактивного общения с пользователем СУБД отвечает следующим требованиям:

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

Внешний вид форм должен быть спроектирован в соответствии с требованиями, разработанными фирмой Microsoft.

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

При запуске программы открывается главная форма, показанная на рисунке № 12.

13 стр., 6399 слов

Персональные данные как составная часть конфиденциальной информации

... моей работы заключается в выяснении персональных данных как составной части конфиденциальной информации. Глава 1. Персональные данные В соответствии с Федеральным законом «О персональных данных»: «Персональные данные - это любая информация, относящаяся к определенному или ...

Рисунок 12. Главное окно программы Главная форма содержит кнопки редактирования (рисунок № 13):

Рисунок 13. Кнопки редактирования После выбора нужной таблицы вся содержащаяся в ней информация отражается в соответствующей области основной формы. Например, информация из таблицы Муж отразится следующим образом (рисунок № 15):

Рисунок № 15. Окно отображения информации таблицы Информацию в таблицах можно просматривать, использую мышь или клавиатуру, либо с помощью специальных кнопок программы, как показано на рисунке № 16.

Рисунок № 16. Кнопки перемещения по таблице Добавление новой записи осуществляется при нажатии кнопки «Добавить», а информация для добавления заносится в специальную панель, соответствующую выбранной таблице:

Изменение данных в записи осуществляется с помощью кнопки «Изменить», при нажатии которой происходит ввод данных в таблицу из соответствующей панели. Например, панель для изменения данных таблицы «Муж» показана на рисунке № 17:

Рисунок № 17. Панель изменения данных Поиск в базе также осуществляется с помощью соответствующей панели, в которой выбирается поле, по которому будет производиться поиск и вводятся данные для поиска. Например, панель поиска таблицы «ЗАГС» видна на рисунке № 18:

Рисунок № 18. Панель поиска Поиск можно производить, как с фильтрацией, так и без неё, используя для переключения между режимами пункт выбора (рисунок № 19):

Рисунок № 19. Кнопка поиска Заканчивается по нажатию кнопки «Завершить поиск» (рисунок № 20):

Рисунок 20. Кнопка завершения поиска При использовании поиска следует обратить внимание, что при выборе пункта для поиска, у которого нет поля ввода данных, ввод этих данных осуществляется не на панели поиска, а на панели добавления новой записи в таблицу, т.к. это поле является основным для этой таблицы.

Все основные функции программы расположены в главном меню.

Структурная схема главного меню моей программы указана на блок-схеме № 21.

Рисунок 21. Структура главного меню Кнопки редактирования располагаются как на форме, так и в главном меню, а остальные пункты, кроме отчетов и запросов, можно также найти и на панели инструментов например (Рисунок № 22)

Рис 22. Кнопки быстрого доступа Первая кнопка панели инструментов соответствует верхней кнопке «Сохранить» пункта «Файл» главного меню.

Вторая кнопка панели инструментов соответствует нижней кнопке «Выйти» пункта «Файл» главного меню.

Рисунок № 25. Пункты меню Программа также содержит справку, которая включает краткие сведения о программе рисунке № 26:

Рисунок № 26. Окно справки Информацию об авторе можно найти в пункте главного меню «Справка» или же на панели инструмент Рис 27. Окно информации об авторе

2.3 Разработка запросов к базе данных

Запросы обеспечивают простой доступ к определенному подмножеству полей и записей. Запросы в базе данных формируются на основании информации представленной в описании предметной области. Запросы записываются в виде выражений SQL.

24 стр., 11773 слов

Комплекс интеллектуального анализа данных

... Форма диаграммы процентов по парам товаров для заданного товара Рисунок 2.3 - Форма обработчика интеллектуальный анализ ассоциация 2.2 Задание №2 2.1 Постановка задачи Исследовать ... работы предприятия в технологический сервер поступают данные, обрабатываемые ПО сервера анализа. ПО сервера анализа выполняет две основные функции: обработка данных технологической БД и формирование аналитической ...

В данной программе имеются два сформированных запроса. Выбрать их можно в пункте главного меню как показано на рисунке № 28.

Рисунок № 28. Пункты меню для выбора запроса Запросы в программе реализованы с помощью языка SQL и компонента программы Borland C++ Query:

1) Первый запрос «Инф-ция о гражданском состоянии мужского пола» записан следующим образом (рисунок № 29):

» Select Muzh as Муж, Tip_svidetelstva as Тип_свидетельства, Data_vydachi as Дата FROM ZAGS. db WHERE Zhena='» +Edit2->Text+» ‘»

Рисунок № 29. Вид окна запроса «Запрос1»

2) Второй запрос «Инф-ция о гражданском состоянии женского пола» на языке SQL выглядит так (рисунок № 30):

« Select Zhena as Жена, Tip _ svidetelstva as Тип_свидетельства, Data _ vydachi as Дата FROM ZAGS . db WHERE Muzh ='» + Edit 1-> Text +

Рисунок № 30. Вид окна запроса «Инф-ция о гражданском состоянии женского пола»

2.4 Создание отчётов

В программе имеется возможность просмотра данных, используя отчёты, которые в программе формируются с помощью компонента QReport программы Borland C++. Отчеты позволяют получать информацию из таблиц по определенным критериям, подобно запросам, но в отчетах информация представлена не в виде таблицы компонента DBGrid компонента Borland C++, а в виде тестового документа, подобно документам Microsoft Word и т. д.

В данной программе имеется три сформированных отчета, из которых один основной и два дополнительных. Первый дополнительный отчет «Контингент студентов» выводит данные из одноименной таблицы. Он создан с помощью компонента QReport, и во время проектирования выглядит так рисунок № 31:

Рисунок № 31. Вид отчета «Список лиц, обращавшихся в ЗАГС» во время проектирования Во время выполнения программы открыть отчеты можно с помощью пункта главного меню «Отчёты» (рисунок № 32):

Рисунок 32. Пункты для выбора отчета Во время выполнения программы отчет выглядит следующим образом (рисунок № 33):

Рисунок 33. Вид отчета «Список лиц, обращавшихся в ЗАГС по состоянию на ___(дата)» во время работы программы.

Рисунок № 34 отформатированный отчёт.

Второй отчет также содержит информацию из одной таблицы «ЗАГС». Информация в нем представлена, как набор данных об одном физическом лице, в отличии от предыдущего отчета, где данные были в виде таблицы. Создан этот отчёт с помощью компонента QReport:

Для работы с отчётами использование компоненты QReport требует дополнительных компонентов.

И выходные данные показаны на рисунке № 35.

Рисунок № 35. Вид отчета «Информация о гражданском состоянии данного лица» во время проектирования В ходе выполнения программы этот отчёт представлен в следующем виде (рисунок № 36):

21 стр., 10189 слов

Налог на имущество, переходящее в порядке наследования и дарения

... (при получении). 11 65 4. Прочие. 20 70 В Италии налог на наследование и дарение состоит из двух самостоятельных частей, взыскиваемых одновременно. Первая часть зависит от стоимости ... 3 млрд. лир. Вторая часть налога, зависит от степени родства – освобождены супруги, дети и родители. В Испании налог на имущество, переходящее в порядке наследования или дарения, записан в бюджет суммой ...

Рисунок № 36. Вид отчета «Информация о гражданском состоянии данного лица» во время работы программы Главным преимуществом отчетов является то, что их можно распечатать с помощью принтера. Основной отчет представляет собой информацию, взятую из таблицы «ЗАГС». Все данные из вычисляемых полей также входят в этот отчет. Как и два предыдущих отчёта, он создан с помощью QReport.

Заключение

Для успешной реализации проекта необходимо разбить собранную информацию на отдельные модули. Чем качественней вы проработаете и нормализуете структуру свой базы данных, тем надежнее и производительней будет ее работа. Конечно, по сравнению с профессиональными базами данных, данный проект содержит небольшое количество таблиц. Но именно на примере этого проекта мы можем научиться нормализовывать структуру данных. Построив схему данных, мы можем наглядно показать связь между таблицами и схему передачи данных.

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

В ходе выполнения курсовой работы была разработана программа на языке С++ для обработки данных из таблиц базы данных. Обработка данных включает:

1) просмотр существующих данных;

2) редактирование данных;

3) дополнение информации;

4) удаление записей из таблиц;

5) поиск данных в таблицах по определенному критерию;

6) просмотр данных из таблицы в виде запросов и отчетов;

  • Также в программе разработан графический интерфейс.

При разработке программы использовались функции, массивы, циклы. Для разработки графической заставки использовал

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

Список использованной литературы, А. Я. Программирование

2. Дейтел X., Дейтел П. Как программировать на Си. -М: Бином, 2000.

3. Паннас К., Мюррей У. Программирование на Си и Си++. -К.:Ирина, BHV, 2000.

4. Дьюхарст С., Старк К. Программирование на Си++. — Киев, 1993.

база данный программа интерфейс

Приложение

//—————————————————————————————————————-

#include

#pragma hdrstop

#include «Unit1.h»

#include «Unit2.h»

#include «Unit3.h»

#include «Unit4.h»

#include «Unit6.h»

#include «Unit5.h»

#include «Unit7.h»

#include «Unit8.h»

#include

#include «MainMenu.h»

bool CanPost;

//—————————————————————————————————————-

#pragma package (smart_init)

#pragma resource «*.dfm»

22 стр., 10860 слов

Ответственность за налоговые правонарушения в соответствии с ...

... к ответственности за совершение налоговых правонарушений установлены в Налоговом Кодексе Российской Федерации, в частности в главе 15. При рассмотрении налоговых споров ... ответственности в том виде, в каком они звучали, фактически теряют смысл. Подтверждением служит зарубежное право, которому несвойственна позитивная ответственность. Хотя определенный смысл, лежащий в идее такой ответственности, ...

TZAGS *ZAGS;

//—————————————————————————————————————-

__fastcall TZAGS: TZAGS (TComponent* Owner)

: TForm (Owner)

{

}

//—————————————————————————————————————-

void __fastcall TZAGS: AExitExecute (TObject *Sender)

{

if ((DataModule1->Table1->Modified==True) && CanPost)

{DataModule1->Table1->Active=false;

  • DataModule1->Table1->Post ();
  • }

if ((DataModule1->Table2->Modified==True) && CanPost)

{DataModule1->Table2->Active=false;

  • DataModule1->Table2->Post ();}

if ((DataModule1->Table3->Modified==True) && CanPost)

{DataModule1->Table3->Active=false;

  • DataModule1->Table3->Post ();
  • }

Close ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: AautorExecute (TObject *Sender)

{

Form3->Show ();

}

//—————————————————————————————————————

void __fastcall TZAGS: N3click (TObject *Sender)

{

CanPost=true;

if (DataModule1->Table1->Modified==True)

DataModule1->Table1->Post ();

if (DataModule1->Table2->Modified==True)

DataModule1->Table2->Post ();

if (DataModule1->Table3->Modified==True)

DataModule1->Table3->Post ();

  • CanPost=false;

}

//—————————————————————————————————————-

void __fastcall TZAGS: N2Click (TObject *Sender)

{

DataModule1->Table1->Open ();

  • DataModule1->Table2->Open ();
  • DataModule1->Table3->Open ();
  • DataModule1->Table1->Active=true ;
  • DataModule1->Table2->Active=true;
  • DataModule1->Table3->Active=true ;

}

//—————————————————————————————————————-

void __fastcall TZAGS: BitBtn3Click (TObject *Sender)

{

if ((DataModule1->Table1->Modified==True) && CanPost)

{DataModule1->Table1->Active=false;

  • DataModule1->Table1->Close ();
  • }

DataModule1->Table1->Close ();}

//—————————————————————————————————————-

void __fastcall TZAGS: BitBtn2Click (TObject *Sender)

{ if (Application->MessageBox («Действительно хотите удалить запись?» ,

» Подтвердите удаление записи», MB_YESNO+MB_ICONEXCLAMATION)==IDYES)

{ if (PageControl1->ActivePage== TabSheet1);

DataModule1->Table1->Delete ();

3 стр., 1365 слов

Программы по восстановлению данных

... по архивации и восстановлению данных. Решить следующие задачи: 1. выявить причины удаления данных; 2. провести анализ по программам восстановления данных; 3. сделать вывод на основе проведенного исследования. Структура курсовой работы ... один кластер. Наряду с этой информацией программы восстановления данных сканируют главную таблицу файлов (Master File Table, MFT), которая тоже находится в Partition ...

if (PageControl1->ActivePage== TabSheet2);

DataModule1->Table2->Delete ();

if (PageControl1->ActivePage== TabSheet3);

DataModule1->Table3->Delete ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: Button1Click (TObject *Sender)

{if (PageControl1->ActivePage==TabSheet1)

DataModule1->Table1->First ();

else if (PageControl1->ActivePage==TabSheet2)

DataModule1->Table2->First ();

else DataModule1->Table3->First ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: Button3Click (TObject *Sender)

{if (PageControl1->ActivePage== TabSheet1)

DataModule1->Table1->Prior ();

else if (PageControl1->ActivePage== TabSheet2)

DataModule1->Table2->Prior ();

else DataModule1->Table3->Prior ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: BitBtn5Click (TObject *Sender)

{

if (PageControl1->ActivePage== TabSheet1)

DataModule1->Table1->Edit ();

if (PageControl1->ActivePage== TabSheet2)

DataModule1->Table2->Edit ();

if (PageControl1->ActivePage== TabSheet3)

DataModule1->Table3->Edit ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: BitBtn4Click (TObject *Sender)

{if (DataModule1->Table1->Modified==True)

DataModule1->Table1->Cancel ();

if (DataModule1->Table2->Modified==True)

DataModule1->Table2->Cancel ();

if (DataModule1->Table3->Modified==True)

DataModule1->Table3->Cancel ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: Button2Click (TObject *Sender)

{

if (PageControl1->ActivePage== TabSheet1)

DataModule1->Table1->Last ();

else if (PageControl1->ActivePage== TabSheet2)

DataModule1->Table2->Last ();

else DataModule1->Table3->Last ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: Button4Click (TObject *Sender)

{

if (PageControl1->ActivePage== TabSheet1)

DataModule1->Table1->Next ();

else if (PageControl1->ActivePage== TabSheet2)

DataModule1->Table2->Next ();

else DataModule1->Table3->Next ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: PageControl1Change (TObject *Sender)

{

if (PageControl1->ActivePage== TabSheet1)

{ RadioButton4->Visible=false;

  • Edit2->Visible=true;
  • RadioButton2->Visible=true;}

else {RadioButton2->Visible=false;

  • RadioButton4->Visible=true;
  • Edit2->Visible=true;}

}

//—————————————————————————————————————-

void __fastcall TZAGS: FormActivate (TObject *Sender)

{

PageControl1->ActivePage=TabSheet1;

}

//—————————————————————————————————————-

void __fastcall TZAGS: FormCreate (TObject *Sender)

{

RadioButton2->Visible=true;

  • RadioButton4->Visible=false;
  • Edit2->Visible=true;

}

//—————————————————————————————————————-

void __fastcall TZAGS: Button7Click (TObject *Sender)

{

if (RadioButton3->Checked==true)

{if (PageControl1->ActivePage== TabSheet1)

{DataModule1->Table1->Filtered=true;

  • DataModule1->Table1->Filter=»Data_vydachi='»

if (PageControl1->ActivePage== TabSheet2)

{DataModule1->Table2->Filtered=true;

  • DataModule1->Table2->Filter=»Data_rozhdeniya='»

if (PageControl1->ActivePage== TabSheet3)

{DataModule1->Table3->Filtered=true;

  • DataModule1->Table3->Filter=»Data_rozhdeniya='»

if (RadioButton4->Checked==true)

{if (PageControl1->ActivePage== TabSheet2)

{DataModule1->Table2->Filtered=true;

  • DataModule1->Table2->Filter=»FIO_muzha='» +Edit2->Text+» ‘»;
  • }

else if (PageControl1->ActivePage== TabSheet3)

{DataModule1->Table3->Filtered=true;

  • DataModule1->Table3->Filter=»FIO_zheny='» +Edit2->Text+» ‘»;
  • } }

if (RadioButton2->Checked==true)

if (PageControl1->ActivePage== TabSheet1)

{DataModule1->Table1->Filtered=true;

  • DataModule1->Table1->Filter=»Tip_svidetelstva='»

}

//—————————————————————————————————————-

void __fastcall TZAGS: N5Click (TObject *Sender)

{ if (PageControl1->ActivePage== TabSheet1)

DataModule1->Table1->Insert ();

if (PageControl1->ActivePage== TabSheet2)

DataModule1->Table2->Insert ();

if (PageControl1->ActivePage== TabSheet3)

DataModule1->Table3->Insert ();

  • CanPost=true; }

//—————————————————————————————————————-

void __fastcall TZAGS: Aprogram1Click (TObject *Sender)

{

Form8->Show ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: N12Click (TObject *Sender)

{

InfForOtchet1->Show ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: N21Click (TObject *Sender)

{

InfForOtchet2->Show ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: BitBtn1Click (TObject *Sender)

{ if (PageControl1->ActivePage== TabSheet1)

DataModule1->Table1->Insert ();

if (PageControl1->ActivePage== TabSheet2)

DataModule1->Table2->Insert ();

if (PageControl1->ActivePage== TabSheet3)

DataModule1->Table3->Insert ();

  • CanPost=true;

//—————————————————————————————————————-

void __fastcall TZAGS: Button5Click (TObject *Sender)

{

if (RadioButton2->Checked==True)

DataModule1->Table1->Filtered=true;

  • DataModule1->Table1->Filter= «FIO_muzha=’» + Edit1->Text+» ‘» ;

}

//—————————————————————————————————————-

void __fastcall TZAGS: N7Click (TObject *Sender)

{

if (Application->MessageBox («Действительно хотите удалить запись?» ,

» Подтвердите удаление записи», MB_YESNO+MB_ICONEXCLAMATION)==IDYES)

{ if (PageControl1->ActivePage== TabSheet1);

DataModule1->Table1->Delete ();

if (PageControl1->ActivePage== TabSheet2);

DataModule1->Table2->Delete ();

if (PageControl1->ActivePage== TabSheet3);

DataModule1->Table3->Delete ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: RadioButton1Click (TObject *Sender)

{

if (RadioButton1->Checked==true)

{if (PageControl1->ActivePage== TabSheet1)

DataModule1->Table1->Filtered=false;

if (PageControl1->ActivePage== TabSheet2)

DataModule1->Table2->Filtered=false;

if (PageControl1->ActivePage== TabSheet3)

DataModule1->Table3->Filtered=false;

}

}

//—————————————————————————————————————-

void __fastcall TZAGS: AZapros1Execute (TObject *Sender)

{

Zapros1->Panel1->Visible=true;

  • Zapros1->Show ();

}

//—————————————————————————————————————-

void __fastcall TZAGS: AZapros2Execute (TObject *Sender)

{

Zapros1->Panel2->Visible=true;

  • Zapros1->Show ();

}

//—————————————————————————————————————-