Разработка программы на языке C++ Builder 6

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    288,42 Кб
  • Опубликовано:
    2017-10-13
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Разработка программы на языке C++ Builder 6

РЕФЕРАТ

Пояснительная записка 24с., 6 рис., 3табл., 4 источника, 4 приложения

С++, ПЛОСКОСТЬ, АЛГОРИТМ, ВЫПУКЛАЯ ОБОЛОЧКА

Цель программы - разработать программу по следующим условиям:

Паутина. Получить на экране рисунок паутины с центром в произвольной (заданной) точке, с произвольным числом лучей. Паутина образована лучами и многоугольниками.

Размеры паутины задаются вводом.

В Процессе выполнения Курсового проекта мы научились программировать на языке программирования С++.

В Данной работе мы сделали программу , которая рисует паутину по заданным в неё параметрам.

Знания полученные при выполнении работы мы сможем применить в дальнейшем.

СОДЕРЖАНИЕ

РЕФЕРАТ

ВВЕДЕНИЕ

. ОБЗОР ЛИТЕРАТУРЫ

. ОПИСАНИЕ ПРОГРАММЫ

. ОПИСАНИЕ ПРИМЕНЕНИЯ ПРОГРАММЫ

4. ТЕСТИРОВАНИЕ ПРОГРАММЫ

ЗАКЛЮЧЕНИЕ

СПИСОК ИСПОЛЬЗОВАННЫХ ИСТОЧНИКОВ

ПРИЛОЖЕНИЯ

ВВЕДЕНИЕ

C++ Builder- программный продукт, инструмент быстрой разработки приложений (RAD), интегрированная среда программирования (IDE), система, используемая программистами для разработки программного обеспечения на языке C++.

Изначально разрабатывался компанией BorlandSoftware, а затем её подразделением CodeGear, которое сейчас принадлежит компании EmbarcaderoTechnologies.++ Builder объединяет в себе комплекс объектных библиотек (STL, VCL, CLX, MFC и др.), компилятор, отладчик, редактор кода и многие другие компоненты. Цикл разработки аналогичен Delphi[1]. Большинство компонентов, разработанных в Delphi, можно использовать и в C++ Builder без модификации, но обратное утверждение не верно.++ Builder содержит инструменты, которые при помощи drag-and-drop действительно делают разработку визуальной, упрощает программирование благодаря встроенному WYSIWYG - редактору интерфейса и пр.++ 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 этой поверхности.

. ОПИСАНИЕ ПРОГРАММЫ

Компоненты формы. Для создания приложения в разработчике C++Builderимеется визуальное поле объектов (Рисунок 2.1). Опишем применяющиеся объекты.

На форме находятся следующие объекты:

objectForm1: TForm1: TButton: TButton: TButton: TButton: TImage: TEdit: TEdit: TLabel: TLabel: TLabel

Рисунок 2.1 Форма приложения (Form1)

Рисунок 2.2 Форма «Опрограмме» (Form2)

На форме находятся следующие объекты:

objectForm2: TForm2Button1: TButton: TImage: TLabel: TLabel: TLabel

К стандартным свойствам, методам и событиям для битовых кнопок 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 - координаты левого верхнего и правого нижнего углов прямоугольника соответственно.

Для рисования линий используется:(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с.

.        Архангельский А.Я. Программирование в C++ Builder. 2010 - 1230c.

.        Липпман Дж. Основы программирования на С++. М.: СПБ, 2002

.        Романов Е.Л., Практикум по программированию на С++. СПБ, 2004 - 432с.

ПРИЛОЖЕНИЕ А

ИНТЕРФЕЙС ПРОГРАММЫ



ПРИЛОЖЕНИЕ Б

БЛОК-СХЕМА ПРОГРАММЫ



ПРИЛОЖЕНИЕ В

ТЕКС ПРОГРАММЫ

#include<vcl.h>

#pragma hdrstop

#include "Unit2.h"

#include "Unit3.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm1 *Form1;,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)

{

}

//---------------------------------------------------------------------------

__fastcall TForm1::Button4Click(TObject *Sender)

{->Close();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button2Click(TObject *Sender)

{->Show();

}

//---------------------------------------------------------------------------__fastcall TForm1::Button1Click(TObject *Sender)

{

{=StrToInt(Edit1->Text);=StrToInt(Edit2->Text);

}(EConvertError&e)

{("Вы ввели не верно! Попробуйте ещё раз.");;

}(i=900;i>0;i=i-20) // рисуем многоугольники

{

=x;=y-40-i;=x+18+i;=y-18-i;=x+40+i;

y2=y;=x+18+i;=y+18+i;=x;

y4=y+40+i;=x-18-i;=y+18+i;=x-40-i;

y6=y;=x-18-i;=y-18-i;

[8];[0] = Point(x0,y0);[1] = Point(x1,y1);[2] = Point(x2,y2);[3] = Point(x3,y3);[4] = Point(x4,y4);[5] = Point(x5,y5);[6] = Point(x6,y6);[7] = Point(x7,y7);->Canvas->Polygon (points,7);

}=900;=x;=y-40-i;=x+18+i;=y-18-i;=x+40+i;=y;

x3=x+18+i;=y+18+i;=x;=y+40+i;=x-18-i;

y5=y+18+i;=x-40-i;=y;=x-18-i;=y-18-i;

->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювправо->Canvas->LineTo(x2,y2);

->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювниз->Canvas->LineTo(x4,y4);

->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювлево->Canvas->LineTo(x6,y6);

->Canvas->MoveTo(x,y); // рисуемпрямуюлиниювверх->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);

}

//---------------------------------------------------------------------------__fastcall TForm1::Button5Click(TObject *Sender)

{->Canvas->FillRect(Rect(0,0,Image1->Width,Image1->Height));

// очищает форму

}}

ПРИЛОЖЕНИЕ Г

 

РЕЗУЛЬТАТЫ ВЫПОЛНЕНИЯ ПРОГРАММЫ




Похожие работы на - Разработка программы на языке C++ Builder 6

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!