Курсовая работа по дисциплине «Объектно-ориентированное программирование»




Скачать 132.48 Kb.
НазваниеКурсовая работа по дисциплине «Объектно-ориентированное программирование»
Дата публикации01.10.2013
Размер132.48 Kb.
ТипКурсовая
uchebilka.ru > Информатика > Курсовая


министерство образования И НАУКИ

российской федерации
Архангельский государственный технический университет
Институт информационных технологий
Кафедра «Вычислительных систем и телекоммуникаций»

КУРСОВАЯ РАБОТА
по дисциплине «Объектно-ориентированное программирование»
Тема курсовой работы: Разработка компонента Delphi
Курсовую работу выполнил:

Студент 3 курса, группы №5

Митрофанов Н.А.

(Фамилия и инициалы студента)

Курсовую работу проверил:

Деменков М. Е.


(Фамилия и инициалы преподавателя)


Техническое задание для курсовой работы студентом:

получено:____________________ выполнено:______________________

(Даты получения задания на КР и его выполнение заполняются преподавателем)
Выдача КР для группы состоялось _____________________

(Дата выдачи КР заполняется преподавателем)
Защита курсовой работы студентом.


Дата:










Оценка:










Подпись преподавателя:











Архангельск

2004

СОДЕРЖАНИЕ


1. Содержание

2 стр.

1. Разработка эскизного и технического проектов программы

3 стр.

1.1. Введение.

3 стр.

1.2. Назначение и область применения.

3 стр.

2. Технические характеристики

4 стр.

2.1. Постановка задачи

4 стр.
^

2.2. Описание алгоритма


4 стр.

2.3.Организация входных и выходных данных

4 стр.
^

2.4. Выбор состава технических и программных средств


4 стр.

2.5. Источники, использованные при разработке


4 стр.

3. Разработка рабочего проекта.

5 стр.

3.1. UML-диаграмма.

6 стр.

3.2. Спецификация программы.

10 стр.

3.3. Описание компонента.

10 стр.

3.4. Тестирование программы.

10 стр.

4. Внедрение.

12 стр.

4.1. Установка компонента

12 стр.

4.2 Использование компонента

12 стр.

5. Приложение

13 стр.

6. Литература

15 стр.



  1. ^

    Разработка эскизного и технического проектов программы




    1. Введение

Объектно-ориентированное программирование - это метод программирования, развивающий принципы структурного программирования и основанный на следующих абстракциях данных:

1. Инкапсуляция: объединение данных с процедурами и функциями в единый блок программного кода (данные и методы работы с ними рассматриваются как поля объекта).

2. Наследование (наличие экземпляров класса; потомки, прародители, иерархия).

3. Полиморфизм (единое имя для некого действия, которое по-разному осуществляется для объектов иерархии).

Объектно-ориентированное программирование поддерживают большое количество современных сред разработки - Delphi, Java, C++ и т.д.

^ 1.2 Назначение и область применения.

Необходимо разработать новый компонент Delphi на основе имеющегося, представляющего собой кнопку, способную запускать html-страницы прописанные в свойстве Link. Данный компонент разрабатывается для использования в среде разработки Delphi и может использоваться при создании Windows - приложений.
^

2. Технические характеристики

2.1. Постановка задачи


В данной работе нам необходимо создать новый компонент Delphi на основе существующего, обладающего возможностью запускать html-страницы прописанные в свойстве Link. Этот компонент должен обладать всеми свойствами и методами стандартной кнопки.
^

2.2. Описание алгоритма


Delphi – объектно – ориентированный язык программирования. При разработке компонента, нам нет необходимости описывать полностью все свойства и методы, которыми должна обладать наша кнопка. Достаточно воспользовавшись принципом наследования объявить в качестве класса - предка нашей кнопки класс TBitBtn. Наша задача состоит в том, чтобы заставить кнопку запускать html-страницы прописанные в свойстве Link.
^

2.3.Организация входных и выходных данных


Компонент не требует организации входных данных и не выдает ничего на выходе.

2.4. Выбор состава технических и программных средств


Средой разработки данного компонента является Delphi, что объясняется его назначением.

Технические характеристики для компьютера, на котором будет создаваться компонент должны соответствовать системным требованиям той версии Delphi, в среде которой будет создаваться данный компонент.

Компонент представляет собой файл со стандартным расширением .pas и устанавливается согласно стандартным правилам установки компонентов в среде Delphi.
^

2.5. Источники, использованные при разработке


При выполнении работы широко использовались книги по программированию в среде Delphi 6 интерактивная и контекстная справка среды, а также различная электронная справочная документация по WinAPI и Delphi.

^

3. рАЗРАБОТКА РАБОЧЕГО ПРОЕКТА


Этапы разработки рабочего проекта:

  1. разработку компонента и написание программы

  2. программной документации

  3. тестирование работоспособности компонента.

3.1. Написание программы

В данной работе нам необходимо создать свой собственный компонент (кнопку) на основе существующего (стандартной кнопки), который был бы пригоден для использования при разработке приложений в среде визуального программирования Delphi.

В качестве класса предка для нашего компонента мы возьмем класс стандартной кнопки TBitBtn. Визуально наша кнопка ничем не будет отличаться от стандартной. Различие будет наблюдаться только в функциональных возможностях нашей кнопки, так как по условию задачи наша кнопка должна открывать html-страницы. Одной из функциональных возможностей нашей кнопки является открытие html-страниц. Для этого добавляется в Инспектор Объектов новое свойство.

Стандартная кнопка представляет собой не что иное, как стандартное окно Windows. Все окна Windows взаимодействуют с системой посредством сообщений. Например, нажимает мышью на окно, то генерируется сообщение об этих действиях пользователя. Поэтому когда будет нажата кнопка, будет генерироваться сообщение об этом действии. Когда кнопка будет нажата появится окно, где можно будет выбрать html файл.

Делаем следующие объявления:

объявляем процедуры:

  • procedure SetLink(const Value: string);

  • procedure WMPaint (var Msg : TWMPAINT); message WM_Paint;

  • procedure Click; override;

  • constructor Create (AOwner : TComponent); override;

объявляем новые свойства:

  • property Link : string read GetLink write SetLink;

  • property Od : TOPendialog read FOd write Fod;

Процедура Create отвечает за создание экземпляра нашего класса. Причем, ключевое слово override означает, что метод родительского класса переписывается и выполняет другие действия. Переписываться могут только виртуальные и динамические методы.

Для реализации инкапсуляции (скрытии информации об объекте и предоставление доступа к этой информации с помощью методов) используются 3 области видимости, которые определяются с помощью следующих директив:

Поля нашего класса:

  • Public – поля, свойства, методы и т.д., описанные в этом разделе доступны всем и везде.

  • Protected - поля, свойства, методы и т.д., описанные в этом разделе доступны только в данном классе и в дочерних классах.

  • Published – используется при создании объектов и для помещения свойств в Инспектор объектов, аналогичен разделу public.


Procedure SetLink(…) - процедура класса, устанавливающая значение переменной FLink

Procedure WMPaint (…) message WM_Paint - процедура прорисовки компонента

Procedure Click; override - процедура класса, обрабатывающая событие нажатия кнопки

3.2. UML-диаграмма

В Object Pascal класс — тип записи, который может иметь в своем составе поля данных и методы, а также свойства.

Все компоненты Delphi порождены от класса TComponent, в котором инкапсулированы самые общие свойства и методы компонентов. Предком TComponent является класс TPersistent, который произошел непосредственно от базового класса TObject.

Класс TComponent служит базой для создания как видимых, так и невидимых компонентов. Большинство видимых компонентов происходит от класса TControl. Наследник этого класса – TwinControl определяет группу компонентов, имеющих оконный ресурс.

Оконный ресурс – это специальный ресурс Windows, для создания и обслуживания окон. Только оконные компоненты способны получать и обрабатывать сообщения Windows.

Класс TControl определяет свойство Parent которое содержит ссылку на родительский компонент:

Property Parent: TWinControl;

Это свойство не следует путать с собственником Owner: Owner создал компонент (не обязательно – видимый), а Parent управляет видимым компонентом.

Свойство Components содержит список всех компонентов, которыми владеет данный компонент и указывает место компонента в списке. Помимо этого свойства каждый оконный компонент получает от своего родителя TWinControl свойство Controls, содержащее список дочерних элементов.

Свойство DockClients позволяет получить клиента компонента, а свойство HostDockSite – определяет хозяина.

В качестве класса предка для нашего компонента мы возьмем класс стандартной кнопки TBitBtn.

Пиктографическая кнопка TBitBtn представляет собой популярную разновидность стандартной кнопки TButton. Ее отличительная особенность – свойство Glyph, с помощью которого определяется растровое изображение, рисуемое на поверхности кнопки.

procedure TRunButton.Click;

















constructor TRunButton.Create(AOwner: TComponent);










FOD := TOPendialog.Create(self);



Fod.Filter := 'гипертекст|*.html; *.htm';





destructor TRunButton.Destroy;

















function TRunButton.GetLink: string;












procedure TRunButton.SetLink(const Value: string);
























procedure TRunButton.WMPaint(var Msg: TWMPAINT);









hdc := BeginPaint(handle, ps);






^

3.3. Спецификация программы


Программный код данного компонента находится в файле Uu.pas

3.4. Описание компонента


Общие сведения

Название компонента TRunButton , родительским классом которого является класс TBitBtn. Компонент разработан в среде визуального программирования Delphi.

Функциональное назначение

Данный компонент предназначен для работы в среде Delphi. Целью его работы является улучшение интерфейса приложений, разрабатываемых пользователями и расширения возможностей разработчиков при разработке приложений.

Описание логической структуры программы

Структура описания компонента определяется объектно – ориентированным языком программирования. То есть в описании мы создаем класс нашей кнопки, описываем его поля и различные методы присущие нашему классу. Методы открытые для использования пользователем при разработке приложений - это методы унаследованные от родительского класса TBitBtn.

Используемые технические средства

Intel Celeron совместимый компьютер, ОС Windows XP. Процессор Celeron 850. Оперативной памяти 192Мб. Дисковое пространство 20GB.
^

3.5. Тестирование программы


Тестирование программы производилось вручную, посредствам непосредственного применения компонента по назначению. Так как наша кнопка по функциональным возможностям полностью соответствует стандартной кнопке и отличается от нее только наличием дополнительных свойств, то в процессе проверки работоспособности нашей кнопки, проверялось визуальное отображение, а также изменения характера перемещения при изменении ее свойств. Тестирование случаев некорректной работы кнопки не выявило.
На рис.1 показана кнопка.


рис.1


На рис.2 показано окно которое открывается при нажатии на кнопку .


рис.2


На рис.3 показан документ, который отрывается при выборе нужного html документа.


рис.3
^

4. Внедрение

4.1. Установка компонента


Для установки компонента нужно воспользоваться стандартным алгоритмом установки. В главном меню Delphi выбираем пункт < Component > , далее < Install Component >. В появившемся окошке указываем путь к файлу компонента с расширением .pas , далее нажимаем < Compile > и < Install>. В случае успешной установки появится сообщение Delphi об этом.
^

4.2. Использование компонента


Данный компонент можно применять при разработке различных Windows – приложений в среде Delphi. Чтобы поместить данный компонент на форму разрабатываемого приложения, необходимо найти закладку, которая содержит данный компонент (в программном коде эта закладка определена под именем test), и переместить данный компонент на форму. Далее можно работать с этим компонентом как со стандартной кнопкой, при этом в свойстве Kind этого компонента можно установить одну из трех возможных форм данной кнопки.

^

5. Приложение

Программный код компонента




unit Uu;
interface
uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ShellApi, stdctrls;
type
TRunButton = class (TButton) // класс TRunButton наследуется от класса TButton

private // модификатор доступа к компонентам класса (компоненты будут недоступны вне класса)

FLink : string; // переменная, содержащая путь к испоьзуемому html-файлу

FOd : Topendialog; // объект класса TOpenDialog

function GetLink: string; // функция класса, возвращающая параметр FLink

procedure SetLink(const Value: string); // процедура класса, устанавливающая значение переменной FLink

procedure WMPaint (var Msg : TWMPAINT); message WM_Paint; // процедура прорисовки компонента

public // модификатор доступа к компонентам класса (компоненты будут доступны в основной программе)

procedure Click; override; // процедура класса, обрабатывающая событие нажатия кнопки

constructor Create (AOwner : TComponent); override; // конструктор класса

destructor Destroy; override; // деструктор класса

published // модификатор, после которого следуют свойства данного класса, которые будут отображаться в инспекторе объектов

property Link : string read GetLink write SetLink; // свойство Link, будет отображено в инспекторе объектов, позволяет считать или установить значение переменной FLink

Property Od : TOPendialog read FOd write Fod; // свойство Od, будет отображено в инспекторе объектов, позволяет считать или установить значение переменной Fod

end;

procedure Register;
implementation
{ TRunButton }

procedure Register;

begin

RegisterComponents('new', [TRunButton]); // регистрация компонента в палитре компонент во вкладке "new"

end;
procedure TRunButton.Click; // процедура, вызываемая при нажатии на кнопку

begin

inherited;

Fod.Execute;

fLink := od.filename;

ShellExecute(0,'open', PChar(Flink), nil, nil,sw_show); // открытие файла, на который указывает путь в переменной Flink

end;
constructor TRunButton.Create(AOwner: TComponent); // конструктор класса

begin

inherited; // вызов старого конструктора, унаследованного от класса TButton

FLink := 'c:\temp\q.html';

FOD := TOPendialog.Create(self); // создаем объект класса TOpenDialog

Fod.Filter := 'гипертекст|*.html; *.htm';
end;

destructor TRunButton.Destroy; // деструктор класса

begin

FOd.Free;

inherited;

end;
function TRunButton.GetLink: string; // возвращает путь к файлу, используемому данным компонентом

begin

Result := Flink;

end;
procedure TRunButton.SetLink(const Value: string); // процедура установки ссылки (пути) на файл с расширением html

var

i : byte;

begin

i:=Pos('html',Value);

if (Value <> Flink) and

( i > 0) then

Flink := Value;

end;
procedure TRunButton.WMPaint(var Msg: TWMPAINT); // процедура прорисовки кнопки и вывода надписи (свойство Caption)

var

hdc : THandle;

ps : TPaintStruct;

begin

inherited;

hdc := BeginPaint(handle, ps);

TextOut(hdc,2,5,PChar(caption),sizeof(caption));
EndPaint(handle, ps);

end;
end.



    1. ЛИТЕРАТУРА

  1. Фаронов В.В. Delphi 4. Учебный курс. – М.: Издательство «Нолидж», 1998.

  2. Гофман В. Э., Хомоненко А. Д. Delphi 6:полное руководство. – СПб.: БХВ – Петербург, 2002. – 1152 с.: ил.

  3. Тейксейра С.,Пачеко К. Delphi 5, руководство разработчика .- электронный вариант

  4. Фаронов В. В. Delphi 6, учебный курс. – Москва 2001

  5. З.П.Дарахвелидзе, Е.Марков. Delphi — среда визуального программирования. СПб: BHV-Санкт-Петербург, 1996. 352 с.

  6. П.Г.Дарахвелидзе, Е.П.Марков.Delphi4. Среда визуального программирования.-СПб.:БХВ – Санкт-Петербург, 1999. – 816 с.

  7. А.М.Епанешников, В.А.Епанешников. Программирование в среде Delphi: Учебное пособие в 4-х частях. М.: ДИАЛОГ-МИФИ, 1997-1998.




Добавить документ в свой блог или на сайт

Похожие:

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconПояснительная записка к курсовому проекту по дисциплине: «Объектно-ориентированное...
Содержание пояснительной записки к курсовому проекту по дисциплине «Объектно-ориентированное программирование»

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconОбъектно-ориентированное программирование
Объектно-ориентированное программирование — это методология программирования, основанная на организации программы в виде совокупности...

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconМетодические указания к выполнению контрольной работы (ргр) по дисциплине...
Методические указания к выполнению контрольной работы (ргр) по дисциплине «Объектно-ориентированное программирование» (для студентов...

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconЛекция 10 Объектно-ориентированное программирование
Лекция 10 Объектно-ориентированное программирование 10. 1 Основные принципы ооп 10 1 Методология структурного программирования

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconЛабораторная работа №8 Тема Объектно-ориентированное программирование...
Тема Объектно-ориентированное программирование с использованием средств языка С++

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconПояснительная записка к курсовой работе по дисциплине «Объектно-ориентированное...
Целью работы является создание программной системы, которая реализует действия выполняемые пользователем почтового отделения с использованием...

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconКурсовая работа выполняется на основании 'Задания на курсовую работу'...
Целью курсовой работы является закрепление практических навыков самостоятельной постановки и решения задачи обработки данных с помощью...

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconОценка эффективности методов o-r преобразования
В разработке программного обеспечения широко используется объектно-ориентированное проектирование и программирование

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconОбъектно-ориентированное программирование. Лабораторная работа №5 12
Создать производный класс Lorry (грузовик), характеризуемый также грузоподъемностью кузова. Определить функции переназначения марки...

Курсовая работа по дисциплине «Объектно-ориентированное программирование» iconВ настоящее время объектно-ориентированное программирование (ооп)...
В настоящее время объектно-ориентированное программирование (ооп) является доминирующим стилем при создании больших программ. Рассмотрим...

Вы можете разместить ссылку на наш сайт:
Школьные материалы


При копировании материала укажите ссылку © 2013
контакты
uchebilka.ru
Главная страница


<