Автор работы: Пользователь скрыл имя, 12 Января 2013 в 19:31, курсовая работа
Полное название разработки ”Поиск кратчайшего пути”. Данная разработка предназначена для использования в учебных заведениях. Она выполняет нахождение кратчайшего пути между входом в лабиринт и его выходом. Также возможно использование для самопроверки решения, принятого человеком.
1 Техническое задание ……………………………………………………….8
1.1 Введение ……………………………………………………………..8
1.2 Основания для разработки ………………………………………….8
1.3 Функциональное и эксплуатационное назначение изделия ……...8
1.4 Методические ограничения ………………………………………...9
1.4.1 Стандарты …………………………………………………...9
1.4.2 Программная совместимость ……………………………... 9
1.4.3 Требования к составу и параметрам технических
средств …………………………………………………………….10
1.4.4 Входные данные ……………………………………………10
1.4.5 Выходные данные …………………………………………..10
1.4.6 Безопасность и секретность ………………………………..10
1.4.7 Мобильность ………………………………………………..10
1.5 Стадии и этапы разработки ………………………………………..11
1.6 Технико-экономические показатели разработки ………………...11
2 Пояснительная записка ………………………………………………………12
2.1 Функциональные и эксплуатационные характеристики ………...12
2.2 Удобство эксплуатации …………………………………………….12
2.3 Описание программы ……………………………………………….12
2.3.1 Функциональное описание ………………………………….13
2.3.2 Форма программы в проекте ……………………………14-15
2.3.3 Описание среды программирования для реализации
практических частей курсовой работы …………………….16
2.3.4 Интерфейс программного продукта ……………………17-20
Приложение: текст программы с комментариями, блок-схемы основных алгоритмов, список литературы
{
}
//----------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
MakeNullPole();
CreatePole(Image1);
ShowPole(Image1);
Form1->Top = -900;
oo->Resume();
}
//----------------------------
void __fastcall TForm1::Image1MouseDown(
TMouseButton Button, TShiftState Shift, int X, int Y)
{
int x;
int y;
if(F_2){
x = (X/40+1)*40-40;
y = (Y/40+1)*40-40;
if(!CreateLine(x,y,Image1)){
ShowMessage("Error");
}
}
if(F_3){
x = (X/40+1)*40-40;
y = (Y/40+1)*40-40;
int i;
int j;
i = x/40;
j = y/40;
if(Pole[i][j].value==1){
Image1->Canvas->Brush->Color = clBlack;
Image1->Canvas->Rectangle((i+
Start = Pole[i][j].v;
F_3 = false;
createStrelka(Image1);
}
}
if(F_4){
x = (X/40+1)*40-40;
y = (Y/40+1)*40-40;
int i;
int j;
i = x/40;
j = y/40;
if(Pole[i][j].value==1){
Image1->Canvas->Brush->Color = clBlack;
Image1->Canvas->Rectangle((i+
End = Pole[i][j].v;
F_4 = false;
createStrelka(Image1);
}
}
}
//----------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
F_2 = !F_2;
F_1 = false;
for(int i=0; i<razmPolya; i++){
for(int j=0; j<razmPolya; j++){
if(Pole[i][j].value == 5){
}
}
}
Button2->Enabled = false;
Image1->Canvas->Pen->Color = clBlack;
ShowPole(Image1);
}
//----------------------------
//----------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Deicstr(Start-1,End-1,Image1);
//ShowPole(Image1);
createStrelka(Image1);
}
//----------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
if(Start <0){
F_3 = !F_3;
Button5->Enabled = false;
}else{
}
F_2 = F_1 =false;
}
//----------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
MakeNullPole();
for(int i=0; i<100; i++){
Deic[i].sum = 9999;
Deic[i].value = 0;
Deic[i].visible = true;
Deic[i].prev = -1;
}
for(int i=0; i<100; i++){
for(int j=0; j<100; j++){
mas[i][j] = 0;
}
}
N_1 = -1;
vN = 0;
F_1 = F_2 = F_3 = F_4 =false;
Start = End = -1;
Button7->Enabled = true;
Button5->Enabled = true;
Button2->Enabled = true;
Image1->Canvas->Pen->Color = clBlack;
Image1->Canvas->Pen->Width = 1;
ShowPole(Image1);
}
//----------------------------
void __fastcall TForm1::Button7Click(TObject *Sender)
{
if(End <0){
F_4 = !F_4;
Button7->Enabled = false;
}else{
}
F_1 = F_2 = F_3 = 0;
}
//----------------------------
void __fastcall TForm1::N1Click(TObject *Sender)
{
ShellExecute(NULL,"open","
}
//----------------------------
Блок-схема алгоритма Дейкстры
Список литературы
Информация о работе Программа поиска кратчайшего пути в лабиринте