Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
FEDERAL_NOE_AGENTSTVO_PO_OBRAZOVANIYu.doc
Скачиваний:
5
Добавлен:
17.09.2019
Размер:
1.06 Mб
Скачать

1.2.6.Описание основных алгоритмов программы

Прямая соединительная линия 24

Вход

Блок-схема: альтернативный процесс 23

Прямая соединительная линия 309 Прямая соединительная линия 311 Прямая соединительная линия 364 Прямая соединительная линия 365

Прямоугольник 25

cur=st.Root;

prev=null

Параллелограмм 27

Вывод вопроса и ответа

Ромб 29

Ответ пользователя

нет

да

Прямая соединительная линия 30 Прямая соединительная линия 31 Прямая соединительная линия 290 Прямая соединительная линия 355

Прямая соединительная линия 362 Прямая соединительная линия 363

Ромб 35

нет

да

Ромб 356

нет

да

cur.No=null

cur.Yes=null

Прямая соединительная линия 292 Прямая соединительная линия 293 Прямая соединительная линия 316 Прямая соединительная линия 357 Прямая соединительная линия 368

Прямоугольник 294

cur=cur.No

Параллелограмм 345

Предложение ввести свой ответ и вопрос

Прямоугольник 359

cur =cur.Yes

Параллелограмм 372

Вывести сообщение о победе программы

Прямая соединительная линия 306 Прямая соединительная линия 361

Прямая соединительная линия 346

Прямая соединительная линия 379

Создание новой ветви дерева

Скругленный прямоугольник 381

Выход

Прямая соединительная линия 350

Выход

Рис.4. Алгоритм работы самообучающейся системы

На рис.4 изображена блок-схема основного алгоритма программы, на котором основана работа приложения.

Вход

Инициализация

да

нет

Преобразование информационных полей в массив строк

нет

да

Индекс i меньше длины массива строк

Присваивание строке s значения элемента массива строк; увеличение значения индекса i на 1

нет

да

Индекс i меньше длины массива строк и сумма длин строки s и элемента m[i] меньше 15

1

2

3

4

1

2

3

4

Присваивание строке s значения элемента массива;

i++

Отображение на экране информационного поля узла

j++

Рис.5.Алгоритм прорисовки дерева решений

На рис.5 изображена схема алгоритма отображения на экране дерева решений.

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

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

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

Рис.6. Пользовательское меню

Для того, чтобы начать игру, пользователь должен нажать кнопку «Играть». После этого откроется игровое окно. Оно изображено на рис.7. В верхней части окна отражается приглашение к игре, а также история ответов пользователя на вопросы программы. В нижней части окна будут выводиться вопросы системы. Также здесь расположены две кнопки Да и Нет, с помощью которых пользователь отвечает на вопросы.

Рис.7. Игровое окно

Если программа «угадала» объект, задуманный пользователем, в окне, где выводились вопросы, появится сообщение: «Угадала: задуманный Вами объект-это <объект>». Кроме того, последует приглашение к следующей игре: «Играем еще?» ― которое изображено на рис.8. Если пользователь хочет продолжить игру, он должен нажать кнопку «Да», в противном случае ― кнопку «Нет».

Рис.8. Приглашение к новой игре

Если программа не «угадала» задуманный пользователем объект, тогда на экране появится окно, в котором пользователь должен указать загаданный им предмет и вопрос, ответ «Да» на который соответствует этому предмету, а ответ «Нет» ― предположению программы (рис.9).

Рис.9. Добавление нового объекта

Если пользователь верно заполнил поля данного окна, он должен нажать кнопку «OK». В случае если пользователь решил, что программа все-таки «угадала» задуманный им объект, он должен нажать кнопку «Отмена».

Возможна ситуация, когда пользователь не заполнил ни одного поля данного окна, либо заполнил только одно поле и нажал кнопку «OK». Тогда программа сообщит об этом пользователю, появится окно с просьбой заполнить все поля (рис.10).

Рис.10. Ситуация, когда не все поля заполнены

Если пользователь закончил игру, перед ним опять появится пользовательское меню. В случае если пользователь захочет посмотреть структуру дерева решений, он должен нажать кнопку «Дерева решений». В новом окне появится визуализированное дерево. В ходе просмотра структуры можно пользоваться прокруткой, двигая ползунки вверх-вниз или вправо-влево.

Если пользователь хочет ознакомиться с информацией о программе, ему требуется нажать на кнопку «Об игре» в пользовательском меню.

Если же пользователь решил выйти из игры, он должен нажать на кнопку «Выход».

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

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]