После запуска
С++ 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(TObject *Sender)
{
}
Проектируем
обработчики для кнопок инструментальной
панели и пунктов меню.
Заключение
В результате
выполнения курсовой работы была разработана
программа на языке С++, реализующая алгоритм
игры Коровы и быки.
Программа
написана с использованием принципа структурного
проектирования и состоит из отдельных
функций пользователя. Это значительно
облегчило отладку программы а также дало
возможность в будущем использовать разработанные
алгоритмы в других программах.
По результатам
тестирования программы можно сделать
вывод о том, что программа полностью соответствует
поставленной задаче.
Список использованной литературы
- Архангельский А.Я. Программирование
в С++ 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");