Главная » Просмотр файлов » диплом целиком

диплом целиком (1218792), страница 6

Файл №1218792 диплом целиком (Автоматизация оценивания рисков возникновения чрезвычайных ситуаций природного характера на территории Хабаровского края) 6 страницадиплом целиком (1218792) страница 62020-10-05СтудИзба
Просмтор этого файла доступен только зарегистрированным пользователям. Но у нас супер быстрая регистрация: достаточно только электронной почты!

Текст из файла (страница 6)

Рисунок 17 – Диаграмма последовательности чтения данных из БД

Представленная диаграмма актуальна для реализаций программных интерфейсов ILocationManager, IWeatherRecordManager, IFireHazardReportManager. Интерфейс IDbManager описывает возможность управления базой данных, позволяя проверить целостность ее схемы, очистить БД или подготовить базу данных для хранения данных предметной области.

2.6 Пользовательский интерфейс

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

Для реализации пользовательского интерфейса используется технология WPF (Windows Presentation Foundation) от компании Microsoft, которая доступна для разработки на платформе .NET. WPF является развитием технологии Windows Forms и отличается улучшенным способом отображения графических элементов и расширенными возможностями влиять на отображение этих элементов. Структура приложения, предлагаемая при разработке на WPF, обязывает программиста писать качественные программы, разделяя логику отображения данных пользователю и логику преобразования этих данных. Существует несколько распространенных шаблонов проектирования приложения, при котором логика отображения и логика преобразования данных разделены: MVC (Model - View -Controller), MVVM (Model - View - View Model), MVP (Model - View - Presenter). В данной работе использовался шаблон MVVM, который позволяет разделить приложение на следующие основные части:

– представление (view) – включает в себя графические компоненты приложения, такие как окна, кнопки, поля ввода и т.д.;

– модель (model) – включает в себя множество структур данных, представляющих предметную область;

– модель представления – включает в себя логику преобразования данных предметной области и представляет некоторое состояние представления [16].

Взаимодействие компонентов представлено на диаграмме.

Рисунок 18 – Взаимодействие компонентов в MVVM

Для реализации шаблона MVVM используется программная библиотека MVVM Light, созданная сотрудником компании Microsoft. Слово light отражает основную концепцию – библиотека проста в использовании и не требует дополнительных зависимостей.

При разработке пользовательского интерфейса представленной программы было принято решение использовать диалоговый режим интерфейса. Это означает, что в любой момент времени пользователь может выполнять только одну задачу. Основная идея в том, что пользователь может сделать запрос на операцию, а затем использовать результат запроса или отменить запрос – в любом случае пользователь вернется в ту часть приложения, из которой он делал запрос. Следующая диаграмма иллюстрирует возможные маршруты навигации пользователя в приложении.

Рисунок 19 – Диаграмма переходов

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

2.7 Отчетность

Для принятия оперативных решений необходима информация. Такая информация может быть представлена в виде отчета. Отчет – способ представления информации, который отражает суть вопроса или исследования применительно к данной ситуации.

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

Рисунок 20 – Структура отчета

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

3 РЕАЛИЗАЦИЯ

3.1 Реализация алгоритмов

Алгоритм расчета коэффициента пожарной опасности реализован в классе FireHazardReportBuilder. У данного класса есть всего один открытый метод BuildReport(), который позволяет сразу получить удобно сформированные данные расчетов для составления отчета.

Закрытый метод CalculateFireHazardCoefficient() реализует формулу (17), принимая на вход параметры о текущих погодных данных и количестве дней, прошедших после последнего дождя. Пример реализации:

private static decimal CalculateFireHazardCoefficient (WeatherRecord record, int daysWithoutRain)
{
return daysWithoutRain * (record.Temperature - record.DewPoint) * record.Temperature;
}

Точка росы (record.dewPoint) является вычисляемым свойством, то есть информация о ней нигде не сохраняется, а вычисляется при каждом обращении. Такой подход удобно использовать для поддержания актуальности данных, когда при обновлении данных о влажности или температуре значение точки росы пересчитается автоматически. Следующий код представляет вычисление точки росы по формулам (18) и (19).

public decimal DewPoint
{
get
{
var tau = AlphaCoefficient * Temperature /

(BetaCoefficient + Temperature);

if (Humidity > 0)
tau += (decimal)Math.Log((double)Humidity

/ 100);

var dewPoint = BetaCoefficient * tau /

(AlphaCoefficient - tau);
return dewPoint;
}
}

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

Закрытый метод DayWithoutRain() позволяет рассчитать количество дней между датой, на которую получены погодные данные, и датой последнего дождя.

private static int DaysWithoutRain(WeatherRecord currentWeather, DateTime lastRainyDay)

{

return Convert.ToInt32(Math.Ceiling((currentWeather.Created - lastRainyDay).TotalDays));

}

Алгоритм получения даты последнего дождя реализован в классе WeatherRecordManager, который реализует интерфейс IWeatherRecordManager. Метод интерфейса IWeatherRecordManager GetLastRainyDay() возвращает дату последнего дождя. На вход метод принимает три параметра:

– идентификатор населенного пункта, для которого будет сделан расчёт;

– дата, от которой нужно искать дождливый день;

– дата, до которой ведется поиск.

public DateTime GetLastRainyDay(int locationId, DateTime from, DateTime to)
{
var lastRainyDay = to.Date;

while (lastRainyDay > from)
{
var records = Get(locationId, lastRainyDay, lastRainyDay.AddHours(24));

if (records.Sum(r => r.Precipitation) >= 3)
return lastRainyDay;

lastRainyDay = lastRainyDay.AddDays(-1);
}
throw new WeatherRecordNotFoundException("Не найдена информация об осадках за последнее время.");
}

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

3.2 Реализация форм (пользовательский интерфейс)

Единицей компиляции в WPF является *.xaml файл, в котором содержится разметка экранной формы на языке XAML. Данный язык разметки является подмножеством XML и синтаксически похож на HTML. В Visual Studio встроен удобный редактор разметки XAML, который позволяет в режиме реального времени видеть все внесенные изменения. Однако, некоторые значения, которые будут вычислены только во время выполнения программы (такие как: текущий населенный пункт, данные о погоде и т.д.), не будут отображены в редакторе.

Рисунок 21 – Главное окно приложения

В языке XAML, по аналогии с HTML, существуют элементы-контейнеры, которые никак не отображаются в программе, но напрямую влияют на расположение графических компонентов внутри окна. В XAML их существует 4 вида: Grid, StackPanel, DockPanel, WrapPanel. Grid позволяет заранее определить сетку, на которой будут расположены элементы. Контейнер StackPanel располагает элементы друг за другом в выбранном направлении (по горизонтали или вертикали). DockPanel позволяет прикрепить элементы к одному или нескольким границам этого контейнера, а WrapPanel растягивает элементы внутри себя до заданного контейнером размера. Последние два контейнера достаточно специфичны и не так часто используются в разработке экранных форм.

Рисунок 22 – Окно выбора населенного пункта

Поскольку XAML является языком разметки, то, соответственно, в нем нет операторов ветвления, операторов проверки условий и других конструкций языков программирования. Данный факт одновременно является как плюсом, так и минусом технологии WPF. С одной стороны, это дает пространство для выбора шаблона проектирования приложения, с другой стороны – создает дополнительную сложность прикладному программисту, так как требует дополнительной квалификации в области проектирования [17].

Характеристики

Список файлов ВКР

Автоматизация оценивания рисков возникновения чрезвычайных ситуаций природного характера на территории Хабаровского края
Богданова Е_
Свежие статьи
Популярно сейчас
Как Вы думаете, сколько людей до Вас делали точно такое же задание? 99% студентов выполняют точно такие же задания, как и их предшественники год назад. Найдите нужный учебный материал на СтудИзбе!
Ответы на популярные вопросы
Да! Наши авторы собирают и выкладывают те работы, которые сдаются в Вашем учебном заведении ежегодно и уже проверены преподавателями.
Да! У нас любой человек может выложить любую учебную работу и зарабатывать на её продажах! Но каждый учебный материал публикуется только после тщательной проверки администрацией.
Вернём деньги! А если быть более точными, то автору даётся немного времени на исправление, а если не исправит или выйдет время, то вернём деньги в полном объёме!
Да! На равне с готовыми студенческими работами у нас продаются услуги. Цены на услуги видны сразу, то есть Вам нужно только указать параметры и сразу можно оплачивать.
Отзывы студентов
Ставлю 10/10
Все нравится, очень удобный сайт, помогает в учебе. Кроме этого, можно заработать самому, выставляя готовые учебные материалы на продажу здесь. Рейтинги и отзывы на преподавателей очень помогают сориентироваться в начале нового семестра. Спасибо за такую функцию. Ставлю максимальную оценку.
Лучшая платформа для успешной сдачи сессии
Познакомился со СтудИзбой благодаря своему другу, очень нравится интерфейс, количество доступных файлов, цена, в общем, все прекрасно. Даже сам продаю какие-то свои работы.
Студизба ван лав ❤
Очень офигенный сайт для студентов. Много полезных учебных материалов. Пользуюсь студизбой с октября 2021 года. Серьёзных нареканий нет. Хотелось бы, что бы ввели подписочную модель и сделали материалы дешевле 300 рублей в рамках подписки бесплатными.
Отличный сайт
Лично меня всё устраивает - и покупка, и продажа; и цены, и возможность предпросмотра куска файла, и обилие бесплатных файлов (в подборках по авторам, читай, ВУЗам и факультетам). Есть определённые баги, но всё решаемо, да и администраторы реагируют в течение суток.
Маленький отзыв о большом помощнике!
Студизба спасает в те моменты, когда сроки горят, а работ накопилось достаточно. Довольно удобный сайт с простой навигацией и огромным количеством материалов.
Студ. Изба как крупнейший сборник работ для студентов
Тут дофига бывает всего полезного. Печально, что бывают предметы по которым даже одного бесплатного решения нет, но это скорее вопрос к студентам. В остальном всё здорово.
Спасательный островок
Если уже не успеваешь разобраться или застрял на каком-то задание поможет тебе быстро и недорого решить твою проблему.
Всё и так отлично
Всё очень удобно. Особенно круто, что есть система бонусов и можно выводить остатки денег. Очень много качественных бесплатных файлов.
Отзыв о системе "Студизба"
Отличная платформа для распространения работ, востребованных студентами. Хорошо налаженная и качественная работа сайта, огромная база заданий и аудитория.
Отличный помощник
Отличный сайт с кучей полезных файлов, позволяющий найти много методичек / учебников / отзывов о вузах и преподователях.
Отлично помогает студентам в любой момент для решения трудных и незамедлительных задач
Хотелось бы больше конкретной информации о преподавателях. А так в принципе хороший сайт, всегда им пользуюсь и ни разу не было желания прекратить. Хороший сайт для помощи студентам, удобный и приятный интерфейс. Из недостатков можно выделить только отсутствия небольшого количества файлов.
Спасибо за шикарный сайт
Великолепный сайт на котором студент за не большие деньги может найти помощь с дз, проектами курсовыми, лабораторными, а также узнать отзывы на преподавателей и бесплатно скачать пособия.
Популярные преподаватели
Добавляйте материалы
и зарабатывайте!
Продажи идут автоматически
6827
Авторов
на СтудИзбе
275
Средний доход
с одного платного файла
Обучение Подробнее