Нахождение кратчайшего пути между городами Минской области

Автор работы: Пользователь скрыл имя, 09 Января 2013 в 21:48, курсовая работа

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

1.1 Сущность задачи
Задачей данного проекта является автоматизация расчета кратчайшего расстояния между городами Минской области. Программное приложение должно выводить сведения об оптимальном пути маршрута.
В Минской области осуществляется автобусное сообщение между следующими городами:

Содержание работы

Содержание
1 Объектно-ориентированный анализ и проектирование системы 3
Сущность задачи 3
Проектирование модели 5
2 Вычислительная система 8
2.1 Требования к аппаратным и операционным ресурсам 8
2.2 Инструменты разработки 8
3 Проектирование задачи 11
3.1 Требования к приложению 11
3.2 Концептуальный прототип 11
3.3 Организация данных 12
3.4 Функции и элементы управления 12
3.5 Проектирование справочной системы приложения 17
4 Описание программного средства 19
4.1 Общие сведения 19
4.2 Функциональное назначение 19
4.3 Входные данные 19
4.4 Выходные данные 19
5 Методика испытаний 20
5.1 Технические требования 20
5.2 Порядок проведения испытаний 20
5.2.1 Функциональное тестирование 20
5.2.2 Полное тестирование 26
6 Применение 39
6.1 Назначение программы 39
6.2 Условия применения 39
6.3 Справочная система 39
Заключение 45
Литература 46
Приложение А 47

Содержимое работы - 1 файл

ПЗ КП Пархимчик Т-992.docx

— 6.01 Мб (Скачать файл)

        {

            Application.Exit();

        }

 

        private void помощьToolStripMenuItem_Click(object sender, EventArgs e)

        {

            О_программе help1 = new О_программе();

            help1.Show();

        }

 

        private void сохранитьПутьToolStripMenuItem_Click(object sender, EventArgs e)

        {

            if (textBox1.Text == "" || textBox1.Text == "Измените один из пунктов и попробуйте снова!")

            {

                MessageBox.Show("Путь еще не определен.\nВыбирите соответсвующие города и\nнажмите кнопку поиска маршрута ");

                button5.Focus();

            }

            else

            {

                saveFileDialog1.FileName = checkedListBox1.Items[ii] + "_" + checkedListBox1.Items[jj];

                if (saveFileDialog1.ShowDialog() == DialogResult.OK)

                {

                    saveFileDialog1.Title = "Сохранить как...";

                    StreamWriter f1 = new StreamWriter(saveFileDialog1.FileName);

                    f1.WriteLine(textBox1.Text);

                    f1.WriteLine(textBox3.Text);

                    f1.Close();

                }

            }

        }

 

        private void button5_Click_1(object sender, EventArgs e)

        {

            //for (int i = 0; i > checkedListBox1.Items.Count; i++)

            //{

            //    if (checkedListBox1.CheckedItems.Count == 0)

            //}

            if (checkedListBox1.CheckedItems.Count == 0 || checkedListBox2.CheckedItems.Count == 0)

                {

                    if (checkedListBox1.CheckedItems.Count == 0)

                    {

                        MessageBox.Show("Не выбран город отправления");

                    }

                    if (checkedListBox2.CheckedItems.Count == 0)

                    {

                        MessageBox.Show("Не выбран город прибытия");

                    }

                }

                else

                {

                    checkedListBox1.Enabled = false;

                    checkedListBox2.Enabled = false;

                    checkedListBox3.Enabled = false;

                    Optimization cityway = new Optimization();

                    textBox1.Text = cityway.MinP(ii, jj, qq);

                    textBox3.Text = cityway.MinS(ii, jj, qq);

                }

        }

 

        private void checkedListBox1_SelectedValueChanged_1(object sender, EventArgs e)

        {

            checkedListBox1.Enabled = false;

            ii = Convert.ToInt32(checkedListBox1.SelectedIndex);

            button1.Text = "Изменить выбор";

            if (button3.Text != "Изменить выбор")

            {

                checkedListBox2.Enabled = true;

            }

            if (button3.Text == "Изменить выбор")

            {

                button5.Focus();

            }

            radioButton2.Checked = true;

        }

 

        private void button1_Click_1(object sender, EventArgs e)

        {

           

            radioButton2.Checked = true;

            button1.Text = "Выбрать город отправления";

            checkedListBox1.SetItemChecked(ii, false);

            checkedListBox1.Enabled = true;

           

        }

 

        private void button3_Click(object sender, EventArgs e)

        {

            button3.Text = "Выбрать город прибытия";

            checkedListBox2.SetItemChecked(jj, false);

            checkedListBox2.Enabled = true;

          

        }

 

        private void button2_Click_1(object sender, EventArgs e)

        {

            button3.Text = "Выбрать город проезда";

            checkedListBox3.SetItemChecked(qq, false);

            checkedListBox3.Enabled = true;

           

           

        }

 

        private void button4_Click_1(object sender, EventArgs e)

        {

            int k = 0;

            for (int i = 0; i < checkedListBox1.Items.Count; i++)

            {

                if (radioButton1.Checked == true) checkedListBox1.SetItemChecked(i, false);

                if (radioButton2.Checked == true) checkedListBox2.SetItemChecked(i, false);

                if (radioButton3.Checked == true) checkedListBox3.SetItemChecked(i, false);

            }

            if (radioButton1.Checked == true)

            {

                checkedListBox1.SetItemChecked(ii, false);

                for (int i = 0; i < checkedListBox1.Items.Count; i++)

                {

                    if (Convert.ToString(checkedListBox1.Items[i]) == textBox2.Text)

                    {

                        k++;

                        checkedListBox1.SetItemChecked(i, true);

                        ii = i;

                        checkedListBox1.Enabled = false;                       

                        checkedListBox2.Enabled = true;

                        button1.Text = "Изменить выбор";

                    }

                }

            }

            else

            {

                if (radioButton2.Checked == true)

                {

                    checkedListBox2.SetItemChecked(jj, false);

                    for (int i = 0; i < checkedListBox2.Items.Count; i++)

                    {

                        if (Convert.ToString(checkedListBox2.Items[i]) == textBox2.Text)

                        {

                            k++;

                            checkedListBox2.SetItemChecked(i, true);

                            jj = i;

                            checkedListBox2.Enabled = false;

                            button3.Text = "Изменить выбор";

                        }

                    }

                }

                else

                {

                    if (radioButton3.Checked == true)

                        checkedListBox3.SetItemChecked(qq, false);

                    for (int i = 0; i < checkedListBox3.Items.Count; i++)

                    {

                        if (Convert.ToString(checkedListBox3.Items[i]) == textBox2.Text)

                        {

                            k++;

                            checkedListBox3.SetItemChecked(i, true);

                            qq = i;

                            checkedListBox3.Enabled = false;

                            button2.Text = "Изменить выбор";

                        }

                    }

                }

            }

 

            if (k == 0) MessageBox.Show("ТАКОГО ГОРОДА НЕТ");

        }

 

 

        private void checkedListBox2_SelectedValueChanged(object sender, EventArgs e)

        {

            checkedListBox2.Enabled = false;

            jj = Convert.ToInt32(checkedListBox2.SelectedIndex);

            button3.Text = "Изменить выбор";

            button5.Focus();

        }

 

        private void картаToolStripMenuItem_Click_1(object sender, EventArgs e)

        {

            Map map = new Map(this);

            map.Show();

        }

 

        private void checkedListBox3_SelectedValueChanged_1(object sender, EventArgs e)

        {

 

            checkedListBox3.Enabled = false;

            qq = Convert.ToInt32(checkedListBox3.SelectedIndex);

            button2.Text = "Изменить выбор";

            button5.Focus();

        }

 

        private void textBox2_Click_1(object sender, EventArgs e)

        {

            if (kk == 0)

            {

                textBox2.Text = "";

            }

            kk++;

        }

 

        private void button6_Click(object sender, EventArgs e)

        {

            Map map = new Map(this);

            map.Show();

        }

 

        private void справкаToolStripMenuItem_Click(object sender, EventArgs e)

        {

            System.Diagnostics.Process.Start("Help.chm");

        }

 

       

    }

}

 

Класс «Map»

 

public partial class Map : Form

    {

        Form1 f1;

        int q = 0;

       

        public Map(Form1 f1)

        {

            InitializeComponent();

            this.f1 = f1;

        }

 

        private void toolStripMenuItem1_Click(object sender, EventArgs e)

        {

            CheckBox[] chB = new CheckBox[25] {checkBox1, checkBox2, checkBox3, checkBox4, checkBox5, checkBox6, checkBox7, checkBox8,

            checkBox9, checkBox10, checkBox11, checkBox12, checkBox13, checkBox14, checkBox15, checkBox16, checkBox17, checkBox18, checkBox19,

            checkBox20, checkBox21, checkBox22, checkBox23, checkBox24, checkBox25};

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

            {

                if (chB[i].Checked == true)

                    f1.ii = i;

            }

 

        }

 

        private void toolStripMenuItem2_Click(object sender, EventArgs e)

        {

            {

                CheckBox[] chB = new CheckBox[25] {checkBox1, checkBox2, checkBox3, checkBox4, checkBox5, checkBox6, checkBox7, checkBox8,

            checkBox9, checkBox10, checkBox11, checkBox12, checkBox13, checkBox14, checkBox15, checkBox16, checkBox17, checkBox18, checkBox19,

            checkBox20, checkBox21, checkBox22, checkBox23, checkBox24, checkBox25};

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

                {

                    if (chB[i].Checked == true && i != f1.ii && f1.jj != i)

                        f1.qq = i;

                 

                }

            }

 

        }

 

        private void toolStripMenuItem3_Click(object sender, EventArgs e)

        {

            {

                CheckBox[] chB = new CheckBox[25] {checkBox1, checkBox2, checkBox3, checkBox4, checkBox5, checkBox6, checkBox7, checkBox8,

            checkBox9, checkBox10, checkBox11, checkBox12, checkBox13, checkBox14, checkBox15, checkBox16, checkBox17, checkBox18, checkBox19,

            checkBox20, checkBox21, checkBox22, checkBox23, checkBox24, checkBox25};

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

                {

                    if (chB[i].Checked == true && i != f1.ii)

                        f1.jj = i;

                    q = i;

                    toolStripMenuItem2.Enabled = true;

                    toolStripMenuItem4.Enabled = true;

                }

            }

        }

 

      

 

        private void toolStripMenuItem4_Click(object sender, EventArgs e)

        {

 

            Optimization cityway = new Optimization();

            if (q != 0)

            {

                f1.textBox1.Text = cityway.MinP(f1.ii, f1.jj, f1.qq);

                f1.textBox3.Text = cityway.MinS(f1.ii, f1.jj, f1.qq);

            }

            else

            {

               

                f1.textBox1.Text = cityway.MinP(f1.ii, f1.jj, 0);

                f1.textBox3.Text = cityway.MinS(f1.ii, f1.jj, 0);

            }

            f1.textBox1.Focus();

           

          

        }

       

    }

 

Класс «О программе»

 

public partial class О_программе : Form

    {

        public О_программе()

        {

            InitializeComponent();

            saveFileDialog1.Filter = "Блокнот|*.txt";

        }

 

        private void О_программе_Load(object sender, EventArgs e)

        {

           

        }

 

        private void button2_Click(object sender, EventArgs e)

        {

            string[] s = new string[] { "Разработчик: Пархимчик Никита", "Город: Минск", "Программное средство: CityWays", "Версия: 1.0", "Год разработки: 2012", "Расстояние между городами взяты с сайта:", "http://www.della.by", "Контактная информация:", "http://vk.com/avermax_music", "nixon93nixon@gmail.com" };

            saveFileDialog1.FileName = "О программе 'CityWays'";

            if (saveFileDialog1.ShowDialog() == DialogResult.OK)

            {

                saveFileDialog1.Title = "Сохранить как...";

                System.IO.StreamWriter f1 = new System.IO.StreamWriter(saveFileDialog1.FileName);

                for (int i = 0; i < s.Length; i++ ) f1.WriteLine(s[i]);

                f1.Close();

            }

        }

 

        private void linkLabel1_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            this.linkLabel1.LinkVisited = true;

            System.Diagnostics.Process.Start("http://vk.com/avermax_music");

        }

 

        private void linkLabel2_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e)

        {

            this.linkLabel1.LinkVisited = true;

            System.Diagnostics.Process.Start("http://www.della.by");

 

        }

 

       

    }

 

Класс «MinWay»

 

class Optimization

    {       

        int[,] D = new int[30, 30]   

                //1

                {{0,9999,9999,9999,9999,9999,9999,9999,9999,9999,41,9999,64,9999,133,9999,9999,9999,65,115,55,9999,9999,9999,9999,9999,38,44,45,26},

                //2

                {9999,0,86,9999,9999,9999,69,9999,9999,79,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,44,9999,9999,9999,9999},

                //3

                {9999,86,0,9999,9999,9999,20,9999,999,46,60,9999,9999,9999,9999,9999,9999,54,9999,9999,9999,9999,9999,9999,9999,9999,45,9999,9999,9999},

                //4

                {9999,9999,99999,0,9999,9999,9999,9999,9999,99999,83,99999,9999,23,9999,9999,9999,92,99999,99999,9999,9999,99999,9999,9999,9999,99999,9999,9999,9999},

                //5

                {9999,9999,9999,9999,0,9999,99999,9999,9999,9999,9999,9999,9999,41,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,999,9999,37,9999},

                //6

                {9999,9999,9999,9999,9999,0,9999,9999,9999,9999,9999,9999,93,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,38,35,9999,9999,9999,9999,16},

                //7

                {9999,69,20,9999,9999,9999,0,9999,9999,9999,41,9999,9999,9999,9999,9999,9999,9999,9999,9999,21,9999,9999,9999,9999,9999,9999,9999,9999,9999},

                //8

                {9999,9999,9999,9999,9999,9999,9999,0,39,9999,9999,9999,9999,9999,9999,9999,20,9999,9999,76,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999},

                //9

                {9999,9999,9999,9999,9999,9999,9999,39,0,9999,9999,9999,9999,9999,9999,9999,34,9999,9999,41,9999,9999,9999,9999,52,9999,9999,9999,9999,9999},

                //10

                {9999,79,46,9999,9999,9999,9999,9999,9999,0,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999},

                //11

                {41,9999,60,83,9999,9999,41,9999,9999,9999,0,9999,9999,9999,115,9999,9999,32,9999,9999,29,9999,9999,9999,9999,9999,9999,9999,9999,9999},

                //12

                {9999,99999,9999,9999,9999,9999,9999,9999,9999,9999,9999,0,9999,9999,9999,9999,9999,9999,9999,49,9999,9999,37,9999,9999,9999,9999,9999,9999,9999},

                //13

                {64,9999,9999,9999,9999,93,9999,9999,9999,9999,9999,9999,0,9999,9999,9999,9999,9999,9,9999,9999,9999,68,9999,9999,32,9999,9999,9999,9999},

                //14

                {9999,9999,9999,23,41,9999,9999,9999,9999,9999,9999,9999,9999,0,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,34,9999,9999},

                //15

                {133,9999,9999,9999,9999,9999,9999,9999,9999,9999,115,9999,9999,9999,0,12,9999,107,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999},

                //16

                {9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,12,0,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999,9999},

                //17

                {9999,9999,9999,9999,9999,9999,9999,20,34,9999,9999,9999,9999,9999,9999,9999,0,9999,9999,75,9999,9999,9999,33,57,9999,9999,9999,9999,9999},

Информация о работе Нахождение кратчайшего пути между городами Минской области