Семантические сети

Автор работы: Пользователь скрыл имя, 17 Января 2014 в 11:58, лабораторная работа

Краткое описание

Цель работы: получение знаний, умений и навыков по созданию базы знаний, представляющей собой семантическую сеть.
Задание: Разработать программу, реализующую семантическую сеть согласно варианту 1.

Прикрепленные файлы: 1 файл

Отчёт.Лабораторная №4.doc

— 714.50 Кб (Скачать документ)

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

 Семантические  сети

 

 

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

Задание: Разработать  программу, реализующую семантическую  сеть согласно варианту 1.

 

Вариант 1

Компания, в которой Вы работаете, получила задание на разработку справочной системы по журналам издательства «Издательство Мечты». Данная компания выпускает различные по целевой аудитории, ценовой категории и объему страниц журналы.

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

Таблица 1

Название журнала

Основная целевая

аудитория

Стоимость одного номера, руб.

Объем страниц журнала

Какая информация представлена в журнале

Возможна ли подписка на журнал

Тюниг автомобилей

Мужчины

140

170

Современные технологии тюнинга автомобилей

нет

Мода

Женщины

90

90

Новейшие тенденции моды

да

Компьютерные и видео игры

Мужчины и женщины

65

60

Все о компьютерных и видео играх

нет

Рукоделие

Женщины

45

50

Эксклюзивные вещи своими руками

да

Фотография

Мужчины и женщины

100

95

Основы и секреты фотографии

да

Кино и музыка

Мужчины и женщины

30

30

Только актуальная информация и  кино и музыке

нет


 

В построенной семантической  сети определить:

    1. Какой журнал предоставляет информацию о современных технологии тюнинга автомобилей?
    2. Какие журналы предназначены для мужчин?
    3. Какие журналы стоят 100 рублей?
    4. На какие журналы можно оформить подписку?

 

Выполнение:

1. После нажатия кнопки «Загрузить базу» можно начинать опрос.

 

Рисунок 1 – Главное  меню.

 

2. При нажатии кнопки  «Начать опрос»  - можно выбирать  вопросы, на которые мы хотим получить ответы.

Рисунок 2 – Выбор вопросов.

 

 

3. После выбора вопроса  нажимаем на кнопку «Вывести  результат» и получаем  ответ  на вопрос.

 

Рисунок 3 – Вывод результата.

 

Листинг 1 – Код программы

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

 

namespace BD

{

    public partial class Form1 : Form

    {

        public Form1()

        {

            InitializeComponent();

            label1.Visible = false;

            label2.Visible = false;

        }

        Property f2 = new Property();

       

   //     public static int n = 17, m = 5, n1 = 16, m1 = 4;

        Class1 obj = new Class1();

     //   List<string> bukv = new List<string> { "A", "B", "C", "D", "E" };

        public string [] alfavit = {"A","B","C","D","E","F","G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","W","X","Y","Z"};

        public string[,] simp;

        public string[] nameMagazine;

        public int[,] bolezn;

        public int[] prov;

        public string[] vopr = { "Какой журнал предоставляет информацию о...?", "Какие журналы предназначены для...?", "Какие журналы стоят... рублей?", "На какие журналы можно оформить подписку?" };

        public int[] por = {4,1,2,5};

 

        public int v;

        string per;

        bool flag=false;

        int k,count;

        string path = Application.StartupPath.ToString() + "//1.xlsx";

 

        private void button1_Click(object sender, EventArgs e)

        {

            k = 1;

            count = 0;

           

            simp=new string[f2.N,f2.M];

            nameMagazine = new string[f2.N];

            bolezn = new int[f2.N, f2.M];

            prov = new int[f2.N];

            label1.Visible = true;

            obj.Load(path, 1);

            for (int i = 0; i < f2.M; i++)

            {

                for (int j = 3; j <f2.N+3; j++)

                {

                    StringBuilder cell = new StringBuilder();

                    cell.Append(alfavit[i]);

                    cell.Append(j);

                    simp[j - 3, i] = obj.GetCell(cell.ToString());

                 

                  //  dataGridView1[i, j-1].Value = obj.GetCell(cell.ToString());

                   

                }

            }

           

            obj.Close();

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            Form2 f1 = new Form2();

            f1.Show();

        }

 

       

       

      

       /* private void button4_Click(object sender, EventArgs e)

        {

            for (int i = 1; i < f2.M; i++)

            {

                for (int j = 1; j < f2.N; j++)

                {

                    if (simp[j, i] == "+")

                    {

                        bolezn[j-1, i-1] = 1;

                    }

                    else

                    {

                        bolezn[j-1, i-1] = 0;

                    }

                }

            }

             for (int i = 0; i < f2.M-1; i++)

            {

                for (int j = 0; j < f2.N-1; j++)

                {                   

                      prov[j]= bolezn[j, i];                

                }

                //for (int i1 = 0; i1 < 16; i1++)

                {

                   // richTextBox3.Text += Convert.ToString(prov[i1]) + " ";

                   // richTextBox4.Text += Convert.ToString(bsimp[i1]) + " ";

                   // richTextBox4.Text += Convert.ToString(prov[i1] ^ bsimp[i1]) + " ";

             //   }

                for (int t = 0; t < f2.N-1; t++)

                {

                    if ((prov[t] ^ bsimp[t]) == 1)

                    {

 

                        flag = false;

                        break;

                    }

                    else { flag = true; }

                   

                }

                if (flag == true)

                {

                    richTextBox2.Text = simp[0, i + 1];

                }

              

            }

             if (richTextBox2.Text == "")

             {

                 richTextBox2.Text = "Такой болезни еще не выявлено";

             }

           

        }*/

 

        private void Form1_Load(object sender, EventArgs e)

        {

         obj.Load(path, 1);

           f2.N = Convert.ToInt32(obj.GetCell("A1"));

           f2.M = Convert.ToInt32(obj.GetCell("A2"));

           obj.Close();

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            comboBox1.Items.Clear();

            comboBox1.Text = "";

            comboBox1.Enabled = true;

            label1.Visible = false;

            v = 0;

            label2.Text = vopr[v];

            for (int i = 1; i < f2.N; i++)

            {

                comboBox1.Items.Add(simp[i, por[v]]);

               

            }

            label2.Visible = true;

 

            v++;

        }

 

        private void button4_Click(object sender, EventArgs e)

        {

            try

            {

                comboBox1.Items.Clear();

                comboBox1.Text = "";               

                label2.Text = vopr[v];

                v++;

                if (v == 2)

                {

 

                    comboBox1.Items.Add("Мужчины");

                    comboBox1.Items.Add("Женщины");

                    comboBox1.Items.Add("Мужчины и женщины");

                   

                }

                if (v == 3)

                {

                    for (int i = 1; i < f2.N; i++)

                    {

                        comboBox1.Items.Add(simp[i, por[v - 1]]);

 

                    }

                }

                if (v == 4)

                {

                    comboBox1.Enabled = false;

                }

 

 

            

            }

            catch

            {

                MessageBox.Show("Вопросы закончились! Начните опрос заново!");

            }

           

        }

 

        private void button5_Click(object sender, EventArgs e)

        {

 

            richTextBox1.Clear();

            if (v == 1)

            {

                for (int i = 1; i < f2.N; i++)

                {

                    if (simp[i, 4] == comboBox1.Text)

                    {

                        richTextBox1.Text = Convert.ToString(simp[i, 0]);

                    }

                }

 

            }

            if(v==2)

            {

                for (int i = 1; i < f2.N; i++)

                {

                    if (comboBox1.Text == "Мужчины")

                    {

                        if (simp[i, por[v - 1]] == "Мужчины" || simp[i, por[v - 1]] == "Мужчины и женщины")

                        {

                            richTextBox1.Text += Convert.ToString(simp[i, 0]) + "\n";

                        }

                    }

                    if (comboBox1.Text == "Женщины")

                    {

                        if (simp[i, por[v - 1]] == "Женщины" || simp[i, por[v - 1]] == "Мужчины и женщины")

                        {

                            richTextBox1.Text += Convert.ToString(simp[i, 0]) + "\n";

                        }

                    }

                    if (comboBox1.Text == "Мужчины и женщины")

                    {

                        if (simp[i, por[v - 1]] == "Мужчины" || simp[i, por[v - 1]] == "Женщины" || simp[i, por[v - 1]] == "Мужчины  и женщины")

                        {

                            richTextBox1.Text += Convert.ToString(simp[i, 0]) + "\n";

                        }

                    }

                }

            }

            if (v == 3)

            {

 

                for (int i = 1; i < f2.N; i++)

                {

                    if (simp[i, por[v - 1]] == comboBox1.Text)

                    {

                        richTextBox1.Text += Convert.ToString(simp[i, 0]) + "\n";

                    }

                }

            }

            if (v == 4)

            {

             

                for (int i = 1; i < f2.N; i++)

                {

                    if (simp[i, por[v - 1]] == "да" )

                    {

                        richTextBox1.Text += Convert.ToString(simp[i, 0]) + "\n";

                    }

                }

            }

           

          

        }

    }   

}

 

 

 

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


Информация о работе Семантические сети