Помощь в написании студенческих работ
Антистрессовый сервис

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

РефератПомощь в написанииУзнать стоимостьмоей работы

Данный метод производит проход в глубину, и идет от корневого узла, до конечного листа. В узлах находится вопросы, метод выводит вопрос и в зависимости от ответа пользователя производиться переход к следующему узлу, и так происходит до тех пор, пока не дойдет до листа, в котором хранится вывод. Также существует метод why (почему) это обратный рекурсивный метод, который идет от узла или листа… Читать ещё >

Требования к совместимости с веб-браузерами (реферат, курсовая, диплом, контрольная)

Образовательные модули должны быть совместимы как минимум с наиболее распространенными на сегодняшний день веб-браузерами:

  • * Mozilla Firefox 3.6 и выше;
  • * Microsoft Internet Explorer 8 и выше;
  • * Google Chrome 10 и выше;
  • * Apple Safari 5 и выше.

Далее в документе под термином «браузер» понимается любой из названных браузеров.

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

Содержимое ИОМ должно воспроизводиться единообразно при использовании различных сочетаний браузеров и операционных систем.

ПРИЛОЖЕНИЕ

Лабораторная работа № 1

Создание интерфейса ЭС.

Цель работы: построить интерфейс для вывода и ввода необходимой для работы ЭС информации (вывод вопросов ЭС к пользователю, ввод в систему ответов пользователя, вывод решений ЭС); организовать работу решателя с данными, вводимыми с интерфейса; создать компьютерную программу, реализующую диалог пользователя с экспертной системой и работу решателя на основе ответов пользователя.

1.1. Краткие общие сведения по созданию Интерфейса пользователя Для реализации Интерфейса пользователя необходимо организовать диалог пользователя с ЭС. Возможен выбор ответа на экране монитора из списка предложенных ответов с использованием графического оконного интерфейса и «мышки» или ввод ответа с клавиатуры («да-нет», цифры 1, 2, …, L), которым соответствует один из альтернативных ответов.

Единственное, но очень важное требование к интерфейсу пользователя — взаимодействие с ЭС должно быть удобным для пользователя.

При выборе ответа на вопрос ЭС или после принятого ЭС решения пользователю бывают нужны разъяснения. Для поддержки и помощи пользователю в таких случаях в Интерфейсе необходимо предусмотреть кнопку «?Помощь». Нажав на неё, пользователь сможет получить развернутое объяснение от Блока объяснений, что имеет в виду ЭС, поставив именно этот вопрос, или как было принято экспертной системой данное решение (детали построения Блока объяснений приведены в Лабораторной N3).

Помимо кнопки «? Помощь», при построении интерфейса экспертной системы необходимо предусмотреть ещё две кнопки: кнопку «Выход" — выход из программы ЭС, и кнопку «Начать сначала«- повторить работу с ЭС.

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

1.2 Организация диалога пользователя с ЭС Для того чтобы наша экспертная система могла взаимодействовать с пользователем в интерактивном режиме, одной таблицы управления переходами мало, поскольку требуется еще информация о реакциях экспертной системы на ответы пользователя. Реакция же может быть двоякой: ответ (решение) системы или очередной вопрос пользователю. Поэтому для взаимодействия пользователя с ЭС построим Таблицу 2 «Вопросы-Ответы».

В соответствии с этой таблицей и в зависимости от состояния, в котором находится наша экспертная система, на экран монитора будут выводиться вопросы к пользователю или ответы экспертной системы.

Таблица 2. Вопросы-Ответы.

Вопрос: Рассчитываете ли Вы потратить большую сумму денег на покупку фотоаппарата?

Ответ: Нет, я ограничен (а) в бюджете.

Вопрос: Что для Вас важнее?

Ответ: Да, я не ограничен (а) в средствах.

Вопрос: Умеете ли Вы обращаться с профессиональными фотоаппаратами?

Ответ: Нет, не умею. => Вам подойдут полупрофессиональные фотоаппараты.

Вопросов больше нет.

Ответ: Да, есть опыт.

Вопрос: Какой у Вас опыт работы с профессиональным фотоаппаратом?

Ответ: Меньше года. => Вам подойдут китовые фотоаппараты.

Вопросов больше нет.

Ответ: Больше года.

Вопрос: Где Вы предпочитаете фотографировать?

Ответ: В помещении.

Вопрос: В студии?

Ответ: На улице, на природе.

Вопрос: Что Вам больше нравиться фотографировать?

Ответ: Нет, я не планирую фотографировать в студии. =>Вам подойдут фотоаппараты с внешней вспышкой.

Вопросов больше нет.

Ответ: Да, я планирую фотографировать в студии.

Вопрос: Вы будите пользоваться специальной аппаратурой?

Ответ: Портреты => Вам подойдут такие фотоаппараты фирмы Canon и Nikon с объективами Canon EF 100 mm f/2, 8, Nikon 50 mm f/1.4G AF-S.

Вопросов больше нет.

Ответ: Пейзажи. => Вам подойдут фотоаппараты фирмы Сanon и Nikon с объективами Canon EF-S 10−22 f/3.5−4.5 USM, Nikon Af 80−200mm f/2.8 D.

Вопросов больше нет.

Ответ: Люблю все фотографировать. => Вам подойдут фотоаппараты фирмы Сanon и Nikon с объективами CANON EF 28−135 mm f/3.5−5.6, Nikkor 16−85mm f/3.5−5.6G ED.

Вопросов больше нет.

Ответ: Нет, только фотоаппаратом. => Вам подойдут такие фотоаппараты как Nikon D90, Canon D500.

Вопросов больше нет.

Ответ: Да, хочу максимально задействовать всю технику. => Вам подойдут такие фотоаппараты как Nikon D70, Canon 5D.

Вопросов больше нет.

Ответ: Качество изображений. => Вам подойдут фотоаппараты мыльницы с отличным качеством снимков, стоимостью выше 7−8 тыс. руб.

Вопросов больше нет.

Ответ: Стоимость. => Вам подойдут обычные фотоаппараты мыльницы.

Вопросов больше нет.

Ответ: Наличие видеосъемки. => Вам подойдут такие фотоаппараты, как Nikon Coolpix S3100 Red и проч.

Вопросов больше нет.

1.3. Реализация работы решателя в соответствии с ответами пользователя Для того чтобы реализовать работу решателя в соответствии с ответами пользователя, необходимо организовать взаимодействие Таблицы 1 «Управление переходами состояний» и Таблицы 2 «Вопросы-ответы».

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

Создадим управляющую ячейку (Таблица 3), в которую будем заносить номер текущего состояния системы. Эта ячейка поможет нам реализовать работу Решателя в соответствии с ответами пользователя.

Таблица 3. Текущее состояние.

Текущее состояние.

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

· Из Таблицы 2 «Вопросы и ответы» на экран ЭВМ выводится ВОПРОС, соответствующий текущему состоянию системы.

Пользователь вводит ОТВЕТ (с клавиатуры или мышкой), который сравнивается со всеми возможными для текущего состояния ответами в Таблице 1 «Управление переходами состояний» (сравнивают с ответами, находящимися в столбце «ответ пользователя»).

Выбирают ту строку Таблицы 1, которой соответствует ответ, выбранный пользователем, и в управляющую ячейку (Таблица 3) вносят новое значение «текущего состояния», которое находится в найденной строке в столбце «конечное состояние».

Затем проверяется запись в ячейке «конец поиска». Если поиск не закончен (в ячейке «конец поиска» записан ноль), то цикл «вопрос ЭС — ответ пользователя» продолжается с пункта, обозначенного стрелкой а.

Если в ячейке «конец поиска» записана единица («1» = да, конец поиска), то Экспертная Система выдает на экран РЕШЕНИЕ, соответствующее «текущему состоянию» из Таблицы 2 «Вопросы- Ответы», переходит к Блоку объяснений (об этом будет сказано дальше) и останавливается.

  • 1.4. Порядок проведения Лабораторной работы № 2
  • 1. Студент выбирает любой способ организации диалога с пользователем (графический оконный интерфейс и «мышку» для выбора возможных ответов, вв3од ответа с клавиатуры в соответствии с одним из возможных альтернативных ответов, и т. д.).
  • 2. Предусматривает в интерфейсе кнопку «? Помощь» для поддержки пользователя при выборе им ответа на запрос ЭС и объяснения принятых ЭС решений, а также кнопку «Выход» для выхода из программы, и кнопку «Начать сначала» для повторения цикла работы с ЭС.
  • 3. Студент строит Таблицу 2 «Вопросы-Ответы» и Таблицу 3 «текущее состояние» системы.
  • 4. Создает программу, которая организует вывод на интерфейс вопросов и ответов из Таблицы 2 «Вопросы-Ответы».
  • 5. Создает программу, обеспечивающую цикл перехода системы в новое состояние в зависимости от ответа пользователя, и выдачу нового вопроса пользователю или ответа ЭС в зависимости от текущего состояния системы (реализация взаимодействия Таблицы 1, Таблицы 2 и Таблицы 3).
  • 6. Отлаживает программу, реализующую интерфейс пользователя и взаимодействие пользователя с ЭС.
  • 7. Показывает и вместе с преподавателем уточняет интерфейс пользователя.
  • 1.5. Контрольные вопросы к Лабораторной работе № 1
  • 1. Как можно организовать интерфейс пользователя?
  • 2. Что необходимо учесть при построении интерфейса?
  • 3. Каким требованиям должен удовлетворять интерфейс пользователя?
  • 4. Как организовать работу Экспертной системы, чтобы учесть ответы пользователя на вопросы ЭС?
  • 5. Что значит «удобный» интерфейс пользователя?

Приложение к лабораторной работе № 1.

Пример кода:

public class BinaryTree {.

private BinaryTree parent;

private BinaryTree yes;

private BinaryTree no;

private String question;

private String answer;

private boolean isEnd;

public BinaryTree (BinaryTree parent) {.

this.parent = parent;

}.

public BinaryTree setQuestion (String question) {.

this.question = question;

return this;

}.

public String getQuestion () {.

return question;

}.

public BinaryTree getParent () {.

return parent;

}.

public BinaryTree setAnswer (String answer) {.

this.answer = answer;

setEnd ();

return this;

}.

public String getAnswer () {.

return answer;

}.

public BinaryTree getYes () {.

if (isEnd) return null;

if (yes == null) {.

yes = new BinaryTree (this);

}.

return yes;

}.

public BinaryTree getNo () {.

if (isEnd) return null;

if (no == null) {.

no = new BinaryTree (this);

}.

return no;

}.

public boolean isEnd () {.

return isEnd;

}.

private void setEnd () {.

this.isEnd = true;

}.

public void setNo (BinaryTree no) {.

this.no = no;

}.

public void setYes (BinaryTree yes) {.

this.yes = yes;

}.

}.

Ядро экспертной системы, находиться в классе ExpertSysyem, в которой реализована рекурсивная функция обхода бинарного дерева:

public static void start (BinaryTree db).

throws IOException {.

if (db.isEnd ()) {.

System.out.println (db.getAnswer ());

System.out.println («Объяснить почему ЭС пришла к такому выводу?»);

if (readBoolean ()) {.

stack.clear ();

why (db);

for (String el: stack) {.

System.out.println (el);

}.

}.

return;

}.

System.out.println (db.getQuestion ());

if (readBoolean ()) start (db.getYes ());

else start (db.getNo ());

}.

Данный метод производит проход в глубину, и идет от корневого узла, до конечного листа. В узлах находится вопросы, метод выводит вопрос и в зависимости от ответа пользователя производиться переход к следующему узлу, и так происходит до тех пор, пока не дойдет до листа, в котором хранится вывод. Также существует метод why (почему) это обратный рекурсивный метод, который идет от узла или листа, к корню дерева, и выводит на экран то, как ЭС, работала с пользователем. База знаний статическая, времени на реализацию динамической БД не было, но при желании вы можете добавить класс отвечающий за загрузку/выгрузку ЭС, и добавление новых правил и выводов в ее структуру. База знаний представлена следующим образом:

BinaryTree db = new BinaryTree (null);

db.setQuestion («Работает ПК?»);

db.getYes ().setAnswer («Вам не нужны услуги экспертной системы»);

db.getNo ().setQuestion («ПК включается?»);

db.getNo ().getNo ().setQuestion («Свет есть?»);

db.getNo ().getNo ().getYes ().setAnswer («Поломался блок питания»);

db.getNo ().getNo ().getNo ().setAnswer («Включите свет»);

db.getNo ().getYes ().setQuestion («Изображение есть на мониторе?»);

db.getNo ().getYes ().getNo ().setQuestion («Монитор подключен к сети?»);

db.getNo ().getYes ().getNo ().getNo ().setAnswer («Подключите монитор»);

db.getNo ().getYes ().getNo ().getYes ().

.setQuestion («Индикатор горит на мониторе»);

db.getNo ().getYes ().getNo ().getYes ().getNo ().

.setAnswer («Не работает монитор»);

db.getNo ().getYes ().getNo ().getYes ().getYes ().

.setAnswer («Не работает видеокарта»);

db.getNo ().getYes ().getYes ().setQuestion («Писк есть?»);

db.getNo ().getYes ().getYes ().getYes ().

.setAnswer («Используйте руководство по пискам BIOS»);

db.getNo ().getYes ().getYes ().getNo ().setQuestion («Загружаеться ОС?»);

db.getNo ().getYes ().getYes ().getNo ().getNo ().

.setQuestion («Есть сообщения об ошибках?»);

db.getNo ().getYes ().getYes ().getNo ().getNo ().getYes ().

.setAnswer («Следуйте сообщениям об ошибках»);

db.getNo ().getYes ().getYes ().getNo ().getNo ().getNo ().

.setAnswer («Не знаю»);

db.getNo ().getYes ().getYes ().getNo ().getYes ().

.setQuestion («При входе в ОС есть звук?»);

db.getNo ().getYes ().getYes ().getNo ().getYes ().getYes ().

.setQuestion («Система загрузилась без ошибок»);

db.getNo ().getYes ().getYes ().getNo ().getYes ().getYes ().getYes ().

.setAnswer («Следуйте рекомендациям ОС»);

db.getNo ().getYes ().getYes ().getNo ().getYes ().getYes ().getNo ().

.setAnswer («Приятной работы»);

db.getNo ().getYes ().getYes ().getNo ().getYes ().getNo ().

.setQuestion («У вас есть звуковая карта?»);

db.getNo ().getYes ().getYes ().getNo ().getYes ().getNo ().getYes ().

.setAnswer («Не работает звуковая карта»);

db.getNo ().getYes ().getYes ().getNo ().getYes ().getNo ().

.setNo (db.getNo ().getYes ().getYes ().getNo ().getYes ().getYes ());

Показать весь текст
Заполнить форму текущей работой