- •1. Постановка задачи
- •1.1. Анализ задачи
- •1.2. Формальная постановка задачи
- •1.3. Алгоритм программы
- •2. Программирование задачи
- •Void zast(void);
- •Void kletka (int X, int y, char name[10])
- •Int test_cpu_xy (int X, int y, int d, int s)
- •Void bitva ()
- •Int user_hod (int X, int y)
- •Void sozd_korabl ()
- •Int test_user_xy (int X, int y, int d, int s)
- •Void deletestring (int y, int count)
- •Void main ()
- •Тестирование программы
2. Программирование задачи
В программе были использованы функции, хранящиеся в заголовочных файлах. Список заголовочных файлов из стандартной библиотеки C++, используемых в программе (в описании приведены функции, использующиеся в данной программе):
iostream.h – в ней реализована поддержка для файлового ввода/вывода данных встроенных типов. Операции ввода/вывода выполняются с помощью классов istream (потоковый ввод) и ostream (потоковый вывод). Третий класс, iostream, является производным от них и поддерживает двунаправленный ввод/вывод.
cin;
cout .
Вывод осуществляется, как правило, с помощью перегруженного оператора сдвига влево (<<), а ввод – с помощью оператора сдвига вправо (>>).
iomanip.h – заголовочный файл стандартной библиотеки С++, который содержит манипуляторы ввода/вывода информации. Сами они не позволяют читать или записывать данные, манипуляторы лишь воздействуют на способ интерпретации данных при чтении и записи.
setw();
setiosflags();
setfill();
stdlib.h – заголовочный файл стандартной библиотеки языка С, который содержит в себе функции, занимающиеся выделением памяти, контроль процесса выполнения программы, преобразования типов и другие.
randomize();
random();
dos.h - заголовочный файл стандартной библиотеки языка С++, который содержит в себе функцию, организующий задержку программы на определенные миллисекунды.
• delay(int a);
conio.h – объявляет несколько библиотечных функций для работы с «консольным вводом/выводом» программы, создает текстовый интерфейс пользователя.
clrscr();
getch() ;
gotoxy();
Далее рассмотрим подробнее созданные функции: В данной программе их 10.
Void zast(void);
Данная функция выводит на экран заставку, в которой описывается, какую информацию можно получить, используя данную программу.
У данной функции отсутствуют входные данные.
Выходные данные: текст, который выводится на экран при вызове данной функции.
Тело функции:
{clrscr();//функция очистки экрана
gotoxy(30,24);cout<<"Avtor: Gadjiev Ruslan ,2013";gotoxy(1,1);/* Функция gotoxy() помещает курсор текстового экрана в точку с координатами х,у. Если хотя бы одна из координат недействительна, то никаких действий не выполняется.*/
cout<<endl<<setw(65)<<setiosflags(ios::right)<<" IGRA MORSKOI BOI \n";
/* cout<< - объект для передачи информации из стандартного потока вывода
endl - переводит строку
setw(int a) – специальный манипулятор, задающий нужное поле для вывода данных, где a – количество позиций.
setiosflags() – манипулятор, используемый для установки определенных глобальных флагов, определяющих поведение по умолчанию при вводе и выводе. */
cout<<"\n Dlya raboti s programmoi vam neobhodimo vibrat odin iz sposobov rastanovki korable. Potom vi nachinaete igru s computerem, do teh por poka ne opredelitsa pobeditel.)\n\n\nDlyaprodolzheniyanazhmitelubuyuklavishu . . .";
getch();}
Void kletka (int X, int y, char name[10])
Данная функция предназначена для создания поля 10х10.
Входных данных функция не имеет.
Выходные данные: заполненный информацией массив name[10].
Поле 10х10, заполненный звездочками.
Тело функции:
{
int i, j; // элементы использующие в цикле для создания сторон поля.
….
for (i = 0; i < count_n; i ++) // Цикл — многократное прохождение по одному и тому же коду программы.
cout <<setw (2) <<setfill ('=') <<i; //setfill- Задает символ, который будет использоваться для заполнения пространства в синхронизированный вправо.
for (j = 0; j < count_n; j ++)
{….
}
