Помощь в написании студенческих работ
Антистрессовый сервис

Программа на языке С++

Курсовая Купить готовую Узнать стоимостьмоей работы

Очистим стеки отклонений. Выделим память под цвета. Показать поле на экране. Иначе выводим сообщение. Выводим его на экран. While ((StartY <1) — (StartY> W)); While ((StartX <1) — (StartX> W)); For (int j = 0; j < H; j++) colors = 0; ДОбавляем её к пути. CField *f = new CField («File.txt»); Пока стеки не пусты. Если путь найден, то. For (i = 0; i < W; i++) delete m_Pts; While (!WayY.empty… Читать ещё >

Программа на языке С++ (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • Руководство программиста Руководство пользователя
  • Заключение
  • Список использованных источников
  • Приложение А. Блок-схемы
  • Приложение Б. Текст программы
  • Приложение В. Тестирование программы

push (X);

WayY.push (Y);

//Возвращаем успех

return true;

}

//Закрашиваем точку

colors[X][Y] = 1;

//ДОбавляем её к пути

WayX.push (X);

WayY.push (Y);

//Заводим два стека — для возможных отклонений

stack Px;

stack Py;

//Очистим стеки отклонений

while (!PossibleXs.empty ()) PossibleXs. pop ();

while (!PossibleYs.empty ()) PossibleYs. pop ();

//Заполним их возможными из укажанной точки

AddPossibleWaysToStack (X, Y);

//Присвоим нашим локальным стекам

Px = PossibleXs;

Py = PossibleYs;

//Пока стеки не пусты

while (!Px.empty ())

{

//Извлекаем точки и пробуем найти путь из них

if (Search (Px.top (), Py. top ()))

{

return true;

}

//Убираем элементы с вершим стеков

Px.pop ();

Py.pop ();

}

//Убираем элементы из пути

WayX.pop ();

WayY.pop ();

//Снимаем закрашивание с точки

colors[X][Y] = 0;

//Вернем неудачу — найти путь из указанной точки не удалось.

return false;

}

public:

//Конструктор

CField (char* filename)

{

m_Pts = 0;

colors = 0;

LoadFromFile (filename);

}

//Деструктор

~CField ()

{

if (m_Pts)

{

int i;

for (i = 0; i < W; i++) delete [] m_Pts[i];

delete [] m_Pts;

}

}

//Показать поле на экране

void ShowField ()

{

cout<<

int i, j;

for (i = 0; i < W; i++)

{

for (j = 0; j < H; j++)

{

if (m_Pts[i][j]. ps == ps_close) cout<<" X"; else cout<<" O" ;

}

cout<

}

cout<

}

//Найти путь

void FindWay ()

{

//Ввод начальной и конечной точек

do

{

cout<<<"):" <

cin>>StartX;

} while ((StartX < 1) — (StartX > W));

do

{

cout<<<"):" <

cin>>StartY;

} while ((StartY < 1) — (StartY > W));

do

{

cout<<<"):" <

cin>>EndX;

} while ((EndX < 1) — (EndX > W));

do

{

cout<<<"):" <

cin>>EndY;

} while ((EndY < 1) — (EndY > W));

//Корректеруем путь

StartX—;

EndX—;

StartY—;

EndY—;

//Очистим стек пути

while (!WayX.empty ()) WayX. pop ();

while (!WayY.empty ()) WayY. pop ();

//Выделим память под цвета

colors = new int*[W];

int i;

for (i = 0; i < W; i++)

{

colors[i] = new int[H];

for (int j = 0; j < H; j++) colors[i][j] = 0;

}

//Если путь найден, то

if (Search (StartX, StartY))

{

//Выводим его на экран

cout<<

while (!WayX.empty ())

{

cout<<" («<<<», «<<<») «;

WayX.pop ();

WayY.pop ();

}

cout<

}

else

{

//иначе выводим сообщение.

cout<<

}

}

};

int main ()

{

//Создадим наш лабиринт из файла

CField *f = new CField («File.txt»);

char inp = 0; //символ

do

{

//выводим меню

cout<

//ждём ввода

inp = getch ();

//Оработаем ввод.

if (inp == '1') f->ShowField ();

if (inp == '2') f->FindWay ();

} while (inp ≠ '3');

delete f;

return 0;

}

Приложение В. Тестирование программы

Проверка работы программы при некорректном выборе пункта меню:

При выборе неверного пункта программа выведет этот пункт снова.

Проверка работы программы при неверном вводе числа:

Если число ввести неправильно, программа заново предложит ввести его же.

Показать весь текст

Список литературы

  1. С. Б. Основы программирования на C++: Пер. с англ. — М.: Вильямс, 2002. — 256 с.
  2. С. Б., Лажойе Ж. Язык программирования С++. Вводный курс: Пер. с англ. — 3-е изд. — М.: ДМК, 2001. — 1104 с.
  3. . Язык программирования C++: Пер. с англ. — 3-е спец. изд. — М.: Бином, 2003. — 1104 с.
  4. . Дизайн и эволюция языка C++. Объектно-ориентированный язык программирования: Пер. с англ. — М.: ДМК пресс, Питер, 2006. — 448 с.
  5. . Философия C++. Введение в стандартный C++: Пер. с англ. — 2-е изд. — СПб.: Питер, 2004. — 572 с.
  6. ., Эллисон Ч. Философия C++. Практическое программирование: Пер. с англ. — СПб.: Питер, 2004. — 608 с.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ