Коровы и быки
Курсовая работа, 04 Февраля 2015, автор: пользователь скрыл имя
Краткое описание
Целью данной курсовой работы является разработка популярной развлекательной игры Коровы и быки. Программа предоставляет возможность играть с компьютером, который играет согласно созданному алгоритму. В процессе разработки должны быть усвоены некоторые новые возможности языка С++ и среды Borland C++ Builder.
Прикрепленные файлы: 1 файл
КУРСОВАЯ РАБОТА 1.doc
— 118.50 Кб (Скачать документ)После запуска С++ Builder на экране появится пустая форма. Слева от нее расположено окно свойств Object Properties выделенного объекта. В верхней части расположены страницы с доступными компонентами.
Для размещения объекта на форме необходимо:
- дважды щелкнуть его после чего оно появится на форме;
- щелкнуть выбранный элемент управления, переместиться на форму, нажать и удерживая левую кнопку мыши, растянуть прямоугольник до нужных размеров.
После этого на форме появится соответствующий элемент управления. Изменяем необходимые свойства в окне Object Properties.
Размещаем следующие компоненты:
- BitBtn – командная кнопка с надписью и пиктограммой (страница Additional) (2 компонента).
- CheckBox – кнопка с независимой фиксацией (флажком) и служит в качестве двоичного переключателя режимов в программе (переключается одинарным щелчком мыши на компоненте) (1 компонент).
- СSpinEdit – редактор числа (страница Samples). Обеспечивает отображение и редактирование целого числа с возможностью его изменения с помощью двойной кнопки (2 компонента).
- Image – рисунок (страница Additional). Этот компонент предназначен для отображения рисунков, в том числе пиктограмм и метафайлов (1 компонент).
- Label – представляет собой статический текст и служит для отображения информации (страница Standard) (2 компонента).
- MainMenu (страница Standard). Для проектирования главного меню следует положить на форму компонент TMainMenu и с помощью Object Inspector'a настроить свойства объекта. При нажатии расположенной справа в строке Items кнопки вызывается окно проектирования меню, в котором пользователь вводит текст пунктов меню в свойство Caption (ввод дефиса вызывает появление горизонтальной разделительной черты между пунктами меню, знак '&' позволяет использовать следующий за ним символ для быстрого доступа к данному пункту меню); булево свойство Checked позволяет замаркировать данный пункт меню галочкой, свойство ShortCut – выбрать горячую клавишу (или сочетание клавиш) для быстрого доступа к данному пункту меню (1 компонент).
- MediaPlayer – мультимедийный проигрыватель. С помощью этого компонента можно управлять различными мультимедийными устройствами (1 компонента).
- Panel – является несущей конструкцией для размещения на ней других элементов управления, являясь в этом случае родителем для размещенных на ней компонентов (страница Standard). Рекомендуется использовать компонент TPanel для размещения компонентов при создании пользовательского интерфейса (1 компонент).
- RadioGroup – группа зависимых переключателей (страница Standard). Содержит специальные свойства для обслуживания нескольких связанных зависимых переключателей (2 компонента).
- StatusBar – панель статуса (страница Win32). Предназначена для размещения разного рода служебной информации (1 компонент).
- StringGrid – таблица строк (страница Additional). Этот компонент обладает мощными возможностями для представления текстовой информации в табличном виде (1 компонент).
Кроме главной формы в проекте будет еще две формы – для вывода информации о программе и вывода описания игры.
Чтобы добавить форму к проекту необходимо нажать кнопку New Form на панели инструментов (или из меню File выбрать New à Form).
Размещаем на второй форме:
- BitBtn – командная кнопка с надписью и пиктограммой (страница Additional) (1 компонент).
- Image – рисунок (страница Additional). Этот компонент предназначен для отображения рисунков, в том числе пиктограмм и метафайлов (1 компонент).
- Label – представляет собой статический текст и служит для отображения информации (страница Standard) (1 компонента).
- Panel – является несущей конструкцией для размещения на ней других элементов управления, являясь в этом случае родителем для размещенных на ней компонентов (страница Standard). Рекомендуется использовать компонент TPanel для размещения компонентов при создании пользовательского интерфейса (1 компонент).
Размещаем на третьей форме:
- BitBtn – командная кнопка с надписью и пиктограммой (страница Additional) (1 компонент).
- Memo – многострочный текстовый редактор (страница Standard). Используется для ввода и/или отображения многострочного текста.
Сохраняем проект.
Переходим к написанию кода программы.
Чтобы заставить С++ Builder самостоятельно сделать заготовку для процедуры обработчика события OnClick, дважды подряд без заметной паузы щелкните мышью по вновь вставленному компоненту. В ответ С++ Builder активизирует окно кода, и вы увидите в нем такой текстовый фрагмент:
void __fastcall TForm1::CSpinEdit1Change(
{
}
Проектируем обработчики для кнопок инструментальной панели и пунктов меню.
Заключение
В результате выполнения курсовой работы была разработана программа на языке С++, реализующая алгоритм игры Коровы и быки.
Программа написана с использованием принципа структурного проектирования и состоит из отдельных функций пользователя. Это значительно облегчило отладку программы а также дало возможность в будущем использовать разработанные алгоритмы в других программах.
По результатам тестирования программы можно сделать вывод о том, что программа полностью соответствует поставленной задаче.
Список использованной литературы
- Архангельский А.Я. Программирование в С++ Builder 6. –М.: «Издательство БИНОМ», 2003 г. –1152 с.
- Гагарина Л.Г., Кокорева Е.В., Виснадул Б.Д. Технология разработки программного обеспечения. –М.: ИД «Форум»: ИНФРА – М, 2008. –400 с.
- Гарднер М. Крестики–нолики. –М.: Мир, 1988. –215 c.
- Глушаков С.В., Зорянский В.Н., Хоменко С.Н. Программирование в среде Borland C++ Builder 6. –Харьков: Фолио, 2003. – 508 с.
- Гофман В.Э. Borland C++ Builder. –Спб.: BHV–Петербург, 2003. –488 с.
- Дубровский В. Н., Калинин А. Т. Математические головоломки. –М.: Знание, 1990. –354 с.
- Жоголев Е.А. Введение в технологию программирования (конспект лекций). –М.: "ДИАЛОГ–МГУ", 1994. –286 с.
- Культин Н. C++ Builder в задачах и примерах. СПб.: БХВ–Петербург, 2005. –336 с.
- Лапчик М.В. Borland C++. –М.: Нолидж, 2007. –616 с.
- У. Болл, Г. Коксетер. Математические эссе и развлечения. –М.: Мир, 1986. –187 с.
Приложение. Листинг программы
include <iostream>
#include <ctime>
using namespace std;
int mass1[4],mass2[4], inp;
void zadum()
{
srand(time(0));
mass1[0] = rand()%9 + 1;
for (int I = 1; I <= 3; I++)
mass1[I] = rand()%10;
}
void razb()
{
int del = 10;
for(int i = 3; i > -1; i--)
{
mass2[i] = inp % 10;
inp /= 10;
}
}
int b()
{
int res = 0;
for (int I = 0; I < 4; I++)
if (mass1[I] == mass2[I])
res++;
return res;
}
int c()
{
int res = 0;
for (int I = 0; I < 4; I++)
for (int J = 0; J < 4; J++)
if (mass1[I] == mass2[J] && I != J)
res++;
return res;
}
void game()
{
zadum();
cout << "Число Б К\n"
<< "----------\n";
for(;;)
{
cin >> inp;
razb();
cout << " " << b() << " " << c() << "\n";
if (b() == 4)
{
cout << "Вы выйграли!!!\n";
break;
}
}
}
void main()
{
setlocale(0, "Russian");
char M;
cout << "Здравствуйте, это игра 'Быки и коровы'.\n"
<< "Компьютер задумал 4-хзначное число. Ваша задача - отгадать его посредством ввода чисел.\n"
<< "Если цифра совпадает, но стоит на другом месте - это корова, если стоит на том же месте - бык.\n\n";
for (;;)
{
game();
cout << "Ещё раз? (Д/Н)\n"; cin >> M;
if (M == 'н' || M == 'Н')
break;
}
system("pause");