Автор: Пользователь скрыл имя, 12 Апреля 2013 в 10:34, курсовая работа
Задача о коммивояжере состоит в том, чтобы объехать заданные города по одному разу в таком порядке, чтобы пройденное расстояние было минимальным.
Такая задача актуальна во многих областях, таких как автомобильные, судовые и железнодорожные перевозки, расчет авиационных линий, конвейерное производство.
Введение3
Постановка задачи4
Метод решения5
Язык программирования7
Описание алгоритма8
Описание основных структур данных12
Описание интерфейса с пользователем14
Заключение16
Литература17
Текст программы18
t_edit[i][j].SetReadOnly ();
}
else
{
t_edit[i][j].Create (WS_CHILD|WS_VISIBLE | WS_TABSTOP | WS_DLGFRAME,
CRect(j*w+x0,i*h+y0,(j+1)*w-1+
t_edit[i][j].SetFont (&myFont);
t_edit[i][j].SetLimitText(4);
}
}
}
CStdioFile f1;
f1.Open("table.ini",CFile::
for ( i=0; i < 29; i++)
{
CString s1;
f1.ReadString(s1);
int j=i+1;
int k=0;
while (j<29 && k < s1.GetLength())
{CString s2;
while (s1[k] == ' ') k++;
while (s1[k] != ' ')
{ s2 += s1[k]; k++;}
t_edit[i][j].SetWindowText(s2)
j++;
}
}
Proverka();
return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
void CSetting::OnOK()
{
Proverka();
CStdioFile f1;
f1.Open("table.ini",CFile::
for (int i=0; i < 29; i++)
{
parent->tableAllCity[i][i]=0;
CString s1;
for (int j=i+1; j < 29; j++)
{
CString s2;
t_edit[i][j].GetWindowText(s2)
parent->tableAllCity[j][i]=
s1 += s2+" ";
} s1 += "\n";
f1.WriteString(s1);
}
MessageBox("Введённые параметры проверены на ошибки и сохранены.");
CDialog::OnCancel ();
}
void CSetting::Proverka()
{
for (int i=0; i < 29; i++)
{
for (int j=i+1; j < 29; j++)
{
CString s1;
t_edit[i][j].GetWindowText(s1)
if (!s1.IsEmpty())
{
for (int k=0; k < s1.GetLength(); k++)
if (s1[k]<'0' || s1[k]>'9') {s1.Delete(k,1);k--;}
if (s1.IsEmpty()) s1='0';
}
else s1='0';
t_edit[i][j].SetWindowText(s1)
}
}
}