Программа "Спички"

Общая характеристика и отличительные особенности языка программирования Си, преимущества и недостатки его использования. Порядок разработки программы, требования к ней. Реализация программного кода с комментариями. Составление инструкции пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 18.02.2019
Размер файла 131,3 K

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru/

Размещено на http://www.allbest.ru/

Программа «Спички»

Введение

Язык программирования Си отличается минимализмом. Си создавался с одной важной целью: сделать более простым написание больших программ с минимумом ошибок по правилам процедурного программирования, не добавляя на итоговый код программ лишних накладных расходов для компилятора.

Си предлагает следующие важные особенности: простую языковую базу, из которой вынесены в библиотеки многие существенные возможности; ориентацию на процедурное программирование, обеспечивающую удобство применения структурного стиля программирования; систему типов; использование препроцессора; непосредственный доступ к памяти компьютера через использование указателей; минимальное число ключевых слов; передачу параметров в функцию по значению, а не по ссылке; указатели на функции и статические переменные, структуры и объединения; средства объектно-ориентированного программирования.

Часть отсутствующих возможностей относительно легко имитируется встроенными средствами, часть добавляется с помощью сторонних библиотек, часть реализуется в некоторых компиляторах в виде расширений языка.

Язык Си остаётся языком, реализованным на максимальном количестве аппаратных платформ, и одним из самых популярных языков программирования, особенно в мире свободного программного обеспечения.

Курсовая работа является примером использования языка Си.

1. Правила игры

пользователь программа код

Спички - это логическая игра. В ней дона 21 спичка. Игроки по очереди забирают 1, 2 или 3 спички. Проигравшим является тот, кто берет последнюю.

2. Реализация программного кода с комментариями

В программе используются библиотеки:

– #include <stdio.h> // библиотека ввода-вывода

В начале кода игры приведены различные функции для упрощения реализации работы.

Функция, которая печатает сообщения в начале каждого хода:

void FLYD (int P, int spich)

{

printf («Ходит % i игрок:\n», P);

printf («На экране % i спичек.\n», spich);

printf («Сколько спичек вы хотите взять?\n»);

}

Листинг 1 - Печатаем сообщение

Функция, которая контролирует ход игрока:

int HOD (int spich, int P)

{

int j;

scanf («%i»,&j);

if (spich>3)

{

spich=PROVERKA (j, spich);

return spich;

};

if (spich>=1 && spich<4)

{

if (spich>1 && spich<4)

{

spich=PROVERKA_WIN (j, spich, P);

return spich;

};

return spich;

};

}

Листинг 2 - Ход игрока

Функция, которая проверяет, сколько спичек взял игрок, и отнимает от общего количества:

int PROVERKA (int i, int spich)

{

int l;

for (l=0; i<1 || i>3; l++)

{

printf («Вам нужно взять 1, 2 или 3 спички!\n»);

scanf («%i», &i);

if(! (i>0&&i<4)) getchar();

};

spich=spich-i;

return spich;

}

Листинг 3 - Проверяем количество взятых спичек

Функция, которая проверяет, сколько взял спичек игрок, и отнимает от общего количества, когда общее число спичек равно числу спичек которые можно взять:

int PROVERKA_WIN (int i, int spich, int Play)

{

int l;

for (l=0; i<1 || i>spich || i==spich; l++)

{

printf («Введите число в допустимом диапазоне!\n»);

scanf («%i», &i);

if (! (i>0&&i<spich)) getchar();

};

spich=spich-i;

return spich;

}

Листинг 4 - Проверяем количество взятых спичек

Функция проверки на проигрыш:

int LOSE (int spich, int P, int d)

{

if (spich==1)

{

printf («ПРОИГРАЛ ИГРОК % i», P);

d=1;

};

if (spich!=1) d=0;

return d;

}

Листинг 5 - Проверяем ход на проигрыш

После описания всех функций приведена главная часть программы, в которой в соответствующих местах кода вызываются описанные ранее функции.

main()

{

system («cls»); // очищаем командную строку

printf («Вас приветствует игра 'Спички'.\n»);

printf («Дано 21 спичка. По очереди игроки берут 1, 2 или 3 спички.\n»);

printf («Проиграет тот кто возьмет последнюю.\n»);

int SPICHKI = 21; // колличество спичек

int Player=1, d=0, i; // игрок, кол-во спичек которое берет игрок

while (d!=1)

{

d=LOSE (SPICHKI, Player, d);

if (Player==1 && SPICHKI>1)

{

d=LOSE (SPICHKI, Player, d);

FLYD (Player, SPICHKI);

SPICHKI=HOD (SPICHKI, Player);

Player=2;

};

if (Player==2 && SPICHKI>1)

{

d=LOSE (SPICHKI, Player, d);

FLYD (Player, SPICHKI);

SPICHKI=HOD (SPICHKI, Player);

Player=1;

};

};

printf («\n Если хотите сыграть еще раз, введите '1'.\n»);

printf («\n Хотите выйти из игры, нажмите любую кнопку. =)\n»);

scanf («%i», &i);

if (i==1) // если введено 1, то игра начинается сначала

main();

else // иначе, выход

return 0;

}

Листинг 6 - Контролируем процесс игры

пользователь программа код

3. Инструкция пользователя

Игра начинается таким образом: игроку объясняются правила.

Рисунок 1. Приветствие

После начинается процесс игры. Игрокам указывается, какой номер сейчас ходит, и позволяется ввести число спичек, которое они хотят взять.

Рисунок 2. Начало игры

На следующем этапе игры отображаются предыдущие ходы с их результатами, а так же переключаются ходы между игроками.

Рисунок 3. Отображение хода игры

Игра продолжается до тех пор, пока не останется одна спичка.

Рисунок 4. Конец игры

Заключение

Во время выполнения курсовой работы были изучены принципы программирования на языке Си, были освоены основные концепции и стратегии по созданию консольного приложения «Спички», которое является результатом выполнения курсовой работы.

Библиографический список

1. Керниган Б. Язык программирования Си 2-е издание / Б. Керниган Д. Ричи М.: Издательский дом «Вильямс», 2012. 272 с.

2. Википедия. Свободная энциклопедия [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/Спички_(логическая_игра)

3. Википедия. Свободная энциклопедия [Электронный ресурс] / Режим доступа: https://ru.wikipedia.org/wiki/Си_(язык_программирования)

Приложение

Код программы

#include «stdio.h»

void FLYD (int P, int spich)

{

printf («Ходит % i игрок:\n», P);

printf («На экране % i спичек.\n», spich);

printf («Сколько спичек вы хотите взять?\n»);

}

int HOD (int spich, int P)

{

int j;

scanf («%i»,&j);

if (spich>3)

{

spich=PROVERKA (j, spich);

return spich;

};

if (spich>=1 && spich<4)

{

if (spich>1 && spich<4)

Листинг А.1, лист 1

{

spich=PROVERKA_WIN (j, spich, P);

return spich;

};

return spich;

};

}

int PROVERKA (int i, int spich)

{

int l;

for (l=0; i<1 || i>3; l++)

{

printf («Вам нужно взять 1, 2 или 3 спички!\n»);

scanf («%i», &i);

if(! (i>0&&i<4)) getchar();

};

spich=spich-i;

return spich;

}

int PROVERKA_WIN (int i, int spich, int Play)

Листинг А.1, лист 2

{

int l;

for (l=0; i<1 || i>spich || i==spich; l++)

{

printf («Введите число в допустимом диапазоне!\n»);

scanf («%i», &i);

if (! (i>0&&i<spich)) getchar();

};

spich=spich-i;

return spich;

}

int LOSE (int spich, int P, int d)

{

if (spich==1)

{

printf («ПРОИГРАЛ ИГРОК % i», P);

d=1;

};

if (spich!=1) d=0;

return d;

Листинг А.1, лист 3

}

main()

{

system («cls»); // очищаем командную строку

printf («Вас приветствует игра 'Спички'.\n»);

printf («Дано 21 спичка. По очереди игроки берут 1, 2 или 3 спички.\n»);

printf («Проиграет тот кто возьмет последнюю.\n»);

int SPICHKI = 21; // колличество спичек

int Player=1, d=0, i; // игрок, кол-во спичек которое берет игрок

while (d!=1)

{

d=LOSE (SPICHKI, Player, d);

if (Player==1 && SPICHKI>1)

{

d=LOSE (SPICHKI, Player, d);

FLYD (Player, SPICHKI);

SPICHKI=HOD (SPICHKI, Player);

Player=2;

};

Листинг А.1, лист 4

if (Player==2 && SPICHKI>1)

{

d=LOSE (SPICHKI, Player, d);

FLYD (Player, SPICHKI);

SPICHKI=HOD (SPICHKI, Player);

Player=1;

};

};

printf («\n Если хотите сыграть еще раз, введите '1'.\n»);

printf («\n Хотите выйти из игры, нажмите любую кнопку. =)\n»);

scanf («%i», &i);

if (i==1) // если введено 1, то игра начинается сначала

main();

else // иначе, выход

return 0;

}

Листинг А.1, лист 5

Размещено на Allbest.ru

...

Подобные документы

  • Обоснование языка программирования Object Pascal и среды разработки Delphi. Создание интерфейса пользователя. Проектирование структуры и описание компонентов, использованных при разработке программного продукта. Составление инструкции пользователя.

    курсовая работа [888,7 K], добавлен 20.05.2015

  • Общая характеристика языка программирования С++, его функции и возможности. Создание базы данных "Учет фототехники" для работников магазина. Этапы разработки алгоритма, спецификация, кодирование, отладка и тестирование программы. Руководство пользователя.

    курсовая работа [3,2 M], добавлен 15.07.2012

  • Разложение функции в ряд Тейлора, алгоритм работы программного интерфейса сокетов, исходный текст программ с комментариями. Возможности языка программирования Си и среда разработки приложений в ОС Linux. Виртуальная среда VMWare Player и VirtualBox.

    лабораторная работа [1,8 M], добавлен 02.09.2014

  • Структура и назначение программного кода программы по созданию 3D-графики средствами языка программирования Visual Basic. Элементы управления "Окно формы" и "Таймер", выполняемые ими функции и основные свойства, значение в работе программного кода.

    лабораторная работа [362,4 K], добавлен 06.07.2009

  • Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.

    курсовая работа [1,2 M], добавлен 04.08.2014

  • Изучение объектно-ориентированного языка программирования Java, его функциональные возможности. Создание программного кода. Описание классов и методов, использованных в программе. Руководство пользователя, запуск сервера и клиентского приложения.

    курсовая работа [1,8 M], добавлен 16.09.2015

  • Сущность и особенности языка программирования Си. Основные этапы алгоритма решения системы линейных алгебраических уравнений методом Гаусса, реализация программы для их расчета. Инструкции пользователя и программиста. Тестирование функции решения.

    курсовая работа [153,9 K], добавлен 18.02.2013

  • Порядок описание процесса разработки модели для разрешения задачи программирования с помощью средств языка программирования. Структуры данных и основные принципы их построения. Этапы компьютерного моделирования. Этапы и значение написания программы.

    курсовая работа [19,5 K], добавлен 19.05.2011

  • Особенности разработки и реализации обучающей программы и схемы алгоритмов на языке программирования С++. Понятие равномерной и неравномерной дискретизации. Представление информации (составление кода) в виде таблицы перекодировки или многочлена.

    курсовая работа [704,6 K], добавлен 06.03.2013

  • Обоснование необходимости разработки программы для игры "Тетрис". Математическая и графическая части алгоритма. Выбор языка и среды программирования. Отладка текста программы, разработка интерфейса пользователя. Тестирование, руководство пользователя.

    курсовая работа [1,5 M], добавлен 17.01.2011

  • Выбор языка программирования. Требования к информационному и техническому обеспечению. Реализация базы данных. Разработка алгоритма работы программного обеспечения. Форма идентификации пользователя. Руководство пользователя. Типы элементов диалога.

    дипломная работа [1,3 M], добавлен 05.07.2013

  • Разработка экспертной системы по выбору языка программирования для данного программного обеспечения. Выбор и обоснование механизма вывода решения. Дерево базы знаний экспертной системы. Программа формирования основного меню, руководство пользователя.

    курсовая работа [1,9 M], добавлен 15.08.2012

  • Общая характеристика и структурная схема приложения, требования к нему и функциональные особенности, сферы практического применения. Обоснование выбора языка программирования. Описание интерфейса и инструкция пользователя. Проведение листинга программы.

    дипломная работа [1,0 M], добавлен 10.07.2017

  • Выбор языка программирования и его обоснование. Определение системных требований. Схема алгоритма и программа на языке Qbasic. Разработка руководства пользователя. Способы конструирования программ. Особенности и принципы динамического программирования.

    курсовая работа [398,8 K], добавлен 21.01.2014

  • Особенности объектно-ориентированного программирования. Основные возможности языка программирования Java, классификация платформ. Создание программы, обеспечивающей вычисление арифметических выражений. Руководство пользователя и характеристика функций.

    курсовая работа [1,2 M], добавлен 07.07.2012

  • Разработка программы, реализующей построение объемной гистограммы с использованием свойств языка программирования Java. Возможность графически отобразить статистические данные урожайности как основное требование к программе. Реализация кода программы.

    курсовая работа [333,5 K], добавлен 21.01.2013

  • Приемы программирования в Delphi. Алгоритм поиска альфа-бета отсечения, преимущества. Описание программного средства. Разработка программы, реализующая алгоритм игры "реверси". Руководство пользователя. Листинг программы. Навыки реализации алгоритмов.

    курсовая работа [357,1 K], добавлен 28.02.2011

  • Использование в операционной системе UNIX языка программирования СИ. Требования к квалификации программиста. Механизм ветвления по условиям, циклы, составные инструкции. Особенности языка СИ. Доступ к памяти компьютера через использование указателей.

    презентация [108,6 K], добавлен 22.05.2015

  • Разработка программного модуля "Учет успеваемости студентов". Характеристика используемой ПЭВМ, ОС и языка программирования. Технологический процесс машинной реализации задачи. Алгоритм и текст программы меню. Составление инструкции для пользователей.

    курсовая работа [1,6 M], добавлен 14.01.2013

  • Особенности разработки кода программного модуля на современных языках программирования. Отладка и тестирование программы, оформление документации на программные средства. Применение инструментальных средств для автоматизации оформления документации.

    отчет по практике [203,8 K], добавлен 12.04.2015

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.