Вход

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

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 173334
Дата создания 2012
Страниц 23
Источников 6
Мы сможем обработать ваш заказ (!) 24 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
1 400руб.
КУПИТЬ

Содержание

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

Фрагмент работы для ознакомления

push(X);
WayY.push(Y);
//Возвращаем успех
return true;
}
//Закрашиваем точку
colors[X][Y] = 1;
//ДОбавляем её к пути
WayX.push(X);
WayY.push(Y);
//Заводим два стека - для возможных отклонений
stack <int> Px;
stack <int> 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<<ToOem("Условные обозначения: X - закрытый квадрат, O - открытый")<<endl;
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<<endl;
}
cout<<endl;
}
//Найти путь
void FindWay()
{
//Ввод начальной и конечной точек
do
{
cout<<ToOem("Введите X-координату начальной точки (от 1 до ")<<W<<"):"<<endl;
cin>>StartX;
} while ((StartX < 1) || (StartX > W));
do
{
cout<<ToOem("Введите Y-координату начальной точки (от 1 до ")<<H<<"):"<<endl;
cin>>StartY;
} while ((StartY < 1) || (StartY > W));
do
{
cout<<ToOem("Введите X-координату конечной точки (от 1 до ")<<W<<"):"<<endl;
cin>>EndX;
} while ((EndX < 1) || (EndX > W));
do
{
cout<<ToOem("Введите Y-координату конечной точки (от 1 до ")<<H<<"):"<<endl;
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<<endl<<ToOem("Последовательность вершин пути от конца к началу:")<<endl;
while (!WayX.empty())
{
cout<<"("<<WayX.top()+1<<", "<<WayY.top() +1<<") ";
WayX.pop();
WayY.pop();
}
cout<<endl;
}
else
{
//иначе выводим сообщение.
cout<<endl<<ToOem("Путь не найден.")<<endl;
}
}
};
int main()
{
//Создадим наш лабиринт из файла
CField *f = new CField("File.txt");
char inp = 0; //символ
do
{
//выводим меню
cout<<ToOem("Выберите:\n1 - Отобразить лабиоинт на экране\n2 - Поиск пути\n3 - Выход\n");
//ждём ввода
inp = getch();
//Оработаем ввод.
if (inp == '1') f->ShowField();
if (inp == '2') f->FindWay();
} while (inp != '3');
delete f;
return 0;
}
Приложение В. Тестирование программы
Проверка работы программы при некорректном выборе пункта меню:
При выборе неверного пункта программа выведет этот пункт снова.
Проверка работы программы при неверном вводе числа:
Если число ввести неправильно, программа заново предложит ввести его же.
4

Список литературы [ всего 6]

Список использованных источников
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 с.
Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00452
© Рефератбанк, 2002 - 2024