Московский государственный Институт Радиотехники. Г. Москва Курсовая работа по програмированию на языке высокого уровня. Тема Автосалон. Студента факультета вмс, группы вв607 Станкевича Сергея Алексеевича Г. Москва,2008 Реферат
Скачать 318.5 Kb.
|
Московский государственный Институт Радиотехники, Электроники и Автоматики Г.Москва Курсовая работа по програмированию на языке высокого уровня. Тема: Автосалон. Студента факультета ВМС, группы ВВ-6-07 Станкевича Сергея Алексеевича Г.Москва,2008 Реферат Всего страниц____________________________________________________34 Количество таблиц_________________________________________________0 Количество рисунков_______________________________________________3 Количество разделов_______________________________________________6 Краткое описание разделов. 1 раздел – краткое описание структуры классов и объектов. 2 раздел – постановка задачи и описание основных классов и модулей прогараммы(класс автомобилей, класс запросов, класс массива автомобилей, класс массива запросов и модуль работы с типизированным файлом). 3 раздел - описание и илюстрация основных частей интерфейса и тестирование программ. 4 раздел – вывод и итог проделанной работы. 5 раздел – список литературы использовавшейся при разработке программы. 6 раздел – приложения(исходные коды разработанных модулей). Содержание Реферат__________________________________________________________ 2 Содержание______________________________________________________ 3 Введение_________________________________________________________ 4 Исторический ракурс_______________________________________________ 6 1 Теоретическая часть______________________________________________ 6 2 Проектная часть__________________________________________________ 6 2.1 Постановка задачи_________________________________________ 6 2.2 Подход к решению_________________________________________ 7 2.3 Описание класса-варианта___________________________________7 2.4 Описание класса-массива___________________________________ 8 2.5 Определение структуры модуля для работы с файлом_____________11 3 Экспериментальная часть_________________________________________ 11 3.1 Инструкция для пользователя_______________________________ 11 3.2 Определение интерфейса класса-массива______________________12 3.3 Определение интерфейса класса-варианта_____________________12 3.4 Тестирование_____________________________________________ 13 4 Вывод__________________________________________________________14 5 Список использованной литературы________________________________ 15 6 Приложения____________________________________________________ 16 Введение: Представленная мной курсовая работа наглядно илюстрирует богатые возможности ЯВУ(язык высокого уровня) Delphi в сфере разработки приложений. В ходе выполнения данной работы были активно задействованы возможности Delphi в области ООП(объектно-ориентированное програмирование), модульного програмирования и програмирования динамических структур. Мне удалось создать две программы, названные класс-вариант и класс-массив, моделирующие работу автосалона. Исторический ракурс. Ещё недавно, известная компания Borland выпустила первую версию своего средства визуального программирования Delphi. К разочарованию приверженцев фигурных скобок (в связи со спецификой языка именно так называют программистов, использующих С или С++) программы в Delphi надо было писать на языке Pascal, имеющем дурную репутацию "студенческого". Однако большинство серьёзных разработчиков вскоре поняло, что Pascal уже не "игршка для детей", каким его можно было считать раньше, а новое профессиональное средство для быстрой разработки высококачественных программных продуктов. Сейчас торговая марка Borland известна, пожалуй, каждому программисту. Кто-то скажет, что фирма написала отличный компилятор для языка С++ или создала мощную и быструю среду визуальной разработки приложений -Delphi. Но так было не всегда. Компания была организована в далеком 1983, когда о средах визуальной разработки еще никто не мог мечтать, однако продукты Borland даже тогда отличались высоким качеством. Как это ни удивительно, даже вездесущая Microsoft не могла создать столь качественных средств разработки. Успех Borland можно объяснить простым стремлением сделать программирование комфортнее. За последние годы политика Borland претерпела ряд изменений. Сначала переименование в Inprise, отказ от мелких клиентов и переход к созданию инструментов для больших компаний, потом возрождение в лице нового президента Дейла Фуллера (DaleFuller) Что же представляет из себя Borland сейчас? Для начала компания вновь сменила имя - теперь в пресрелизах пишут Inprise/Borland. Все вполне логично: Inprise -"свежий ветер" в области разработки инструментов для электронной коммерции и программного обеспечения под Linux. Borland - привычный и устоявшийся авторитет, известнейшая торговая марка. Крайне интересна политика компании по отношению к Interbase. Недавно было объявлено о решении сделать этот продукт также Open Source. Этот шаг открывает разработчикам программного обеспечения, использующим продукты Borland, беспрецедентные возможности. Но вернемся к Delphi. Что же такое Delphi? Это средство визуального программирования, в основе которого лежит объектно-ориентированный язык. Тогда возникает еще один вопрос, что такое "визуальное программирование". Представим себе, что программист не печатает код своей программы, а объясняет системе, что бы он хотел увидеть. Конечно, это преувеличение - никакая система не поймет человеческий язык и тем более не сможет адекватно выполнить необходимые действия, но разработчики Delphi сделали первый шаг в этом направлении. В Delphi многие действия требуют гораздо меньше времении выполняются более интуитивно. Безусловно, что для быстрого создания приложений необходим иной взгляд на программирование вообще. Для этого основой Delphi стал объектно-ориентированный Pascal (который так и называется Object Pascal и сильно отличается от стандарта языка). Теперь программист не пишет стандартный код, а оперирует с более абстрактными понятиями - классами, событиями, свойствами, компонентами. Для ясности необходимо определить понятие компонента. Взгляните на ваш Windows, который, возможно, Вы используете. Перед Вами кнопки, полосы прокрутки,выпадающие списки, меню и т.д. Все это- компоненты. А зачем писать что-то по сто раз, когда можно использовать библиотеку визуальныхкомпонентов - VCL (Visual Component Library). Вам нужна кнопка. Зачем вспоминать длинные строчки кода – просто поместите на рабочую формочку нужный компонент. Даже слово "поместить" не совсем подходит - с компонентами работать до того просто, что программисты предпочитают более вольную терминологию "выкинуть" или "использовать", т.е. какбы переместить компонент из библиотеки на формочку. Почему же Delphi получила такую популярность? На этот счет существует несколько мнений и причин. Delphi - это продукт, уникальным образом сочетающий высокопроизводительный компилятор, объектно-ориентированные средства визуальногопрограммирования и универсальный механизм доступа к базам данных. Теоретическая часть Язык Delphi реализует концепцию и основный стандарты ООП. Это озночает, что функциональность приложения определяется набором взаимосвязанных задач, каждая их которых становится самостоятельным объектом. У объекта есть свойсва(т.е характеристики или атрибуты), методы, определяющие его поведение, и события, на которые он реагирует. Одним из наиболее важных понятий ООП является класс. Класс представляет собой дальнейшее развитие концепции типа и объединяет в себе задание не только структуры и размера переменных, но и выполняемых над ним операций. Объекты в программе всегда являются экземпляром того или иного класса(аналогично переменным определённого типа). В среде Delphi классы реализуются следующим образом: Type NameClass = class(NamePredok) Public { Объявленные элементы доступны отовсюду} Private {Объявленные элементы доступные только в самом классе} Protected {Объявленные элементы доступные в самом классе и во всех его наследниках} Published { Объявленные элементы доступны отовсюду и отображаются в инспекторе объектов} End; NameClass – имя класса; class – ключевое слово указывающее на то, что создаваемый объект является классом; NamePredok – имя класса-предка; private, public, protected, published – ключевые слова определяющие зону видимости элементов класса. Проектная часть 2.1 Постановка задачи Основной задачей данного проэкта является написание программы, демонстрирующей использование классов, работу с типизированными файлами и динамическими структурами данных. Требуется разработать класс-вариант(автомобиль\покупатель), содержащий данные о автомобиле\покупателе. Так же, требуется разработать класс-массив(база автомобилей\покупателей), элементами которого являются объекты класс-варианта. Разработать приложения демонстрирующие применение класса-варианта и класса-массива. 2.2 Подход к решению Для решения поставленной задачи очень удобно использовать наработки среды Delphi в ООП, так как класс-вариант и класс-массив должны активно использовать объекты. 2.3 Описание класса-варианта В ходе выполнения поставленной задачи мною был разработан класс Avto(Avtomobil.pas) предназначенный для хранения, чтения и записи информации о имеющейся машине. Этот класс имеет 4 поля: M : string; - информация о марке машины. Y : integer; -информация о годе выпуска машины. S : string; - для хранения технического состояния. C : integer; - для хранения запрашиваемой цены. Для удобной работы с полями объекта были разработанны свойства: property PMarka : string read GetM write SetM; - длядоступакполю M. property PGod : integer read GetY write SetY; - длядоступакполю Y. property PSostoianie : string read GetS write SetS; - длядоступакполю S. property PCena : integer read GetC write SetC; - длядоступакполю C. Данные свойства были реализованны с помощью методов обеспечивающих доступ к полям объекта. Например, запись в поля объекта обеспечивают процедуры: procedure SetM(const Marka : string); - длязаписивполе M. procedure SetY(const Year : integer); - длязаписивполе Y. procedure SetS(const Sostoianie : string); - длязаписивполе S. procedure SetC(const Cena : integer); - длязаписивполе C. Чтение из полей объекта реализованно с помощью функций: function GetM : string; - для чтения из поля M. function GetY : integer; - для чтения из поля Y. function GetS : string; - длячтенияизполя S. function GetC : integer; - для чтения из поля C. Так же был реализованн конструктор объекта: constructor Create_Avto(Marka : string; Year : integer; Sostoianie : string; Cena : integer); Для программы класс-вариант также был разработан класс Potrebitel (Pokupatel.pas) предназначенный для хранения, чтения и записи информации о запросах на имеющиеся машины. Этот класс имеет 4 поля: T : string; - информация о контактном телефоне покупателя. M : string; - информация о запрашиваемой марке машины. S : string; - информация о запрашиваемом техническом состоянии. C : integer; - информация о финансовых возможностях покупателя. Для удобной работы с полями объекта были разработанны свойства: property PMarka : string read GetM write SetM; - длядоступакполю M. property PTelefon : string read GetT write SetT; - длядоступакполю T. property PSostoianie : string read GetS write SetS; - длядоступакполю S. property PCena : integer read GetC write SetC; - длядоступакполю C. Данные свойства были реализованны с помощью методов обеспечивающих доступ к полям объекта. Например, запись в поля объекта обеспечивают процедуры: procedure SetT(const Telefon : string); -записьвполе T. procedure SetM(const Marka : string); -записьвполе M. procedure SetS(const Sostoianie : string); -записьвполе S. procedure SetC(const Cena : integer); -записьвполе C. Чтение из полей объекта реализованно с помощью функций: function GetT : string; - чтениеизполя T. function GetM : string; - чтениеизполя M. function GetS : string; - чтениеизполя S. function GetC : integer; - чтение из поля C. Так же был реализованн конструктор объекта constructor Create_Potrebitel(Telefon, Marka, Sostoianie : string; Cena : integer); 2.4 Описание класса-массива Код программы Класса-массива находится в модуле Salon.pas. В этом модуле находится описание и реализация двух классов – класса AvtoSalon и класса AvtoSalon2. Первый предназначен для хранения и обработки данных по машинам, а второй для хранения и обработки данных по запросам покупателей. Для обоих классов создано по два поля: динамический массив объектов и переменная, служащая для хранения размера массива.Так же, для удобства, в классе AvtoSalon было созданно поле Variants – специальный массив для обработки запросов. Описание класса AvtoSalon: type AvtoSalon = class protected Avtos : array of Avto; N : integer; Variants : array of Avto; public constructor Create_Cars(const p:integer); procedure NullAvtos; procedure SetN(const l : integer); function GetN :integer; function GetZ : integer; procedure Insert_Car(Marka:string; const Year:integer; Sost :string; const Cena:integer; l:integer); procedure Add_Car(const Marka:string; const Year:integer; const Sost :string; const Cena:integer); function Get_Car(const i : integer) : string; function Get_Variant(const i : integer) : string; procedure Sort_Mas(Sposob:boolean); procedure Find_Variants(const Marka:string; const Sost : string; const Cena : integer); end; В классе AvtoSalon для работы над массивом машин реализованы следующие методы: procedure NullAvtos; - задаёт размер массива машин равный нулю. procedure SetN(const L : integer); - задаётзначениеполя N равным L. function GetN :integer; - возвращает значение поля N; function GetZ : integer; - возвращает размер массива Variants; procedure Insert_Car(Marka : string; const Year : integer; Sost : string; const Cena : integer; L:integer); - производит вставку данных о какой-либо машине в массив машин в позицию L. procedure Add_Car(const Marka : string; const Year : integer; сonst Sost : string; const Cena : integer); - заполняявсеполя, добавляетодинэлементкмассивумашин. function Get_Car(const i : integer) : string; - возвращает строку состоящую из полей i-ого элемента массива машин в специальном формате. function Get_Variant(const i : integer) : string; - возвращает строку состоящую из полей i-ого элемента массива Variants в специальном формате. procedure Sort_Mas(Sposob:boolean); - производит сортировку массива машин методом пузырька. В зависимости от параметра сортировка проходит по марке машины или по году выпуска. procedure Find_Variants(const Marka:string; const Sost : string; const Cena : integer); - произвдитвыборкуподходящихподзапросмашинисоставляетмассив Variants. Так же реализованн костуктор класса AvtoSalon. Описание класса AvtoSalon2: type AvtoSalon2 = class protected Zaprosi : array of Potrebitel; N : integer; public constructor Create_Zapros(const p:integer); procedure NullZapros; Function GetN : integer; procedure Insert_Zapros(Telefon,Marka,Sost :string; const Cena:integer; l:integer); procedure Add_Zapros(const Telefon : string; const Marka:string; const Sost :string; const Cena:integer); function Get_Zapros(const i : integer) : string; function Get_Marka(l : integer):string; function Get_Sost(l : integer):string; function Get_Cena(l : integer):integer; end; В классе AvtoSalon2 для работы над массивом запросов реализованы следующие методы: |