Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
РОСЖЕЛДОР
Государственное образовательное учреждение
высшего профессионального образования
«Ростовский государственный университет путей сообщения»
Курсовая работа
по дисциплине:
«Технология программирования»
по теме: «Объектно-ориентированная разработка программ»
Работу выполнил: Белан А.И.
Работу проверила: доц. Ведерникова О.Г.
Группа: ИС-V-607
Ростов-на-Дону
2011г.
Содержание:
ОБЩИЕ ПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ.
1.1 Специфика разработки программных средств.
1.2 Жизненный цикл программного средства.
1.3 Понятие качества программного средства.
1.4 Обеспечение надежности - основной мотив разработки программного средства.
1.5 Методы борьбы со сложностью.
1.6 Обеспечение точности перевода.
1.7 Преодоление барьера между пользователем и разработчиком.
1.8 Обеспечение контроля правильности принимаемых решений.
Разработать форму и интерфейс приложений, реализовать алгоритмы решения задач на языке Delphi
2.1 Программа «Треугольники» определяет, может ли быть построен прямоугольный треугольник по заданным длинам сторон а,b,с и выводит соответствующее сообщение
2.2 В заданных массивах А и В поменять местами максимальные элементы. Вывести на экран преобразованные массивы.
2.3 Разместить на форме объект “Shape”( эллипс) и кнопку “Button” с названием «Цвет формы». При запуске (выполнении) программы при нажатии на кнопку выводится стандартное диалоговое окно выбора цвета и цвет формы изменяется соответственно.
ПРИЛОЖЕНИЕ А
ПРИЛОЖЕНИЕ В
ВЫВОДЫ
Список использованной литературы
1. Теоретический вопрос: ОБЩИЕ ПРИНЦИПЫ РАЗРАБОТКИ ПРОГРАММНЫХ СРЕДСТВ.
1.1 Специфика разработки программных средств
Разработка программных средств имеет ряд специфических особенностей
1.2 Жизненный цикл программного средства
Под жизненным циклом ПС (software life cycle) понимают весь период его разработки и эксплуатации (использования), начиная от момента возникновения замысла ПС и кончая прекращением всех видов его использования. Жизненный цикл охватывает довольно сложный процесс создания и использования ПС (software process). Этот процесс может быть организован по-разному для разных классов ПС и в зависимости от особенностей коллектива разработчиков.
В настоящее время можно выделить 5 основных подходов к организации процесса создания и использования ПС.
В моей курсовой работе мы, в основном, будем рассматривать водопадный подход с некоторыми модификациями. Во-первых, потому, что в этом подходе приходиться иметь дело с большинством процессов программной инженерии, а, во-вторых, потому, что в рамках этого подхода создается большинство больших программных систем. Именно этот подход рассматривается в качестве индустриального подхода разработки программного обеспечения. Исследовательское программирование исходит из взгляда на программирование как на искусство. Оно применяется тогда, когда водопадный подход не применим из-за того, что не удается точно сформулировать требования к ПС. В моей курсовой работе мы этот подход рассматривать не будем. Прототипирование рассматривается как вспомогательный подход, используемый в рамках других подходов, в основном, для прояснения требований к ПС.
В рамках водопадного подхода различают следующие стадии жизненного цикла ПС (см. рис.1): разработку ПС, производство программных изделий (ПИ) и эксплуатацию ПС.
Рис. 1. Стадии и фазы жизненного цикла ПС.
Стадия разработки (development) ПС состоит из этапа его внешнего описания, этапа конструирования ПС, этапа кодирования (программирование в узком смысле) ПС и этапа аттестации ПС. Всем этим этапам сопутствуют процессы документирования и управления (management) ПС. Этапы конструирования и кодирования часто перекрываются, иногда довольно сильно. Это означает, что кодирование некоторых частей программного средства может быть начато до завершения этапа конструирования.
Этап внешнего описания ПС включает процессы, приводящие к созданию некоторого документа, который мы будем называть внешним описанием (requirements document) ПС. Этот документ является описанием поведения ПС с точки зрения внешнего по отношению к нему наблюдателя с фиксацией требований относительно его качества. Внешнее описание ПС начинается с анализа и определения требований к ПС со стороны пользователей (заказчика), а также включает процессы спецификации этих требований. Конструирование (design) ПС охватывает процессы: разработку архитектуры ПС, разработку структур программ ПС и их детальную спецификацию.
Кодирование (coding) ПС включает процессы создания текстов программ на языках программирование, их отладку с тестированием ПС.
На этапе аттестации (acceptance) ПС производится оценка качества ПС. Если эта оценка оказывается приемлемой для практического использования ПС, то разработка ПС считается законченной. Это обычно оформляется в виде некоторого документа, фиксирующего решение комиссии, проводящей аттестацию ПС.
Программное изделие (ПИ) экземпляр или копия разработанного ПС. Изготовление ПИ это процесс генерации и/или воспроизведения (снятия копии) программ и программных документов ПС с целью их поставки пользователю для применения по назначению. Производство ПИ это совокупность работ по обеспечению изготовления требуемого количества ПИ в установленные сроки . Стадия производства ПИ в жизненном цикле ПС является, по существу, вырожденной (не существенной), так как представляет рутинную работу, которая может быть выполнена автоматически и без ошибок. Этим она принципиально отличается от стадии производства различной техники. В связи с этим в литературе эту стадию, как правило, не включают в жизненный цикл ПС.
Стадия эксплуатации ПС охватывает процессы хранения, внедрения и сопровождения ПС, а также транспортировки и применения ПИ по своему назначению. Она состоит из двух параллельно проходящих фаз: фазы применения ПС и фазы сопровождения ПС.
Применение (operation) ПС это использование ПС для решения практических задач на компьютере путем выполнения ее программ.
Сопровождение (maintenance) ПС это процесс сбора информации о качестве ПС в эксплуатации, устранения обнаруженных в нем ошибок, его доработки и модификации, а также извещения пользователей о внесенных в него изменениях.
1.3 Понятие качества программного средства
Каждое ПС должно выполнять определенные функции, т.е. делать то, что задумано. Хорошее ПС должно обладать еще целым рядом свойств, позволяющим успешно его использовать в течении длительного периода, т.е. обладать определенным качеством. Качество (quality) ПС это совокупность его черт и характеристик, которые влияют на его способность удовлетворять заданные потребности пользователей . Это не означает, что разные ПС должны обладать одной и той же совокупностью таких свойств в их наивысшей степени. Этому препятствует тот факт, что повышение качества ПС по одному из таких свойств часто может быть достигнуто лишь ценой изменения стоимости, сроков завершения разработки и снижения качества этого ПС по другим его свойствам. Качество ПС является удовлетворительным, когда оно обладает указанными свойствами в такой степени, чтобы гарантировать успешное его использование.
Совокупность свойств ПС, которая образует удовлетворительное для пользователя качество ПС, зависит от условий и характера эксплуатации этого ПС, т.е. от позиции, с которой должно рассматриваться качество этого ПС. Поэтому при описании качества ПС, прежде всего, должны быть фиксированы критерии отбора требуемых свойств ПС. В настоящее время критериями качества ПС (criteria of software quality) принято считать:
Функциональность это способность ПС выполнять набор функций, удовлетворяющих заданным или подразумеваемым потребностям пользователей. Набор указанных функций определяется во внешнем описании ПС.
Надежность подробно обсуждалась в первой лекции.
Легкость применения это характеристики ПС, которые позволяют минимизировать усилия пользователя по подготовке исходных данных, применению ПС и оценке полученных результатов, а также вызывать положительные эмоции определенного или подразумеваемого пользователя.
Эффективность это отношение уровня услуг, предоставляемых ПС пользователю при заданных условиях, к объему используемых ресурсов.
Сопровождаемость это характеристики ПС, которые позволяют минимизировать усилия по внесению изменений для устранения в нем ошибок и по его модификации в соответствии с изменяющимися потребностями пользователей.
Мобильность это способность ПС быть перенесенным из одной среды (окружения) в другую, в частности, с одного компьютера на другой.
Функциональность и надежность являются обязательными критериями качества ПС, причем обеспечение надежности будет красной нитью проходить по всем этапам и процессам разработки ПС. Остальные критерии используются в зависимости от потребностей пользователей в соответствии с требованиями к ПС. Обеспечение этих критериев будет обсуждаться в подходящих разделах курса.
1.4 Обеспечение надежности основной мотив разработки программных средств
Рассмотрим теперь общие принципы обеспечения надежности ПС, что, как мы уже подчеркивали, является основным мотивом разработки ПС, задающим специфическую окраску всем технологическим процессам разработки ПС. В технике известны четыре подхода обеспечению надежности:
Целью подхода предупреждения ошибок не допустить ошибок в готовых продуктах, в нашем случае в ПС. Проведенное рассмотрение природы ошибок при разработке ПС позволяет для достижения этой цели сконцентрировать внимание на следующих вопросах:
Этот подход связан с организацией процессов разработки ПС, т.е. с технологией программирования. И хотя, как мы уже отмечали, гарантировать отсутствие ошибок в ПС невозможно, но в рамках этого подхода можно достигнуть приемлемого уровня надежности ПС.
Остальные три подхода связаны с организацией самих продуктов технологии, в нашем случае программ. Они учитывают возможность ошибки в программах. Самообнаружение ошибки в программе означает, что программа содержит средства обнаружения отказа в процессе ее выполнения. Самоисправление ошибки в программе означает не только обнаружение отказа в процессе ее выполнения, но и исправление последствий этого отказа, для чего в программе должны иметься соответствующие средства. Обеспечение устойчивости программы к ошибкам означает, что в программе содержатся средства, позволяющие локализовать область влияния отказа программы, либо уменьшить его неприятные последствия, а иногда предотвратить катастрофические последствия отказа. Однако, эти подходы используются весьма редко (может быть, относительно чаще используется обеспечение устойчивости к ошибкам). Связано это, во-первых, с тем, что многие простые методы, используемые в технике в рамках этих подходов, неприменимы в программировании, например, дублирование отдельных блоков и устройств (выполнение двух копий одной и той же программы всегда будет приводить к одинаковому эффекту правильному или неправильному). А, во-вторых, добавление в программу дополнительных фрагментов приводит к ее усложнению (иногда значительному), что в какой-то мере мешает методам предупреждения ошибок.
1.5 Методы борьбы со сложностью
Мы уже обсуждали в лекции 2 сущность вопроса борьбы со сложностью при разработке ПС. Известны два общих метода борьбы со сложностью систем:
Обеспечение независимости компонент означает разбиение системы на такие части, между которыми должны остаться по возможности меньше связей. Одним из воплощений этого метода является модульное программирование. Использование в системах иерархических структур позволяет локализовать связи между компонентами, допуская их лишь между компонентами, принадлежащими смежным уровням иерархии. Этот метод, по существу, означает разбиение большой системы на подсистемы, образующих малую систему. Здесь существенно используется способность человека к абстрагированию.
1.6 Обеспечение точности перевода
Обеспечение точности перевода направлено на достижение однозначности интерпретации документов различными разработчиками, а также пользователями ПС. Это требует придерживаться при переводе определенной дисциплины. Майерс предлагает использовать общую дисциплину решения задач, рассматривая перевод как решение задачи. Лучшим руководством по решению задач он считает книгу Пойа "Как решать задачу". В соответствии с этим весь процесс перевода можно разбить на следующие этапы:
Подробно обсуждать этот вопрос мы здесь не будем.
1.7 Преодоление барьера между пользователем и разработчиком
Как обеспечить, чтобы ПС выполняла то, что пользователю разумно ожидать от нее? Для этого разработчикам необходимо правильно понять, во-первых, чего хочет пользователь, и, во-вторых, его уровень подготовки и окружающую его обстановку. Ясное описание соответствующей сферы деятельности пользователя или интересующей его проблемной области во многом облегчает достижение разработчиками этой цели. При разработке ПС следует привлекать пользователя для участия в процессах принятия решений, а также тщательно освоить особенности его работы (лучше всего побывать в его "шкуре").
1.8 Контроль принимаемых решений
Обязательным шагом в каждом процессе (этапе) разработки ПС должна быть проверка правильности принятых решений. Это позволит обнаруживать и исправлять ошибки на самой ранней стадии после ее возникновения, что, во-первых, существенно снижает стоимость ее исправления и, во-вторых, повышает вероятность правильного ее устранения.
С учетом специфики разработки ПС необходимо применять везде, где это возможно,
Смежный контроль означает, проверку полученного документа лицами, не участвующими в его разработке, с двух сторон: во-первых, со стороны автора исходного для контролируемого процесса документа, и, во-вторых, лицами, которые будут использовать полученный документ в качестве исходного в последующих технологических процессах. Такой контроль позволяет обеспечивать однозначность интерпретации полученного документа.
Сочетание статических и динамических методов контроля означает, что нужно не только контролировать документ как таковой, но и проверять, какой процесс обработки данных он описывает. Это отражает одну из специфических особенность ПС (статическая форма, динамическое содержание).
2. Практическая часть: Разработать форму и интерфейс приложений, реализовать алгоритмы решения задач на языке Delphi
2.1 Программа «Треугольники» определяет, может ли быть построен прямоугольный треугольник по заданным длинам сторон а,b,с и выводит соответствующее сообщение
2.2. В заданных массивах А и В поменять местами максимальные элементы. Вывести на экран преобразованные массивы.
2.3. Разместить на форме объект “Shape”( эллипс) и кнопку “Button” с названием «Цвет формы». При запуске (выполнении) программы при нажатии на кнопку выводится стандартное диалоговое окно выбора цвета и цвет формы изменяется соответственно.
Для решения этой задачи, мы разработаем форму и интерфейс приложений на языке Delphi. Разработаем форму, которая будет основным меню для решения поставленных задач. Вызова форм colorshape, parray и тugol, которые будут реализовывать задачи. Программа построенна на модальных окнах.
Анализ технического задания и постановка задачи проектирования.
Так, согласно заданию, программа должна быть реализована в среде Delphi и должна выполнять следующие функции:
- вывод на экран информации о задании и назначении программы;
- ввод пользователем значений, определяющих параметры;
Составим следующий алгоритм:
Наиболее важными свойствами формы (всего их 38) являются:
Caption заголовок, указывающий наименование формы;
Color цвет фона формы;
Height высота окна формы в пикселях;
Left смещение по горизонтали в пикселях левого верхне
Top смещение по вертикали в пикселях левого верхнего
Width ширина окна формы в пикселях.
BorderStyle - тип рамки;
Font - шрифт и его атрибуты;
Icon - пиктограмма для изображения свернутой формы;
Visible - задает видимую или невидимую форму;
Для создания интерфейса можно использовать базовые компоненты к ним можно отнести:
Label поле вывода текста;
Edit поле ввода/редактирования текста;
Button командная кнопка;
GroupBox рамка группы
CheckBox «флажок», независимая кнопка выбора;
RadioGroup рамка группы переключателей
RadioButton радиокнопка , «переключатель»,
ListВox список выбора;
Combo Box комбинированный список выбора.
Для построения данного приложения, применялись следующие свойства формы из всех возможных:
Caption заголовок, указывающий наименование формы;
Color цвет фона формы;
Height высота окна формы в пикселях;
Left смещение по горизонтали в пикселях левого верхне
Top смещение по вертикали в пикселях левого верхнего
Width ширина окна формы в пикселях.
BorderStyle - тип рамки;
Font - шрифт и его атрибуты;
Icon - пиктограмма для изображения свернутой формы;
Visible - задает видимую или невидимую форму;
Position - задает расположение формы при выполнении приложения
Событий, которые могут произойти с каким-либо элементом управления не так уж и много. Для кнопки, например, есть два основных события: 1) одинарный щелчок мышью на ней (click), 2) двойной щелчок мышью на ней (double click). Программист, если необходимо реакция на нажатие кнопки (а иначе зачем она нужна?), должен написать процедуру-обработчик сообщения (Event handler), вызывающую определенные ответные действия.
Визуальный Компонент TLabel представляет собой статический текст и применяется для идентификации других объектов приложения. Он располагается рядом с полями редактирования, флажками, переключателями и помогает пользователю сориентироваться в их назначении. Обычно компонент TLabel события не обрабатывает.
Визуальный Компонент TEdit позволяет пользователю ввести с клавиатуры строку символов, или вывести в их поле редактирования. При вводе-выводе данных изменяется значение свойства Text компонента типа TEdit. Заметим, что введенный текст будет типа string, и выводимый текст должен быть типа string. Для преобразования строки символов в число и обратно существуют специальные функции, например, некоторые из них:
1) StrToInt(Text_String) преобразует строку Text_String в целое число (конечно, если она состоит из символов, которые соответствуют цифрам, иначе, преобразование бессмысленно);
2) IntToStr(Number_Integer) преобразует целое число Number_Integer в строку эквивалентных символов;
Приложение А
Листинг программ:
unit tmain;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm1 }
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
var
Form1: TForm1;
implementation
uses Tugol, parray, colorshape;
{ TForm1 }
procedure TForm1.Button1Click(Sender: Tobject);
begin
Form1.Hide; // закрыть объект 1
Form2.ShowModal; // открыть объект 2
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
Form1.Hide;
Form3.ShowModal; // открыть объект 3
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
Form1.Hide;
Form4.ShowModal; // открыть объект 4
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form1.Close; // закрыть объект 1
end;
initialization
{$I tmain.lrs}
end.
unit Tugol;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls;
type
{ TForm2 }
TForm2 = class(TForm)
Button1: TButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: char);
procedure Edit2KeyPress(Sender: TObject; var Key: char);
procedure Edit3KeyPress(Sender: TObject; var Key: char);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
private
{ private declarations }
public
{ public declarations }
end;
var
Form2: TForm2;
implementation
uses tmain;
{ TForm2 }
procedure TForm2.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Form1.Show;
end;
procedure TForm2.Button1Click(Sender: TObject);
var a,b,c,max,min,srd:integer; //переменные для сторон прямоугольника и вычислений
begin
// преобразование строковых значений в числовые
a:=StrToInt(Edit1.Text);
b:=StrToInt(Edit2.Text);
c:=StrToInt(Edit3.Text);
//Находим максимальную по длине стророну
max:=a;
if b>max then max:=b;
if c>max then max:=c;
// Находим минимальную по длине сторону
min:=a;
if b<min then min:=b;
if c<min then min:=c;
// Находим среднию по длине сторону
srd:=a+b+c-min-max;
if (sqr(max)=sqr(srd)+sqr(min)) then //Проверяем теорему Пифагора a2 + b2 = c2
Showmessage('Это прямоугольный треугольник!'
+' Стороны в порядке возрастания их длины: '
+IntToStr(min)+' '
+IntToStr(srd)+' '
+IntToStr(max))
else ShowMessage('Это не может быть прямоугольный треугольник!');
end;
procedure TForm2.Edit1KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0'..'9': ; //можно вводить только цифры
',': ; //или дробный числа
#8 : ; // клавиша Back Space
#13 : Edit2.SetFocus ; // клавиша Enter, и переход на другое окно ввода
// Остальные символы - запрещены !
else key := Chr(0); // запрещаем отображать символ
end;
end;
procedure TForm2.Edit2KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0'..'9': ; //можно вводить только цифры
',': ; //или дробный числа
#8 : ; // клавиша Back Space
#13 : Edit3.SetFocus ; // клавиша Enter, и переход на другое окно ввода
// Остальные символы - запрещены !
else key := Chr(0); // запрещаем отображать символ
end;
end;
procedure TForm2.Edit3KeyPress(Sender: TObject; var Key: char);
begin
case key of
'0'..'9': ; //можно вводить только цифры
',': ; //или дробный числа
#8 : ; // клавиша Back Space
#13 : Button1.SetFocus ; // клавиша Enter, и переход на кнопку вычисления
// Остальные символы - запрещены !
else key := Chr(0); // запрещаем отображать символ
end;
end;
initialization
{$I tugol.lrs}
end.
unit parray;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
Grids, StdCtrls;
type
{ TForm3 }
TForm3 = class(TForm)
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
StringGrid1: TStringGrid;
StringGrid2: TStringGrid;
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
procedure FormShow(Sender: TObject);
private
{ private declarations }
public
{ public declarations }
end;
const
size = 6;
var
Form3: TForm3;
a:array [1..size] of integer;
b:array [1..size] of integer;
max_a,max_b,buf:integer;
i:integer;
implementation
uses tmain;
{ TForm3 }
procedure TForm3.FormShow(Sender: TObject);
begin
with StringGrid1 do
for i:=1 to size do
begin
Cells[i-1,0]:='';
Cells[i-1,1]:='';
end;
with StringGrid2 do
for i:=1 to size do
begin
Cells[i-1,0]:='';
Cells[i-1,1]:='';
end;
for i := 1 to size do
begin
a[i] := 1 + Random(99); // заполняем массив случайными числами
b[i] := 1 + Random(99); // заполняем массив случайными числами
end;
Label7.Visible:=False;
Label8.Visible:=False;
end;
procedure TForm3.Button1Click(Sender: TObject);
begin
with StringGrid1 do
for i:=1 to size do
begin
Cells[i-1,0]:=IntToStr(a[i]);
Cells[i-1,1]:=IntToStr(b[i]);
end;
max_a :=1;
max_b :=1;
for i:=2 to size do
begin
if a[i] > a[max_a] then max_a := i;
if b[i] > b[max_b] then max_b := i;
end;
Label7.Visible:=True;
Label7.Caption:='Максимальный элемент массива А :'+IntToStr(a[max_a])
+#13+'Номер элемента в массиве А :'+ IntToStr(max_a)
+#13+'Максимальный элемент массива В :'+IntToStr(b[max_b])
+#13+'Номер элемента в массиве В :'+ IntToStr(max_b);
buf:= a[max_a];
a[max_a]:= b[max_b];
b[max_b]:= buf;
with StringGrid2 do
for i:=1 to size do
begin
Cells[i-1,0]:=IntToStr(a[i]);
Cells[i-1,1]:=IntToStr(b[i]);
end;
max_a :=1;
max_b :=1;
for i:=2 to size do
begin
if a[i] > a[max_a] then max_a := i;
if b[i] > b[max_b] then max_b := i;
end;
Label8.Visible:=True;
Label8.Caption:='Максимальный элемент массива А :'+IntToStr(a[max_a])
+#13+'Номер элемента в массиве А :'+ IntToStr(max_a)
+#13+'Максимальный элемент массива В :'+IntToStr(b[max_b])
+#13+'Номер элемента в массиве В :'+ IntToStr(max_b);
end;
procedure TForm3.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Form1.Show;
end;
initialization
{$I parray.lrs}
end.
unit colorshape;
{$mode objfpc}{$H+}
interface
uses
Classes, SysUtils, FileUtil, LResources, Forms, Controls, Graphics, Dialogs,
StdCtrls, ExtCtrls;
type
{ TForm4 }
TForm4 = class(TForm)
Button1: TButton;
Button2: TButton;
ColorDialog1: TColorDialog;
Label1: TLabel;
Panel1: TPanel;
Shape1: TShape;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormClose(Sender: TObject; var CloseAction: TCloseAction);
private
{ private declarations }
public
{ public declarations }
end;
var
Form4: TForm4;
implementation
uses tmain;
{ TForm4 }
procedure TForm4.Button1Click(Sender: TObject);
begin
if ColorDialog1.Execute then // вызываем окно диолого выборы цвета
Shape1.Brush.Color:=ColorDialog1.Color; // меняем цвет фигуры
end;
procedure TForm4.Button2Click(Sender: TObject);
begin
if ColorDialog1.Execute then // вызываем окно диолого выборы цвета
Form4.Color:= ColorDialog1.Color; // меняем цвет формы
end;
procedure TForm4.FormClose(Sender: TObject; var CloseAction: TCloseAction);
begin
Form1.Show;
end;
initialization
{$I colorshape.lrs}
end.
Приложение В
Результаты работы программ:
2. Работа программы Tugol
3. Работа программы parray
4. Работа программы colorshape.
ВЫВОДЫ
Данная курсовая работа была выполнена в полном соответствии поставленному заданию и отлажена в среде Лазарус. В ходе выполнения курсовой работы была разработана программа на модальных окнах.
В ходе выполнения курсового проекта были проведены - анализ технического задания и постановка задачи проектирования.
Были выделены функции, которыми должна обладать разрабатываемая программа.
Был разработан алгоритм программы, предназначенной для выполнения сформированных функций.
Согласно разработанному алгоритму была составлена и отлажена программа алгоритмическом языке программирования Delphi. В ходе разработки программы проводилось ее тестирование и отладка на тестовых наборах.
Результаты работы оформлены в виде пояснительной записки.
В ходе разработки программы были закреплены навыки работы:
- командами ввода-вывода как на экран, так и в текстовые файлы,
- использования процедур,
- команды обработки массивов,
- команды для реализации циклов с заданным числом повторений;
В результате выполнения данной курсовой работы, мы убедились в широких возможностях языка программирования Delphi, закрепили практические навыки программирования в cреде Лазарус.
Список Использованной Литературы: