а складається з 4 класів:
1. CAboutDlg пов'язаний з вбудованим діалоговим вікном В«Про програмуВ».
2. CKurs _ LipinApp управляє запуском програми, але не пов'язаний з яким-небудь діалоговим вікном. [1]
3. CKurs _ LipinDlg пов'язаний з вікном IDD _ KURS _ LIPIN _ DIALOG . Цей клас організовує постановку і вирішення завдання. p> 4. CSetting пов'язаний з вікном IDD _ DIALOG 1 . У вікні вводяться параметри до задачі - відстані між містами. p> Клас CKurs _ LipinDlg < b> . На початку при виклику функції OnInitDialog () змінні заповнюються початковими даними. Потім з файлу В«table.iniВ» зчитується таблиця відстаней між містами. І тепер діалогове вікно готове до роботи з користувачем. Функція OnPaint () виводить на екран карту, дозволяє виділяти міста, вибрані користувачем, а також з'єднує міста лініями-шляхами, коли задача вирішена. Крім того, забезпечується висновок інформації для користувача: пояснення, довжина мінімального шляху і список відстаней між містами, складові мінімальний шлях.
При натисненні лівої кнопкою миші викликається функція
OnLButtonDown (). Вона визначає за якому місту клацнув користувач і ставить/знімає виділення з нього. Також тут здійснюється перевірка на кількість виділених міст, тому що час очікування рішення задачі для кількості більше 13 міст стане не задовільним (від 1,5 хвилин і більше). Тому програма видасть повідомлення, якщо ми спробуємо вийти за допустимі межі.
Кнопка В«Вибрати стандартні містаВ» виділяє міста, які потрібно поєднати в умові завдання, а саме Москва, Ярославль, Нижній Новгород, Самара, Саратов, Волгоград, Вороніж, Пенза, Липецьк, Тамбов, Орел, Курськ, Тула. Кнопка "Очистити" знімає виділення з усіх міст і задає початкові значення ряду необхідних змінних.
Функція OnButton3 () пов'язана з кнопкою "Поставити пункт відправленняВ». Після натискання кнопки користувач може клацанням миші вибрати пункт відправлення комівояжера. Кнопка В«ПараметриВ» викликає діалогове вікно "Параметри", де користувач може редагувати таблицю відстаней між містами. Функція OnOK () обробляє натискання кнопки В«Розрахувати шляхВ». Вона готує початкові значення для виклику рекурсивної функції: створюється таблиця відстаней тільки для виділених міст, заповнюється початковий мінімальний шлях, виводиться пояснювальна інформація. Потім викликається функція recursiv () , яка перебирає варіанти маршрутів, відсікає зайві гілки шляхів і знаходить мінімальний. p> Клас C Setting.
Функція OnInitDialog () програмним шляхом створює і виводить поля введення, імітуючи таблицю відстаней між містами....