Автор работы: Пользователь скрыл имя, 05 Октября 2011 в 17:17, курсовая работа
На данный период времени разработка является актуальной и имеет перспективы для улучшения. Актуальность темы разработки обусловлена малым количеством аналогов данного проекта представленных в данный период времени.
Данный документ содержит следующую информацию:
в определении требований содержаться пункты, связанные с разработкой требований, сравнением аналогов, жизненным циклом, описанием технического задания;
в проектировании содержатся пункты, описывающие архитектуру и логическое устройство программы;
в разработке программного кода содержится краткий обзор разработанных функций;
в верификации и аттестации описывается, как будет выполняться тестирование проекта;
в программной документации содержатся такие подпункты как инструкция для пользователя и инструкция по установке.
ВВЕДЕНИЕ 4
1 ОПРЕДЕЛЕНИЕ ТРЕБОВАНИЙ 4
1.1 Описание бизнес процесса 4
1.2 Сравнение аналогов 5
1.3 Моделирование требований 6
1.4 Выбор модели жизненного цикла 7
2 ПРОЕКТИРОВАНИЕ 9
2.1 Выбор модели системы 9
2.2 Проектирование структуры системы 9
2.3 Проектирование логики работы 10
2.4 Проектирование интерфейса 13
3 РАЗРАБОТКА ПРОГРАММНОГО КОДА 15
4 ВЕРИФИКАЦИЯ И АТТЕСТАЦИЯ 16
4.1 Выбор методов верификации и аттестации 16
4.2 Инспектирование 16
4.3 Тестирование 17
5 ПРОГРАММНАЯ ДОКУМЕНТАЦИЯ 18
5.1 Инструкция по установке 18
5.2 Инструкция пользователя 18
ЗАКЛЮЧЕНИЕ 19
СПИСОК ИСТОЧНИКОВ ИНФОРМАЦИИ 20
ПРИЛОЖЕНИЕ A ТЕХНИЧЕСКОЕ ЗАДАНИЕ 21
1НАЗНАЧЕНИЕ РАЗРАБОТКИ 21
2 ЦЕЛЬ И ЗАДАЧИ 21
3 ТРЕБОВАНИЯ К РАЗРАБОТКЕ 21
3.1Требованияк функциональным характеристикам 21
3.2 Описание входных и выходных данных 22
3.3 Модель работы продукта разработки 23
3.4 Требования к надежности 25
3.5 Эргономические и техникоэстетические требования 25
3.6 Требования к защите информации 26
3.7 Другие требования к разработке 26
3.8 Требования к аппаратно-программному комплексу. 26
3.9 Требования к технологиям разработки 26
3.10 Требования к составу технических средств при эксплуатации. 26
4 МЕТОДЫ ТЕСТИРОВАНИЯ СООТВЕТСТВИЯ РАЗРАБОТКИ ПРЕДЪЯВЛЕННЫМ ТРЕБОВАНИЯМ 26
ПРИЛОЖЕНИЕ Б ПРОГРАММНЫЙ КОД 27
field_gamer[
field_gamer[
field_gamer[
field_gamer[
field_gamer[
field_gamer[
field_gamer[
field_gamer[
field_gamer[
GameStats.total_
if(field_gamer[
field_gamer[
GameStats.ship_
if(GameStats.
}
if(field_gamer[
field_gamer[
GameStats.ship_
if(GameStats.
return 1; }//успешно
return 0; }//промах
private void autoPlacing(int field_gamer[][]) {//авто расстановка
Random generateRandom=new Random();
int gorizont=0;
int vertic=0;
int tmep_gorizont=0;
//
int choose=generateRandom.nextInt(
switch(
case 0: //ставимпогоризонтали
tmep_gorizont=gorizont=
vertic=generateRandom.nextInt(
for(int i=0;i<HERE_SHIP_4;i++) {
field_gamer[tmep_gorizont][
field_gamer[tmep_gorizont][
field_gamer[tmep_gorizont][
tmep_gorizont+=1;
}//переходим на следующую клетку
field_gamer[gorizont-1][
field_gamer[gorizont+4][
field_gamer[gorizont-1][
field_gamer[gorizont-1][
field_gamer[gorizont+4][
field_gamer[gorizont+4][
break;
case 1://поехали по вертикали
gorizont=generateRandom.
int tmep_vertic=vertic=
for(int i=0;i<HERE_SHIP_4;i++) {
field_gamer[gorizont][tmep_
field_gamer[gorizont-1][tmep_
field_gamer[gorizont+1][tmep_
tmep_vertic+=
field_gamer[gorizont][vertic-
field_gamer[gorizont][vertic+
field_gamer[gorizont-1][
field_gamer[gorizont+1][
field_gamer[gorizont-1][
field_gamer[gorizont+1][
break; }//закончили 4х трубный
do {//начинаем 3 трубные 2 штуки
gorizont=0;
vertic=0;
tmep_
int choose1=generateRandom.
switch(
case 0: //ставим по горизонтали
//два
booleanenter=false; //надо ли ещё раз генерить новую точку отсчёта
int ship_place=tmep_gorizont=
vertic=generateRandom.nextInt(
for(intk=0;k<
&&
(field_gamer[ship_place][
&&
(field_gamer[ship_place][
&&
(field_gamer[gorizont-1][
&&(field_gamer[gorizont+HERE_
&&(field_gamer[gorizont-1][
&&(field_gamer[gorizont+HERE_
enter=true; }
else{enter=false; break;}
ship_place=ship_place+1;}
if(enter) {//если занято то не выполнится цикл
for(int i=0;i<HERE_SHIP_3;i++) {
field_gamer[tmep_gorizont][
field_gamer[tmep_gorizont][
field_gamer[tmep_gorizont][
tmep_gorizont=tmep_gorizont+1; }//переходим на следующую клетку
field_gamer[gorizont-1][
field_gamer[gorizont+3][
field_gamer[gorizont-1][
field_gamer[gorizont-1][
field_gamer[gorizont+HERE_
field_gamer[gorizont+HERE_
ships_count=
break;
case 1: //повертикали
intt2_vertic=
booleanenter1=false; //надо ли ещё раз генерить новую точку отсчёта
ship_place=gorizont=
int t_vertic=t2_vertic=vertic=
for(intk=0;k<
if(field_gamer[gorizont][
enter1=true; }
else { enter1=false; break;}
t_vertic=t_
if(enter1) {//если занято то ещё разок цикл вхиле
for(int i=0;i<HERE_SHIP_3;i++) {
field_gamer[gorizont][t2_
field_gamer[gorizont-1][t2_
field_gamer[gorizont+1][t2_
t2_vertic+=1; }//переходим на следующую клетку
field_gamer[gorizont][vertic-
field_gamer[gorizont][vertic+
field_gamer[gorizont-1][
field_gamer[gorizont+1][
field_gamer[gorizont-1][
field_gamer[gorizont+1][
ships_count=
break; }//КОНЕЦ РАССТАНОВКИ
} while(ships_count<3);
/*//начинаемдвухтрубники 3 штуки
ships_count=
int ships_2_count=0;
do {//
gorizont=0;
vertic=0;
tmep_
int choose2=generateRandom.
switch(
case 0: //ставим по горизонтали
//два
booleanenter3=false; //надо ли ещё раз генерить новую точку отсчёта
int ship_place=tmep_gorizont=
vertic=generateRandom.nextInt(
for(intk=0;k<HERE_SHIP_2;
if(field_gamer[ship_place][
&&(field_gamer[gorizont+HERE_
enter3=true; }
else {enter3=false;break;}
ship_place=
if(enter3) {//если занято то не выполнится цикл
for(int i=0;i<HERE_SHIP_2;i++) {
field_gamer[tmep_gorizont][
field_gamer[tmep_gorizont][
tmep_gorizont+=1; }//переходим на следующую клетку
field_gamer[gorizont-1][
field_gamer[gorizont+3][
ships_2_
break;
case 1: //повертикали
booleanenter2=false;//надо ли ещё разгенерить новую точку отсчёта
ship_place=gorizont=
int t_vertic=vertic=
for(intk=0;k<
if(field_gamer[gorizont][t_