Исследование структурного разнообразия оптимальных стратегий

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

Рубрика Педагогика
Вид дипломная работа
Язык русский
Дата добавления 08.10.2018
Размер файла 4,9 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

А3: Заполнены не все обязательные поля

А3.1. Система выводит сообщение: «Пожалуйста, проверьте все поля для ввода. Требуется заполнить все обязательные поля».

А3.2. Выполняется пункт 1 основного потока событий.

ПРИЛОЖЕНИЕ Б

Схема алгоритма

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Рисунок 44 - Схема алгоритма поиска оптимальной стратегии развития научных способностей личности

ПРИЛОЖЕНИЕ В

Листинг основного программного модуля

package com.mavrcorp.controllers;

import com.mavrcorp.Constants;

import com.mavrcorp.domain.NewResult;

import com.mavrcorp.domain.Result;

import com.mavrcorp.entity.ResultsEntity;

import com.mavrcorp.entity.RolesEntity;

import com.mavrcorp.entity.UserEntity;

import com.mavrcorp.entity.UserRolesEntity;

import com.mavrcorp.repository.ResultRepository;

import com.mavrcorp.repository.RoleRepository;

import com.mavrcorp.repository.UserRepository;

import com.mavrcorp.services.CalculationService;

import com.mavrcorp.services.Optimizator;

import org.springframework.beans.factory.annotation.Autowired;

import org.springframework.security.authentication.AnonymousAuthenticationToken;

import org.springframework.security.authentication.BadCredentialsException;

import org.springframework.security.authentication.DisabledException;

import org.springframework.security.authentication.LockedException;

import org.springframework.security.core.Authentication;

import org.springframework.security.core.context.SecurityContextHolder;

import org.springframework.security.core.userdetails.UserDetails;

import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;

import org.springframework.stereotype.Controller;

import org.springframework.ui.ModelMap;

import org.springframework.web.bind.annotation.*;

import javax.servlet.http.HttpServletRequest;

import java.util.ArrayList;

import java.util.HashSet;

import java.util.List;

import java.util.Set;

import java.util.regex.Pattern;

@Controller

@RequestMapping("/")

public class MainController

{

@Autowired

private CalculationService calculator;

@Autowired

private Optimizator optimizator;

@Autowired

private ResultRepository resultRepository;

@Autowired

private UserRepository userRepository;

@Autowired

private RoleRepository roleRepository;

public static final Pattern emailPattern = Pattern.compile(

"^[_A-Za-z0-9-]+(\\.[_A-Za-z0-9-]+)*@[A-Za-z0-9]+(\\.[A-Za-z0-9]+)*(\\.[A-Za-z]{2,})$",

Pattern.DOTALL | Pattern.CASE_INSENSITIVE | Pattern.MULTILINE

);

@RequestMapping( method = RequestMethod.GET)

public String index(ModelMap model)

{

NewResult result = new NewResult();

model.addAttribute("result", result);

return "index";

}

@RequestMapping(value = "calc", params = "calculate", method = RequestMethod.POST)

String calculate(ModelMap model, @ModelAttribute("result") NewResult result)

{

int time = result.getT();

double[][] defaultThetas = new double[time][Constants.COUNT_OF_FUNCTIONS];

for (int i = 0; i < time; i++)

{

for (int j = 0; j < Constants.COUNT_OF_FUNCTIONS; j++)

{

defaultThetas[i][j] = 0.111;

}

}

calculator.solve3(result, defaultThetas);

return "index";

}

@RequestMapping(value = "calc", params = "optimize", method = RequestMethod.POST)

String showQuantaModule(ModelMap model, @ModelAttribute("result") NewResult result)

{

optimizator.calculation2(result);

return "index";

}

@RequestMapping(value = "results", method = RequestMethod.GET)

public String listResults(ModelMap model)

{

model.addAttribute("results", resultRepository.findAll());

return "results";

}

@RequestMapping("results/delete/{resId}")

public String deleteResult(@PathVariable("resId") Long resId)

{

resultRepository.delete(resultRepository.findOne(resId));

return "redirect:/results";

}

@RequestMapping(value = "results/load/{resId}", method = RequestMethod.GET)

String loadResult(ModelMap model, @PathVariable("resId") Long resId)

{

ResultsEntity result = resultRepository.findOne(resId);

double[] defaultThetas = new double[Constants.COUNT_OF_FUNCTIONS];

for (int i = 0; i < 9; i++) defaultThetas[i] = 0.111;

NewResult calculation = new NewResult();

calculation.setStartTheta(defaultThetas);

calculation.setId(result.getId());

calculation.setTitle(result.getTitle());

calculation.setMmax(result.getMotivMax());

calculation.setA0(result.getAlphaZero());

calculation.setH(result.getStep());

calculation.setT(result.getTime());

calculation.setNumberOfQuanta(result.getQuanta());

calculation.setMinDelta(result.getDeltaMin());

calculation.setStartMotivation(result.getStartMotivation());

double[] alphas = new double[Constants.COUNT_OF_FUNCTIONS];

double[] betas = new double[Constants.COUNT_OF_FUNCTIONS];

double[] startValues = new double[Constants.COUNT_OF_FUNCTIONS];

double[] weight = new double[Constants.COUNT_OF_FUNCTIONS];

String[] array;

// Альфы

array = result.getAlphas().split(",");

for (int i = 0; i < array.length; i++)

{

alphas[i] = Double.valueOf(array[i]);

}

calculation.setAlphas(alphas);

// Р`етты

array = result.getBetas().split(",");

for (int i = 0; i < array.length; i++)

{

betas[i] = Double.valueOf(array[i]);

}

calculation.setBetas(betas);

// Начальные значения

array = result.getStartValues().split(",");

for (int i = 0; i < array.length; i++)

{

startValues[i] = Double.valueOf(array[i]);

}

calculation.setStartQualification(startValues);

// Р'есовые значения

array = result.getWeights().split(",");

for (int i = 0; i < array.length; i++)

{

weight[i] = Double.valueOf(array[i]);

}

calculation.setWeights(weight);

model.addAttribute("result", calculation);

return "index";

}

@RequestMapping(value = "calc", params = "save" , method = RequestMethod.POST)

public String saveResult(ModelMap model, @ModelAttribute("result") NewResult calculation)

{

if (!validateInputs(calculation))

{

model.addAttribute("error", "Пожалуйста, заполните все поля");

return "index";

}

ResultsEntity results = new ResultsEntity();

results.setId(calculation.getId());

results.setTitle(calculation.getTitle());

results.setMotivMax(calculation.getMmax());

results.setAlphaZero(calculation.getA0());

results.setStep(calculation.getH());

results.setTime(calculation.getT());

results.setQuanta(calculation.getNumberOfQuanta());

results.setDeltaMin(calculation.getMinDelta());

results.setStartMotivation(calculation.getStartMotivation());

//Тетты

StringBuilder builder = new StringBuilder();

double[] thetas = calculation.getStartTheta();

for (int i = 0; i < Constants.COUNT_OF_FUNCTIONS; i++)

{

builder.append(thetas[i]).append(",");

}

builder.deleteCharAt(builder.length() - 1);

results.setThetas(builder.toString());

//Р`етты

builder.delete(0, builder.length());

double[] betas = calculation.getBetas();

for (int i = 0; i < Constants.COUNT_OF_FUNCTIONS; i++)

{

builder.append(betas[i]).append(",");

}

builder.deleteCharAt(builder.length() - 1);

results.setBetas(builder.toString());

//Альфы

builder.delete(0, builder.length());

double[] alphas = calculation.getAlphas();

for (int i = 0; i < Constants.COUNT_OF_FUNCTIONS; i++)

{

builder.append(alphas[i]).append(",");

}

builder.deleteCharAt(builder.length() - 1);

results.setAlphas(builder.toString());

//Начальные значения

builder.delete(0, builder.length());

double[] startValues = calculation.getStartQualification();

for (int i = 0; i < Constants.COUNT_OF_FUNCTIONS; i++)

{

builder.append(startValues[i]).append(",");

}

builder.deleteCharAt(builder.length() - 1);

results.setStartValues(builder.toString());

//Р'есовые значения

builder.delete(0, builder.length());

double[] weights = calculation.getWeights();

for (int i = 0; i < Constants.COUNT_OF_FUNCTIONS; i++)

{

builder.append(weights[i]).append(",");

}

builder.deleteCharAt(builder.length() - 1);

results.setWeights(builder.toString());

resultRepository.save(results);

model.addAttribute("success", "Сохранение завершено успешно.");

return "index";

}

private boolean validateInputs(NewResult entity)

{

if (entity.getTitle() != null && entity.getTitle().isEmpty()) return false;

return true;

}

@RequestMapping(value = "users", method = RequestMethod.GET)

public String listUsers(ModelMap model)

{

model.addAttribute("users", userRepository.findAll());

return "users";

}

@RequestMapping(value = "users/adduser", method = RequestMethod.GET)

public String addUser(ModelMap model, @ModelAttribute("user") UserEntity user)

{

model.addAttribute("user", new UserEntity());

model.addAttribute("roles", roleRepository.findAll());

model.addAttribute("title", "Добавить пользователя");

return "user";

}

@RequestMapping(value = "user/{userId}")

public String editUser(ModelMap model, @PathVariable("userId") Long userId)

{

UserEntity user = userRepository.findOne(userId);

System.out.println("OBJECT = " + user.toString());

System.out.println("Roles = " + ((user.getUserRoles() != null) ? user.getUserRoles().toString() : "NULL"));

List list = new ArrayList();

Set<UserRolesEntity> set = user.getUserRoles();

Set<RolesEntity> oo = new HashSet<RolesEntity>();

for (UserRolesEntity userRolesEntity : set)

{

oo.add(userRolesEntity.getRole());

System.out.println("ROLES = " + userRolesEntity.getRole());

}

model.addAttribute("user", user);

model.addAttribute("rol", oo);

// model.addAttribute("rolesss", roleRepository.findAll());

model.addAttribute("title", "Редактировать пользователя");

return "user";

}

@RequestMapping(value = "users/saveOrEdit", method = RequestMethod.POST)

public String saveOrEdit(ModelMap model, @ModelAttribute("title") String title, @ModelAttribute("user") UserEntity user)

{

System.out.println("PING!!!");

System.out.println("OBJECT = " + user.toString());

System.out.println("rolesEntity.getUserRoles() = " + user.getUserRoles());

if (user.getUserRoles() != null)

{

for (UserRolesEntity rolesEntity : user.getUserRoles())

{

System.out.println("Role = " + rolesEntity.getRole().getName());

}

}

BCryptPasswordEncoder passwordEncoder = new BCryptPasswordEncoder();

String hashedPassword = passwordEncoder.encode(user.getPassword());

// user.setPassword(hashedPassword);

if (user.getFirstname().isEmpty() || user.getLastname().isEmpty())

{

model.addAttribute("error", "Р--аполните РІСЃРµ обязательные поля.");

model.addAttribute("user", user);

return "user";

}

else if (!user.getEmail().isEmpty() && !emailIsValid(user.getEmail()))

{

model.addAttribute("error", "Р'веденный адрес электронной почты неверен.");

model.addAttribute("user", user);

return "user";

}

else

{

userRepository.save(user);

}

return "redirect:/users";

}

private void validateInputs(UserEntity user)

{

user.setLastname(user.getLastname().trim());

user.setFirstname(user.getFirstname().trim());

user.setEmail(user.getEmail().trim());

user.setEmail(user.getPassword().trim());

user.setEmail(user.getLogin().trim());

}

private boolean emailIsValid(String email)

{

return emailPattern.matcher(email).matches();

}

@RequestMapping("delete/{userId}")

public String deleteUser(@PathVariable("userId") Long userId)

{

userRepository.delete(userRepository.findOne(userId));

return "redirect:/users";

}

@RequestMapping(value = "403", method = RequestMethod.GET)

public String accesssDenied(ModelMap model)

{

// check if user is login

Authentication auth = SecurityContextHolder.getContext().getAuthentication();

if (!(auth instanceof AnonymousAuthenticationToken))

{

UserDetails userDetail = (UserDetails) auth.getPrincipal();

System.out.println(userDetail);

model.addAttribute("username", userDetail.getUsername());

}

return "403";

}

@RequestMapping(value = "login", method = RequestMethod.GET)

public String login(@RequestParam(value = "error", required = false) String error,

@RequestParam(value = "logout", required = false) String logout,

HttpServletRequest request,

ModelMap model)

{

if (error != null) model.addAttribute("error", getErrorMessage(request, "SPRING_SECURITY_LAST_EXCEPTION"));

if (logout != null) model.addAttribute("msg", "Р'ыход выполнен успешно");

return "login";

}

private String getErrorMessage(HttpServletRequest request, String key)

{

Exception exception = (Exception) request.getSession().getAttribute(key);

String error = "";

if (exception instanceof BadCredentialsException) error = "Неверный логин или пароль";

else if (exception instanceof LockedException) error = exception.getMessage();

else if (exception instanceof DisabledException) error = "Пользователь заблокирован";

else error = "Неизвестная ошибка";

return error;

}

}

ПРИЛОЖЕНИЕ Г

Руководство пользователя

ФГБОУ ВО

«САМАРСКИЙ ГОСУДАРСТВЕННЫЙ АРХИТЕКТУРНО-СТРОИТЕЛЬНЫЙ УНИВЕРСИТЕТ»

Факультет информационных систем и технологий

Кафедра информационных и развивающих образовательных систем и технологий

А.1 Введение

Для начала работы с информационной системой требуется открыть любой веб_браузер (Mozilla FireFox, Nightly, Google Chrome, Opera и др.). В адресную строку ввести адрес http://www.demo-mavrcorp.rhcloud.com. На экране отобразится главная страница системы (рисунок Г.1).

Рисунок Г.1 - Главная страница системы

Для входа в систему потребуется ввести логин и пароль от учетной записи в поля для ввода логина и пароля на странице авторизации (рисунок Г.2).

Рисунок Г.2 - Страница авторизации

А.2 Необходимые условия применения

Минимальные требования к техническому и программному обеспечению:

- IBM PC - совместимый компьютер с тактовой частотой процессора не ниже 500 МГц;

- объем оперативной памяти не менее 256 Мб;

- объем свободного дискового пространства не менее 512 Мб;

- монитор с разрешением 1024768 и меньше;

- манипулятор типа «мышь»;

- тип операционной системы - любой;

- установленный веб-браузер.

А.3 Описание основных функций системы

А.3.1 Выполнение моделирования

Перед пользователем страница с формой ввода начальных параметров. Пользователю необходимо заполнить все обязательные поля (рисунк Г.3).

Рисунок Г.3 - Ввод параметров моделирования

По щелчку по кнопке «Рассчитать» или «Оптимизировать» система проверит заполненность всех обязательных полей для ввода и, если все обязательные поля заполнены правильно, то выполнит моделирование и отобразит результаты в виде графиков (рисунок Г.4) и таблиц (рисунок Г.5).

Рисунок Г.4 - Графики результатов моделирования значений квалификации

Рисунок Г.5 - Таблица результатов оптимальной стратегии моделирования

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

Если пользователь заполнил не все обязательные поля, а именно:

- начальные значения мотивации;

- значение «a0»;

- значение «Mmax»;

- значение «h»;

- значение «T»;

- значения Альфа (всего 9 значений);

- значения Бетта (всего 9 значений);

- значения Тетта (всего 9 значений);

- Начальные значения (всего 9 значений);

- Весовые коэффициенты (всего 9 значений),

то система выведет сообщение с уведомлением о незаполненности обязательныныйх полей (рисунок Г.6).

Рисунок Г.6 - Пользователь заполнил не все обязательные поля

После того, как пользователь введет все обязательные поля и щелкнет по кнопке «Рассчитать» или «Оптимизировать», система еще раз проверит заполненность всех обязательных полей и в случае правильного ввода всех параметров произведет моделирование, после чего выведет результаты моделирования в виде графиков (рисунок Г.6) и таблиц (рисунок Г.7).

Для выхода в ОС (и из системы в том числе) следует закрыть браузер.

А.3.2 Работа с сохраненными результатами моделирования

Перед пользователем страница со всеми сохраненными результатами моделирования (рисунок Г.7).

Рисунок Г.7 - Страница со всеми сохраненными результатами моделирования

Далее пользователь может либо загрузить выбранный им результат моделирования из базы данных нажав на кнопку «Загрузить» либо удалить, нажав на кнопку «Удалить».

Система в зависимости от выбранного действия пользователя загрузит результат моделирования и отобразит их на странице моделирования либо удалит результат из базы данных

Для выхода в ОС (и из системы в том числе) следует закрыть браузер.

А.3.2 Работа с учетными записями пользователей

Перед пользователем, имеющим права администратора, страница со всеми зарегистрированными учетными записями (рисунок Г.8). Для добавления новой учетной записи пользователь нажимает на кнопку «Добавить» либо для редактирования существующей записи выбирает учетную запись и щелкает по кнопке «Редактировать» либо для удаления существующей ученой записи выбирает учетную запись и щелкает по кнопке «Удалить».

Рисунок Г.8 - Страница со всеми зарегистрированными учетными записями

А.3.3 Добавление новой ученой записи

Перед пользователем, имеющим права администратора, страница для добавления новой учетной записи (рисунок Г.9).

Рисунок Г.9 - Страница для добавления новой учетной записи

Пользователь заполняет все обязательные поля:

- Фамилия;

- Имя;

- Логин;

- Пароль.

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

В случае если пользователь неправильно заполнил поля, то система выведет уведомление о неверно заполненных данных и предложит пользователю поправить введенные данные

Далее пользователь исправит заполненные поля и нажмет на кнопку «Сохранить», после чего система еще раз проверит введенные данные и в случае правильно заполненных данных добавит новую ученую запись в базу данных и вернет пользователя на страницу со всеми зарегистрированными учетными записями пользователей.

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

Для выхода в ОС (и из системы в том числе) следует закрыть браузер.

А.3.3 Редактирование ученой записи

Перед пользователем, имеющим права администратора, страница редактирования учетной записи (рисунок Г.10).

Рисунок Г.10 - Страница редактирования учетной записи

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

В случае если пользователь неправильно заполнил поля, а именно:

- Логин;

- Пароль;

- E-mail,

то система выведет уведомление о неверно заполненных данных и предложит пользователю поправить введенные данные (рисунок Г.11).

Рисунок Г.11 - Уведомление о неверно заполненных данных

Далее пользователь исправит заполненные поля и нажмет на кнопку «Сохранить», после чего система еще раз проверит введенные данные и в случае правильно заполненных данных добавит новую ученую запись в базу данных и вернет пользователя на страницу со всеми зарегистрированными учетными записями пользователей.

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

Для выхода в ОС (и из системы в том числе) следует закрыть браузер.

А.3.3 Удаление ученой записи

Перед пользователем, имеющим права администратора, страница со всеми зарегистрированными учетными записями пользователей (рисунок Г.12).

Рисунок Г.12 - Страница со всеми зарегистрированными учетными записями

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

Для выхода в ОС (и из системы в том числе) следует закрыть браузер.

ПРИЛОЖЕНИЕ Д

Копии наиболее значимых дипломов, наград и сертификатов

Рисунок Д.1 - Диплом за 1-е место в 34-ой межвузовской студенческой научно-таёжнической конференции

Рисунок Д.2 - Сертификат XIII международной научно-технической конференции

ПРИЛОЖЕНИЕ Е

Акты, Отзывы, Рецензии

Рисунок Е.1 - Акт о внедрении

Размещено на Allbest.ru

...

Подобные документы

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.