- •Конструкторская часть
- •Разработка базы данных
- •Разработка приложения для работы с базой данных
- •2.2.3.2 Используемые методы
- •2.2.3.3 Структура программы с описанием функций составных частей и связи между ними
- •2.2.3.4 Связи программы с другими программами
- •2.2.4 Используемые технические средства
- •2.2.7 Выходные данные
- •2.2.7.1 Характер и организация выходных данных
- •2.2.7.2 Формат, описание и характер выходных данных
- •2.2.8. Сведения о структуре программного кода
- •3. Технологическая часть
- •Заключение
- •Список использованной литературы
2.2.3.4 Связи программы с другими программами
Система «Токийский метрополитен» связана с базой данных MSSQL 2019.
2.2.4 Используемые технические средства
Для работы с программным обеспечением необходим персональный компьютер, обладающий следующим минимальным набором аппаратных средств:
32-разрядный (x86) или 64-разрядный (x64) двухъядерный процессор с тактовой частотой 2,0 гигагерц (ГГц) или выше.
2 гигабайт (ГБ) (для 32-разрядной системы) или 4 ГБ (для 64-разрядной системы) оперативной памяти (ОЗУ);
Свободное место на жестком диске 50 Мбайт.
Средства навигации и ввода/вывода информации – клавиатура, манипулятор «мышь», монитор.
Стабильное подключение к локальной сети по Ethernet-порту.
2.2.5 Вызов и загрузка
2.2.5.1 Способ вызова программы с соответствующего носителя данных
Программа может быть вызвана путем стандартного запуска приложения TOKYO_METRO.exe с внутреннего (жесткий диск) или внешнего носителя (usb-накопитель).
2.2.5.2 Входные точки в программу
Загрузка модулей осуществляется с помощью файла Main.exe в главной директории проекта, который сначала инициализирует интерфейс авторизации, а после осуществления проверки учетных данных пользователя и подтверждения его легитимности запускает доступные для работы модули.
2.2.6 Входные данные
2.2.6.1 Характер, организация и предварительная подготовка входных данных.
Входные данные представляют собой значения, передаваемые от клиентской части программного комплекса к модулю взаимодействия с базой данных на сервере.
2.2.6.2 Формат, описание и характер входных данных
Формат входных данных представлен в таблице 1.
Таблица 1 – Формат входных данных при авторизации
Описание |
Обозначение |
Способ передачи |
Тип данных |
Логин |
logright |
В теле запроса |
Строка |
Пароль |
passwordright |
В теле запроса |
Строка |
2.2.7 Выходные данные
2.2.7.1 Характер и организация выходных данных
Выходные данные представляют собой значения, передаваемые от модуля взаимодействия с базой данных на сервере к клиентской части программного комплекса
2.2.7.2 Формат, описание и характер выходных данных
Формат входных данных представлен в таблице 2.
Таблица 2 – Формат выходных данных при создании пользователя системы
Описание |
Обозначение |
Способ передачи |
Тип данных |
Пользователь или его роль |
user_or_role |
В теле запроса |
Строка |
Тип доступа |
access |
В теле запроса |
Число: 1 – доступ разрешен 0 – доступ запрещен |
2.2.8. Сведения о структуре программного кода
Структурно вся программа разделена на следующие логические элементы: основной файл Program.cs, файл графического отображения формы Form1, файл графического отображения формы Form2.
Запуск приложения
Основным классом, запускающим всё приложения, является класс Program.cs:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace TOKYO_METRO
{
static class Program
{
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form2());
}
}
}
Основной точкой входа для приложения является метод Main. В внутри данного метода происходит создание форм авторизации и главного рабочего окна, привязка обработчиков события закрытия и открытия окон к соответствующим событиям.
При создании объектов форм вызываются их конструкторы, в которых находится метод соответствующий InitializeComponent(). InitializeComponent предназначен для создания самой формы, объектов и их свойств.
Два реализованных обработчика событий реагируют на открытие главного рабочего окна, при этом убирается окно авторизации и появляется форма главного окна. Другое событие реагирует на закрытие главного окна и разворачивает авторизацию, а форму главного окна сворачивает.
Запуск всего приложения происходит с помощью конструкции Application.Run(new Form2()), в которую передается форма авторизации.
Авторизация
Для защиты данных от несанкционированного изменения в приложении реализовано разграничение доступа к системе. Прежде чем преступить к работе с базой данных, пользователю необходимо ввести логин и пароль. Вход предоставляется после успешной проверки данных пользователя. Если в процессе входа, пользователь совершил какие–либо ошибки, он будет об этом уведомлен:
Основным компонентом при авторизации является обработчик события для кнопки входа:
namespace TOKYO_METRO
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
string logrightAdmin = "admin";
string passrightAdmin = "qwerty1234";
string logrightUser = "user";
string passrightUser = "user1234";
string prom1, prom2;
prom1 = textBox1.Text;
prom2 = textBox2.Text;
if ((prom1 == logrightAdmin && prom2 == passrightAdmin)||(prom1 == logrightUser && prom2 == passrightUser))
{ Form1 newForm = new Form1(this);
newForm.Show();
this.Hide();
}
else
{ MessageBox.Show("НЕКОРРЕКТНЫЙ ЛОГИН ИЛИ ПАРОЛЬ");
}
}
}
}
Данный код программы получает от пользователя логин и пароль через инструмент TextBox и сравнивает их с имеющимися данными для входа администратора и пользователя. В случае, если хотя бы один параметр для входа не совпадает, встроенная функция MessageBox.Show отобразит сообщение об ошибке.
Главное рабочее окно
Основной код программы прописан в файле Form1.cs. Для подключения к созданной базе данных создается класс SqlConnection:
SqlConnection sqlConnection;
string connectionString = @"Data Source=(LocalDB)\MSSQLLocalDB;AttachDbFilename=E:\8-term\BSBD\bsbd_mytest1\bsbd_mytest1\TOKYO1.mdf;Integrated Security=True";
sqlConnection = new SqlConnection(connectionString);
sqlConnection.Open();
SqlDataReader sqlReader = null;
Строка connectionString разрешает подключение к конкретной базе данных, созданной на персональном компьютере. Метод SqlDataReader отвечает за чтение данных из таблиц.
Класс SqlCommand отвечает за выборку данных из таблицы, а класс DataGridView – за вывод данных на форму. Листинг для вывода данных из таблицы «Станции»:
SqlCommand command = new SqlCommand("SELECT * FROM [Stations]", sqlConnection);
dataGridView1.ColumnCount = 6;
dataGridView1.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill;
dataGridView1.Columns[2].Width = 250;
dataGridView1.Columns[3].Width = 40;
dataGridView1.Columns[4].Width = 60;
using (SqlDataReader dr = command.ExecuteReader())
{
while (dr.Read())
{
string[] row =
{
dr.GetValue(0).ToString().Trim(),
dr.GetValue(1).ToString().Trim(),
dr.GetValue(2).ToString().Trim(),
dr.GetValue(3).ToString().Trim(),
dr.GetValue(4).ToString().Trim(),
dr.GetValue(5).ToString().Trim(),
};
dataGridView1.Rows.Add(row);
}}
Для таблиц «Линии», «Депо», «Транспортные карты» и «Киотская секция» классы SqlCommand и DataGridView используются аналогичным образом. Метод GetValue возвращает значение свойства заданного объекта с дополнительными значениями индекса для индексированных свойств, а метод Trim удаляет из текущей строки все начальные и конечные экземпляры trimChar символа.