Вы находитесь на странице: 1из 70

ФЕДЕРАЛЬНОЕ АГЕНТСТВО СВЯЗИ

ОРДЕНА ТРУДОВОГО КРАСНОГО ЗНАМЕНИ


ФЕДЕРАЛЬНОЕ ГОСУДАРСТВЕННОЕ БЮДЖЕТНОЕ
УЧРЕЖДЕНИЕ ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
МОСКОВСКИЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ СВЯЗИ И
ИНФОРМАТИКИ
Факультет «Первый Общетехнический Факультет»
Кафедра Информатика

КУРСОВАЯ РАБОТА
по дисциплине «Языки программирования»
на тему:
«Интеллектуальные Системы»

Выполнил:
Пэдру Хелк Ж. да Гама
студент группы БИК1901
Руководитель:
Доцент .К.п.н Гуриков С.Р.

Москва 2020г
Пэдру Хелк Жоау да Гама

ИНТЕЛЛЕКТУАЛЬНЫЕ СИСТЕМЫ

«Система оценки качества обслуживания »

Москва 2020г
2
СОДЕРЖАНИЕ

ОБЩАЯ ХАРАКТЕРИСТИКИ РАБОТЫ...................................................................................

ГЛАВА 1-ТЕХНОЛОГИИ ПОСТРОЕНИЯ ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ.............

1.1 Методология создания интеллектуальных систем...................................................

1. 1. 1 Определение искусственного интеллекта................................................................

1.2 Классификация интеллектуальных............................................................................

1.2.1 Требования, предъявляемые к интеллектуальным системам...................................

1. 3 Технологии построения интеллектуальных систем.................................................

1. 4 Анализ данных предметной области...........................................................................

1. 5 Выбор и обоснование математического аппарата....................................................

1. 6 Архитектур и функциональная схема ИС..................................................................

ГЛАВА 2- ПРАКТИЧЕСКАЯ ЧАСТЬ.......................................................................................

2.1. Архитектур и функциональная схема ИС..................................................................

2.2. Тестовая программа.......................................................................................................

3
ОБЩАЯ ХАРАКТЕРИСТИКИ РАБОТЫ

Актуальность темы. В настоящее время системы умный быстро


становится основополагающим в таких областях, как автономные
транспортные средства, и финансовые переговоры. Каждый день мы
слышим все больше и больше о влиянии Искусственного Интеллекта
(ИИ) на предприятиях, профессиях, людях и в обществе. Они помогли
не только для управления и мониторинга систем технологических, а
также для разрешения самых различных проблем, связанных с
обществом.
Формирование искусственного интеллекта как науки произошло в
1956 году. Д. Маккарти, М. Минский, К. Шеннон и Н. Рочестер
организовали двухмесячный семинар в США, в Дартмуте для
американских исследователей, занимающихся теорий автоматов,
нейронными сетями, интеллектом. Хотя исследования в этой области
уже активно велись, но именно на этом семинаре появились термин и
отдельная наука – искусственный интеллект.
Одним из основателей теории искусственного интеллекта
считается известный английский ученый Алан Тьюринг, который в
1950-м году опубликовал статью «Вычислительные машины и разум»
(переведенную на русский язык под названием «Может ли машина
мыслить?»). Именно в ней описывался, ставший классическим «тест
Тьюринга», позволяющий оценить «интеллектуальность» компьютера
по его способности к осмысленному диалогу с человеком.
Первые десятилетия развития (1952-1969) искусственного
интеллекта были полны успехов и энтузиазма. А. Ньюэлл, Дж. Шоу и Г.
Саймон создали программу для игры в шахматы, на основе метода,
предложенного в 1950 году К. Шенноном, формализованного А.
Тьюрингом и промоделированного им же вручную. К работе была

4
привлечена группа голландских психологов под руководством А. де
Гроота, изучавших стили игры выдающихся шахматистов. В 1956 году
этим коллективом был создан язык программирования ИПЛ1 -
практически первый символьный язык обработки списков и написана
первая программа "Логик-Теоретик", предназначенная для
автоматического доказательства теорем в исчислении высказываний.
Эту программу можно отнести к первым достижениям в области
искусственного интеллекта.
В 1960 году этой же группой написана программа GPS (General
Problem Solver) - универсальный решатель задач. Она могла решать ряд
головоломок, вычислять неопределенные интегралы, решать некоторые
другие задачи. Эти результаты привлекли внимание специалистов в
области вычислений и появились программы автоматического
доказательства теорем из планиметрии и решения алгебраических задач.
С 1952 года А. Самюэл написал ряд программ для игры в шашки,
которые играли на уровне хорошо подготовленного любителя, причем
одна из его игр научилась играть лучше, чем ее создатель.
В 1958 году Д. Маккарти определил новый язык высокого уровня
Lisp, который стал доминирующим для искусственного интеллекта.
Первые нейросети появились в конце 50-х годов. В 1957 году Ф.
Розенблаттом была предпринята попытка создать систему,
моделирующую человеческий глаз и его взаимодействие с мозгом -
перцептрон.
Первая международная конференция по искусственному
интеллекту (IJCAI) состоялась в 1969 году в Вашингтоне.
В 1963 г. Д. Робинсон реализовал метод автоматического
доказательства теорем, получивший название «принцип резолюции», в
основе этого метода в 1973 году создается язык логического
программирования Prolog.

5
В США появились первые коммерческие системы, основанные на
знаниях, - экспертные системы. Происходит коммерциализация
искусственного интеллекта. Растут ежегодные капиталовложения и
интерес к самообучающимся системам, создаются промышленные
экспертные системы. Разрабатываются методы представления знаний.
Первая экспертная система была создана Э. Фейгенбаумом в 1965
году. Но до коммерческой прибыли было еще далеко. Лишь в 1986 году
первая коммерческая система R1 компании DEC позволила сэкономить
примерно 40 миллионов долларов в год. К 1988 году компанией DEC
было развернуто 40 экспертных систем. В компании Du Pont
применялось 100 систем и экономия составляла примерно 10 миллионов
в год.
В 1981 году Япония приступила к разработке компьютера 5-го
поколения, основанного на знаниях – 10-летнего плана по разработке
интеллектуальных компьютеров на базе Prolog. 1986 год стал годом
возрождения интереса к нейронным сетям.
В 1991 году Япония прекращает финансирование проекта
компьютера 5-го поколения и начинает проект создания компьютера 6-
го поколения – нейрокомпьютера.
В 1997 году компьютер «Дип Блю» победил в игре в шахматы
чемпиона мира Г. Каспарова, доказав возможность того, что
искусственный интеллект может сравняться или превзойти человека в
ряде интеллектуальных задач (пусть и в ограниченных условиях).
Огромную роль в борьбе за признание искусственного интеллекта
в нашей стране сыграли академики А. И. Берг и Г. С. Поспелов.
В 1954-1964 гг. создаются отдельные программы и проводятся
исследования в области поиска решения логических задач. Создается
программа АЛПЕВ ЛОМИ, автоматически доказывающая теоремы. Она
основана на оригинальном обратном выводе Маслова, аналогичном
методу резолюций Робинсона. Среди наиболее значимых результатов,
6
полученных отечественными учеными в 60-е годы, следует отметить
алгоритм «Кора» М. М. Бонгарда, моделирующий деятельность
человеческого мозга при распознавании образов. Большой вклад в
становление российской школы искусственного интеллекта внесли
выдающиеся ученые М. Л. Цетлин, В. Н. Пушкин, М. А. Гаврилов, чьи
ученики и явились пионерами этой науки в России.
В 1964 г. предлагался метод автоматического поиска
доказательства теорем в исчислении предикатов, получивший название
«обратный метод Маслова».
В 1965-1980 гг. происходит рождение нового направления —
ситуационного управления (соответствует представлению знаний, в
западной терминологии). Основателем этой научной школы стал проф.
Д. А. Поспелов.
В Московском государственном университете был создан язык
символьной обработки данных РЕФАЛ В.Ф. Турчиным в 1968.В
последнее время ясно обозначились следующие важные направления
развития интеллектуальных систем.
1) Системы имитирующие творческие процессы - создание
музыкальных произведений, решение игровых задач (шахматы, шашки,
домино), автоматический перевод, доказательство теорем,
распознавание образов, имитация мышления и т. п.
2) Информационные системы, основанные на знаниях
(экспертные системы), т. е. консультирование малоопытных
пользователей, настройка оборудования, обучение и др.
3) Интеллектуальные информационные системы - большие и
очень большие программы, предназначенные для решения задач в
предметной области на основе математических и алгоритмических
моделей и обладающие способностью вести осмысленный диалог с
пользователем с целью упростить управление, сократить объем работы
человека, повысить качество и т. п.
7
4) Робототехника.
Среди множества направлений искусственного интеллекта есть
несколько ведущих, которые в настоящее время вызывают наибольший
интерес у исследователей.
Одной из основных целей разработки в ИТ состоит в разрешении
проблемы на основе инновационных решений.
Поэтому задачами данной работы являются следующие:

Объектом исследования, в рамках данной курсовой работы,


являются концепции современных систем, адаптируемых к коммерческой
среде.
Цель работы и задачи исследования. Цель работы заключается в
совершенствовании управления данных, людей и качества услуг в
корпоративных средах на основе разработки приложения для этой цели,
а также рассмотреть стороны в теоретической и экспериментальной
искусственного интеллекта. По этой теме, цель определила следующие
основные задачи:
Обзор работы
1) Проанализировать теоретические и экспериментальные
исследования об интеллектуальных системах;
2) Разработать электронные учебные пособия и тесты
компьютера на тему.
3) Добавить разработали программу был в изображения;
4) Создать инсталлятор для программы, которая разработан;
5) Добавить разработали программу, возможность записи
результатов тестирования в базу данных Microsoft Access;
6) Добавить разработали программу, возможность записи
результатов тестирования в Microsoft Word;
7) Добавить разработанная программа способна записывать
результат в блокнот;
8
8) Добавить в разработанную программу пароль, перед
испытанием;
9) Добавить разработали программу, диаграммы результатов
тестирования, вывод правильных и неправильных ответов в
Datagridview.

Конкретные цели работы


1) Обеспечивать возможность ведения работ по
проектированию отдельных подсистем небольшими группами (3-7
человек), что обусловлено принципами управляемости коллектива и
повышения производительности за счет минимизации числа внешних
связей;
2) Обеспечивать минимальное время получения
работоспособной системы;
3) Разработанная система реализует следующие функции:
прогноз дохода компании от обслуживания граждан на основе нечеткой
алгебры; оценка качества обслуживания населения на основе системы
нечеткого вывода; загрузку и сохранение модели нечеткого вывода и
базы правил;
4) Графическую и текстовую интерпретацию результатов
нечеткого вывода; возможность графического редактирования
лингвистических переменных; поддержку различных типов функций
принадлежности; редактор нечетких правил, позволяющий изменять
логику машины нечеткого вывода.
Методы исследования. Для решения поставленных задач
использовались теории нечетких множеств. Теоретической основой
исследования стала работа в области технологий построения
интеллектуальных систем.

9
ГЛАВА 1-ТЕХНОЛОГИИ ПОСТРОЕНИЯ
ИНТЕЛЛЕКТУАЛЬНЫХ СИСТЕМ
1.1 Методология создания интеллектуальных систем
1. 1. 1 Определение искусственного интеллекта

С точки зрения перспектив развития искусственный интеллект -


это набор очень мощных инструментальных средств и методов, которые
используются в качестве инструментальных средств, предназначенных
для решения практических проблем. Искусственный интеллект всегда
был междисциплинарной наукой, являясь одновременно и наукой и
искусством, и техникой и психологией. Методы искусственного
интеллекта разнообразны. Они активно заимствуются из других наук,
адаптируются и изменяются под решаемую задачу. Для создания
интеллектуальной системы необходимо привлекать специалистов из
прикладной области, поэтому в рамках искусственного интеллекта
сотрудничают лингвисты, нейрофизиологи, психологи, экономисты,
информатики, программисты.
Как искусственный интеллект (ИИ), это направление науки и
техники, ориентированное на создание программно-аппаратных средств
решения интеллектуальных задач, мы можем его определите в виде
черный ящик для лучшего понимания этой концепции, как показано на
рис. 1.

Рисунок 1- Интеллектуальная система как «черный ящик»

10
1.2 Классификация интеллектуальных

С учетом информационных компонент- интеллектуальной


информационной системой (ИИС) называют автоматизированную
информационную систему, основанную на знаниях, или комплекс
программных, лингвистических и логико-математических средств для
реализации основной задачи - осуществления поддержки деятельности
человека и поиска информации в режиме продвинутого диалога на
естественном языке.
Любая информационная система, решающая интеллектуальную
задачу или использующая методы искусственного интеллекта, относится
к интеллектуальным. Для интеллектуальных систем характерны
следующие признаки:
Развитые коммуникативные способности;
Умение решать сложные плохо формализуемые задачи;
Способность к самообучению;
Адаптивность.
Системы с интеллектуальным интерфейсом. Системы с
интеллектуальным интерфейсом включают в свой состав следующие
классы систем. Интеллектуальные базы данных, отличающиеся от
обычных баз данных тем, что по запросу можно выбрать информацию,
которая может явно не храниться в базе данных, а выводиться из
информации, имеющейся в базе данных. Формулирование запроса
осуществляется в диалоге с пользователем.
Гипертекстовые системы предназначены для реализации поиска по
ключевым словам в базах текстовой информации. Интеллектуальные
гипертекстовые системы отличаются возможностью сложной
семантической организации ключевых слов, котора отражает различные
смысловые отношения терминов. Возможен поиск мультимедийный
11
информации, включающей, помимо текстовой и цифровой информации,
графические, аудио и видео-образы.
Системы контекстной помощи можно рассматривать как
частный случай интеллектуальных гипертекстовых и естественно-
языковых систем. В системах контекстной помощи пользователь
описывает проблему, а система с помощью дополнительного диалога ее
конкретизирует и сама выполняет поиск относящихся к ситуации
рекомендаций. Такие системы относятся к классу систем
распространения знаний (Knowledge Publishing) и создаются как
приложение к системам документации.
Системы когнитивной графики позволяют осуществлять
интерфейс пользователя с ИИС с помощью графических образов,
которые генерируются в соответствии с происходящими событиями.
Такие системы используются в мониторинге и управлении
оперативными процессами.
Экспертные системы. Экспертные системы предназначены для
решения так называемых неформализованных задач. К
неформализованным относятся такие задачи, которые обладают
одной или несколькими из следующих характеристик: f задачи нельзя
решить в числовой форме;
Цели не удается выразить в терминах точно определенной целевой
функции;
Не существует алгоритмического решения задач;
Алгоритмическое решение существует, но его нельзя использовать
из-за ограниченности ресурсов.
Много агентные системы. Для таких динамических систем
характерна интеграция в базе знаний нескольких разнородных
источников знаний, обменивающихся между собой получаемыми
результатами на динамической основе.

12
Самообучающиеся системы. В основе самообучающихся систем
лежат методы автоматической классификации примеров ситуаций
реальной практики (обучения на примерах).
Индуктивные системы. Обобщение примеров происходит по
принципу от частного к общему и сводится к выявлению подмножеств
примеров, относящихся к одним и тем же подклассам, и определению
для них значимых признаков.
Нейронные сети являются технологией обработки информации,
вдохновленной изучением мозга и нервной системы человека.
Нейронные сети позволяют решать задачи прогнозирования,
классификации, поиска оптимальных вариантов, и совершенно
незаменимы в тех случаях, когда в обычных условиях решение задачи
основано на интуиции или опыте, а не на строгом (в математическом
смысле) ее описании.
Даптивные системы. Адаптивная информационная система- это
информационная система, которая изменяет свою структуру в
соответствии с изменением модели проблемной области.

13
Рисунок 2. Классификация интеллектуальных систем по методам

1.2.1 Требования, предъявляемые к интеллектуальным системам


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

14
Эффективность системы обеспечивается оптимизацией данных и
методов их обработки, применением оригинальных разработок, идей,
методов проектирования.
Интерфейс ИС должен быть интуитивно понятен. В свою очередь,
разработчик - программист должен понимать характер выполняемых
конечным пользователем операций.
Безопасность. Под безопасностью, прежде всего,
подразумевается свойство системы, в силу которого посторонние лица
не имеют доступа к информационным ресурсам организации, кроме тех,
которые для них предназначены. Защита информации от постороннего
доступа обеспечивается управлением доступом к ресурсам системы,
использованием современных программных средств защиты
информации.

1. 3 Технологии построения интеллектуальных систем

Основными задачами, решение которых должна обеспечивать


методология создания ИС (с помощью соответствующего набора
инструментальных средств), являются:
Соответствие создаваемой ИС целям и задачам предприятия, а
также предъявляемым к ней требованиям по автоматизации
информационных процессов;
Гарантирование создания системы с заданными параметрами в
течение заданного времени в рамках оговоренного заранее бюджета;
Простота сопровождения, модификации и расширения системы с
целью обеспечения ее соответствия изменяющимся условиям работы
предприятия;
Соответствие создаваемой корпоративной ИС требованиям
открытости, переносимости и масштабируемости;
15
Возможность использования в создаваемой системе
разработанных ранее и применяемых на предприятии средств
информационных технологий (программного обеспечения, баз данных,
средств вычислительной техники, телекоммуникаций). Методологии,
технологии и инструментальные средства проектирования.
Методологии, технологии и инструментальные средства
проектирования (СА5Е- средства) составляют основу проекта любой
информационной системы. Методология реализуется через конкретные
технологии и поддерживающие их стандарты, методики и
инструментальные средства, которые обеспечивают выполнение
процессов жизненного цикла информационных систем.
Основное содержание технологии проектирования составляют
технологические инструкции, состоящие из описания
последовательности технологических операций, условий, в зависимости
от которых выполняется та или иная операция, и описаний самих
операций.
Технология проектирования может быть представлена как
совокупность трех составляющих:
Заданной последовательности выполнения технологических
операций проектирования;
Критериев и правил, используемых для оценки результатов
выполнения технологических операций;
Графических и текстовых средств (нотаций), используемых для
описания проектируемой системы.
Каждая технологическая операция должна обеспечиваться
следующими материальными, информационными и людскими
ресурсами:
Данными, полученными на предыдущей операции (или
исходными данными), представленными в стандартном виде;

16
Методическими материалами, инструкциями, нормативами и
стандартами;
Программными и техническими средствами;
Исполнителями.
Результаты выполнения операции должны представляться в
некотором стандартном виде, обеспечивающем их адекватное
восприятие при выполнении следующей технологической операции (на
которой они будут использоваться в качестве исходных данных). Можно
сформулировать ряд общих требований, которым должна удовлетворять
технология проектирования, разработки и сопровождения ИС:
Поддерживать полный жизненный цикл информационной
системы;
Обеспечивать гарантированное достижение целей разработки
системы с заданным качеством и в установленное время;
Обеспечивать возможность разделения (декомпозиции) крупных
проектов на ряд подсистем - составных частей, разрабатываемых
группами исполнителей ограниченной численности, с последующей
интеграцией этих частей;

1. 4 Анализ данных предметной области


Предметом исследования является Оренбургская коммунальная
теплоснаб-жающая компания (КТК). Штатная структура приведена на
рисунке 3.

17
Рисунок 3 – Структура ООО «Оренбургская КТК»

Среди актуальных вопросов, находящихся в компетенции КТК


входят
- Внедрение современных технологий энергосбережения; f монтаж
энергосберегающего оборудования;
- Разработка специальных проектов;
- Сервисные функции;
- Оптимизация расчетов населения и борьба с неплатежами.
На основание структуры предприятия и учитывая текущие
потребности выделим информационные потоки, подлежащие
автоматизации.
Информационные потоки- это пути передачи информации,
обеспечивающие существование отдела на предприятии, внутри которой
они функционируют. Анализ информационных потоков проводим в два
этапа:

18
На первом этапе определили входные и выходные документы.
Входными документами являются: приказы и распоряжения
руководства, распоряжения главного бухгалтера
На втором этапе анализируются информационные потоки на
предприятии и документооборот. В результате анализа разработана
схема информационных потоков в ООО «оренбургская КТК»,
представленная на рисунке 4.

Рисунок 3– Схема информационных потоков в ООО «Оренбургская


КТК»

На схеме стрелками указаны пути передачи информации, пунктирными


стрелками указаны автоматизируемые потоки.
1) Сводный отчет, содержащий сведения о стоимости услуг и
льготных категориях, скидках, проводимых акциях и т.д.
2) Сведения о количестве зарегистрированных обращений, выданных
консультаций по телефону и т.д.
3) Данные прогноза об ожидаемой величине доходов и качестве
обслуживания населения.
19
4) Отчет о количестве обслуженных обращений граждан с указанием
минимального, максимального и среднего времени обслуживания.
5) Запрос в планово-экономический отдел относительно ожидаемого
уровня доходов и качества обслуживания в будущем году.
6) Распоряжения, регламентирующие порядок несения службы в
отделе диспетчеризации.
7) Распоряжения генерального директора.
8) Инструкция о порядке обслуживания граждан.
9) Распоряжения, должностные инструкции.
10) Запрос в бухгалтерию о текущем положении дел.
11) Запрос актуальных и прогнозируемых сведений о доходах и
качестве обслуживания.
12 Отчет о финансово - экономической деятельности

Объектом автоматизации на схеме информационных потоков


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

20
1. 5 Выбор и обоснование математического аппарата
В разрабатываемой ИС оценка качества обслуживания населения и
прогнозирование доходов осуществляется на основе системы нечеткого
вывода. Процесс нечеткого вывода представляет собой некоторую
процедуру или алгоритм получения нечетких заключений на основе
нечетких предпосылок или условий. Наиболее общим для систем
нечёткого вывода является алгоритм Мамдани. В нем используется
минимаксная композиция нечетких множеств.
Пусть в базе правил имеется m правил вида:
R1: ЕСЛИ x1 это A11 … И … xn это A1n, ТО y это B1…
Ri: ЕСЛИ x1 это Ai1 … И … xn это Ain, ТО y это Bi…
Rm: ЕСЛИ x1 это Ai1 … И … xn это Amn, ТО y это Bm,
где xk , k=1..n – входные переменные; y – выходная переменная;
Aik – заданные нечеткие множества с функциями принадлежности.
Результатом нечеткого вывода является четкое значение
переменной y* на основе заданных четких значений xk , k=1..n. В общем
случае механизм логического вывода включает четыре этапа: введение

21
нечеткости (фаззификация), нечеткий вывод, композиция и приведение к
четкости, или дефаззификация.
Нечеткость - определяются степени истинности, т.е. значения
функций принадлежности для левых частей каждого правила
(предпосылок). Для базы правил с m правилами обозначим степени
истинности как Aik(xk), i=1..m, k=1..n.
Нечеткий вывод - находятся уровни «отсечения» для предпосылок
каждого из правил (с использованием операции минимум).
Композиция, или объединение полученных усеченных функций,
для чего используется максимальная композиция нечетких множеств.
Дефаззификация, или приведение к четкости. Существует
несколько методов дефаззификации. Например, метод среднего центра,
или центроидный метод.
На рисунке 4 дается графическая интерпретация процесса
нечеткого вывода по Мамдани для двух входных переменных и двух
нечетких правил R1 и R2.

Рисунок 4 - Схема нечеткого вывода по Мамдани

22
1. 6 Архитектур и функциональная схема ИС

В качестве метода разработки выбран метод нисходящего


проектирования. Он состоит в том, что сначала строится модульная
структура программы в виде дерева и модули проектируются
поочередно, начиная с модуля самого верхнего (головного) уровня, а
переход к программированию какого-либо другого модуля
осуществляется только в том случае, если уже запрограммирован
модуль, который к нему обращается. После того, как все модули
программы запрограммированы, производится их поочередное
тестирование и отладка в таком же (нисходящем) порядке.
Иерархическая схема модулей ИС представлена на рисунке 5.

Рисунок 5 - Иерархическая схема модулей ПС

23
ГЛАВА 2- ПРАКТИЧЕСКАЯ ЧАСТЬ
2.1. Архитектур и функциональная схема ИС

Было разработано электронное пособие с помощью элементов


управления pictureBox, button, progressBar, timer. На элемент pictureBox
передаются изображения с текстом теоретической части. На изучение
материала пользователю выделяется 25 минут, это время отсчитывается
с помощью элемента progressBar и timer. С помощью кнопок «Дальше» и
«Назад» можно переключать изображения. После регистрации
открывается окно (Рисунок 6), на котором пользователю
предоставляется возможность перейти на форму с теоретическим
пособием или сразу приступить к тестированию.

Рисунок 6 - Окно с выбором пути использования приложения

После нажатия на кнопку «Изучить теорию» осуществляется


переход на форму с теоретическим материалом, на Рисунках 7 и 8

24
представлены скриншоты формы. На Рисунке 6 представлено сообщение
об ограничении времени на изучение теоретических материалов,
которое появляется при открытии формы с теорией. Все сообщения в
реализованы с помощью элемента MessageBox, все диалоговые окна – с
помощью InputBox.

Рисунок 7 - Сообщение об ограничении времени

Рисунок 8 - Форма с теоретической базой

После нажатия на кнопку «Выход» открывается информационное


окно, уточняющее намерение пользователя выйти из этого окна
преждевременно, оно представлено на Рисунке 9

25
Рисунок 1 - Окно, уточняющее намерение выйти
По истечении 25 минут предполагаемого изучения теоретических
материалов или после преждевременного выхода из формы повторно
открывается форма с выбором пути использования приложения
(Рисунок 5).
2.2. Тестовая программа

На прохождение теста пользователю выделяется 45 минут. Это


ограничение реализуется с помощью элемента timer. После нажатия на
кнопку «Пройти тестирование», расположенную на форме с выбором
пути дальнейшего использования приложения (Рисунок 5), открывается
сообщение об ограничении времени на прохождение теста (Рисунок 10).

Рисунок 2 - Сообщение об ограничении времени

Тест состоит из 16 вопросов, составленных с помощью различных


элементов управления: textBox, checkBox, radioButton, listBox, trackBar,
comboBox, checkedListBox, hScrollBar, label, pictureBox. Код для
перечисленных элементов управления представлен в Приложении B.
Для доступа к каждому последующему вопросу, надо ответить на
текущий вопрос, в противном случае программа выдает сообщение "Вы
не ответили" (Рисунок 11).

26
Рисунок 3 - Сообщение об ошибке прохождения теста
После нажатия на кнопку «Next» происходит проверка ответа и по
результатам проверки открывается сообщение либо о правильном ответе
или о неправильном (Рисунки 12 и 13), также вносятся изменения в
массив, состоящий из нулевых элементов: элемент, соответствующий
номеру вопроса, изменяется на единицу. Также осуществляется переход
к форме со следующим вопросом.
Пользователь имеет возможность завершить прохождение теста
преждевременно, нажав на кнопку «Finish». После нажатия открывается
окно, уточняющее намерение пользователя завершить прохождение, оно
представлено на Рисунке 14. Если пользователь подтверждает
завершение теста, то закрывается текущая форма и открывается форма с
результатами (Рисунок 32).

Рисунок 4 - Сообщение о правильном ответе на вопрос

27
Рисунок 5 - Сообщение о неправильном ответе на вопрос

Рисунок 6 - Окно, уточняющее намерение завершить прохождение теста


Рассмотрим элемент управления textBox на примере первого и
второго вопросов (Рисунки 15 и 16). На элементе label написан вопрос.
Необходимо в текстовое окно вписать определение. Код данного
элемента управления представлен в Приложении B.

Рисунок 7 - Элемент textBox в вопросе №1

28
Рисунок 8 - Элемент textBox в вопросе №2
С помощью программного кода пользователю предоставлена
возможность вводить ответ не только с заглавной буквы, но и со
строчной.
Перейдем к описанию элемента управления checkBox на примере
третьего и четвёртого вопроса (Рисунки 17 и 18). Этот элемент
позволяет пользователю выбрать более одного варианта ответа. Код
данного элемента управления представлен в Приложении B.

29
Рисунок 9 - Элемент checkBox в вопросе №3

Рисунок 10 - Элемент checkBox в вопросе №4

30
Перейдём к описанию элемента управления radioButton на
примере пятого и шестого вопросов (Рисунки 19 и 20). У пользователя
есть четыре варианта ответа, верным является только один. Код данного
элемента управления представлен в Приложении B.

Рисунок 11 - Элемент radioButton в вопросе №5

Рисунок 12 - Элемент radioButton в вопросе №6

31
Рассмотрим элемент управления listBox на примере седьмого и
восьмого вопросов (Рисунки 21 и 22). Этот элемент управления,
используя элемент button, изменяет своё содержимое, заполняясь той
или иной строчкой, удаляя её из «родительского» элемента, в котором
хранилась эта строчка. Для перехода к следующему вопросу необходимо
заполнить все listBox’ы, иначе откроется окно с сообщением «Вы не
ответили» (Рисунок 11). Код данного элемента управления представлен
в Приложении B.

Рисунок 13 - Элемент listBox в вопросе №7 (не заполненный до


конца)

32
Рисунок 14 - Элемент listBox в вопросе №8 (заполненный)

Перейдём к рассмотрению элемента trackBar на примере девятого


и десятого вопроса (Рисунки 23 и 24). На элементе pictureBox
представлено изображение со схемами, необходимо с помощью
«ползунка» trackBar указать номер схемы, составленной верно. Код
данного элемента управления представлен в Приложении B.

Рисунок 15 - Элемент trackBar в вопросе №9 (положение "1")


33
Рисунок 16 - Элемент trackBar в вопросе №10 (положение "8")

Рассмотрим элемент comboBox на примере одиннадцатого и


двенадцатого вопросов (Рисунки 25 и 26). Пользователю
предоставляется выбрать ответ на вопрос с помощью выпадающего
списка comboBox. Вопрос составлен с помощью элемента pictureBox.
Код данного элемента управления представлен в Приложении B.

Рисунок 17 - Элемент comboBox в вопросе №11

34
Рисунок 18 - Элемент comboBox в вопросе №12

Перейдём к описанию элемента checkedBoxList на примере


тринадцатого и четырнадцатого вопросов (Рисунки 27 и 28). Этот
элемент очень похож на описанный ранее checkBox: в нём также можно
выбрать несколько вариантов ответа, но в отличие от checkBox
учитывается при разработке учитывается количество выбранных
элементов внутри checkedBoxList и фактически этот элемент в
единственном количестве на странице. Код данного элемента
управления представлен в Приложении B.

35
Рисунок 19 - Элемент checkedListBox в вопросе №13

Рисунок 20 - Элемент checkedListBox в вопросе №14

Рассмотрим последний элемент управления hScrollBar на примере


последних двух вопросов (Рисунки 30 и 31). При переходе на форму с
пятнадцатым вопросом пользователю открывается сообщение о
тонкостях последних вопросов (Рисунок 29). С помощью элемента
hScrollBar пользователю предоставляется возможность указать в

36
вопрос15. Текущее значение передаётся на элемент управления label.
Код данного элемента управления представлен в Приложении B.

Рисунок 21 - Сообщение о тонкостях вопроса

Рисунок 22 - Элемент checkedListBox в вопросе №15

37
Рисунок 23 - Элемент checkedListBox в вопросе №16

После завершения одним из представленных способов


прохождения теста, открывается окно с результатами (Рисунок 32). В
таблицу dataGridView выведен массив данных с результатом для
каждого вопроса («1» - правильно, «0» - неправильно) и номера
вопросов. Также результаты представлены в виде диаграммы chart с
двумя столбцами, наглядно демонстрирующих количество правильных и
неправильных ответов. На элемент label выедена оценка, которая
выставлена автоматически относительно количества правильных
ответов. Также на форме выведена кнопка «Exit», с помощью которой
можно завершить работу приложения. Код для перечисленных
элементов представлен в Приложении B.

38
Рисунок 24 - Окно с результатами прохождения теста

2.3 Дополнительные возможности приложения


После нажатия на эту кнопку активируется функция
addLogPassword() (код реализации этой функции представлен под
Рисунком 36), открывается диалоговое окно, в котором пользователю
предлагается ввести адрес, где будет храниться база данных с логинами
и паролями (Рисунок 33).

39
Рисунок 33 - Стартовое окно с регистрацией пользователя

Рисунок 25 - Диалоговое окно с просьбой введения пути к папке


хранения базы данных

После создания базы данных и её структуры открываются


сообщения об успешном завершении данной операции (Рисунки 35 и
36).

Рисунок 26 - Сообщение о создании базы данных

40
Рисунок 27 - сообщение о создании структуры базы данных

Код реализации функции addLogPassword()


void addLogPassword(TextBox^ Login, TextBox^ Password)
{
StartupPath = Interaction::InputBox("Введите путь,
где будет создана база данных (без названия проекта, расширение добавляется
автоматически):", "Ввод", "", -1, -1);
ADOX::Catalog^ k = gcnew ADOX::CatalogClass();
try {
k->Create("Provider=Microsoft.Jet.OLEDB.4.0;
Data Source = "+ StartupPath + "\\Massives.mdb");
MessageBox::Show("База данных упешно создана.",
"Вывод", MessageBoxButtons::OK, MessageBoxIcon::Information);
}
catch (System::Runtime::InteropServices::COMException
^ situation)
{
MessageBox::Show(situation->Message);
}
k = nullptr;

auto connection = gcnew


OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = "+ StartupPath +
"\\Massives.mdb");
connection->Open();
auto strConnect = gcnew OleDbCommand("CREATE
TABLE[logins_passwords]([Номер элемента] counter,[Logins] char(200),[Passwords]
char(200))", connection);
try
{
strConnect->ExecuteNonQuery();
MessageBox::Show("Структура базы данных
создана.", "Вывод", MessageBoxButtons::OK, MessageBoxIcon::Information);
}
catch (System::Runtime::InteropServices::COMException
^ situation)
{
MessageBox::Show(situation->Message);
}
auto c = gcnew OleDbCommand("INSERT
INTO[logins_passwords](" + "[Logins],[Passwords])VALUES('" + Login->Text + "','" +
Password->Text + "')");
c->Connection = connection;
c->ExecuteNonQuery();
connection->Close();
}
41
После завершения регистрации необходимо нажать на кнопку
«Войти» после этого откроется диалоговое окно с просьбой указать путь
к папке где хранится база данных (Рисунок 37). С помощью функции
checkLogPassword() (код реализации этой функции представлен под
Рисунком 40) осуществляется проверка логина и пароля пользователя,
если пароль и логин совпадает, то открывается окно с приветствием
пользователя по введённому им логину (Рисунок 38), в противном
случае открывается сообщение об ошибке в введении данных
пользователя (Рисунок 39).

Рисунок 28 - Путь к месту создания базы данных

Рисунок 29 - Приветствие пользователя

42
Рисунок 30 - Сообщение об ошибке

На Рисунке 40 представлена база данных, в которой хранится


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

Рисунок 31 - База данных с логинами и паролями

Код реализации функции checkLogPassword()

void checkLogPassword(TextBox^ Login, TextBox^ Password, bool& flag)


{
flag = 0;
StartupPath = Interaction::InputBox("Введите путь,
где находится ваша база данных (без названия проекта, расширение добавляется
автоматически):", "Ввод", "", -1, -1);
auto connection = gcnew
OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source = "+ StartupPath +
"\\Massives.mdb");
connection->Open();
auto strConnect = gcnew OleDbCommand("SELECT * FROM
logins_passwords WHERE Logins = '" + Login->Text + "'AND Passwords = '" + Password-
>Text + "'", connection);
if (strConnect->ExecuteScalar() != nullptr)
{
flag = 1;
43
MessageBox::Show("Добро пожаловать в программу,
" + Login->Text, "Вывод", MessageBoxButtons::OK, MessageBoxIcon::Information);
connection->Close();
}
else
{
MessageBox::Show("Введен неправильный логин или
пароль", "Вывод", MessageBoxButtons::OK, MessageBoxIcon::Information);
Login->Text = "";
Password->Text = "";
connection->Close();
}
}

Функции addLogPassword() и checkLogPassword() вызывются при


нажатии на кнопки «Зарегистрироваться» и «Войти» соответственно.
Нижи представлен код вызова этих функций.
Код кнопки «Зарегистрироваться»:
private: System::Void cmdSIGN_Click(System::Object^ sender,
System::EventArgs^ e) {
if (textBox1->Text == "" && textBox2->Text == "" || textBox1-
>Text == "" || textBox2->Text == "")
MessageBox::Show("Пожалуйста, запоните все поля",
"Вывод", MessageBoxButtons::OK, MessageBoxIcon::Information);
else
{
addLogPassword(textBox2, textBox1);
}
}

Код кнопки «Войти»:


private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e) {
bool f;
checkLogPassword(textBox2, textBox1, f);
if (f) {
Theory^ t = gcnew Theory();
t->Show();
this->Hide();
}
else {
textBox1->Text = "";
textBox2->Text = "";
}
}

Приложение А
44
Вопрос 1 Вставьте определение. (TextBox)
Искусственный интеллект-это направление науки и техники,
ориентированное на создание программно-аппаратных средств решения
интеллектуальных задач.
Вопрос 2 Вставьте определение. (TextBox)
В Московском государственном университете был создан язык
символьной обработки данных "РЕФАЛ"
Вопрос3 Выберите важные направления в развитии
интеллектуальных систем появились в последнее время? (ChekBox)
Экспертные системы
Информационные системы +
Интеллектуальные базы данных
Информационные потоки
Системы имитирующие творческие процессы +

Вопрос4 Пусть минимаксная композиция нечетких множеств.


Расставьте правил вида в базе вида если есть только i как правил вида.
(ChekBox)
(1) Ri: (2) ЕСЛИ x1 плюс Ai1 ... и ... xn плюс Ain (3) ЕСЛИ x1 это
Ai1 … И … xn это Ain (4) ТО y это Bi…
1)+
3)+
4)+
Вопрос5 В каком году появился термин искусственный интеллект
(artificial intelligence)? (RadioButton)
1956+
Вопрос6 Выберите предпосылки возникновения искусственного
интеллекта как науки: (RadioButton)
появление ЭВМ;
45
нет правильного ответа
научная фантастика
развитие кибернетики, математики, философии, психологии и т.д.
+

Вопрос7 Сопоставьте фразы с правильными


определениями(ListBox)
Гибкость-Способность к адаптации и дальнейшему развитию
подразумевают возможность приспособления информационной системы
к новым условиям, новым потребностям предприятия.
Надежность-Системы подразумевает ее функционирование без
искажения информации, потери данных по «техническим причинам.
Эффективность-Если с учетом выделенных ей ресурсов она
позволяет решать возложенные на нее задачи в минимальные сроки.

Вопрос8 О достижениях Японии в разработке умных


компьютеров. Сопоставьте фразы с датами (ListBox)
В 1981 году-Япония приступила к разработке компьютера 5-го
поколения, основанного на знаниях – 10-летнего плана по разработке
интеллектуальных компьютеров на базе Prolog.
1986 год- стал годом возрождения интереса к нейронным сетям.
В 1991-финансирование проекта компьютера 5-го поколения и
начинает проект создания компьютера 6-го поколения –
нейрокомпьютера.

Вопрос9 Какая из диаграмм ниже представляет схему нечеткого


вывода по Мамдани(TrackBar)

46
Вопрос10 Выберите из схемы какой номер указан "Инструкция о
порядке обслуживания граждан. (TrackBar)
(8)+

Вопрос11 Укажите тип предложения, схема которого указана на


рисунке. (ComboBox)

(1) Жесткие->(2) Мягкие----->(3) Гибридные +

Вопрос12 Укажите тип части речи выделенного слова в


предложении. (ComboBox)
47
Вопрос13Контекстная диаграмма программного
средства(ComboBox)

Выберите характерны признаки интеллектуальных систем


- Сервисные функции.+
- Развитые коммуникативные способности.+
- Разработка специальных проектов.
- Способность к самообучению.+

Вопрос14 Выберите характерны компетенции КТК: Адаптивность.


- Внедрение современных технологий энергосбережения.
- Монтаж энергосберегающего оборудования.
- Разработка специальных проектов.
- Сервисные функции.
- Оптимизация расчетов населения и борьба с неплатежами.

Вопрос15 В каком году было формирован искусственного


интеллекта как науки:
1953+
48
Вопрос16 Выберите правильное определение "Информационные
потоки
Это пути передачи информации, обеспечивающие существование
отдела на предприятии, внутри которой они функционируют.

Приложение Б

Код реализации элемента управления textBox:


В вопросе №1:
#pragma once
#include "quest2.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e) {
if (textBox1->Text == "")
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);

else if ((textBox1->Text == "Деепричастие") || (textBox1->Text


== "деепричастие"))
{
count::n++;
count::result[0] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest2^ f = gcnew quest2;
f->Show();
this->Close();
textBox1->Enabled = false;
}
else

49
{
count::result[0] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest2^ f = gcnew quest2;
f->Show();
this->Close();
textBox1->Enabled = false;
}
}

private: System::Void cmdFinish_Click(System::Object^ sender,


System::EventArgs^ e) {
MessageBox::Show("Вы завершили тест", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}

private: System::Void cmdFinish_Click_1(System::Object^ sender,


System::EventArgs^ e) {
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

В вопросе №2:
#pragma once
#include "quest3.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e) {
if (textBox1->Text == "")
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);

50
}

else if ((textBox1->Text == "Причастие") || (textBox1->Text ==


"причастие"))
{
count::n++;
count::result[1] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest3^ f = gcnew quest3;
f->Show();
this->Close();
textBox1->Enabled = false;
}
else
{
count::result[1] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest3^ f = gcnew quest3;
this->Close();
f->Show();
textBox1->Enabled = false;
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e) {
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
private: System::Void textBox1_TextChanged(System::Object^ sender,
System::EventArgs^ e) {
}
};
}

Код реализации элемента управления checkBox:


В вопросе №3:
#pragma once
#include "quest4.h"
#include "final_result.h"

namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;

---
51
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e) {
if ((!checkBox1->Checked) && (!checkBox2->Checked) && (!
checkBox3->Checked) && (!checkBox4->Checked) && (!checkBox5->Checked))
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if ((!checkBox1->Checked) && (checkBox2->Checked) && (!
checkBox3->Checked) && (!checkBox4->Checked) && (checkBox5->Checked))
{
count::n++;
count::result[2] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest4^ f = gcnew quest4;
f->Show();
this->Close();
}
else
{
count::result[2] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest4^ f = gcnew quest4;
f->Show();
this->Close();
}
}

private: System::Void backgroundWorker1_DoWork(System::Object^ sender,


System::ComponentModel::DoWorkEventArgs^ e) {
}

private: System::Void cmdFinish_Click(System::Object^ sender,


System::EventArgs^ e) {
if (MessageBox::Show("Вы уверены, что хотите выйти?", "Сообщение.",
MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

В вопросе №4:
#pragma once
#include "quest5.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;

52
using namespace System::Drawing;
---
#pragma endregion
private: System::Void groupBox1_Enter(System::Object^ sender,
System::EventArgs^ e) {
}
private: System::Void backgroundWorker1_DoWork(System::Object^ sender,
System::ComponentModel::DoWorkEventArgs^ e) {
}
private: System::Void label1_Click(System::Object^ sender, System::EventArgs^
e) {
}
private: System::Void cmdSTART_Click_1(System::Object^ sender,
System::EventArgs^ e) {
if ((!checkBox1->Checked) && (!checkBox2->Checked) && (!checkBox3-
>Checked) && (!checkBox4->Checked))
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if ((checkBox1->Checked) && (!checkBox2->Checked) && (checkBox3-
>Checked) && (checkBox4->Checked))
{
count::n++;
count::result[3] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest5^ f = gcnew quest5;
f->Show();
this->Close();

}
else
{
count::result[3] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest5^ f = gcnew quest5;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e) {
if (MessageBox::Show("Вы уверены, что хотите выйти?", "Сообщение.",
MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

Код реализации элемента управления radioButton:


В вопросе №5:
#pragma once
#include "quest6.h"
53
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e) {
if ((!radiocmdSTART->Checked) && (!radiocmdFinish->Checked) &&
(!radioButton3->Checked) && (!radioButton4->Checked))
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if ((!radiocmdSTART->Checked) && (radiocmdFinish->Checked)
&& (!radioButton3->Checked) && (!radioButton4->Checked))
{
count::n++;
count::result[4] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest6^ f = gcnew quest6;
f->Show();
this->Close();
}
else
{
count::result[4] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest6^ f = gcnew quest6;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e) {
if (MessageBox::Show("Вы уверены, что хотите выйти?", "Сообщение.",
MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
} }; }

В вопросе №6:
#pragma once
#include "quest7.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;

54
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e) {
if ((!radiocmdSTART->Checked) && (!radiocmdFinish->Checked) &&
(!radioButton3->Checked) && (!radioButton4->Checked))
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if ((!radiocmdSTART->Checked) && (!radiocmdFinish-
>Checked) && (!radioButton3->Checked) && (radioButton4->Checked))
{
count::n++;
count::result[5] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest7^ f = gcnew quest7;
f->Show();
this->Close();
}
else
{
count::result[5] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest7^ f = gcnew quest7;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e) {
if (MessageBox::Show("Вы уверены, что хотите выйти?", "Сообщение.",
MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

Код реализации элемента управления listBox:


В вопросе №7:
#pragma once
#include "quest8.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

55
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void quest7_Load(System::Object^ sender,
System::EventArgs^ e)
{
array <System::Object^>^ mas = gcnew array
<System::Object^>(3);
mas[0] = ("Равномерное движение лодки было нарушено,
направление утеряно.");
mas[1] = ("В чёрной туче отдыхающей на хребте западных гор
спряталось уставшее за день солнце.");
mas[2] = ("Все события обдуманные и пережитые облекались
Тютчевым в художественные образы поднимавшиеся на высоту философского обобщения.");

for (int i = 0; i < 3; i++) {


listBox1->Items->Add(mas[i]);
}
}

private: System::Void button1_Click(System::Object^ sender,


System::EventArgs^ e)
{
if (listBox1->SelectedIndex == 0)
{
listBox2->Items->Add(Convert::ToString(listBox1-
>Items[0]));
listBox1->Items->RemoveAt(0);
}
else if (listBox1->SelectedIndex == 1)
{
listBox2->Items->Add(Convert::ToString(listBox1-
>Items[1]));
listBox1->Items->RemoveAt(1);
}
else if (listBox1->SelectedIndex == 2)
{
listBox2->Items->Add(Convert::ToString(listBox1-
>Items[2]));
listBox1->Items->RemoveAt(2);
}
}
private: System::Void button2_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (listBox1->SelectedIndex == 0)
{
listBox3->Items->Add(Convert::ToString(listBox1-
>Items[0]));
listBox1->Items->RemoveAt(0);
}
else if (listBox1->SelectedIndex == 1)
{
listBox3->Items->Add(Convert::ToString(listBox1-
>Items[1]));
56
listBox1->Items->RemoveAt(1);
}
else if (listBox1->SelectedIndex == 2)
{
listBox3->Items->Add(Convert::ToString(listBox1-
>Items[2]));
listBox1->Items->RemoveAt(2);
}
}
private: System::Void button3_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (listBox1->SelectedIndex == 0)
{
listBox4->Items->Add(Convert::ToString(listBox1-
>Items[0]));
listBox1->Items->RemoveAt(0);
}
else if (listBox1->SelectedIndex == 1)
{
listBox4->Items->Add(Convert::ToString(listBox1-
>Items[1]));
listBox1->Items->RemoveAt(1);
}
else if (listBox1->SelectedIndex == 2)
{
listBox4->Items->Add(Convert::ToString(listBox1-
>Items[2]));
listBox1->Items->RemoveAt(2);
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e)
{
if ((listBox2->Items->Count == 0) || (listBox3->Items->Count ==
0) || (listBox4->Items->Count == 0))
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if ((listBox2->Items[0] == "Равномерное движение лодки
было нарушено направление утеряно.")
&& (listBox3->Items[0] == "В чёрной туче
отдыхающей на хребте западных гор спряталось уставшее за день солнце.")
&& (listBox4->Items[0] == "Все события обдуманные
и пережитые облекались Тютчевым в художественные образы поднимавшиеся на высоту
философского обобщения."))
{
count::n++;
count::result[6] = 1;

57
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest8^ f = gcnew quest8;
f->Show();
this->Close();
}
else
{
count::result[6] = 0;
MessageBox::Show("Вы ответили неправильно",
"Тест", MessageBoxButtons::OK, MessageBoxIcon::Information);
quest8^ f = gcnew quest8;
f->Show();
this->Close();

}
}
};
}

В вопросе №8:
#pragma once
#include "quest9.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void quest8_Load(System::Object^ sender, System::EventArgs^ e)
{
array <System::Object^>^ mas = gcnew array <System::Object^>(3);
mas[0] = ("году Япония приступила к разработке компьютера 5-го поколения,
основанного на знаниях – 10-летнего плана по разработке интеллектуальных компьютеров на
базе Prolog.");
mas[1] = ("год стал годом возрождения интереса к нейронным сетям.");
mas[2] = ("Япония прекращает финансирование проекта компьютера 5-го
поколения и начинает проект создания компьютера 6-го поколения – нейрокомпьютера.");

for (int i = 0; i < 3; i++) {


listBox1->Items->Add(mas[i]);
}
}

private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e)


{
if (listBox1->SelectedIndex == 0)
{
listBox2->Items->Add(Convert::ToString(listBox1->Items[0]));
listBox1->Items->RemoveAt(0);
}
else if (listBox1->SelectedIndex == 1)
58
{
listBox2->Items->Add(Convert::ToString(listBox1->Items[1]));
listBox1->Items->RemoveAt(1);
}
else if (listBox1->SelectedIndex == 2)
{
listBox2->Items->Add(Convert::ToString(listBox1->Items[2]));
listBox1->Items->RemoveAt(2);
}
}
private: System::Void button2_Click(System::Object^ sender, System::EventArgs^ e)
{
if (listBox1->SelectedIndex == 0)
{
listBox3->Items->Add(Convert::ToString(listBox1->Items[0]));
listBox1->Items->RemoveAt(0);
}
else if (listBox1->SelectedIndex == 1)
{
listBox3->Items->Add(Convert::ToString(listBox1->Items[1]));
listBox1->Items->RemoveAt(1);
}
else if (listBox1->SelectedIndex == 2)
{
listBox3->Items->Add(Convert::ToString(listBox1->Items[2]));
listBox1->Items->RemoveAt(2);
}
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e)
{
if (listBox1->SelectedIndex == 0)
{
listBox4->Items->Add(Convert::ToString(listBox1->Items[0]));
listBox1->Items->RemoveAt(0);
}
else if (listBox1->SelectedIndex == 1)
{
listBox4->Items->Add(Convert::ToString(listBox1->Items[1]));
listBox1->Items->RemoveAt(1);
}
else if (listBox1->SelectedIndex == 2)
{
listBox4->Items->Add(Convert::ToString(listBox1->Items[2]));
listBox1->Items->RemoveAt(2);
}
}

private: System::Void cmdSTART_Click_1(System::Object^ sender, System::EventArgs^


e)
{
if ((listBox2->Items->Count == 0) || (listBox3->Items->Count == 0) ||
(listBox4->Items->Count == 0))
{
MessageBox::Show("Вы не ответили", "Ошибка", MessageBoxButtons::OK,
MessageBoxIcon::Information);
}
else if ((listBox2->Items[0] == "году Япония приступила к разработке
компьютера 5-го поколения, основанного на знаниях – 10-летнего плана по разработке
интеллектуальных компьютеров на базе Prolog.")
&& (listBox3->Items[0] == "год стал годом возрождения интереса к
нейронным сетям.")
&& (listBox4->Items[0] == "Япония прекращает финансирование проекта
компьютера 5-го поколения и начинает проект создания компьютера 6-го поколения –
нейрокомпьютера."))

59
{
count::n++;
count::result[7] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest9^ f = gcnew quest9;
f->Show();
this->Close();

}
else
{
count::result[7] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest9^ f = gcnew quest9;
f->Show();
this->Close();

Код реализации элемента управления trackBar:


В вопросе №9:
#pragma once
#include "quest10.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void trackBar1_Scroll(System::Object^ sender,
System::EventArgs^ e) {
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (trackBar1->Value == 0)
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
60
else if (trackBar1->Value == 1)
{
count::n++;
count::result[8] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest10^ f = gcnew quest10;
f->Show();
this->Close();

}
else
{
count::result[8] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest10^ f = gcnew quest10;
f->Show();
this->Close();
}
}
};
}

В вопросе №10:
#pragma once
#include "quest11.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (trackBar1->Value == 0)
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if (trackBar1->Value == 3)
{
count::n++;
count::result[9] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest11^ f = gcnew quest11;
f->Show();
this->Close();
}
61
else
{
count::result[9] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest11^ f = gcnew quest11;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

Код реализации элемента управления comboBox:


В вопросе №11:
#pragma once
#include "quest12.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void comboBox1_SelectedIndexChanged(System::Object^
sender, System::EventArgs^ e) {
}
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (comboBox1->SelectedIndex == -1)
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if (comboBox1->SelectedIndex == 1)
{
count::n++;
count::result[10] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);

62
quest12^ f = gcnew quest12;
f->Show();
this->Close();

}
else
{
count::result[10] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest12^ f = gcnew quest12;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

В вопросе №12:
#pragma once
#include "quest13.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (comboBox1->SelectedIndex == -1)
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if (comboBox1->SelectedIndex == 3)
{
count::n++;
count::result[11] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest13^ f = gcnew quest13;
63
f->Show();
this->Close();

}
else
{
count::result[11] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest13^ f = gcnew quest13;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

Код реализации элемента управления checkedListBox:


В вопросе №13:
#pragma once
#include "quest14.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (checkedListBox1->CheckedItems->Count == 0)
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if ((checkedListBox1->CheckedIndices->Count == 3) &&
(checkedListBox1->CheckedIndices->Contains(1)) && (checkedListBox1->CheckedIndices-
>Contains(3)) && (checkedListBox1->CheckedIndices->Contains(4)))
{
count::n++;
count::result[12] = 1;
64
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest14^ f = gcnew quest14;
f->Show();
this->Close();
}
else
{
count::result[12] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest14^ f = gcnew quest14;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
};
}

В вопросе №14:
#pragma once
#include "quest15.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
#pragma endregion
private: System::Void cmdSTART_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (checkedListBox1->CheckedItems->Count == 0)
{
MessageBox::Show("Вы не ответили", "Ошибка",
MessageBoxButtons::OK, MessageBoxIcon::Information);
}
else if (checkedListBox1->CheckedIndices->Count == 5)

{
count::n++;
count::result[13] = 1;

65
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest15^ f = gcnew quest15;
f->Show();
this->Close();

}
else
{
count::result[13] = 0;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest15^ f = gcnew quest15;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender,
System::EventArgs^ e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?",
"Сообщение.", MessageBoxButtons::YesNo) ==
System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
private: System::Void label1_Click(System::Object^ sender, System::EventArgs^
e) {
}
private: System::Void checkedListBox1_SelectedIndexChanged(System::Object^
sender, System::EventArgs^ e) {
}
};
}

Код реализации элемента управления hScrollBar:


В вопросе №15:
#pragma once
#include "quest16.h"
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
private: System::Void quest15_Load(System::Object^ sender, System::EventArgs^ e)
{
hScrollBar1->Minimum = 1953;
hScrollBar1->Maximum = 2000;
hScrollBar1->Value = 1953;
label3->Text = ("Год:" + Convert::ToInt16(hScrollBar1->Value));

66
MessageBox::Show("В этом вопросе обратите внимание, что данный диапазон
года - 1953-1956 гг.", "Тест", MessageBoxButtons::OK, MessageBoxIcon::Information);
}

private: System::Void hScrollBar1_ValueChanged(System::Object^ sender,


System::EventArgs^ e)
{
label3->Text = ("Год:" + Convert::ToInt16(hScrollBar1->Value));
}
private: System::Void cmdSTART_Click(System::Object^ sender, System::EventArgs^ e)
{
if (hScrollBar1->Value == 5)
{
count::n++;
count::result[14] = 1;
MessageBox::Show("Вы ответили правильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest16^ f = gcnew quest16;
f->Show();
this->Close();

}
else
{
count::result[14] = 1953;
MessageBox::Show("Вы ответили неправильно", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
quest16^ f = gcnew quest16;
f->Show();
this->Close();
}
}
private: System::Void cmdFinish_Click(System::Object^ sender, System::EventArgs^
e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?", "Сообщение.",
MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}

В вопросе №16:
#pragma once
#include "counter.h"
#include "final_result.h"
namespace coursework {

using namespace System;


using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
---
pragma endregion

private: System::Void quest16_Load(System::Object^ sender, System::EventArgs^ e)

67
{

}
private: System::Void hScrollBar1_ValueChanged(System::Object^ sender,
System::EventArgs^ e)
{
int a = hScrollBar1->Value;
if (a < 6)
label1->Text = ("------>>");
if (a == 6)
label1->Text = ("Это информационная система, которая изменяет свою
структуру в соответствии с изменением модели проблемной области.");
if (a > 6 && a < 12)
label1->Text = (" ------>>");
if (a == 12)
label1->Text = ("Принцип «трансформации — детрансформации» можно
использовать только при работе с индивидуумом.");
if (a > 12 && a < 18)
label1->Text = (" ------>>");
if (a == 18)
label1->Text = ("Это пути передачи информации, обеспечивающие
существование отдела на предприятии, внутри которой они функционируют.");
if (a > 18 && a < 24)
label1->Text = (" ------>>");
if (a == 24)
label1->Text = ("Это набор очень мощных инструментальных средств и
методов, которые используются в качестве инструментальных средств, предназначенных для
решения практических проблем.");
if (a > 24 && a < 30)
label1->Text = (" ------>>");
if (a == 30)
label1->Text = ("Сведения о количестве зарегистрированных обращений,
выданных консультаций по телефону и т.д.");
}
private: System::Void cmdSTART_Click(System::Object^ sender, System::EventArgs^ e)
{
int a = hScrollBar1->Value;
if ((a < 6) || (a > 6 && a < 12) || (a > 12 && a < 18) || (a > 18 && a <
24) || (a > 24 && a < 30))
MessageBox::Show("Вы не ответили на вопрос.", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Warning);
else
{
if (hScrollBar1->Value == 18)
{
count::p++;
count::result[15] = 1;
MessageBox::Show("Вы ответили правильно.", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
else
{
MessageBox::Show("Вы ответили неправильно.", "Тест",
MessageBoxButtons::OK, MessageBoxIcon::Information);
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}
}

68
private: System::Void cmdFinish_Click(System::Object^ sender, System::EventArgs^
e)
{
if (MessageBox::Show("Вы уверены, что хотите выйти?", "Сообщение.",
MessageBoxButtons::YesNo) == System::Windows::Forms::DialogResult::Yes) {
final_result^ f = gcnew final_result;
f->Show();
this->Close();
}
}

};
}

69
70

Вам также может понравиться