Главная страница
Навигация по странице:

  • Программный код 10

  • Разработка Web-приложения. Учебная практика. Постановка задачи 3 Постановка задачи в терминах черного ящика 5 erсхема базы данных 5


    Скачать 213.77 Kb.
    НазваниеПостановка задачи 3 Постановка задачи в терминах черного ящика 5 erсхема базы данных 5
    АнкорРазработка Web-приложения
    Дата29.03.2023
    Размер213.77 Kb.
    Формат файлаdocx
    Имя файлаУчебная практика.docx
    ТипТехническое задание
    #1022878

    Содержание


    Содержание 1

    Постановка задачи 3

    Постановка задачи в терминах «черного ящика» 5

    ER-схема базы данных 5

    Сайт информационной системы книжного издательства «Бином» 6

    Техническое задание 8

    Общие сведения 8

    Назначение и цели создания (развития) системы 8

    Характеристика объектов автоматизации 8

    Требования к системе 8

    Состав и содержание работ по созданию системы 8

    Порядок контроля и приемки системы 9

    Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие 9

    Программный код 10

    Код шаблона сайта: 10

    Код страницы обработки данных: 10

    Постановка задачи 3

    Постановка задачи в терминах «черного ящика» 5

    ER-схема базы данных 5

    Сайт информационной системы книжного издательства «Бином» 6

    Техническое задание 8

    Общие сведения 8

    Назначение и цели создания (развития) системы 8

    Характеристика объектов автоматизации 8

    Требования к системе 8

    Состав и содержание работ по созданию системы 9

    Порядок контроля и приемки системы 9

    Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие 9

    Программный код 10

    Код шаблона сайта: 10

    Код страницы обработки данных: 10

    РЕЦЕНЗИЯ 14


    Постановка задачи



    Необходимо создать клиент-серверное Web-приложение для удаленной работы с базой данных.

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


    для создания Web-приложения

    Visual Studio 2019 - (ASP.NET WebForms) платформу разработки веб-приложений как средство быстрого прототипирования приложения;


    для создания базы данных

    MySQL 8.0 – (MySQL Workbench) свободную реляционную СУБД как наиболее популярную для работы с реляционными БД;


    для взаимодействия БД и Web-интерфейса

    ADO.NET - технологию на платформе .NET Framework как технологию, предоставляющую драйвер для подключения к MySQL.


    для обработки данных из БД

    C# - объектно-ориентированный язык программирования.



    При разработке необходимо создать сайт из трех страниц:

    1. главная страница должна содержать переход на третью страницу сайта и кнопку для вызова второй страницы сайта со справкой об этом Web-приложении;

    2. вторая страница должна содержать справочную информацию о Web-приложении (что оно делает и для чего предназначено);

    3. на третьей странице выполняются все операции с данными БД.


    В программе должны присутствовать функции-обработчики событий и пользовательские подпрограммы-функции или процедуры.
    Также при разработке необходимо создать БД. Предметная область базы данных - книжное издательство «Бином».

    Постановка задачи в терминах «черного ящика»






    ER-схема базы данных



    Таблица 1 «Книга»

    Название поля

    Тип поля

    Свойства поля

    Код книги

    Счетчик

    Первичный ключ

    Название

    Текстовый

    Обязательное, длина 60 символов

    Количество страниц

    Числовой

    Одинарное с пл. точкой





    Рисунок 1. ER-схема БД

    Сайт информационной системы книжного издательства «Бином»



    На главной странице (Рис. 2) указан вариант задания по практике, расположены 3 кнопки для навигации по сайту.



    Рисунок 2. Главная страница
    Страница информации (Рис. 3) содержит справочную информацию о Web-приложении.



    Рисунок 3. Страница с информацией

    Страница для работы с БД (Рис. 4) предоставляет возможность удалённо добавлять, редактировать и удалять записи из таблицы с помощью соответствующих кнопок.



    Рисунок 4. Страница с БД

    Техническое задание




    Общие сведения


    1. Полное наименование системы:

    Web-приложение для работы с базой данных.

    1. Наименование предприятий разработчика и заказчика системы:

    Федеральное государственное бюджетное образовательное учреждение высшего образования «Пермский государственный агротехнический университет имени академика Д.Н. Прянишникова».

    1. Перечень документов, на основании которых создается система:

    Документы Word: Задание на практику, Варианты практики, Распределение вариантов БД.

    1. Плановые сроки начала и окончания работы по созданию системы:

    04.07.2022 – 16.07.2022.

    Назначение и цели создания (развития) системы


    1. Назначение системы:

    Прохождение учебной практики.

    1. Цели создания системы:

    Получение навыков создания web-приложения с использованием технологии ASP.NET.

    Характеристика объектов автоматизации


    1. Краткие сведения об объекте автоматизации:

    Автоматизация удаленной работы с базой данных посредством создания web-приложения.

    1. Сведения об условиях эксплуатации объекта автоматизации и характеристиках окружающей среды:

    Проект, созданный в Visual Studio 2019, должен быть подключен к базе данных в MySQL 8.0 (MySQL Workbench).

    Требования к системе


    1. Требования к системе:

    Рекомендуемая система – Windows 10 (7).

    1. Требования к обеспечению:

    Наличие на локальном компьютере установленных Visual Studio 2019, MySQL 8.0 (MySQL Workbench), ADO.NET.

    Состав и содержание работ по созданию системы


    1. Перечень документов, предъявляемых по окончании соответствующих стадий и этапов работ:

    Отчет по учебной практике, рецензия.

    Порядок контроля и приемки системы


    1. Общие требования к приемке работ по стадиям:

    06.07.2022 – демонстрация студентами созданного web-приложения без привязки к БД;

    11.07.2022 – демонстрация студентами созданной таблицы в БД MySQL, демонстрация привязки таблицы к Web-приложению;

    15.07.2022 – демонстрация студентами изменения данных в БД удаленно.

    Требования к составу и содержанию работ по подготовке объекта автоматизации к вводу системы в действие


    1. Создание условий функционирования объекта автоматизации, при которых гарантируется соответствие создаваемой системы требованиям, содержащимся в ТЗ:

    Установленные на компьютер Visual Studio 2019, MySQL 8.0 (MySQL Workbench), ADO.NET.

    Программный код




    Код шаблона сайта:



    using System;
    namespace practiceSite

    {

    // Класс с функциями для шаблона Template.Master

    public partial class Template : System.Web.UI.MasterPage

    {

    // Функция, выполняющаяся в момент загрузки страницы

    protected void Page_Load(object sender, EventArgs e)

    {
    }
    // Функция, отвечающая за редирект (переадресацию) на главную страницу

    protected void indexButton_Click(object sender, EventArgs e)

    {

    Response.Redirect("Default.aspx");

    }
    // Функция, отвечающая за редирект (переадресацию) на страницу БД

    protected void dbButton_Click(object sender, EventArgs e)

    {

    Response.Redirect("Db.aspx");

    }
    // Функция, отвечающая за редирект (переадресацию) на страницу с информацией

    protected void informationButton_Click(object sender, EventArgs e)

    {

    Response.Redirect("Information.aspx");

    }

    }

    }

    Код страницы обработки данных:



    using System;

    using System.Web.UI;

    using System.Web.UI.WebControls;

    using MySql.Data.MySqlClient;
    namespace practiceSite

    {

    public partial class Db : Page

    {

    // Строка соединения с БД

    string connectionString = "server=localhost;Port=3306;user id=root;Password=Motion0502991Sense?;persistsecurityinfo=True;database=portaldb;CharSet=utf8;SslMode=none";

    // Функция, устанавливающая доступ к кнопкам "Обновить" и "Удалить"

    private void ButtonsChangeState(bool flag) {

    // flag - отвечает за доступность кнопок

    if (flag == true)

    {

    ButtonDelete.Enabled = true;

    ButtonUpdate.Enabled = true;

    }

    else {

    ButtonDelete.Enabled = false;

    ButtonUpdate.Enabled = false;

    }

    }
    // Функция, обновляющая информацию в таблице с данными (GridViewDb)

    private void DataLoad() {

    // При загрузке, обновлении или получении запроса

    if (Page.IsPostBack) {

    // Обновляем таблицу

    GridViewDb.DataBind();

    }

    }
    // Функция, стирающая значения всех textBox и label

    private void ClearTextData()

    {

    //Присваиваем пустую строку элементам управления

    TextBoxBookName.Text = "";

    TextBoxPagesCount.Text = "";

    LabelInfo.Text = "";

    }
    protected void Page_Load(object sender, EventArgs e)

    {
    }
    // Событие, выполняющееся при нажатии на кнопку "Выбор" в таблице (заполняет textBox)

    protected void GridViewDb_SelectedIndexChanged(object sender, EventArgs e)

    {

    var currentRow = GridViewDb.SelectedRow.Cells; // Выбранное поле

    TextBoxBookName.Text = currentRow[2].Text;

    TextBoxPagesCount.Text = currentRow[3].Text;

    }
    // Событие, выполняющееся при нажатии на кнопку "Добавить"

    protected void ButtonAdd_Click(object sender, EventArgs e)

    {

    // Считываем значения из текстовых полей, удаляем пробелы

    var name = TextBoxBookName.Text.Trim();

    var pages = TextBoxPagesCount.Text.Trim();
    // Проверяем, есть ли пустые строки

    if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pages))

    {

    LabelInfo.Text = "Проверьте правильность введенных данных";

    return;

    }
    // Проверяем, число ли в переменной "pages"

    bool result = int.TryParse(pages, out int pagesNum);

    if (result == false) {

    LabelInfo.Text = "Пожалуйста, введите корректное число страниц";

    return;

    }
    // Соединение с БД, запрос на добавление

    using (MySqlConnection connection = new MySqlConnection(connectionString))

    {

    connection.Open(); // При использовании using соенинение закрывать НЕ нужно

    string sqlQuery = "INSERT INTO `book` (`name`, `numberOfPages`) VALUES (@name, @numberOfPages)";

    using (MySqlCommand query = new MySqlCommand(sqlQuery, connection))

    {

    query.Parameters.AddWithValue("name", name);

    query.Parameters.AddWithValue("numberOfPages", pagesNum);
    int affectedRows = query.ExecuteNonQuery(); // Кол-во измененных записей

    if (affectedRows <= 0)

    {

    DataLoad();

    LabelInfo.Text = "Не удалось добавить запись в Базу Данных";

    }

    else {

    DataLoad();

    ClearTextData();

    LabelInfo.Text = "Запись добавлена";

    }

    }

    }

    }
    // Событие, выполняющееся при нажатии на кнопку "Обновить"

    protected void ButtonUpdate_Click(object sender, EventArgs e)

    {

    if (GridViewDb.SelectedRow is null)

    {

    LabelInfo.Text = "Поле для редактирования не выбрано";

    return;

    }
    // Считываем значения в переменные

    var name = TextBoxBookName.Text.Trim();

    var pages = TextBoxPagesCount.Text.Trim();

    int currentId = int.Parse(GridViewDb.SelectedRow.Cells[1].Text); // Преобразуем в число
    // Проверяем, есть ли пустые строки

    if (string.IsNullOrEmpty(name) || string.IsNullOrEmpty(pages))

    {

    LabelInfo.Text = "Проверьте правильность введенных данных";

    return;

    }
    // Проверяем, число ли в переменной "pages"

    bool result = int.TryParse(pages, out int pagesNum);

    if (result == false)

    {

    LabelInfo.Text = "Пожалуйста, введите корректное число страниц";

    return;

    }
    // Соединение с БД, запрос на редактирование

    using (MySqlConnection connection = new MySqlConnection(connectionString))

    {

    connection.Open();

    string sqlQuery = "UPDATE `book` SET `name`=@name, `numberOfPages`=@numberOfPages WHERE `id`= @ID";

    using (MySqlCommand query = new MySqlCommand(sqlQuery, connection))

    {

    query.Parameters.AddWithValue("name", name);

    query.Parameters.AddWithValue("numberOfPages", pagesNum);

    query.Parameters.AddWithValue("ID", currentId);
    int affectedRows = query.ExecuteNonQuery(); // Кол-во измененных записей

    if (affectedRows <= 0)

    {

    DataLoad();

    LabelInfo.Text = "Не удалось обновить запись в Базе Данных";

    }

    else

    {

    DataLoad();

    ClearTextData();

    LabelInfo.Text = "Запись обновлена";

    ButtonsChangeState(false);

    }

    }

    }

    }

    // Событие, выполняющееся при нажатии на кнопку "Удалить"

    protected void ButtonDelete_Click(object sender, EventArgs e)

    {

    if (GridViewDb.SelectedRow is null) {

    LabelInfo.Text = "Поле для удаления не выбрано";

    return;

    }
    int currentId = int.Parse(GridViewDb.SelectedRow.Cells[1].Text);
    // Соединение с БД, запрос на удаление

    using (MySqlConnection connection = new MySqlConnection(connectionString))

    {

    connection.Open();

    string sqlQuery = "DELETE FROM `book` WHERE `id`= @ID";

    using (MySqlCommand query = new MySqlCommand(sqlQuery, connection))

    {

    query.Parameters.AddWithValue("ID", currentId);

    int affectedRows = query.ExecuteNonQuery();

    if (affectedRows <= 0)

    {

    DataLoad();

    LabelInfo.Text = "Не удалось удалить запись из Базы Данных";

    }

    else

    {

    DataLoad();

    ClearTextData();

    LabelInfo.Text = "Запись удалена";

    ButtonsChangeState(false);

    }

    }

    }

    }
    // Меняем видимость кнопок при выборе

    protected void GridViewDb_SelectedIndexChanging(object sender, GridViewSelectEventArgs e)

    {

    ButtonsChangeState(true);

    }

    }

    }





    написать администратору сайта