Вход

Автоматизация рабочего места секретаря

Курсовая работа* по информатике и информационным технологиям
Дата добавления: 13 октября 2009
Язык курсовой: Русский
Word, rtf, 7 Мб (архив zip, 233 кб)
Курсовую можно скачать бесплатно
Скачать
Данная работа не подходит - план Б:
Создаете заказ
Выбираете исполнителя
Готовый результат
Исполнители предлагают свои условия
Автор работает
Заказать
Не подходит данная работа?
Вы можете заказать написание любой учебной работы на любую тему.
Заказать новую работу
* Данная работа не является научным трудом, не является выпускной квалификационной работой и представляет собой результат обработки, структурирования и форматирования собранной информации, предназначенной для использования в качестве источника материала при самостоятельной подготовки учебных работ.
Очень похожие работы
Найти ещё больше

Введение



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

Электронно-вычислительная техника все шире входит во все сферы нашей жизни. Компьютер стал привычным не только в производственных цехах, научных лабораториях и в ВУЗовских аудиториях, но и в сфере обслуживания, офисах и дома. В настоящее время индустрия производства компьютеров и программного обеспечения для них является одной из наиболее быстро развивающихся и прибыльных сфер экономики развитых стран. И все же, несмотря на богатые возможности современных ПЭВМ, зачастую персональный компьютер используют всего лишь как удобную электронную пишущую машинку. Это связано с дефицитом программных продуктов для узкоспециального использования. Например, в сфере банковского обслуживания для оперативной обработки счетов по различным видам вкладов.

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

Автором курсового проекта «Автоматизация рабочего места секретаря» была предпринята попытка реализовать программу узкой специализации, с простым нужным интерфейсом, нужным для обеспечения удобной работы с программным обеспечением количеством функций, используя объектно-ориентированный подход программирования в среде Borland Delphi 7.

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

В главе “Вычислительная система” приводится описание основных характеристик ПК и его внешних устройств. Дается обоснование выбора программного средства и системы программирования.

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

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

В главе “Программа и методика испытаний” приводится перечень примеров, которые можно использовать для контроля правильности работы программы.

В главе “Описание применения программы” даются рекомендации по использованию программного средства, дается краткая эксплуатационная характеристика.

В главе "Заключение" резюмируется цель разработки задачи и написания программы. Указывается объём выполнения задачи и оценивается степень соответствия проекта к его реализации.

В главе “Литература” приводится список использованной литературы.

В "Приложении" приводится листинг программы, экранные формы, результаты работы программы.


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


1.1 Организационно-экономическая сущность задачи


Целью данного курсового проекта является разработка удобного и простого в использовании программного средства «Автоматизация рабочего места секретаря», функционирующего в среде WINDOWS и предназначенного для автоматизации и ведения учета за рабочими предприятия по фамилии, зарплате, образованию, должности, стажу работы, времени работы, возрасту и личным данным.Программный продукт рассчитан на широкий круг пользователей.

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

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

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


    1. Входная оперативная информация

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

  • ФИО;

  • Зарплата;

  • Образование;

  • Должность;

  • Стаж работы;

  • Время работы;

  • Возраст;

  • Личные данные.




    1. Выходная информация

Выходной информацией является формы, в которых выводятся личные данные рабочего. Это Фомы поиска, сортировки, фильтра, добавления новой записи. Выходные данные группируются программой в зависимости от запросов пользователя.
















2 Вычислительная система


2.1 Основные характеристики ПК и внешних устройств


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

системный блок; клавиатура; дисплей.

Системный блок представляет собой основную часть вычислительной системы, в которой находятся всевозможные комплектующие: материнская плата, процессор, винчестер, оперативная память, дисковод, CD-ROM и другие. К портам и выходам системного блока подключаются монитор, клавиатура, мышка, принтер, устройства мультимедиа .

Важнейшим параметром компьютера является тип и тактовая частота микропроцессора, которая указывается в мегагерцах. Этот параметр показывает, как быстро работает процессор компьютера, что не позволяет судить о производительности всей системы в целом. Ещё одним важнейшим параметром любого компьютера является размер оперативной памяти и параметры видеосистемы. В настоящее время компьютерный рынок захватили процессоры семейства Pentium фирмы Intel, а также их конкуренты : AMD, Cyrix, IBM.

Объединяя более ,чем 3.1 миллион транзисторов на одной кремниевой подложке , 32-разрядный Pentium характеризуется высокой производительностью с достаточно высокой тактовой частотой. Его суперскалярная архитектура использует усовершенствованные способы проектирования, которые позволяют выполнить более чем одну команду за один период тактовой частоты, в результате чего, Pentium в состоянии выполнять огромное количество РС-совместимого программного обеспечения быстрее, чем любой другой микропроцессор. Кроме существующих наработок программного обеспечения, высокопроизводительный арифметический блок с плавающей запятой Pentium процессора обеспечивает увеличение вычислительной мощности до необходимой для использования недоступных ранее технических и научных приложений, первоначально предназначенных для платформ рабочих станций. В дополнение, Pentium процессор позволяет использовать все основные операционные системы, которые доступны современным настольным персональным компьютерам, рабочим станциям и серверам, включая UNIX , Windows NT, OS/2,Windows 95,Windows 98.

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

Периферийные устройства персонального компьютера – это дисплей, принтер, накопители на гибких магнитных дисках.

К внешним устройствам относятся и устройства связи с другими объектами, последние используются в том случае, когда ЭВМ является управляющей системой, каким-либо процессом или экспериментом.

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

  • IBM PC компьютер с процессором 80486;

  • 640 Кбт. оперативной памяти;

  • монитор типа SVGA и выше;

  • жесткий диск;

  • дисковод для инсталляции.





2.2 Выбор программных средств и обоснование


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

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

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

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


2.2.1 Операционная система


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


2.2.2 Система программирования

Программное обеспечение разработанное автором курсового проекта было написано в визуальной среде программирования Borland Delphi 7.0.

Delphi- это объектно-ориентированная среда программирования, которая

Создает приложения Windows предоставляет пользователям оболочку графического интерфейса (GUI), которая обеспечивает стандартную среду пользователя и программиста.(GUI) предлагает более сложное и дружелюбное окружение пользователя, чем командно- управляемый интерфейс DOS.Работа в Windows основана на интуитивно понятных принципах. Вам легко переключаться с задачи на задачу и осуществлять обмен информацией между ними. Однако разработчики приложений традиционно сталкиваются с трудностями программирования, поскольку организация среды Windows является чрезвычайно сложной.

Delphi- язык и среда программирования, относящаяся к классу RAd-(Rapid Aplication Development-Средство быстрой разработки приложений) средств Case- технологии.Delphi сделала разработку мощных приложений Windows быстрым процессом, доставляющим вам удовольствие. Приложения Windows, для создания которых требовалось большое количество человеческих усилий например в C++ , теперь могут быть написаны одним человеком на Delphi.

Интерфейс Windows обеспечивает полное перенесение Case-технологий в интегрированную систему поддержки работ по созданию прикладной системы на всех базах жизненного цикла работы и проектирования системы.

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

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

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

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


3Объектно-ориентированный анализ задачи


3.1 Описание задачи в ключевых абстракциях предметной области


Программа «Автоматизация рабочего места секретаря» должна быть построена в соответствии с принципами объектно-ориентированного подхода в программировании. Использование этого подхода и визуальной среды разработки позволяет получить эффективный код программы.

Все языки основаны на трёх основополагающих концепциях, называемых инкапсуляцией, полиморфизмом и наследованием. Рассмотрим эти концепции:

Инкапсуляция – это механизм, который объединяет данные и код, манипулирующий этими данными, а также защищает и то, и другое от внешнего вмешательства или неправильного использования. В объектно-ориентированном программировании код и данные могут быть объединены вместе. Когда коды и данные объединяются таким способом, создаётся объект (object). Другими словами, объект – это то, что поддерживает инкапсуляцию.

Внутри объекта коды и данные могут быть закрытыми (private). Закрытые коды или данные доступны только для других частей этого объекта. Таким образом, закрытые коды и данные недоступны для тех частей программы, которые существуют вне объекта. Если коды и данные являются открытыми, то, несмотря на то, что они заданы внутри объекта, они доступны и для других частей программы. Характерной является ситуация, когда открытая часть объекта используется для того, чтобы обеспечить контролируемый интерфейс закрытых элементов объекта.

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

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

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

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

Проектирование курсового проекта основано на базовых принципах объектно-ориентированного проектирования описанных выше.

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

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


3.2 Иерархия классов


Многоуровневое иерархическое построение сложных программ позволяет ограничить и локализовать на каждом из уровней соответствующие ему компоненты. Данный подход хорошо согласовывается с концепцией объектно-ориентированного программирования и концепцией построения программы с использованием библиотеки классов Microsoft Foundation Classes. Нижнему иерархическому уровню представления программ соответствуют программные и информационные модули. Эти компоненты объединяются в группы программ определенного функционального назначения с автономной целевой задачей.

Всем иерархическим системам присущ ряд важнейших свойств, таких как:

  • вертикальная соподчиненность заключается в последовательном упорядоченном расположении взаимодействующих компонент, составляющих данное КП;

  • право вмешательства и приоритетного воздействия на компоненты любых уровней со стороны компонент более высоких иерархических уровней;

  • взаимозависимость действий компонент верхних уровней от реакции на воздействие и от функционирования компонент нижних уровней, информация о которой передается верхним уровнем.

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












4 Описание программы


Программа «Автоматизация рабочего места секретаря» написана по всем правилам объектно-ориентированного программирования.

Задача представляет собой один исполняемый файл с именем PROJECT1.EXE.

Программа функционирует в системе WINDOWS. Размер исполняемого модуля приблизительно равен 300 Кбт. Размер вспомогательных файлов – около 50 Кбт.

Программа, написанная на языке программирования Object Pascal в визуальной среде разработки Borland Delphi 7.0 и предназначена для таких операционных систем как Windows98,.WindowsXP. Программный продукт не предъявляет особых требований ни к ПК, ни к аппаратным его частям. Программа не требовательна к системным ресурсам, также проста в использовании и не требует специальных навыков при работе.

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

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

Для запуска программы «Автоматизация рабочего места секретаря» нужно выбрать PROJECT1.EXE .

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

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


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


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

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

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

Основная цель тестирования – обнаружение ошибок, выявление всех отклонений результатов функционирования реальной программы от заданных эталонных значений. Задача состоит в обнаружении максимального числа ошибок, в качестве которых принимается любое отклонение от эталонов. Чем больше ошибок выявляется на этой стадии при каждой операции тестирования, тем выше эффективность тестов и обоснованность затрат на их выполнение. Для отладки применяются методы, предусматривающие упорядочивание и систематизацию тестов по различным стратегиям и параметрам, и методы неупорядоченного тестирования. При неупорядоченном тестировании исходные данные имитирующие внешнюю среду случайным образом, генерируются во всем диапазоне возможного изменения параметров. Производится случайный перебор в произвольных сочетаниях различных величин. Многие значения исходных данных характеризуются малой вероятностью обнаружения ошибок и не оправдывают затраты на выполнение тестирования. Кроме того, возможна генерация логически противоречивых данных. В то же время данные, наиболее важные с позиции реального использования программ и возможности обнаружения ошибок, могут оказаться пропущенными в процессе тестирования.

При реально существующих ограничениях на объем тестирования его неупорядоченное применение оказывается малоэффективным и почти не находит применения.

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








6 Описание применения программы


Программа «Автоматизация рабочего места секретаря» может нормально функционировать на любых IBM-совместимых компьютерах. В этой программе может разобраться даже любой новичок. Данная программа представляет собой набор окон, в которых выводится информация в соответствии определенным запросом.

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

Для запуска программы необходим файл Project1.exe. При запуске проекта на экране появиться основная форма «Автоматизация рабочего места секретаря» в которой будут отображаться меню, панель инструментов, строка состояния, набор страниц-вкладок, и таблица. (смотри рисунок 1)



На форме отображены 4 вкладки : фаил, поиск, сортировка, фильтр, вызывающие соответствующие формы:. Кроме того компонент TPoputMenu, с помощью которого создается контекстное меню . А также компаненты TMainMenu, TDataBase, TQery, TDataSource, TButton, TDBGrid.

При запуске программы появляется окно заставка . Данная форма отображает данные о рабочих. Содержит следующие вкладки, «Фаил» где можно добавить новую запись, удалить текущую запись, редактировать запись, «Поиск» по фамилии, зарплате, образованию, должности, стажу работы, времени работы, возрасту и по личным данным, «Сортировка» по возрастанию, убыванию, без сортировки, «Фильтр» где можно создать фильтр или отменить фильтрацию. Форма содержит панель инструментов, контекстное меню и главное меню. (смотри рисунок 2)




Контекстное меню . Оно вызывается при нажатии правой кнопки мыши непосредственно на форме. Оно содержит такие действия, как добавить запись, удалить запись, поиск по фамилии, зарплате, образованию, должности, стажу работы, времени работы, возрасту и по личным данным, сортировку по возрастанию, убыванию, без сортировки, фильтр где можно создать фильтр или отменить фильтрацию. (смотри рисунок 3)



При нажатии на «Добавить», «Редактировать» находящиеся на вкладке «Фаил» открывается форма FEdit, где можно выполнить соответствующие действия. На ней расположены компоненты: TLabel, TButton, TEdit. (смотри рисунок 4)



При нажатии на «Удалить», находящиеся на вкладке «Фаил» мы можем выполнить два действия которые показаны ниже. (смотри рисунок 5)



При нажатии вкладки «Поиск» появляются критерии по которым мы можем найти информацию которую ищем. (смотри рисунок 6)



Если нам нужно отфильтровать данные которые ищем, то нажимаем на вкладку «Фильтр», там можно создать фильтр или отменить фильтрацию после этого появляется форма FParams. (смотри рисунок 7)



Что бы выйти из программы мы нажимаем кнопку TButton «Закрыть» которая находиться на основной форме «Автоматизация рабочего места секретаря».


Заключение


Задание состояло в разработке программного средства «Автоматизация рабочего места секретаря», которое было написано на объектно-ориентированном языке программирования Object Pascal и визуальной среде Borland Delphi 7.0.

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

Программное средство имеет ряд достоинств:

  • удобный стандартизированный пользовательский интерфейс;

  • высокую скорость обработки информации.

  • Не большой обьем памяти, занимаемый приложением

  • Дружественный интерфейс

  • Минималиные требования к аппаратным ресурсам

Программа реализована полностью в соответствии с алгоритмом задачи, отлажена и протестирована.














Литература


1.В.Леонтьев. Новейшая энциклопедия персонального компьтера.-Москва:”Олма-Пресс”,1999

2.И.Э.Фигурнов. IBM PC для пользователей. Краткий курс-Москва:”Инфра-м”,2000

3. А.Леоненков. Самоучитель

4. Фаранов В. Delphi .Учебный курс,2002

5.А.Я. Архангельский. Программирование в Delphi 7, Киев,1999

Приложение

Листинг программы

unit UDataBase;

interface


uses

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

Dialogs, Menus, StdCtrls, ExtCtrls, DB, DBTables, Grids, DBGrids,

USearch, UEdit, UParams;


type

TFMain = class(TForm)

MMMenu: TMainMenu;

MMFile: TMenuItem;

MMAdd: TMenuItem;

MMDelete: TMenuItem;

MMSearch: TMenuItem;

MMFIO: TMenuItem;

MMMoney: TMenuItem;

MMEducation: TMenuItem;

MMPost: TMenuItem;

MMTotalTime: TMenuItem;

MMTimeWork: TMenuItem;

MMYearOld: TMenuItem;

MMPersonal: TMenuItem;

MMFilter: TMenuItem;

PButton: TPanel;

BClose: TButton;

PGrid: TPanel;

DBGTable: TDBGrid;

PMMenu: TPopupMenu;

PMFile: TMenuItem;

PMAdd: TMenuItem;

PMDelete: TMenuItem;

PMSearch: TMenuItem;

PMFIO: TMenuItem;

PMMoney: TMenuItem;

PMEducation: TMenuItem;

PMPost: TMenuItem;

PMTotalTime: TMenuItem;

PMTimeWork: TMenuItem;

PMYearOld: TMenuItem;

PMPersonal: TMenuItem;

PMFilter: TMenuItem;

MMSort: TMenuItem;

MMDesc: TMenuItem;

MMAsc: TMenuItem;

PMSort: TMenuItem;

PMAsc: TMenuItem;

PMDesc: TMenuItem;

QSelect: TQuery;

DBWork: TDatabase;

DSSelect: TDataSource;

MMEdit: TMenuItem;

PMEdit: TMenuItem;

MMNotSort: TMenuItem;

PMNotSort: TMenuItem;

MMCreateFilter: TMenuItem;

MMCancelFilter: TMenuItem;

PMCreateFilter: TMenuItem;

PMCancelFilter: TMenuItem;

procedure BCloseClick(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure MMAddClick(Sender: TObject);

procedure PMAddClick(Sender: TObject);

procedure MMDeleteClick(Sender: TObject);

procedure MMFIOClick(Sender: TObject);

procedure PMFIOClick(Sender: TObject);

procedure MMMoneyClick(Sender: TObject);

procedure PMMoneyClick(Sender: TObject);

procedure MMEducationClick(Sender: TObject);

procedure PMEducationClick(Sender: TObject);

procedure MMPostClick(Sender: TObject);

procedure PMPostClick(Sender: TObject);

procedure MMTotalTimeClick(Sender: TObject);

procedure PMTotalTimeClick(Sender: TObject);

procedure MMTimeWorkClick(Sender: TObject);

procedure PMTimeWorkClick(Sender: TObject);

procedure MMYearOldClick(Sender: TObject);

procedure PMYearOldClick(Sender: TObject);

procedure MMPersonalClick(Sender: TObject);

procedure PMPersonalClick(Sender: TObject);

procedure MMAscClick(Sender: TObject);

procedure PMDeleteClick(Sender: TObject);

procedure MMEditClick(Sender: TObject);

procedure PMEditClick(Sender: TObject);

procedure PMAscClick(Sender: TObject);

procedure MMDescClick(Sender: TObject);

procedure PMDescClick(Sender: TObject);

procedure MMNotSortClick(Sender: TObject);

procedure PMNotSortClick(Sender: TObject);

procedure MMCreateFilterClick(Sender: TObject);

procedure PMCreateFilterClick(Sender: TObject);

procedure MMCancelFilterClick(Sender: TObject);

procedure PMCancelFilterClick(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;


var

FMain: TFMain;

Param: string;

implementation


{$R *.dfm}


procedure TFMain.BCloseClick(Sender: TObject);

begin

Close;

end;


procedure TFMain.FormShow(Sender: TObject);

begin

DBWork.Open;

QSelect.Open;

end;


procedure TFMain.FormClose(Sender: TObject; var Action: TCloseAction);

begin

QSelect.Close;

DBWork.Close;

end;


procedure TFMain.MMAddClick(Sender: TObject);

var str, ID : string;

begin

UEdit.FEdit.Caption := ' Добавление новой записи.';

UEdit.FEdit.EFIO.Text := '';

UEdit.FEdit.EMoney.Text := '';

UEdit.FEdit.EEducation.Text := '';

UEdit.FEdit.EPost.Text := '';

UEdit.FEdit.ETotalTime.Text := '';

UEdit.FEdit.ETimeWork.Text := '';

UEdit.FEdit.EYearOld.Text := '';

UEdit.FEdit.EPersonal.Text := '';

UEdit.FEdit.ShowModal;

if UEdit.Tr

then

begin

str := QSelect.SQL.Text;

QSelect.Close;

QSelect.SQL.Text := 'SELECT max(ID) AS M FROM DBase';

QSelect.Open;

ID := IntToStr(QSelect.FieldByName('M').AsInteger + 1);

QSelect.SQL.Text := 'INSERT INTO DBase (ID, FIO, WorkMoney, Education, ' +

'Post, TotalTime, TimeWork, YearOld, Personal) VALUES (' + ID + ',' +

'''' + UEdit.FEdit.EFIO.Text + ''',' +

UEdit.FEdit.EMoney.Text + ',' +

'''' + UEdit.FEdit.EEducation.Text + ''',' +

'''' + UEdit.FEdit.EPost.Text + ''',' +

'''' + UEdit.FEdit.ETotalTime.Text + ''',' +

'''' + UEdit.FEdit.ETimeWork.Text + ''',' +

UEdit.FEdit.EYearOld.Text + ',' +

'''' + UEdit.FEdit.EPersonal.Text + ''')';

QSelect.ExecSQL;

QSelect.SQL.Text := str;

QSelect.Open;

end;

end;


procedure TFMain.PMAddClick(Sender: TObject);

begin

MMAdd.Click;

end;


procedure TFMain.MMDeleteClick(Sender: TObject);

var str, ID : string;

begin

if Application.MessageBox(Вы хотите удалить текущую запись '?',

' Внимание!', MB_YESNO+MB_ICONQUESTION) = IDYES

then

begin

ID := QSelect.FieldByName('ID').AsString;

QSelect.Close;

str := QSelect.SQL.Text;

QSelect.SQL.Text := 'DELETE FROM DBase WHERE ID = ' + ID;

QSelect.ExecSQL;

QSelect.SQL.Text := str;

QSelect.Open;

end;

end;


procedure TFMain.MMFIOClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите фамилию работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('FIO', Param, [loPartialKey]);

end;


procedure TFMain.PMFIOClick(Sender: TObject);

begin

MMFIO.Click;

end;


procedure TFMain.MMMoneyClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите зарплату работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('WorkMoney', Param, [loPartialKey]);

end;


procedure TFMain.PMMoneyClick(Sender: TObject);

begin

MMMoney.Click;

end;


procedure TFMain.MMEducationClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите образование работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('Education', Param, [loPartialKey]);

end;


procedure TFMain.PMEducationClick(Sender: TObject);

begin

MMEducation.Click;

end;


procedure TFMain.MMPostClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите должность работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('Post', Param, [loPartialKey]);

end;


procedure TFMain.PMPostClick(Sender: TObject);

begin

MMPost.Click;

end;


procedure TFMain.MMTotalTimeClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите стаж работы работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('TotalTime', Param, [loPartialKey]);

end;


procedure TFMain.PMTotalTimeClick(Sender: TObject);

begin

MMTotalTime.Click;

end;


procedure TFMain.MMTimeWorkClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите время работы работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('TimeWork', Param, [loPartialKey]);

end;


procedure TFMain.PMTimeWorkClick(Sender: TObject);

begin

MMTimeWork.Click;

end;


procedure TFMain.MMYearOldClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите возраст работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('YearOld', Param, [loPartialKey]);

end;


procedure TFMain.PMYearOldClick(Sender: TObject);

begin

MMYearOld.Click;

end;


procedure TFMain.MMPersonalClick(Sender: TObject);

begin

USearch.FSearch.Label1.Caption := ' Введите личные данные работника:';

USearch.FSearch.ShowModal;

QSelect.Locate('Personal', Param, [loPartialKey]);

end;


procedure TFMain.PMPersonalClick(Sender: TObject);

begin

MMPersonal.Click;

end;


procedure TFMain.MMAscClick(Sender: TObject);

begin

UParams.FParams.Caption := ' Параметры сортировки.';

UParams.FParams.Label1.Caption := ' Выберите параметр сортировки:';

UParams.FParams.Label2.Visible := False;

UParams.FParams.CBType.Visible := False;

UParams.FParams.Label3.Visible := False;

UParams.FParams.EParam.Visible := False;

UParams.FParams.BOK.Top := 8;

UParams.FParams.BCancel.Top := 40;

UParams.FParams.Height := 103;

UParams.FParams.CBFields.ItemIndex := 0;

UParams.FParams.ShowModal;

if UParams.Tr

then

begin

QSelect.Close;

QSelect.SQL.Text := 'SELECT * FROM DBase ORDER BY ';

case UParams.FParams.CBFields.ItemIndex of

0: QSelect.SQL.Text := QSelect.SQL.Text + 'FIO Asc';

1: QSelect.SQL.Text := QSelect.SQL.Text + 'WorkMoney Asc';

2: QSelect.SQL.Text := QSelect.SQL.Text + 'Education Asc';

3: QSelect.SQL.Text := QSelect.SQL.Text + 'Post Asc';

4: QSelect.SQL.Text := QSelect.SQL.Text + 'TotalTime Asc';

5: QSelect.SQL.Text := QSelect.SQL.Text + 'TimeWork Asc';

6: QSelect.SQL.Text := QSelect.SQL.Text + 'YearOld Asc';

7: QSelect.SQL.Text := QSelect.SQL.Text + 'Personal Asc';

end;

DBGTable.Columns.Items[UParams.FParams.CBFields.ItemIndex + 1].

Title.Color := clSkyBlue;

QSelect.Open;

end;

end;


procedure TFMain.PMDeleteClick(Sender: TObject);

begin

MMDelete.Click;

end;


procedure TFMain.MMEditClick(Sender: TObject);

var str, ID : string;

begin

ID := QSelect.FieldByName('ID').AsString;

UEdit.FEdit.EFIO.Text := QSelect.FieldByName('FIO').AsString;

UEdit.FEdit.EMoney.Text := QSelect.FieldByName('WorkMoney').AsString;

UEdit.FEdit.EEducation.Text := QSelect.FieldByName('Education').AsString;

UEdit.FEdit.EPost.Text := QSelect.FieldByName('Post').AsString;

UEdit.FEdit.ETotalTime.Text := QSelect.FieldByName('TotalTime').AsString;

UEdit.FEdit.ETimeWork.Text := QSelect.FieldByName('TimeWork').AsString;

UEdit.FEdit.EYearOld.Text := QSelect.FieldByName('YearOld').AsString;

UEdit.FEdit.EPersonal.Text := QSelect.FieldByName('Personal').AsString;

UEdit.FEdit.ShowModal;

if UEdit.Tr

then

begin

str := QSelect.SQL.Text;

QSelect.Close;

QSelect.SQL.Text := 'UPDATE DBase SET ' +

' FIO = ''' + UEdit.FEdit.EFIO.Text + ''', ' +

' WorkMoney = ' + UEdit.FEdit.EMoney.Text + ', ' +

' Education = ''' + UEdit.FEdit.EEducation.Text + ''', ' +

' Post = ''' + UEdit.FEdit.EPost.Text + ''', ' +

' TotalTime = ''' + UEdit.FEdit.ETotalTime.Text + ''', ' +

' TimeWork = ''' + UEdit.FEdit.ETimeWork.Text + ''', ' +

' YearOld = ' + UEdit.FEdit.EYearOld.Text + ', ' +

' Personal = ''' + UEdit.FEdit.EPersonal.Text + '''' +

' WHERE ID = ' + ID;

QSelect.ExecSQL;

QSelect.SQL.Text := str;

QSelect.Open;

end;

end;


procedure TFMain.PMEditClick(Sender: TObject);

begin

MMEdit.Click;

end;


procedure TFMain.PMAscClick(Sender: TObject);

begin

MMAsc.Click;

end;


procedure TFMain.MMDescClick(Sender: TObject);

begin

UParams.FParams.Caption := ' Параметры сортировки.';

UParams.FParams.Label1.Caption := ' Выберите параметр сортировки:';

UParams.FParams.Label2.Visible := False;

UParams.FParams.CBType.Visible := False;

UParams.FParams.Label3.Visible := False;

UParams.FParams.EParam.Visible := False;

UParams.FParams.BOK.Top := 8;

UParams.FParams.BCancel.Top := 40;

UParams.FParams.Height := 103;

UParams.FParams.CBFields.ItemIndex := 0;

UParams.FParams.ShowModal;

if UParams.Tr

then

begin

QSelect.Close;

QSelect.SQL.Text := 'SELECT * FROM DBase ORDER BY ';

case UParams.FParams.CBFields.ItemIndex of

0: QSelect.SQL.Text := QSelect.SQL.Text + 'FIO Desc';

1: QSelect.SQL.Text := QSelect.SQL.Text + 'WorkMoney Desc';

2: QSelect.SQL.Text := QSelect.SQL.Text + 'Education Desc';

3: QSelect.SQL.Text := QSelect.SQL.Text + 'Post Desc';

4: QSelect.SQL.Text := QSelect.SQL.Text + 'TotalTime Desc';

5: QSelect.SQL.Text := QSelect.SQL.Text + 'TimeWork Desc';

6: QSelect.SQL.Text := QSelect.SQL.Text + 'YearOld Desc';

7: QSelect.SQL.Text := QSelect.SQL.Text + 'Personal Desc';

end;

DBGTable.Columns.Items[UParams.FParams.CBFields.ItemIndex + 1].

Title.Color := clSkyBlue;

QSelect.Open;

end;

end;


procedure TFMain.PMDescClick(Sender: TObject);

begin

MMDesc.Click;

end;


procedure TFMain.MMNotSortClick(Sender: TObject);

var i : integer;

begin

for i := 1 to 8

do DBGTable.Columns.Items[i].Title.Color := clBtnFace;

QSelect.Close;

QSelect.SQL.Text := 'SELECT * FROM DBase';

QSelect.Open;

end;


procedure TFMain.PMNotSortClick(Sender: TObject);

begin

MMNotSort.Click;

end;


procedure TFMain.MMCreateFilterClick(Sender: TObject);

begin

UParams.FParams.Caption := ' Параметры фильтрации.';

UParams.FParams.Label1.Caption := ' Выберите поле для фильтра:';

UParams.FParams.Label2.Visible := True;

UParams.FParams.CBType.Visible := True;

UParams.FParams.Label3.Visible := True;

UParams.FParams.EParam.Visible := True;

UParams.FParams.BOK.Top := 94;

UParams.FParams.BCancel.Top := 126;

UParams.FParams.Height := 191;

UParams.FParams.CBFields.ItemIndex := 0;

UParams.FParams.CBType.ItemIndex := 0;

UParams.FParams.EParam.Text := '';

UParams.FParams.ShowModal;

if UParams.Tr

then

begin

QSelect.Close;

QSelect.SQL.Text := 'SELECT * FROM DBase WHERE ';

case UParams.FParams.CBFields.ItemIndex of

0: QSelect.SQL.Text := QSelect.SQL.Text + 'FIO';

1: QSelect.SQL.Text := QSelect.SQL.Text + 'WorkMoney';

2: QSelect.SQL.Text := QSelect.SQL.Text + 'Education';

3: QSelect.SQL.Text := QSelect.SQL.Text + 'Post';

4: QSelect.SQL.Text := QSelect.SQL.Text + 'TotalTime';

5: QSelect.SQL.Text := QSelect.SQL.Text + 'TimeWork';

6: QSelect.SQL.Text := QSelect.SQL.Text + 'YearOld';

7: QSelect.SQL.Text := QSelect.SQL.Text + 'Personal';

end;

QSelect.SQL.Text := QSelect.SQL.Text + ' LIKE ';

case UParams.FParams.CBType.ItemIndex of

0: QSelect.SQL.Text := QSelect.SQL.Text + '''' +

UParams.FParams.EParam.Text + '%''';

1: QSelect.SQL.Text := QSelect.SQL.Text + '''%' +

UParams.FParams.EParam.Text + '%''';

2: QSelect.SQL.Text := QSelect.SQL.Text + '''%' +

UParams.FParams.EParam.Text + '''';

end;

QSelect.Open;

end;

end;


procedure TFMain.PMCreateFilterClick(Sender: TObject);

begin

MMCreateFilter.Click;

end;


procedure TFMain.MMCancelFilterClick(Sender: TObject);

begin

QSelect.Close;

QSelect.SQL.Text := 'SELECT * FROM DBase';

QSelect.Open;

end;


procedure TFMain.PMCancelFilterClick(Sender: TObject);

begin

MMCancelFilter.Click;

end;


end.











































37



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