Вход

Обьектно ориентированное программирование

Курсовая работа по программированию
Дата добавления: 10 августа 2010
Язык курсовой: Русский
Word, rtf, 869 кб
Курсовую можно скачать бесплатно
Скачать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу



Содержание.

Введение.................................................................................................

Часть I. Теоретическая часть

    1. Основные понятия ООП.…………………………………..…….

    2. Среда реализации...................…………………………………....

ЧастьII. Практическая часть

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

2.2. Ход работы........................................................................………..

2.3. Тест программы........................................................................…..

2.4. Инструкция для пользователя..........................................……….

Заключение ...........................................................................................

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


















Введение.

Объектно-ориентированное программирование является в настоящее время наиболее популярной технологией программирования. Объектно-ориентированное программирование является развитием технологии алгоритмического программирования, которое представляет алгоритм в виде последовательности различных алгоритмических структур (линейная, ветвление, цикл), однако имеет свои характерные черты.

Объектно-ориентированный подход рассматривает все ресурсы, такие как данные, модули, системы в качестве объектов. Каждый объект содержит некоторую структуру данных, обрамленную некоторыми наборами процедур (методов), предназначенных для манипулирования этими данными.

Объектно-ориентированное программирование по своей сути – это создание приложений из объектов, подобно тому, как из блоков и различных деталей строятся дома. Одни объекты приходится полностью создавать самостоятельно, тогда как другие можно позаимствовать в готовом виде из разнообразных библиотек.

Важное место в технологии объектно-ориентированного программирования занимает событие. В качестве событий могут рассматриваться щелчок кнопкой мыши на объекте, нажатие определенной клавиши, открытие документа и т.д. В качестве реакции на события вызывается определенная процедура, которая может изменять свойства объекта, вызывать его методы и т.д.

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




Теоретическая часть.

Прежде чем давать определение понятию объект, рассмотрим, что такое класс.

Класс – это определяемый пользователем тип, который включает в себя данные разных типов и операции над ними.

Объект – это экземпляр какого-либо класса.

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

Объект состоит из 3 частей:

  • Имя объекта;

  • Данные различных типов, называемые полями объекта;

  • Заголовки процедур или функций, называемых методами объекта (операциями).

Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:

1. Инкапсуляция – это объединение и скрытие данных и обрабатывающих их методов от внешнего пользователя внутри класса. Для этого в описании класса используется спецификатор раздела private, содержащий данные и методы, доступные только для самого класса.

Назначение инкапсуляции:

  • защита данных, принадлежащих объекту, от возможных ошибок, которые могут возникнуть при прямом доступе к этим данным;

  • локализация возможных ошибок в программе, что намного упрощает процесс поиска и исправления этих ошибок.

2. Наследование – это процесс, который позволяет определять новые классы на основе уже имеющегося (базового) класса. При этом новый класс сохраняет все свойства старого и может добавлять к ним черты, характерные только для него.

Класс-предок – это базовый класс, от которого новый класс получает свойства. Новый класс при этом называется наследником.

Назначение наследования:

  • Не надо каждый раз заново описывать новый объект, а можно указать базовый класс и описать отличительные особенности нового класса. В результате новый класс будет обладать всеми свойствами класса-предка плюс своими собственными отличительными чертами.

Простой пример наследования - определение записи, отдельное поле которой является ранее определенной записью.

3. Полиморфизм – это свойство, которое позволяет одно и то же имя можно использовать для решения нескольких технически разных задач.

Назначение полиморфизма

  • Снижение сложности программ на основе разрешения использования одного метода для нескольких взаимосвязанных классов. При этом обращение к одному и тому же методу у объекта-предка и объекта-потомка может привести к разным результатам.



Описание класса и объекта:

Type <имя>=class(<Класс предок>)

<поле 1>;

<поле 2>;

. . .

<поле N>;

<метод 1>;

<метод 2>;

. . .

<метод M>;

end;

Var <имя>:<имя>;

Для каждого элемента класса можно установить разную видимость.

Видимость элемента определяет, где в программе и как будет виден данный элемент класса. Для этого в структуре class используются 4 ключевых слова private, protected, public, published.

  • Private (частные) определяет данные и методы, доступные только для самого класса.

  • Public (общедоступные) определяет элементы класса, которые видны в любом месте программы.

  • Protected (защищенные) определяет данные и методы, доступные из класса и любого его класса-потомка (по умолчанию).

  • Published (опубликованные) определяет элементы класса, имеющие ту же видимость, что и public-элементы. Единственное отличие заключается в том, опубликованные элементы порождают информацию о типе времени выполнения (RTTI). Благодаря данной информации, Delphi может осуществить проверку принадлежности элементов объекта тому или иному классу.

В Delphi имеется понятие абстрактного класса.

Абстрактный класс описывает несуществующий объект. Он нужен для того, чтобы описать некоторые фундаментальные свойства и методы объектов, которые создаются из абстрактного класса.

Все объекты в Delphi созданы из абстрактного класса TObject. Класс T – предок многих простых классов. Этот класс объединяет в себе основные методы, которые свойственны всем объектам Delphi.

Пример.

Type MyClass = class (TObject)

Label1: TLabel;

Button1: TButton;

Button2: TButton;

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

private

Procedure MyProc;

end;

Var MyObject: MyClass;

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










Библиотеки классов Delphi 7 Studio


Основные библиотеки компонентов Delphi 7 Studio

Для облегчения работы программиста и ускорения создания приложений в стандартную поставку Delphi 7 Studio входят некоторые готовые классы, которые называются компонентами. Эти компоненты объединены в библиотеки компонентов.

Библиотеки компонентов – это хранилища классов, которые обычно состоят из небольших модулей, разделенных по назначению.

Основные библиотеки Delphi 7 Studio:

  • VCL (Visual Component Library) – стандартная библиотека визуальных компонентов Delphi.

  • CLX (Component Library for Cross Platform) – библиотека компонентов для межплатформенной разработки приложений. Данная библиотека была создана для объединения средств разработки приложений Delphi и Kylix.


Компоненты

Библиотека визуальных компонентов, несмотря на свое название содержит в своем составе :

  • визуальные компоненты – видимые во время выполнения приложения (TButton, TEdit, TLabel и др);

  • невизуальные компоненты – видимые только на этапе проектирования (TTimer, TTable, TQuery и др.).

Типы компонентов

1. Стандартный

Стандартные компоненты включают в себя поведение элементов управления Windows. К таким компонентам относятся TListView, TRichEdit, TImageList и др. Все эти компоненты находятся на вкладке Win32 панели компонентов Delphi. Каждый из этих компонентов представляет собой так называемую оболочку стандартного элемента управления Windows. Эти компоненты позволяют легко использовать элементы управления Windows в ваших программах.

2. Пользовательский.

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

3. Графический.

Графические компоненты предназначены для создания визуальных элементов управления, которые не могут получать фокус ввода. Обычно такие компоненты применяются для отображения какой-либо информации (текстовой или графической). В качестве примера можно привести TShape, TLabel, TImage и др.

4. Невизуальный.

Невизуальные компоненты не видны пользователю во время выполнения приложения, хотя они обладают свойствами, событиями и методами. Примером такого компонента является TTimer.


Структура компонентов

Компоненты, как и всякий класс включают в себя поля, свойства, методы и события.

1. Поля

Поле компонента – это данные, хранящиеся в компоненте или классе. Поле представляется в виде переменной, которая описывается внутри компонента или класса.

2. Свойства компонентов

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

Типы свойств

Тип свойства

Отображение свойств в окне инспектора объектов

Простой (Simple)

Числовые, символьные и строковые свойства отображабтся соответственно как числа, символы и строки. Разработчик может редактировать значения данных свойств непосредственно в окне инспектора объектов.

Перечисляемый (Enumeraded)

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

Множество (Set)

Свойства типа множество отображаются в окне инспектора объектов как множества. При помощи двойного щелчка на значении свойства разработчик может расширить множество и установить каждому элементу множества логическое значение (True, если данный элемент входит в множество)

Объект (Object)

Свойства такого типа часто имеют свой собственный редактор свойств. Свойства типа объект должны быть потомками класса TPersistent

Массив (Array)

Свойства типа массив должны иметь свой собственный редактор свойств. Окно инспектора объектов Delphi не поддерживает редактирование свойств данного типа. Разработчик должен при регистрации компонента определить редактор свойств


3. Методы – это процедуры или функции, принадлежащие классу. Методы определяют поведение объекта.

4. Событие (Event) – это механизм, который связывает какое-либо системное изменение или действие пользователя с конкретным кодом, называемым кодом обработчика события (Event handler).

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

Все классы и компоненты являются прямыми или косвенными потомками класса TObject.

Класс TObject обеспечивает:

  • Возможность создания, уничтожения и управления экземплярами объектов, а также резервирование памяти и ее освобождение после уничтожения экземпляра;

  • Поддержку информации об объекте и типах;

  • Поддержку обработки сообщений.



Следующий базовый класс, являющийся прямым потомком TObject, - класс TPersistent. Данный клсаа является предком для всех классов, предназначенных для работы с потоками. Класс TPersistent наследует свойства и методы своего предка – класса TObject, и может, кроме того, считывать данные из потока и записывать данные в поток.

Класс TPersistent обеспечивает:

  • Определение процедур для загрузки и помещения данных в поток;

  • Назначение свойствам объекта конкретных значений;

  • Средства для назначения содержимого одного объекта другому.



Потомком класса TPersistent является класс TComponent, базовый класс всех компонентов библиотеки VCL. Наследники класса TComponent, как и сам данный класс, имеют следующие возможности:

  • Способность отражаться на палитре компонентов Delphi, а также способность размещения на форме;

  • Способность быть обладателем других компонентов и управлять ими;

  • Способность быть преобразованным в элемент управления ActiveX или объект Com с помощью мастера.

Следующий класс, потомок вышеописанного класса TComponent, - класс TControl. Этот класс является базовым классом для всех визуальных компонентов, т.е. потомки этого класса будут видны и доступны пользователю во время выполнения приложения. Все классы, являющиеся потомками класса TControl, имеют свойства, методы и события, которые определяют особенности отображения данного компонента, например, положение компонента на экране, размеры и т.д.

Потомком класса TControl является класс TGraphicControl. Данный класс предназначен для создания визуальных компонентов, которые не являются окнами, т.е. не могут содержать в себе других компонентов и могут получать фокус ввода. Главное предназначение данного класса – отображать графику или текст на форме. Примерами потомков класса TGraphicControl могут выступать такие компоненты, как TBevel (рамка), TImage (рисунок), TSpeedButton (кнопка быстрого вызова) и другие. Класс TGraphicControl передает своим потомкам свойство Canvas, позволяющее получать доступ к поверхности компонента, на которой можно рисовать или писать. Кроме того, класс TGraphicControl передает своим потомкам метод Paint.

Второй потомок класса TControl – класс TWinControl. Данный класс является базовым классом для всех оконных визуальных компонентов. Оконный визуальный компонент – это компонент, который:

  • может получать фокус ввода во время выполнения приложения;

  • может содержать в себе другие компоненты. Компонент, который содержит в себе другие компоненты называется родительским (parent). Компонент, содержащийся в другом компоненте, называется дочерним (child);

  • имеет идентификатор окна Windows (handle). Каждый оконный компонент обрабатывается непосредственно операционной системой, поэтому ему назначается свой уникальный идентификатор.

Примерами оконных компонентов является TEdit (поле редактирования) и другие.






















Среда реализации.

Главные составные части среды программирования Delphi 7 Studio

Ниже перечислены основные составные части Delphi:

1. Главное окно среды Delphi (Main Window) расположено в самом верхнем углу экрана (окно с заголовком Delphi 7 – Project1).

2. Конструктор Форм (Form Designer) – окно, по умолчанию имеющее заголовок Form1.

3. Редактор кода (Code Editor) – окно, по умолчанию имеющее заголовок Unit1.pas.

4. Инспектор Объектов (Object Inspector).

5. Окно представления объектов в виде дерева (Object TreeView).


Главное окно Delphi



Это меню содержит в себе:

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

1. Меню File предназначено для работы с файлами проекта. Данное меню содержит следующие пункты:

  • New отображает несколько подменю, при выборе любого из них будет создаваться соответствующий новый объект;

  • Open отображает диалоговое окно открытия существующего проекта или файла проекта;

  • Open Project отображает диалоговое окно открытия существующего проекта;

  • Reopen отображает подменю, которое содержит список последних открываемых вами в среде Delphi файлов и проектов, выбрав любой из них, вы откроете данный файл в среде Delphi;

  • Save служит для сохранения текущего файла проекта с возможностью задания нового имени данному файлу;

  • Save Project As открывает диалоговое окно сохранения файлов проекта с возможностью назначения нового имени файлу проекта;

  • Save All сохраняет все файлы текущего проекта;

  • Close закрывает открытый в данный момент в редакторе кода файл проекта;

  • Close All закрывает все открытые в среде Delphi файлы и проекты;

  • Use Unit открывает диалоговое окно использования модулей. Если ваш проект содержит несколько модулей, то можно указать используемые в данном модуле другие модули проекта;

  • Print распечатывает текущий файл на принтере;

  • Exit закрывает все открытый файлы и завершает работу c Delphi 7.













Основные задачи при работе с базами данных


Модификация набора данных.

Процессы редактирования, добавления и удаления данных можно объединить в едином понятии модификации набора данных

Модифицируемость, т.е. возможность изменения набора данных, зависит от различных условий. Примером наложения ограничений на модифицируемость таблицы является переключение ее в режим «только для чтения». Если мы хотим, чтобы возможности пользователя ограничивались только просмотром записей из набора данных без возможности их редактирования или добавления новых записей, можно использовать свойство ReadOnly. Данное свойство имеет по умолчанию значение False. Приведенная ниже строка кода позволяет перевести таблицу данных Table1 в режим «только для чтения»:

Table1.ReadOnly:=True;

Примечание. Значение свойства ReadOnly можно изменять только в том случае, когда набор данных закрыт, т.е. свойство Active набора данных установлено в False.

Чтобы проверить, можно ли модифицировать набор данных, предусмотрено свойство CanModify. Это свойство имеет значение True, если набор данных можно модифицировать, и False, если нельзя.

I. Редактирование набора данных

Для редактирования текущей записи набора данных необходимо сначала перевести его в режим редактирования. Перевод набора данных в состояние редактирования можно осуществить двумя способами:

  • программно с помощью метода Edit

  • визуально посредством компонентов, отображающих данные, например, DBGrid, DBEdit, DBMemo и др.


Методы, используемые для редактирования набора данных:

1. Метод Edit переводит набор данных в режим редактирования. При этом блокируется доступ к текущей записи других пользователей (временно устанавливается доступ «только для чтения»). Если запись уже редактируется другим пользователем, то генерируется исключительная ситуация и выполнение метода Edit прекращается.

2. Метод Post сохраняет сделанные изменения в наборе данных. Выполняет следующие действия:

  1. Записывает новые данные в физическую таблицу.

  2. Снимает блокировку записи.

  3. Переводит набор данных в режим просмотра.

3. Метод Cancel предназначен для отмены изменений, сделанных в текущей записи.

4. Метод Refresh заново считывает информацию из набора данных и обновляет содержимое компонентов. После модификации набора данных может возникнуть ситуация, когда изменения не отображаются в визуальных компонентах. В этих случаях необходимо вызвать метод Refresh.

Пример. Изменение данных в поле FIO.

If Table1.CanModify=True then //если модификация возможна, то

begin

Table1.Edit;

Table1.FieldByName(‘Fio’).AsString:=Edit1.Text;

Table1.Post;

Table1.Refresh;

end

else // если редактирование невозможно

ShowMessage(‘Редактирование невозможно’);



Для редактирования текущей записи можно заменить последовательность присваивания значений и вызов метода Post методом SetFields.

5. Метод SetFields(<массив значений>) содержит массив значений, которые присваиваются полям набора данных. При этом порядок перечисления значений должен соответствовать порядку следования полей в наборе данных. Если значение какого-либо поля нужно оставить без изменений, то в качестве значения указывается nil. После выполнения метода SetFields метод Post выполнять не нужно. Набор данных будет автоматически обновлен и переведен в режим просмотра.

Например,

Table1.Edit;

Table1.SetFields([‘Сидоров’,nil, 3400, nil]);

Второе и четвертое поля таблицы Table1 останутся без изменений, а первое и третье заменятся на значения «Сидоров» и 3400 соответственно.


II. Добавление записей

Добавлять новые записи можно только к модифицируемому набору данных.

Для добавления записи следует:

  1. Перевести набор данных в режим вставки.

  2. Задать значение для полей новой записи.

  3. Подтвердить добавление новой записи или отказаться от нее.


Методы, используемее для добавления записей:

1. Метод Insert выполняет следующие действия:

  • Переводит набор данных в режим вставки записи.

  • Сдвигает записи на одну вперед, начиная от текущей.

  • Вставляет на место текущей записи новую пустую запись.

Таким образом, новая запись вставляется перед текущей.

Например,

Table1.Insert;

Table1.FieldByName(‘Fio’).AsString:=Edit1.Text;

Table1.Post;

2. Метод InsertRecord(<массив значений>) Вставляет в текущую позицию курсора новую запись, задавая значения ее полей, как в методе SetFields

Table1.InsertRecord([‘Сидоров’,nil, 3400, nil]);

3. Метод Append аналогичен методу Insert за тем исключением, что вставляет новую запись в конец набора данных, т.е. новая запись будет последней.

4. Метод AppendRecord(<массив значений>) аналогичен методу InsertRecord, но добавляет новую запись в конец набора данных, так же как и метод Append.


III. Удаление записей

Удалить запись можно только из модифицируемого набора данных.

1. Метод Delete удаляет текущую запись. Если удаление произведено успешно, то текущей становится следующая запись. Если удалена последняя запись, курсор переместится на предыдущую запись.

2. Метод EmptyTable удаляет все записи из таблицы. Этот метод разрешен только в режиме исключительного доступа к таблице (свойство Exclusive=True)














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

Тема: Разработка базы данных «Трудоустройство и публикация резюме»

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

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

Описание базы данных.

База данных состоит из двух таблиц со следующей структурой:

I. Резюме

  1. Дата приема заявки (системное время)

  2. Предполагаемая должность (берется из второй таблицы)

  3. Предыдущие должности:

1 раздел:

• Должность (выбирается из того же списка, что и предполагаемая должность)
. Стаж работы в этой должности (1 год, 2 года, 3 года, 4 лет, 5 и более лет)

2 раздел:

  • Должность (выбирается из того же списка, что и предполагаемая должность)

  • Стаж работы в этой должности (1 год, 2 года, 3 года, 4 лет, 5 и более лет)

3 раздел:

  • Должность (выбирается из того же списка, что и предполагаемая должность)

  • Стаж работы в этой должности (1 год, 2 года, 3 года, 4 лет, 5 и более лет)


  1. Опыт руководящей работы (варианты: нет, руководство группой, руководство отделом,
    руководство подразделением, предприятием)

  2. возраст

  3. пол

  4. минимальная зарплата

  5. Тип работы (варианты: постоянная временная)

  6. Информация о себе (поле Memo)

10. Контактная информация:

  • Фамилия

  • Имя

. Отчество

  • Телефон

  • E-mail

11. Должности

1. Наименование должности

Определение задач:

Создать в среде Delphi 7 Studio приложение для работы с этой базой данных.

  1. Регистрация заявок

  2. Внесение изменений в таблицу «Должности»

  3. Поиск кандидатов на должность по предполагаемой должности

  4. Отчет о резюме принятых за текущий день (Фамилия, Имя, Отчество, предполагаемая
    должность, минимальная зарплата).

















Ход работы.

  1. Запускаем программу Delphi 7.

  2. Переходим в окно Конструктор форм. Используя свойство Caption, изменяем слово Form 1 на текст: «Трудоустройство и публикация резюме».

  3. Помещаем на форму компонент MainMenu1 вкладки Standard, создаем пункты меню: Регистрация, Должности, Поиск, Отчет.

  4. Далее нужно вставить на форму компонент Table1, для того что бы можно было связаться с таблицами базы данных.

  5. Так же на форму нужно поместить компоненты: RvProject1 и RvDataSetConnection1, для того что было можно было создавать отчеты по принятым за день Заявлениям.

  6. Теперь нужно создать новую форму: Регистрация заявок, здесь можно будет заполнять данные о себе при регистрации на работу.

  7. Помещаем на форму компоненты: 22 Label (текст), 9 ComboBox1, здесь можно будет выбирать должности на которых вы хотите работать и на которых уже работали), 3 Bevel ( рамки), Создаем 2 кнопки: принять и отказаться, с помощью них можно будет либо зарегистрировать свою заявку либо отказаться от нее.

  8. Также на форму помещаем компонент DataSource1, для того что бы была связь с таблицей. Еще нужно поместить сюда два компонента Table. Это таблицы на которые будет опираться программа.

  9. Теперь создаем еще одну форму Должности, здесь можно будет добавить любые должности било удалить ненужные. Помещаем на форму компонент DataSource1, для связи с таблицей и саму таблицу Table1 где находятся сами должности. Ставим компонент DBNavigator1, для добавления ,удаления и других операций с должностями.

  10. Теперь нужно создать еще одну форму Поиск, здесь можно будет найти нужного кандидата на должность. Помещаем на эту форму 24 компонента Label, 3 компонента Bevel, 15 компонентов DBEdit, здесь будет находится найденная информация о кандидате ,3 кнопки: Поиск, и две для просмотра: Далее и назад. Компонент ComboBox, по которому можно будет искать кандидатов на нужную должность, компонент DataSource, для связи с таблицей ,и два компонента Table, сами таблицы.

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





















Текст программы.

(База данных)

unit Unit1;

interface

uses

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

Dialogs, StdCtrls, Buttons, DB, DBTables;

type

TForm1 = class(TForm)

Table1: TTable;

Table2: TTable;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

Table1.CreateTable;

ShowMessage('таблица Резюме создана')

end;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

Table2.CreateTable;

ShowMessage('таблица Должности создана')

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

end.




(Главная страница)

unit Unit1;

interface

uses

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

Dialogs, Menus, DB, DBTables, RpCon, RpConDS, RpDefine, RpRave;

type

TForm1 = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

Table1: TTable;

RvDataSetConnection1: TRvDataSetConnection;

RvProject1: TRvProject;

procedure N1Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N4Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

Uses Unit2, Unit3, Unit4;

{$R *.dfm}

procedure TForm1.N1Click(Sender: TObject);

begin

Form2.ShowModal;

end;

procedure TForm1.N2Click(Sender: TObject);

begin

Form3.ShowModal;

end;

procedure TForm1.N3Click(Sender: TObject);

Begin

Form4.Showmodal;



end;

procedure TForm1.N4Click(Sender: TObject);

Var s, s1: String;

Systime:TSystemTime;

i: integer;

begin

GetLocalTime (Systime);

s1:=DateTimeToStr(SystemTimeToDateTime(Systime));

For i:=1 to 10 do

s:=s+s1[i];

ShowMessage('Фомирование отчета по принятым за день объявлениям за '+s);

Table1.Filter:='Data='+''''+s+'''';

Table1.Filtered:=true;

RvProject1.Execute;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

end;

end.




(Регистрация)

object Form1: TForm1

Left = 222

Top = 118

Width = 658

Height = 512

Caption = #1058#1088#1091#1076#1086#1081#1089#1090#1088#1086#1081#1089#1090#1074#1086' '#1080' '#1087#1091#1073#1083#1080#1082#1072#1094#1080#1103' '#1088#1077#1079#1102#1084#1077

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'MS Sans Serif'

Font.Style = []

Menu = MainMenu1

OldCreateOrder = False

PixelsPerInch = 96

TextHeight = 13

object MainMenu1: TMainMenu

Left = 600

object N1: TMenuItem

Caption = #1056#1077#1075#1080#1089#1090#1088#1072#1094#1080#1103

OnClick = N1Click

end

object N2: TMenuItem

Caption = #1044#1086#1083#1078#1085#1086#1089#1090#1080

OnClick = N2Click

end

object N3: TMenuItem

Caption = #1055#1086#1080#1089#1082

OnClick = N3Click

end

object N4: TMenuItem

Caption = #1054#1090#1095#1077#1090

OnClick = N4Click

end

end

object Table1: TTable

Active = True

TableName = #1041#1072#1079#1072' '#1076#1072#1085#1085#1099#1093'\'#1056#1077#1079#1102#1084#1077

TableType = ttFoxPro

Left = 560

end

object RvDataSetConnection1: TRvDataSetConnection

RuntimeVisibility = rtDeveloper

DataSet = Table1

Left = 520

end

object RvProject1: TRvProject

ProjectFile =

'D:\Documents and Settings\'#1090#1077#1093#1085'2\'#1052#1086#1080' '#1076#1086#1082#1091#1084#1077#1085#1090#1099'\'#1050#1091#1080#1084#1086#1074' '#1070#1088#1072'\'#1050#1091#1088#1089#1086#1074#1072 +

#1103' '#1054#1054#1055'\Project1.rav'

Left = 480

end

end



(Должности)

object Form2: TForm2

Left = 394

Top = 79

Width = 696

Height = 480

Caption = #1056#1077#1075#1080#1089#1090#1088#1072#1094#1080#1103' '#1079#1072#1103#1074#1086#1082

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'MS Sans Serif'

Font.Style = []

OldCreateOrder = False

OnCreate = FormCreate

PixelsPerInch = 96

TextHeight = 13

object Label2: TLabel

Left = 48

Top = 136

Width = 42

Height = 13

Caption = #1042#1086#1079#1088#1072#1089#1090

end

object Label3: TLabel

Left = 72

Top = 160

Width = 20

Height = 13

Caption = #1055#1086#1083

end

object Label4: TLabel

Left = 24

Top = 184

Width = 71

Height = 13

Caption = #1052#1080#1085' '#1079#1072#1088#1087#1083#1072#1090#1072

end

object Label5: TLabel

Left = 32

Top = 208

Width = 59

Height = 13

Caption = #1058#1080#1087' '#1088#1072#1073#1086#1090#1099

end

object Label6: TLabel

Left = 104

Top = 112

Width = 102

Height = 13

Caption = #1048#1085#1092#1086#1088#1084#1072#1094#1080#1103' '#1086' '#1089#1077#1073#1077

end

object Label7: TLabel

Left = 224

Top = 344

Width = 129

Height = 13

Caption = #1050#1086#1085#1090#1072#1082#1090#1085#1072#1103' '#1080#1085#1092#1086#1088#1084#1072#1094#1080#1103':'

Color = clMenuBar

ParentColor = False

end

object Label8: TLabel

Left = 40

Top = 232

Width = 49

Height = 13

Caption = #1060#1072#1084#1080#1083#1080#1103

end

object Label9: TLabel

Left = 64

Top = 256

Width = 22

Height = 13

Caption = #1048#1084#1103

end

object Label10: TLabel

Left = 40

Top = 280

Width = 47

Height = 13

Caption = #1054#1090#1095#1077#1089#1090#1074#1086

end

object Label11: TLabel

Left = 200

Top = 368

Width = 45

Height = 13

Caption = #1058#1077#1083#1077#1092#1086#1085

end

object Label12: TLabel

Left = 216

Top = 392

Width = 28

Height = 13

Caption = 'E-mail'

end

object Bevel1: TBevel

Left = 304

Top = 32

Width = 305

Height = 73

end

object Label1: TLabel

Left = 16

Top = 8

Width = 145

Height = 13

Caption = #1055#1088#1077#1076#1087#1086#1083#1086#1075#1072#1077#1084#1072#1103' '#1076#1086#1083#1078#1085#1086#1089#1090#1100

end

object Label13: TLabel

Left = 376

Top = 16

Width = 124

Height = 13

Caption = #1055#1088#1077#1076#1099#1076#1091#1097#1080#1077' '#1076#1086#1083#1078#1085#1086#1089#1090#1080

end

object Label14: TLabel

Left = 312

Top = 40

Width = 48

Height = 13

Caption = '1 '#1088#1072#1079#1076#1077#1083':'

end

object Label15: TLabel

Left = 384

Top = 48

Width = 58

Height = 13

Caption = #1044#1086#1083#1078#1085#1086#1089#1090#1100

end

object Label16: TLabel

Left = 384

Top = 72

Width = 66

Height = 13

Caption = #1057#1090#1072#1078' '#1088#1072#1073#1086#1090#1099

end

object Bevel2: TBevel

Left = 304

Top = 112

Width = 305

Height = 73

end

object Label17: TLabel

Left = 312

Top = 120

Width = 45

Height = 13

Caption = '2 '#1088#1072#1079#1076#1077#1083

end

object Label18: TLabel

Left = 384

Top = 128

Width = 58

Height = 13

Caption = #1044#1086#1083#1078#1085#1086#1089#1090#1100

end

object Label19: TLabel

Left = 384

Top = 152

Width = 66

Height = 13

Caption = #1057#1090#1072#1078' '#1088#1072#1073#1086#1090#1099

end

object Bevel3: TBevel

Left = 304

Top = 192

Width = 305

Height = 73

end

object Label20: TLabel

Left = 312

Top = 200

Width = 45

Height = 13

Caption = '3 '#1088#1072#1079#1076#1077#1083

end

object Label21: TLabel

Left = 384

Top = 208

Width = 58

Height = 13

Caption = #1044#1086#1083#1078#1085#1086#1089#1090#1100

end

object Label22: TLabel

Left = 384

Top = 232

Width = 66

Height = 13

Caption = #1057#1090#1072#1078' '#1088#1072#1073#1086#1090#1099

end

object DBEdit1: TDBEdit

Left = 96

Top = 136

Width = 121

Height = 21

DataField = 'VOZR'

DataSource = DataSource1

TabOrder = 0

end

object DBEdit3: TDBEdit

Left = 96

Top = 184

Width = 121

Height = 21

DataField = 'MIN_Z_P'

DataSource = DataSource1

TabOrder = 1

end

object DBEdit6: TDBEdit

Left = 96

Top = 232

Width = 121

Height = 21

DataField = 'FAM'

DataSource = DataSource1

TabOrder = 2

end

object DBEdit7: TDBEdit

Left = 96

Top = 256

Width = 121

Height = 21

DataField = 'IMIA'

DataSource = DataSource1

TabOrder = 3

end

object DBEdit8: TDBEdit

Left = 96

Top = 280

Width = 121

Height = 21

DataField = 'OTCH'

DataSource = DataSource1

TabOrder = 4

end

object DBEdit9: TDBEdit

Left = 248

Top = 360

Width = 113

Height = 21

DataField = 'TEL'

DataSource = DataSource1

TabOrder = 5

end

object DBEdit10: TDBEdit

Left = 248

Top = 384

Width = 113

Height = 21

DataField = 'E_MAIL'

DataSource = DataSource1

TabOrder = 6

end

object ComboBox1: TComboBox

Left =

object Label2: TLabel

Left = 48

Top = 136

Width = 42

Height = 13

Top = 128

Width = 58

Height = 13

Caption = #1044#1086#1083#1078#1085#1086#1089#1090#1100

end

object Label19: TLabel

Left = 384

Top = 152

Width = 66

Height = 13

Caption = #1057#1090#1072#1078' '#1088#1072#1073#1086#1090#1099

end

object Bevel3: TBevel

Left = 304

Top = 192

Width = 305

Height = 73

end

object Label20: TLabel

Top = 24

Width = 145

Height = 21

ItemHeight = 13

TabOrder = 7

end

object DBEdit2: TDBEdit

Left = 96

Top = 160

Width = 121

Height = 21

DataField = 'POL'

DataSource = DataSource1

TabOrder = 8

end

object DBEdit4: TDBEdit

Left = 96

Top = 208

Width = 121

Height = 21

DataField = 'TIP_RABOTI'

DataSource = DataSource1

TabOrder = 9

end

object DBEdit5: TDBEdit

Left = 456

Top = 48

Width = 121

Height = 21

DataField = 'DOLJ_1'

DataSource = DataSource1

TabOrder = 10

end

object DBEdit11: TDBEdit

Left = 456

Top = 72

Width = 121

Height = 21

DataField = 'STAJ_1'

DataSource = DataSource1

TabOrder = 11

end

object DBEdit12: TDBEdit

Left = 456

Top = 128

Width = 121

Height = 21

DataField = 'DOLJ_2'

DataSource = DataSource1

TabOrder = 12

end

object DBEdit13: TDBEdit

Left = 456

Top = 152

Width = 121

Height = 21

DataField = 'STAJ_2'

DataSource = DataSource1

TabOrder = 13

end

object DBEdit14: TDBEdit

Left = 456

Top = 200

Width = 121

Height = 21

DataField = 'DOLJ_3'

DataSource = DataSource1

TabOrder = 14

end

object DBEdit15: TDBEdit

Left = 456

Top = 224

Width = 121

Height = 21

DataField = 'STAJ_3'

DataSource = DataSource1

TabOrder = 15

end

object BitBtn1: TBitBtn

Left = 32

Top = 64

Width = 121

Height = 25

Caption = #1055#1086#1080#1089#1082

TabOrder = 16

OnClick = BitBtn1Click

end

object Edit1: TEdit

Left = 456

Top = 400

Width = 137

Height = 21

TabOrder = 17

end

object Edit2: TEdit

Left = 200

Top = 400

Width = 121

Height = 21

TabOrder = 18

end

object BitBtn2: TBitBtn

Left = 248

Top = 352

Width = 75

Height = 25

Caption = #1044#1072#1083#1077#1077

TabOrder = 19

OnClick = BitBtn2Click

end

object BitBtn3: TBitBtn

Left = 400

Top = 352

Width = 75

Height = 25

Caption = #1053#1072#1079#1072#1076

TabOrder = 20

OnClick = BitBtn3Click

end

object DataSource1: TDataSource

DataSet = Table1

Left = 656

Top = 8

end

object Table1: TTable

Active = True

TableName = #1041#1072#1079#1072' '#1076#1072#1085#1085#1099#1093'\'#1056#1077#1079#1102#1084#1077

TableType = ttFoxPro

Left = 624

Top = 8

end

object Table2: TTable

Active = True

TableName = #1041#1072#1079#1072' '#1076#1072#1085#1085#1099#1093'\'#1044#1086#1083#1078#1085#1086#1089#1090#1080

TableType = ttFoxPro

Left = 624

Top = 40

end

end

(Отчет)

object Form5: TForm5

Left = 182

Top = 182

Width = 696

Height = 480

Caption = 'Form5'

Color = clBtnFace

Font.Charset = DEFAULT_CHARSET

Font.Color = clWindowText

Font.Height = -11

Font.Name = 'MS Sans Serif'

Font.Style = []

OldCreateOrder = False

PixelsPerInch = 96

TextHeight = 13

End
























Инструкция для пользователя.

  • Открыть папку с программой.

  • Найти файл Project1.exe и запустить его.

  • В открывшемся окне для регистрации перейти на вкладку Регистрация.

  • На этой вкладке нужно ввести данные о себе, стаж работы и свою предполагаемую должность. Потом нужно нажать кнопку Принять и закрыть окно.

  • На вкладке должности можно добавлять и удалять должности, для добавления должности нужно внизу страницы нажать на + и написать желаемую должность затем нажать принять, для удаления следует нажать -.

  • На вкладке поиск можно найти различных кандидатов на работу по Должности, для этого нужно в списке выбрать соответствующую должность и нажать на кнопку поиск, появится список кандидатов, их можно просматривать кнопками Далее и Назад.

  • На вкладке Отчет можно просматривать принятые за день Заявления о регистрации. Для этого нужно перейти на вкладку Отчет в открывшемся окне появится список принятых за день заявлений о регистрации.














Заключение.

Эта программа может использоваться при подборе кадров в службе трудоустройства и отделах кадров предприятий.

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





















Литература.

1. Понамарёв В. Delphi Studio 7- Самоучитель; БХВ- Петербург, 2003

2. Гофман В., Хомоненко А. Delphi 6. – СПБ.: БХВ- Петербург, 2001

3. Гофман В., Хомоненко А. Работа с базами данных в Delphi. – СПБ., БХВ- Петербург, 2000.

4. Карпов Б. Delphi 5: учебный курс. – СПБ.: Питер, 2001.







© Рефератбанк, 2002 - 2017