Статья:

Использование объектно-ориентированного подхода к представлению и обработке знаний

Конференция: XVIII Студенческая международная научно-практическая конференция «Молодежный научный форум»

Секция: Технические науки

Выходные данные
Погодин Д.В. Использование объектно-ориентированного подхода к представлению и обработке знаний // Молодежный научный форум: электр. сб. ст. по мат. XVIII междунар. студ. науч.-практ. конф. № 17(18). URL: https://nauchforum.ru/archive/MNF_interdisciplinarity/17(18).pdf (дата обращения: 27.04.2024)
Лауреаты определены. Конференция завершена
Эта статья набрала 0 голосов
Мне нравится
Дипломы
лауреатов
Сертификаты
участников
Дипломы
лауреатов
Сертификаты
участников
на печатьскачать .pdfподелиться

Использование объектно-ориентированного подхода к представлению и обработке знаний

Погодин Даниил Витальевич
студент, Лесосибирский педагогический институт – филиал СФУ, РФ, г. Лесосибирск
Киргизова Елена Викторовна
научный руководитель, канд. пед. наук, доцент, Лесосибирский педагогический институт – филиал СФУ, РФ, г. Лесосибирск

 

Проблема, которая характерна для систем, основанных на знаниях, является проблема представления знаний. Это объясняется тем, что свойства системы и её характеристики сильно зависят от формы представления знаний. Как эксперты, так и пользователи системы должны быть уверены, что поймут представление знаний. Иначе приобретение знаний и их оценка затрудняются.

Целью данной работы является реализация на практике объектно-ориентированного программирования. Для достижения поставленной цели используем объектно-ориентированный язык программирования C#.

В программе имеется класс-контейнер Vector, один базовый класс Minerals и его классы-наследники Fuel, Metals, Gems. Все классы в программе находятся в отдельных файлах. Базовый класс Minerals – абстрактный класс, содержащий 3 абстрактные функции: Cost (получить стоимость) и Print (получить название), обеспечивающие удобный для последующего чтения вывод информации об объектах классов-потомков [2].

Класс-потомок Fuel позволяет обрабатывать информацию о топливе. Ключевой его характеристикой является публичная переменная типа строка «name», характеризующая наименование топлива. Действительная переменная «cost» отвечает за стоимость топлива.

Класс-потомок Metals позволяет обрабатывать информацию о металлах. Ключевыми его характеристиками являются публичная переменная типа строка «name», характеризующая наименование металла и переменная «density» действительного типа, отвечающая за плотность. Действительная переменная «cost» отвечает за стоимость металла.

Класс-потомок Gems позволяет обрабатывать информацию о драгоценных камнях. Ключевыми его характеристиками являются публичная переменная типа строка «type Color», характеризующая название цвет драгоценного камня, переменная «hardness» типа короткое целое, характеризующая твердость драгоценного камня и переменная «color» перечисляемого типа, отвечающая за цвет драгоценного камня. Действительная переменная «cost» отвечает за стоимость драгоценного камня.

Все абстрактные функции, наследуемые классами-потомками от класса Minerals, определяются модификатором override [1].

На рисунке 1 приведена диаграмма классов UML, соответствующая используемым классам (Vector, Minerals, Fuel, Metals, Gems)

 

.123.jpg

Рисунок 1. Диаграмма классов UML, соответствующая используемым классам (Vector, Minerals, Fuel, Metals, Gems)

 

Для запуска программы следует заполнить файл «Вход.txt» данными. Пример на рисунке 2:

 

Рисунок 2. Пример ввода данных

 

Запустить файл программы, ввести название файла для ввода без расширения «Вход», как показано на рисунке 3:

 

Рисунок 3. Пример запуска программы

 

После исполнения программы получаем результат в файле «выход», как показано на рисунке 4:

 

Рисунок 4. Результат работы программы

 

Наследование – механизм объектно-ориентированного программирования, позволяющий описать новый класс на основе уже существующего, при этом свойства и функциональность родительского класса заимствуются или переопределяются новым классом. При определении класса для наследования от другого класса, производный класс явно получает все члены базового класса, за исключением его конструкторов и деструкторов. Производный класс может, таким образом, повторно использовать код в базовом классе без необходимости в его повторной реализации [4].

Виртуальные функции и методы базового класса определяют интерфейс всей иерархии. Применение виртуальных функций обеспечивает гибкость и возможность расширения функциональности класса. При описании классов в качестве виртуальных определяются те функции, которые в производных классах должны реализовываться по-другому [3].

В данной программе используется 2 виртуальные функции (все они объявлены в абстрактном классе Minerals) – Print обеспечивающий удобный для последующего чтения вывод информации об объектах классов-потомков, и cost, позволяющая выполнять сортировку по стоимости полезного ископаемого.

В результате работы мы получили программу - простейшее хранилище данных на основе векторного типа контейнера. Программа считает из текстового файла исходные данные и на их основе создает необходимые объекты, размещает объекты в контейнере, сортирует объекты в контейнере по общему свойству, выводит содержимое контейнера в отдельный текстовый файл, в удобном для чтения виде. Главная особенность применения языка представления знаний фреймами – простота написания программ для решения интеллектуальных проблем, в этом мы убедились, написав данное приложение.

 

Список литературы:
1. Виртуальные методы и свойства. – [Электронный ресурс] – Режим доступа. – URL: https://metanit.com/sharp/tutorial/3.19.php (дата обращения: 23.09.2018).
2. Пахунов, А. В. Абстрактные базовые классы // Современная наука. 2015. № 1. – [Электронный ресурс] – Режим доступа. – URL: https://cyberleninka.ru/article/n/abstraktnye-bazovye-klassy (дата обращения: 23.09.2018).
3. Секунов, Н. Ю. Самоучитель Visual C++.NET. – Санкт-Петербург: БХВ-Петербург, 2002. – 726 с.
4. Хайдаров, К. А. Объектно-ориентированное программирование и определение классов в языке C++ // Среда визуального программирования Borland C++Builder. – [Электронный ресурс] – Режим доступа. – URL: http://bourabai.ru/C-Builder/3.htm (дата обращения: 23.09.2018).