Добавлен: 08.11.2023
Просмотров: 269
Скачиваний: 7
ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.
ПРОЕКТИРОВАНИЕ ПРИЛОЖЕНИЯ
-
АНАЛИЗ ЗАДАЧИ
Для реализации приложения будет использоваться среда разработки C++ Builder. При помощи среды разработки от компании Embarcadero создание приложений становиться проще в 5 раз и более на основе одной базы исходного кода. С использованием данного подхода, реализация требуемого клиентского приложения становиться проще чем может показаться на первый взгляд.
Подходя к реализации клиентского приложения, определим требования к реализации приложения:
− Должно быть графическим;
− Должно подключаться к серверу базы данных Microsoft SQL;
− Должно выполнять базовые манипуляции с сущностью базы данных;
− Должно иметь возможность переключения сущностей;
− Должно переключаться между пользователями базы данных MS SQL;
− Должно иметь функции выборки по: Диапазону и по 3-м параметрам; После того, как определили задачи на реализацию, создадим проект в среде разработки C++ Builder:
В главном меню создаем проект по шаблону «Windows VCL Application»
Рисунок 5 – Создание проекта
-
РЕАЛИЗАЦИЯ КЛИЕНТСКОГО ПРИЛОЖЕНИЯ
Первым шагом является создание окна авторизации пользователей. Для этого в созданном окне (Форма) заполняем компонентами «Button», «Label» и «MainMenu» и приводим форму в требуемый вид:
Рисунок 6 – Оформление формы авторизации
Для каждого компонента «Button» создадим функцию OnClick() по которой будет переход на следующую форму (и скрытия окна авторизации).
Код кнопки «Администратор»:
void __fastcall TForm1::Button1Click(TObject *Sender) {
//Переход в форму Администратор
Form1->Hide();
Form2->Show();
Form2->AT->Active = True;
Form2->AC->Connected = True;
}
Данный код по нажатию «Button» скрывает первую форму (окно) и показывает форму (окно), соответствующую пользователю. Также в новооткрытой форме компоненту DBConsul (Компонент служащий для авторизации пользователя на сервер Microsoft SQL) придается в параметр Connected значение True, после чего в новом окне будет получен доступ от пользователя «Администратор» в базе данных. В компонент DBCTable передается значение True при котором активируется курсор для работы с таблицами через интерфейс программы.
Остальные кнопки сделаны по аналогии с данной:
Для «Инженер»:
void __fastcall TForm1::Button2Click(TObject *Sender){
Form1->Hide();
Form5->Show();
Form5->IT->Active = True;
Form5->IC->Connected = True;}
Для «Доктор»:
void __fastcall TForm1::Button3Click(TObject *Sender){
Form1->Hide();
Form8->Show();
Form8->VT->Active = True;
Form8->VC->Connected = True;}
Для «Командира»:{
Form1->Hide();
Form11->Show();
Form11->CT->Active = True;
Form11->CC->Connected = True;}
Следующим шагом создание формы для клиентского окна. Создадим форму, и дополним ее компонентами: «DBGrid», «DBNavigator», «SQLOLEDB». Каждый из вышеперечисленных компонентов является компонентами связывающие приложение с базой данных Microsoft SQL.
Также добавим компонент «MainMenu». Разместим компоненты в следующем порядке:
Рисунок 7 – Заполнение формы окна
После размещения компонентов, создадим 2 функции уведомляющие об успешном подключении и отключении от базы данных. Код для компонента «SQLOLEDB» в случае «Connected»:
void __fastcall TForm2::Connected(TObject *Sender){
ShowMessage("Подключен - Пользователь: Администратор");}
В случае «Disconnected»:
void __fastcall TForm2::Disconnected(TObject *Sender){
ShowMessage("Отключен - Пользователь: Администратор");}
После этого, настроим компонент «MainMenu» добавив в него несколько компонентов «Button» и настроим каждую кнопку отдельно:
Рисунок 8 – Заполнение главного меню
Рисунок 9 – Заполнение категории «Таблицы»
Рисунок 10 – Заполнение категории «Запросы»
Теперь реализуем кнопки в меню окна. Для кнопки «Сменить пользователя» напишем следующий код:
void __fastcall TForm2::N2Click(TObject *Sender){
Form1->Show();
Form2->Hide();
Form2->AC->Connected = False;}
В данном коде открываем окно «Авторизация» и скрываем текущее окно пользователя, передавая параметр False в компонент подключения к базе данным окна «Администратор».
Для вкладки «Таблицы» реализуем код для переключения между таблицами в графическом редакторе таблиц:
void __fastcall TForm2::N5Click(TObject *Sender){
AT->Active = False;
AT->TableName = "Engineer.Оружие";
AT->Active = True;}
Для компонента, отвечающего за обработку таблиц, передаем параметр False и меняем курсор на таблицу «Engineer.Оружие» с последующим параметром True для свойства Active. Остальные кнопки интерфейса во вкладке «Таблицы» идентичны друг другу, за исключением наименования таблиц.
Кнопка «Техника»:
void __fastcall TForm2::N6Click(TObject *Sender){
AT->Active = False;
AT->TableName = "Engineer.Техника";
AT->Active = True;}
Кнопка «Личный состав»:
void __fastcall TForm2::N7Click(TObject *Sender){
AT->Active = False;
AT->TableName = "Doctor.Личный_Состав";
AT->Active = True;}
Кнопка «Объекты»:
void __fastcall TForm2::N8Click(TObject *Sender){
AT->Active = False;
AT->TableName = "Commander.Объекты";
AT->Active = True;}
Кнопка «Должность»:
void __fastcall TForm2::N9Click(TObject *Sender){
AT->Active = False;
AT->TableName = "Commander.Должность";
AT->Active = True;}
Реализуем кнопки для вкладки «Запросы». В данной вкладке кнопки будут выводить формы для выполнения определенных задач, поставленных в условии.
Для таких кнопок код, следующий:
void __fastcall TForm2::N11Click(TObject *Sender){
Form2->Hide();
Form3->Show();}
void __fastcall TForm2::N12Click(TObject *Sender){
Form2->Hide();
Form4->Show();}
Реализуем функции для выборки диапазоном. Создадим окно, оформив идентично как в основном окне пользователя, с добавлением компонентов «TEdit» и «Button». В поля «TEdit» передаются аргументы, а «Button» выполняет функцию выполнения запроса.
Рисунок 11 – Окно выборки диапазоном
Для кнопки «Button» создаем функцию OnClick() и заполняем следующим кодом:
void __fastcall TForm3::Button1Click(TObject *Sender){
AQ->Close();
AQ->Active = false;
AQ->SQL->Clear();
AQ->SQL->Add("SELECT *");
AQ->SQL->Add("FROM " + ETable->Text);
AQ->SQL->Add("WHERE " + EStolb->Text + " BETWEEN " + EBefore->Text + " AND " + EAfter->Text );
AQ->Active = true;
AQ->Open();}
В данном коде отправляем компоненту DBAQuery функцию Close() – Закрытие запроса, также отключая активный статус. Добавляем в компонент SQL запрос с добавлением параметров из компонентов «TEdit» и включая активный статус с вызовом функции Open(). На выходе получим выполненный запрос в окне приложения.
Создадим окно для множественной выборки, заполним так-же как и прошедшее окно, добавив те же компоненты:
Рисунок 12 – Окно множественной выборки
По параметрам: Код_Товара, Код_Формы, Код_Дозировки и выводим требуемые нам данные. Для этого напишем код функции выполнения для «Button»
Код по структуре идентичен с прошедшим окном выборки, единственное что изменится, то только код запроса:
void __fastcall TForm4::Button1Click(TObject *Sender){
AQ->Close();
AQ->Active = false;
AQ->SQL->Clear();
AQ->SQL->Add("SELECT Фамилия AS 'Фамилия военнослужащего'");
AQ->SQL->Add("FROM Doctor.Личный_Состав");
AQ->SQL->Add("WHERE Личный_Номер = " + LN->Text + " AND Код_Должности = " + CD ->Text + " AND Код_Взвода = " + CV->Text);
AQ->Active = true;}
В данном случае делаем выборку по таблице «Склад» с выборкой по 3м параметрам. Последующий процесс создания окон пользователя и окон выборки идентичен с тем, что было разобрано выше.
3.3 ИТОГОВЫЙ ВИД
Рисунок 13 – Итоговый вид «Окно авторизации»
Рисунок 14 – Итоговый вид «Окно Администратора»
Рисунок 15 – Итоговый вид «Выбор таблицы»
Рисунок 16 – Итоговый вид «Выборка диапазоном»
Рисунок 17 – Итоговый вид «Множественная выборка»
ЗАКЛЮЧЕНИЕ
В ходе анализа и проектирования базы данных на тему «Военная часть» была реализована база данных с использованием среды разработки Microsoft SQL Server Management Studio и сервера Microsoft SQL Server. В данной базе данных были реализованы сущности, подходящие к теме курсовой работы, выполнены соединения между сущностями при помощи использования первичных и внешних ключей. Для таких сущностей реализовали и сконфигурировали схемы для дальнейшей настройки безопасности с последующим созданием пользователей, реализовали процедуры, выполняющие вставку, обновление и удаление данных. К такой базе данных спроектировали и реализовали приложение, при помощи которого даются возможности управления базой данных.
Данная курсовая работа показывает способы анализа, проектирования и цели использования базы данных в условиях «Военная часть».
В наше время база данных является ключевой частью работы компаний, предприятий, ресурсов и программного обеспечения, обеспечивая структурированную и доступную информацию для каждого из пользователей, имеющих доступ к таким базам. Такие базы обширно используются