Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kurs.docx
Скачиваний:
13
Добавлен:
02.02.2015
Размер:
197.38 Кб
Скачать
  1. Постановка задачи на программирование

Задача

Выполнение операций над множествами

Исходные данные:

Два множества (числовые или символьные) вводятся в графическом диалоге.

Алгоритм:

При нажатии кнопки выбора операции производится сравнение двух матриц, при этом повторяющиеся символы удаляются.

Вывод:

Результаты представлены в графической форме – в виде диаграммы Эйлера-Венна, символы вписываются в соответствующие места на диаграмме.

    1. Описание разработанного объекта

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

public string sim_raz(string str1, string str2)

public string raz(string str1, string str2)

public string ob(string str1, string str2)

public string per(string str1, string str2)

private void _drawGraph(Graphics g)

Данные методы реализуют непосредственно операции над множествами, а последний – рисование диаграммы и расположением на нем символов.

    1. Интерфейс программы

Интерфейс программы приведен на рис.2.1.

Рисунок 2.1 – Интерфейс программы

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

Интерфейс состоит из:

- два объекта textBox для ввода множеств (символьных или числовых);

-четыре кнопки radioButton для выбора необходимой операции;

-объект pictureBox наглядной демонстрации диаграммы Эйлера-Венна.

ЗАКЛЮЧЕНИЕ

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

Разработана программа на языке C# (C sharp) в среде Microsoft Visual Studio 2010, позволяющая выполнить поставленную задачу.

Разработанная программа позволяет выполнить четыре операции над множествами: объединение, пересечение, разность, симметрическая разность. Множества – любые символьные массивы, набранных вручную через интерфейс с использованием мыши и клавиатуры.

Приложение 1

(Код программы)

public partial class Form1 : Form

{

private string[] images = { "0.png", "1.png", "2.png", "3.png" };

public Form1()

{

InitializeComponent();

}

public string sim_raz(string str1, string str2)

{

int count = 0;

string str3 = "";

string s1 = new string(str1.ToCharArray().Distinct().ToArray());

string s2 = new string(str2.ToCharArray().Distinct().ToArray());

for (int j = 0; j < s1.Length; j++)

{

for (int i = 0; i < s2.Length; i++)

{

if (s1[j] == s2[i]) count++;

}

if (count == 0) str3 += s1[j];

else count = 0;

}

for (int j = 0; j < s2.Length; j++)

{

for (int i = 0; i < s1.Length; i++)

{

if (s1[j] == s2[i]) count++;

}

if (count == 0) str3 += s1[j];

else count = 0;

}

return str3;

}

public string raz(string str1, string str2)

{

int count = 0;

string str3 = string.Empty;

string s1 = new string(str1.ToCharArray().Distinct().ToArray());

string s2 = new string(str2.ToCharArray().Distinct().ToArray());

for (int j = 0; j < s1.Length; j++)

{

for (int i = 0; i < s2.Length; i++)

{

if (s1[j] == s2[i]) count++;

}

if (count == 0) str3 += s1[j];

else count = 0;

}

return str3;

}

public string ob(string str1, string str2)

{

int count = 0;

string s1 = new string(str1.ToCharArray().Distinct().ToArray());

string s2 = new string(str2.ToCharArray().Distinct().ToArray());

for (int j = 0; j < s2.Length; j++)

{

for (int i = 0; i < s1.Length; i++)

{

if (s2[j] == s1[i]) count++;

}

if (count == 0) s1 += s2[j];

else count = 0;

}

return s1;

}

public string per(string str1, string str2) // пересечение

{

string str3 = "";

string s1 = new string(str1.ToCharArray().Distinct().ToArray());

string s2 = new string(str2.ToCharArray().Distinct().ToArray());

for (int j = 0; j < s2.Length; j++)

{

for (int i = 0; i < s1.Length; i++)

{

if (s2[j] == s1[i])

str3 += s2[j];

}

}

return str3;

}

private void _drawGraph(Graphics g)

{

// int count = 1;

string abs = raz(textBox1.Text, textBox2.Text);

abs = abs.Replace(" ", "");

int spacePos = 1;

int strLen = abs.Length;

for (int i = 0; i < strLen; ++i, spacePos += 2)

{

abs = abs.Insert(spacePos, " ");

}

string s = new string(abs.ToCharArray().Distinct().ToArray());

g.DrawString(s, new Font("Times New Roman", 24), Brushes.Red, new RectangleF(150, 150, 245, 300));

abs = per(textBox1.Text, textBox2.Text);

abs = abs.Replace(" ", "");

spacePos = 1;

strLen = abs.Length;

for (int i = 0; i < strLen; ++i, spacePos += 2)

{

abs = abs.Insert(spacePos, " ");

}

g.DrawString(abs, new Font("Times New Roman", 24), Brushes.Red, new RectangleF(425, 150, 100, 300));

abs = raz(textBox2.Text, textBox1.Text);

abs = abs.Replace(" ", "");

spacePos = 1;

strLen = abs.Length;

for (int i = 0; i < strLen; ++i, spacePos += 2)

{

abs = abs.Insert(spacePos, " ");

}

g.DrawString(abs, new Font("Times New Roman", 24), Brushes.Red, new RectangleF(600, 150, 245, 300));

}

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