Разработка программы на языке C++ Builder 6
Интегрированная среда программирования C++ Builder 6. Методы вычерчивания графических примитивов. Основные свойства инструментов рисования. Разработка рисунка паутины с центром в точке с произвольным числом лучей. Алгоритм программы в виде блок-схемы.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 13.10.2017 |
Размер файла | 842,5 K |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http: //www. allbest. ru/
РЕФЕРАТ
Пояснительная записка 24с., 6 рис., 3табл., 4 источника, 4 приложения
С++, ПЛОСКОСТЬ, АЛГОРИТМ, ВЫПУКЛАЯ ОБОЛОЧКА
Цель программы - разработать программу по следующим условиям:
Паутина. Получить на экране рисунок паутины с центром в произвольной (заданной) точке, с произвольным числом лучей. Паутина образована лучами и многоугольниками.
Размеры паутины задаются вводом.
В Процессе выполнения Курсового проекта мы научились программировать на языке программирования С++.
В Данной работе мы сделали программу , которая рисует паутину по заданным в неё параметрам.
Знания полученные при выполнении работы мы сможем применить в дальнейшем.
СОДЕРЖАНИЕ
РЕФЕРАТ
ВВЕДЕНИЕ
1. ОБЗОР ЛИТЕРАТУРЫ
2. ОПИСАНИЕ ПРОГРАММЫ
3. ОПИСАНИЕ ПРИМЕНЕНИЯ ПРОГРАММЫ
4. ТЕСТИРОВАНИЕ ПРОГРАММЫ
ЗАКЛЮЧЕНИЕ
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
ПРИЛОЖЕНИЯ
ВВЕДЕНИЕ
C++ Builder-- программный продукт, инструмент быстрой разработки приложений (RAD), интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке C++.
Изначально разрабатывался компанией BorlandSoftware, а затем её подразделением CodeGear, которое сейчас принадлежит компании EmbarcaderoTechnologies.
C++ Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi[1]. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но обратное утверждение не верно.
C++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG -- редактору интерфейса и пр.
C++ Builder первоначально создавалась только для платформы MicrosoftWindows. Поздние версии, содержащие Кроссплатформенную компонентную библиотекуBorland, поддерживают и Windows и Linux.
В 2003Borland выпустила C++ BuilderX (CBX), написанный при помощи той же инфраструктуры, что и JBuilder, который при этом был мало похож на C++ Builder или Delphi. Этот продукт предназначался для разработки больших программ для крупных предприятий, но коммерческого успеха не достиг. В конце 2004 года Borland объявила, что продолжит развитие классического C++ Builder и объединит его со средой разработки Delphi, прекратив, таким образом, разработку C++ BuilderX.
Спустя примерно год после этого объявления, Borland выпустила BorlandDeveloperStudio 2006, который включал в себя Borland C++ Builder 2006, предлагавший улучшенное управление конфигурацией и отладкой. BorlandDeveloperStudio 2006 -- единственный полноценный комплект, содержащий Delphi, C++Builder и C#Builder.
В 2007CodeGear выпустила C++ Builder 2007, в котором реализовала полную поддержку API MicrosoftWindowsVista, увеличила полноту соответствия стандарту ANSI C++, увеличила скорость компиляции и сборки до 500 %, включила поддержку MSBuild, архитектур баз данных DBX4 и «VCL для Web», поддерживающий AJAX. Поддержка API MicrosoftWindowsVista включила в себя приложения, изначально оформленные в стиле Vista, и естественную поддержку VCL для Aero и VistaDesktop. CodeGear RAD Studio 2007 содержит C++ Builder 2007 и Delphi. Также в 2007 CodeGear «воскресила» марку «Turbo» и выпустила две «Turbo» версии C++ Builder: Turbo C++ Professional и Turbo C++ Explorer (бесплатный), основанных на Borland C++ Builder 2006.
В конце 2008 года компания CodeGear выпустила новую версию RAD Studio, в которую вошли Delphi 2009 и С++ Builder 2009. В 2009 году в составе RAD Studio вышел C++ Builder 2010.
Ранее сообщалось, что следующая версия, CodeGear C++Builder (кодовое имя «Commodore»), будет обладать поддержкой x86-64 и возможностью создавать машинный x86-64 код. Однако в 2010 году в состав RAD Studio XE включена версия C++ Builder XE без этой функциональности.
1. ОБЗОР ЛИТЕРАТУРЫ
Цель программы - разработать программу по следующим условиям:
Паутина. Получить на экране рисунок паутины с центром в произвольной (заданной) точке, с произвольным числом лучей. Паутина образована лучами и многоугольниками.
C++ Builder может вывести графику на поверхность формы (или компонента image), которой соответствует свойство canvas (Canvas -- холст для рисования). Для того чтобы на поверхности формы или компонента image появилась линия, окружность, прямоугольник или другой графический элемент (примитив), необходимо к свойству Canvasприменить соответствующий метод (Таблица 1.1).
Например, оператор Forml->Canvas->Rectangle(10,10,50, 50); рисует на поверхности формы прямоугольник.
Таблица 1.1 Методы вычерчивания графических примитивов
Метод |
Действие |
|
LineTo(x,y) |
Рисует линию из текущей точки в точку с указанными координатами |
|
Rectangle (x1,y1,x2, y2) |
Рисует прямоугольник, x1, y1 и х2, у2 -- координаты левого верхнего и правого нижнего углов прямоугольника. Цвет границы и внутренней области прямоугольника могут быть разными |
|
FillRect (x1,y1,x2,y2) |
Рисует закрашенный прямоугольник, x1, y1, х2, у2 -- определяют координаты диагональных углов |
|
FrameRect(x1,y1,x2,y2) |
Рисует контур прямоугольника, x1, y1, х2, у2 -- определяют координаты диагональных углов |
|
RounRect (x1,y1,x2,y2,x3,y3) |
Рисует прямоугольник со скругленными углами |
|
Ellipse (x1,y1,x2,y2) |
Рисует эллипс или окружность (круг), x1, y1, х2, у2 -- координаты прямоугольника, внутри которого вычерчивается эллипс или, если прямоугольник является квадратом, окружность |
|
Polyline (points, n) |
Рисует ломаную линию, points-- массив типа TPoint. Каждый элемент массива представляет собой запись, поля х и у которой содержат координаты точки перегиба ломаной; л -- количество звеньев ломаной. Метод Polyline вычерчивает ломаную линию, последовательно соединяя прямыми отрезками точки, координаты которых находятся в массиве: первую со второй, вторую с третьей, третью с четвертой и т. д. |
Методы вывода графических примитивов рассматривают свойство canvas как некоторый абстрактный холст, на котором они могут рисовать (Canvas переводится как "поверхность", "холст для рисования"). Холст состоит из отдельных точек -- пикселов. Положение пиксела на поверхности холста характеризуется горизонтальной (X) и вертикальной (Y) координатами. Координаты возрастают сверху вниз и слева направо. Левый верхний пиксел поверхности формы (клиентской области) имеет координаты (0, 0), правый нижний -- (clientwidth, clientHeight). Доступ к отдельному пикселу осуществляется через свойство Pixels, представляющее собой двумерный массив, элементы которого содержат информацию о цвете точек холста. Методы вычерчивания графических примитивов обеспечивают только вычерчивание. Вид графического элемента определяют свойства Реn(карандаш) и Brush (кисть) той поверхности (Canvas), на которой рисует метод. Карандаш и кисть, являясь свойствами объекта Canvas, в свою очередь представляют собой объекты Реn и Brush. Свойства объекта Реп (табл. 1.2) задают цвет, толщину и тип линии или границы геометрической фигуры. Свойства объекта Brush (табл. 1.3) задают цвет и способ закраски области внутри прямоугольника, круга, сектора или замкнутого контура.
Таблица 1.2 Свойства объекта Реn (карандаш)
Свойство Определяет Color Цвет линии Width Толщину линии (задается в пикселах) Style Вид линии (psSolid-- сплошная; psDash-- пунктирная, длинные штрихи; psDot -- пунктирная, короткие штрихи; psDashDot -- пунктирная, чередование длинного и короткого штрихов; psDashDotDot -- пунктирная, чередование одного длинного и двух коротких штрихов; psClear -- линия не отображается (используется, если не надо изображать границу области -- например, прямоугольника) |
Таблица 1.3. Свойства объекта Brush (кисть)
Свойство |
Определяет |
|
Color |
Цвет закрашивания замкнутой области |
|
Style |
Стиль заполнения области (bsSolid -- сплошная заливка. Штриховка: bsHorizontal -- горизонтальная; bsVertical -- вертикальная; bsFDiagonal -- диагональная с наклоном линий вперед; bsBDiagonal -- диагональная с наклоном линий назад; bsCross -- в клетку; bsDiagCross -- диагональная клетка |
Любая картинка, чертеж или схема могут рассматриваться как совокупность графических примитивов: точек, линий, окружностей, дуг и др. Таким образом, для того чтобы на экране появилась нужная картинка, программа должна обеспечить вычерчивание (вывод) графических элементов -- примитивов, составляющих эту картинку.
Вычерчивание графических примитивов на поверхности (формы или компонента image -- области вывода иллюстрации) осуществляется применением соответствующих методов к свойству canvas этой поверхности.
2. ОПИСАНИЕ ПРОГРАММЫ
Компоненты формы. Для создания приложения в разработчике C++Builderимеется визуальное поле объектов (Рисунок 2.1). Опишем применяющиеся объекты.
На форме находятся следующие объекты:
objectForm1: TForm1
objectButton1: TButton
objectButton2: TButton
objectButton3: TButton
objectButton4: TButton
objectImage1: TImage
objectEdit1: TEdit
objectEdit2: TEdit
objectLabel1: TLabel
objectLabel2: TLabel
objectLabel3: TLabel
Рисунок 2.1 Форма приложения (Form1)
Рисунок 2.2 Форма «Опрограмме» (Form2)
На форме находятся следующие объекты:
objectForm2: TForm2
object Button1: TButton
objectImage1: TImage
objectLabel1: TLabel
objectLabel2: TLabel
objectLabel3: TLabel
Компонент TButton
К стандартным свойствам, методам и событиям для битовых кнопок C++Builder добавляет свойства, управляющие отображением рисунка на кнопке. Хотя битовой кнопке можно назначить лишь одно изображение, оно может подразделяться на четыре равные по размеру части, соответствующие различным состояния кнопки: отжата (up), нажата (down), запрещена (disabled) и нажимается (clicked). Свойство Kind определяет стандартные типы кнопок, такие как OK, Cancel и т п., наделяя кнопки соответствующими изображениями и поведением.
Ключевые свойства
· Default
· TabStop
Ключевые события
· OnClick
· OnContextPopup
· OnDragDrop
· OnDragOver
· OnEndDock
· OnEndDrag
· OnExit
· OnEnter
Компонент TLabel
Элемент управления, предназначенный для отображения текста на форме. Не имеет собственного окна.
Основные свойства.
В C Builder свойство TLabel::Enabled используется, чтобы указать, будет ли метка (компонент TLabel) отвечать на события мыши, клавиатуры и таймера, или нет.
Если элемент компонент TLabel запрещен (когда свойство Enabled установлено в true), то он изображается затененным и не реагирует на внешние воздействия: события мыши, клавиатуры и таймера.
Компонент TImage
Компонент Image (вкладка Additional) класса TImage служит
для размещения на форме одного из трех поддерживаемых ти-
пов изображений: растрового рисунка (*.bmp), значка (*.ico) или мета-
файла (*.wmf или *.emf).
Алгоритм рисования дома сводится к вводу исходных данных и на основе их прорисовки элементарных геометрических фигур.
Для рисования прямоугольников используется следующий графический приметив:
Rectangle (x1,y1,x2, y2), где x1, y1 и х2, у2 -- координаты левого верхнего и правого нижнего углов прямоугольника соответственно.
Для рисования линий используется:
MoveTo(x,y) - перемещает курсор в то место, откуда будет рисоваться линия. LineTo(x,y)- рисует прямую линию из текущего положения в указанные координаты.
МетодFloodFill закрашивает текущей кистью Brush замкнутую область канвы, определенную цветом и начальной точкой закрашивания (X, Y). Точка с координатами X и Y является произвольной внутренней точкой заполняемой области, которая может иметь произвольную форму. Граница этой области определяется сочетанием параметров Color и FillStyle. Параметр Color типа TColor указывает цвет, который используется при определении границы закрашиваемой области, а параметр FillStyle определяет, как именно по этому цвету определяется граница. Если FillStyle = fsSurface, то заполняется область, окрашенная цветом Color, а на других цветах метод останавливается. Если FillStyle=fsBorder, то наоборот, заполняется область окрашенная любыми цветами, неравными Color, а на цвете Color метод останавливается.
Image1->Canvas->Brush->Color=clGreen;
Image1->Canvas->FloodFill(x11,y11,Image1->Canvas->Pixels[x11][y11],fsSurface);
3. ОПИСАНИЕ ПРИМЕНЕНИЯ ПРОГРАММЫ
Для входа в программу необходимо запустить файл Project1.exe
Рисунок 3.1 Программа. Запуск
Программа запускается начальной страницей с изображением рабочего формы. На форме находятся 4 кнопки: - «Нарисовать». При нажатии на эту кнопку, происходит рисование кубика Рубика.
- «О программе». При нажатии на эту кнопку открывается вторая форма, в которой указаны данные о разрабатываемом продукте и разработчике.
- «Закрыть». При нажатии на эту кнопку программа закрывается.
- «Стереть». При нажатии на эту кнопку осуществляется заливка поля белым цветом, что в свою очередь стирает дом.
С левой стороны находится поле для ввода исходных данных:
- Координата X;
- Координата Y.
4. ТЕСТИРОВАНИЕ ПРОГРАММЫ
Основной целью программы является рисование паутины из любой заданной точки.
Проведём тестирование программы. Форма «О программе».
Рисунок 4.1 О программе
Выводится окно с названием программы, дата её разработки и данные разработчика.
Произведём тестирование рисования паутины при вводе различных начальных точек (Рисунок 4.2 и 4.3).
Рисунок 4.2 Программа «Паутина» при вводе центральной координаты
Рисунок 4.3 Программа «Паутина» при вводе боковой координаты
Таким образом, для всех вариантов тестирования программа показывает верный результат.
ЗАКЛЮЧЕНИЕ
программирование графический паутина алгоритм
Итогом курсовой работы стала разработка программы в среде C++Builder. Программа предоставляет собой рисования паутины из любой заданной точки. Приведён подробный алгоритм в виде блок-схемы и его описание, код программы.
Для выполнения курсовой работы использовались следующие системы автоматизированного проектирования: С++Builder6, MSOffice 2013,MSPaint.
СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ
1. Герберт Шилдт, Полный справочник по С++, 4-е издание. М.: Издательский дом «Вильямс», 2004. - 800с.
2. Архангельский А.Я. Программирование в C++ Builder. 2010 - 1230c.
3. Липпман Дж. Основы программирования на С++. М.: СПБ, 2002
4. Романов Е.Л., Практикум по программированию на С++. СПБ, 2004 - 432с.
ПРИЛОЖЕНИЕ А
ИНТЕРФЕЙС ПРОГРАММЫ
ПРИЛОЖЕНИЕ Б
БЛОК-СХЕМА ПРОГРАММЫ
ПРИЛОЖЕНИЕ В
ТЕКС ПРОГРАММЫ
#include<vcl.h>
#pragma hdrstop
#include "Unit1.h"
#include "Unit2.h"
#include "Unit3.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
intx,y,i;
int x0,x1,x2,x3,x4,x5,x6,x7,y0,y1,y2,y3,y4,y5,y6,y7;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
Form1->Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Form2->Show();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
try
{
x=StrToInt(Edit1->Text);
y=StrToInt(Edit2->Text);
}
catch (EConvertError&e)
{
ShowMessage("Вы ввели не верно! Попробуйте ещё раз.");
return;
}
for (i=900;i>0;i=i-20) // рисуем многоугольники
{
x0=x;
y0=y-40-i;
x1=x+18+i;
y1=y-18-i;
x2=x+40+i;
y2=y;
x3=x+18+i;
y3=y+18+i;
x4=x;
y4=y+40+i;
x5=x-18-i;
y5=y+18+i;
x6=x-40-i;
y6=y;
x7=x-18-i;
y7=y-18-i;
TPointpoints[8];
points[0] = Point(x0,y0);
points[1] = Point(x1,y1);
points[2] = Point(x2,y2);
points[3] = Point(x3,y3);
points[4] = Point(x4,y4);
points[5] = Point(x5,y5);
points[6] = Point(x6,y6);
points[7] = Point(x7,y7);
Image1->Canvas->Polygon (points,7);
}
i=900;
x0=x;
y0=y-40-i;
x1=x+18+i;
y1=y-18-i;
x2=x+40+i;
y2=y;
x3=x+18+i;
y3=y+18+i;
x4=x;
y4=y+40+i;
x5=x-18-i;
y5=y+18+i;
x6=x-40-i;
y6=y;
x7=x-18-i;
y7=y-18-i;
Image1->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювправо
Image1->Canvas->LineTo(x2,y2);
Image1->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювниз
Image1->Canvas->LineTo(x4,y4);
Image1->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювлево
Image1->Canvas->LineTo(x6,y6);
Image1->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювверх
Image1->Canvas->LineTo(x0,y0);
Image1->Canvas->MoveTo(x,y); // рисуем прямую линию вправо и вверх
Image1->Canvas->LineTo(x1,y1);
Image1->Canvas->MoveTo(x,y); // рисуем прямую линию вправо и вниз
Image1->Canvas->LineTo(x3,y3);
Image1->Canvas->MoveTo(x,y); // рисуем прямую линию влево и вниз
Image1->Canvas->LineTo(x5,y5);
Image1->Canvas->MoveTo(x,y); // рисуем прямую линию влево и вверх
Image1->Canvas->LineTo(x7,y7);
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
Image1->Canvas->FillRect(Rect(0,0,Image1->Width,Image1->Height));
// очищает форму
}}
ПРИЛОЖЕНИЕ Г
РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ
Размещено на Allbest.ru
Подобные документы
Характеристика методов изображения графических элементов. Особенности вычерчивания прямой линии, прямоугольника, окружности, дуги. Порядок вывода текста на канву. Текст программы для построения электрической схемы на языке программирования C++Builder.
контрольная работа [1,7 M], добавлен 25.10.2012Разработка программы для рисования различных правильных многоугольников с помощью объектно-ориентированного языка программирования. Использование для разработки среды C++ Builder 6 и библиотеки VCL. Разработка интерфейса приложения и алгоритма его работы.
курсовая работа [616,4 K], добавлен 18.10.2010Разработка программы с целью создания изображений графических примитивов на поверхности формы. Передача координат и плоскости рисования в функцию алгоритма разложения прямой линии. Расчет параметров для построения круга, особенности прорисовки эллипса.
контрольная работа [220,7 K], добавлен 27.04.2012Разработка прикладной программы для операций создания и уничтожения объектов в системе визуального объектно-ориентированного программирования C++Builder. Алгоритм работы программы, набор функций и операторов, компонент и модулей, кнопки событий.
дипломная работа [672,5 K], добавлен 16.08.2012Основные программы, функционирующие в среде Windows и поддерживающие диалоговые окна и другие возможности. Разработка программы на языке Builder C++ 6.0, осуществляющей выдачу сообщения в заданное время. Описание ее алгоритмов. Общие сведения о IBM PC.
курсовая работа [49,1 K], добавлен 13.11.2009Разработка приложения "Ведомость начисления заработной платы" в среде программирования C++Builder. Алгоритм и сценарий работы программы. Проектирование интерфейса пользователя. Написание программных модулей и результаты тестирования данной программы.
курсовая работа [597,4 K], добавлен 31.01.2016Borland и C++Builder 6.0 как совершенная интерактивная среда программирования на языке C++. Проектирование программы, глобальные переменные. Форма создания нового каталога. Объекты на Form Dialog Delete. Блок-схема взаимодействия компонентов программы.
курсовая работа [836,2 K], добавлен 27.08.2014Работа в Borland C++ Builder. Среда разработки и компоненты C++ Builder. Свойства компонентов. Менеджер проектов. Создание приложений в C++ Builder. Выбор компонентов для групповых операций. Работа с базами данных в Borland C++ Builder.
курсовая работа [35,8 K], добавлен 11.06.2007C++ Builder - SDI-приложение, главное окно которого содержит настраиваемую инструментальную панель и палитру компонентов. Свойства атрибутов компонента, определяющие его внешний вид и поведение. События, методы и VCL компоненты в среде C++ Builder.
курсовая работа [225,9 K], добавлен 12.02.2009Краткая история UML. Объектный подход к разработке программных средств. Визуальная среда программирования С++ Builder. Сведения о диаграмме вариантов использования. Диаграмма классов программы "Вычисления нерабочих дней". Алгоритм работы программы.
курсовая работа [545,0 K], добавлен 31.10.2011