Потоки информации, циркулирующие в мире, который нас окружает, огромны. Во времени они имеют тенденцию к увеличению. Поэтому в любой организации, как большой, так и маленькой, возникает проблема такой организации управления данными, которая обеспечила бы наиболее эффективную работу. Некоторые организации используют для этого шкафы с папками, но большинство предпочитают компьютеризированные способы – базы данных, позволяющие эффективно хранить, структурировать и систематизировать большие объемы данных. И уже сегодня без баз данных невозможно представить работу большинства финансовых, промышленных, торговых и прочих организаций. Не будь баз данных, они бы просто захлебнулись в информационной лавине.
Существует много веских причин перевода существующей информации на компьютерную основу. Сейчас стоимость хранения информации в файлах ЭВМ дешевле, чем на бумаге. Базы данных позволяют хранить, структурировать информацию и извлекать оптимальным для пользователя образом. Использование файл/серверных и клиент/серверных технологий позволяют сберечь значительные средства, а главное и время для получения необходимой информации, а также упрощают доступ и ведение, поскольку они основываются на комплексной обработке данных и централизации их хранения. Кроме того ЭВМ позволяет хранить любые форматы данных текст, чертежи, данные в рукописной форме, фотографии, записи голоса и т.д.
Для использования столь огромных объемов хранимой информации, помимо развития системных устройств, средств передачи данных, памяти необходимы средства обеспечения диалога человек-ЭВМ, которые позволяют пользователю вводить запросы, читать файлы, модифицировать хранимые данные, добавлять новые данные или принимать решения на основании хранимых данных. Для обеспечения этих функций созданы специализированные средства – системы управления базами данных (СУБД). Современные СУБД - многопользовательские системы управления базой данных, которые специализируется на управлении массивом информации одним или множеством одновременно работающих пользователей.
Актуальность и цель дпломного проекта
Данный программный продукт разработан для менеджеров по продажам в автосалоне «A-Motors». Программа предназначена для регистрации и ведения учета продаж автомобилей.
В данный момент у нас в городе существует несколько автомобильных рынков занимающихся продажей, в которой они выступают как посредники. Менеджеры по продажам, работающие на авторынках тратят массу времени на бумажную работу. Время на регистрацию автомобиля и поиск нужного бланка в куче папок на столе и полках очень обременяет, это неудобство побудило меня автоматизировать данный процесс.
Разрабатываемый программный продукт должен оперативно производить поиск, сортировки, составлять различного рода запросы по пожеланиям клиента, а также вести отчётность.
1. Постановочная часть 1.1 Формулировка задачи
Задачей дипломного проекта является разработка программы для автоматизации процесса регистрации и учета продаж автомобилей, и с последующей возможностью распечатки.
Программа, создаваемая в данном дипломном проекте предназначена для производственно-технического отдела продаж автомобильного салона «А-Motors». Программа должна осуществлять управление данными об автомобилях принятых на реализацию автомобильным салоном, регистрировать характеристики автомобиля, осуществлять поиск в базе автомобилей по заданным критериям. Выводить на печать результаты поиска, а также отчет о проданных автомобилях.
1.2 Описание входной и выходной документации
Входные документы
Технический паспорт автомобиля – содержит основные паспортные данные автомобиля – выдается при регистрации автомобиля в РЭО УДП УВД РК.
Графическое изображение автобусов (рисунки, фотографии)
Анкета владельца транспортного средства
Акт о приеме автомобиля на реализацию
Выходные документы
Карточка автомобиля
Список автомобилей удовлетворяющих критериям поиска
Список проданных автомобилей за заданный период
Перечень зарегистрированных марок автомобилей
1.3 Требования к интерфейсу Windows-приложения
Под графическим интерфейсом пользователя (Graphical User Interface — GUI) подразумевается тип экранного представления, при котором пользователь может выбирать команды, запускать задачи и просматривать списки файлов, указывая на пиктограммы или пункты в списках меню, показанных на экране. Действия могут, как правило, выполняться с помощью мыши, либо нажатием клавиш на клавиатуре. Типичным примером графического интерфейса пользователя является Windows 95/98.
Delphi предоставляет разработчику приложения широкие возможности быстрого и качественного проектирования графического интерфейса пользователя — различных окон, кнопок, меню и т.д. Есть определенные принципы построения графического интерфейса пользователя, и пренебрегающий ими обречен на то, что его приложение будет выглядеть чужеродным объектом в среде Windows.
Для пользователя одним из принципиальных преимуществ работы с Windows является то, что большинство имеющихся приложений выглядят и ведут себя сходным образом. После того, как вы поработаете с несколькими приложениями, вы обнаружите, что можете заранее почти наверняка сказать, где можно найти ту или иную функцию в программе, которую только что приобрели, или какие быстрые клавиши надо использовать для выполнения тех или иных операций.
Чаще всего сколько-нибудь сложное приложение не может ограничиться одним окном. Поэтому прежде всего вам нужно решить вопрос управления окнами. Есть две различные модели приложений: с интерфейсом одного документа (SDI) и с интерфейсом множества документов (MDI).
В большинстве случаев следует отдавать предпочтение интерфейсу SDI. Этот интерфейс не обязательно предполагает наличие действительно только одного окна, как в приложениях Windows, типа «Калькулятор». Такое приложение, как «Проводник» Windows, также является SDI приложением, но в нужные моменты оно создает вторичные окна для поиска файлов или папок, задания параметров, просмотра свойств файлов и других целей.
Основным элементом любого приложения является форма — контейнер, в котором размещаются другие визуальные и невизуальные компоненты. С точки зрения пользователя форма — это окно, в котором он работает с приложением.
К внешнему виду окон в Windows предъявляются определенные требования. К счастью, Delphi автоматически обеспечивает стандартный для Windows вид окон вашего приложения. Но вам надо продумать и указать, какие кнопки в полосе системного меню должны быть доступны в том или ином окне, должно ли окно допускать изменение пользователем его размеров, каким должен быть заголовок окна. Все эти характеристики окон обеспечиваются установкой и управлением свойствами формы.
Без особой необходимости не делайте окна приложения с изменяемыми пользователем размерами. При изменении размеров, если не применены специальные приемы, нарушается компоновка окна и пользователь ничего не выигрывает от своих операций с окном. Окно имеет смысл делать с изменяемыми размерами, только если это позволяет пользователю изменять полезную площадь каких-то расположенных в нем компонентов отображения и редактирования информации: текстов, изображений, списков и т.п.
Цвет является мощным средством воздействия на психику человека. Именно поэтому обращаться с ним надо очень осторожно. Неудачное цветовое решение может приводить к быстрому утомлению пользователя, работающего с вашим приложением, к рассеиванию его внимания, к частым ошибкам. Слишком яркий или неподходящий цвет может отвлекать внимание пользователя или вводить его в заблуждение, создавать трудности в работе. А удачно подобранная гамма цветов, осмысленные цветовые акценты снижают утомляемость, сосредоточивают внимание пользователя на выполняемых в данный момент операциях, повышают эффективность работы. С помощью цвета вы можете на что-то намекнуть или привлечь внимание к определенным областям экрана. Цвет может также связываться с различными состояниями объектов.
Надо стремиться использовать ограниченный набор цветов и уделять внимание их правильному сочетанию. Расположение ярких цветов, таких, как красный, на зеленом или черном фоне затрудняет возможность сфокусироваться на них. Не рекомендуется использовать дополнительные цвета. Обычно наиболее приемлемым цветом для фона будет нейтральный цвет, например, светло-серый (используется в большинстве продуктов Microsoft). Помните также, что яркие цвета кажутся выступающими из плоскости экрана, в то время как темные как бы отступают вглубь.
Цвет не должен использоваться в качестве основного средства передачи информации. Можно использовать различные панели, формы, штриховку и другие методики выделения областей экрана. Microsoft даже рекомендует разрабатывать приложение сначала в черно-белом варианте, а уже потом добавлять к нему цвет.
Нельзя также забывать, что восприятие цвета очень индивидуально. А по оценке Microsoft девять процентов взрослого населения вообще страдают нарушениями цветовосприятия. Поэтому не стоит навязывать пользователю свое видение цвета, даже если оно безукоризненно. Надо предоставить пользователю возможность самостоятельной настройки на наиболее приемлемую для него гамму. К тому же не стоит забывать, что может быть кто-то захочет использовать вашу программу на машине с монохромным монитором.
Статические цвета вы выбираете сами и они будут оставаться неизменными при работе приложения на любом компьютере. Это не очень хорошо, поскольку пользователь не сможет адаптировать вид вашего приложения к своим потребностям. При выборе желательной ему цветовой схемы пользователь может руководствоваться самыми разными соображениями: начиняя с практических (например, он может хотеть установить черный фон, чтобы экономить энергию батареи), и кончая эстетическими (он может предпочитать, например, шкалу оттенков серого, потому что не различает цвета). Все это он не может делать, если вы задали в приложении статические цвета. Но уж если по каким-то соображениям вам надо их задать, старайтесь использовать базовый набор из 16 цветов. Если вы попытаетесь использовать 256 (или, что еще хуже, 16 миллионов) цветов, это может замедлить работу вашего приложения, или оно будет выглядеть плохо на машине пользователя с 16 цветами. К тому же подумайте (а, как правило, это надо проверить и экспериментально), как будет выглядеть ваше приложение на монохромном дисплее.
Исходя из изложенных соображений, везде, где это имеет смысл, следует использовать для своего приложения палитру системных цветов. Это те цвета, которые устанавливает пользователь при настройке Windows. Когда вы создаете новую форму или размещаете на ней компоненты, Delphi автоматически присваивает им цвета в соответствии со схемой цветов, установленной в Windows. Конечно, вы будете менять эти установки по умолчанию. Но если при этом вы используете соответствующие константы системных цветов, то, когда пользователь изменит цветовую схему оформления экрана Windows, ваше приложение также будет соответственно меняться, и не будет выпадать из общего стиля других приложений.
Не злоупотребляйте в приложении яркими цветами. Пестрое приложение — обычно признак дилетантизма разработчика, утомляет пользователя, рассеивает его внимание. Как правило, используйте системные цвета, которые пользователь может перестраивать по своему усмотрению. Из статических цветов обычно имеет смысл использовать только clBlack — черный, clWhite — белый и clRed — красный цвет предупреждения об опасности.
Использование шрифтов по умолчанию: System или MS Sans Serif, чаще всего позволяет избежать неприятностей. Впрочем, увы, не всегда. Если вы используете для надписей русские тексты, то при запуске приложения на компьютере с нерусифицированным Windows иногда возможны неприятности. Для подобных случаев все-таки полезно приложить файлы использованных шрифтов к вашей программе.
Другой выход из положения — ввести в приложение команду выбора шрифта пользователем. Это позволит ему выбрать подходящий шрифт из имеющихся в его системе. Проведенную пользователем установку можно запоминать в файле .INI, в реестре или в файле конфигурации и читать автоматически информацию из этого файла при каждом запуске приложения (см. разделы 7.3 и 7.4).
Практически любое приложение должно иметь меню, поскольку именно меню дает наиболее удобный доступ к функциям программы. Существует несколько различных типов меню: главное меню с выпадающими списками разделов, каскадные меню, в которых разделу первичного меню ставится в соответствие список подразделов, и всплывающие или контекстные меню, появляющиеся, если пользователь щелкает правой кнопкой мыши на каком-то компоненте.
Основное требование к меню — их стандартизация. Это требование относится ко многим аспектам меню: месту размещения заголовков меню и их разделов, форме самих заголовков, клавишам быстрого доступа, организации каскадных меню. Цель стандартизации — облегчить пользователю работу с приложением. Надо, чтобы пользователю не приходилось думать, в каком меню и как ему надо открыть или сохранить файл, как ему получить справку, как работать с буфером обмена Clipboard и т.д. Для осуществления всех этих операций у пользователя, поработавшего хотя бы с несколькими приложениями Windows, вырабатывается стойкий автоматизм действий и недопустимо этот автоматизм ломать.
Начнем рассмотрение требований с размещения заголовков меню. Конечно, состав меню зависит от конкретного приложения. Но размещение общепринятых разделов должно быть стандартизированным. Все пользователи уже привыкли, что меню Файл размещается слева в полосе главного меню, раздел справки — справа, перед ним в приложениях MDI размещается меню Окно и т.д. Главное меню должно также снабжаться инструментальной панелью (см. рис. 1.5), быстрые кнопки которой дублируют наиболее часто используемые команды меню. На этих кнопках надо использовать, по возможности, привычные картинки.
По возможности стандартным должно быть и расположение разделов в выпадающих меню.
Группы функционально связанных разделов отделяются в выпадающих меню разделителями.
Названия разделов меню должны быть привычными пользователю. Если вы не знаете, как назвать какой-то раздел, не изобретайте свое имя, а попытайтесь найти аналогичный раздел в какой-нибудь русифицированной программе Microsoft для Windows. Названия должны быть краткими и понятными. Не используйте фраз, да и вообще больше двух слов, поскольку это перегружает экран и замедляет выбор пользователя. Названия разделов должны начинаться с заглавной буквы.
Названия разделов меню, связанных с вызовом диалоговых окон, должны заканчиваться многоточием, показывающим пользователю, что при выборе этого раздела ему предстоит установить в диалоге еще какие-то параметры.
Разделы, к которым относятся каскадные меню должны заканчиваться стрелкой, указывающей на наличие дочернего меню данного раздела.
В каждом названии раздела должен быть выделен подчеркиванием символ, соответствующий клавише быстрого доступа к разделу (клавиша Alt плюс подчеркнутый символ). Хотя вряд ли такими клавишами часто пользуются, но традиция указания таких клавиш незыблема. В реальной работе, вероятно, они используются только в случае, когда отказала мышь.
Многим разделам могут быть поставлены в соответствие «горячие» клавиши, позволяющие обратиться к команде данного раздела, даже не заходя в меню. Комбинации таких «горячих» клавиш должны быть традиционными. Например, команды вырезания, копирования и вставки фрагментов текста практически всегда имеют «горячие» клавиши Ctrl-X, Ctrl-C и Ctrl-V соответственно. Заданные сочетания клавиш отображаются в заголовках соответствующих разделов.
Каждое окно, которое вы вводите в свое приложение, должно быть тщательно продумано и скомпоновано. Удачная компоновка может стимулировать эффективную работу пользователя, а неудачная — рассеивать внимание, отвлекать, заставлять тратить лишнее время на поиск нужной кнопки или индикатора.
Управляющие элементы и функционально связанные с ними компоненты экрана должны быть зрительно объединены в группы, заголовки которых коротко и четко поясняют их назначение. Такое объединение позволяют осуществлять различные панели. Можно рекомендовать, как правило, размещать компоненты не непосредственно на форме, а на панелях. Но и внутри панелей надо продумывать размещение компонентов как с точки зрения эстетики, так и с точки зрения визуального отражения взаимоотношений элементов. Например, если имеется кнопка, которая разворачивает окно списка, то эти два компонента должны быть визуально связаны между собой: размещены на одной панели и в непосредственной близости друг от друга. Если же ваш экран представляет собой случайные скопления кнопок, то именно так он и будет восприниматься. И в следующий раз пользователь не захочет пользоваться вашей программой.
Каждое окно должно иметь некоторую центральную тему, которой подчиняется его композиция. Пользователь должен понимать, для чего предназначено данное окно и что в нем наиболее важно. При этом недопустимо перегружать окно большим числом органов управления, ввода и отображения информации. В окне должно отображаться главное, а все детали и дополнительную информацию можно отнести на вспомогательные окна. Для этого полезно вводить в окно кнопки с надписью Больше..., многоточие в которой показывает, что при нажатии этой кнопки откроется вспомогательное окно с дополнительной информацией.
Помогают также разгрузить окно многостраничные компоненты с закладками. Они дают возможность пользователю легко переключаться между разными по тематике страницами, на каждой из которых имеется необходимый минимум информации.
Еще один принцип, которого надо придерживаться при проектировании окон — стилистическое единство всех окон в приложении. Недопустимо, чтобы сходные по функциям органы управления в разных окнах назывались по-разному или размещались в разных местах окон. Все это мешает работе с приложением, отвлекает пользователя, заставляет его думать не о сущности работы, а о том, как приспособиться к тому или иному окну.
При проектировании приложения важно правильно определить последовательность табуляции оконных компонентов. Под этим понимается последовательность, в которой переключается фокус с компонента на компонент, когда пользователь нажимает клавишу табуляции Tab. Это важно, поскольку в ряде случаев пользователю удобнее работать не с мышью, а с клавиатурой. Пусть, например, вводя данные о каком-то сотруднике, пользователь должен в отдельных окнах редактирования указать фамилию, имя и отчество. Конечно, набрав фамилию, ему удобнее нажать клавишу Tab и набирать имя, а потом опять, нажав Tab, набирать отчество, чем каждый раз отрываться от клавиатуры, хватать мышь и переключаться в новое окно редактирования.
Приложение должно предельно облегчать работу пользователя, снабжая его системой подсказок, помогающих сориентироваться в приложении. Эта система включает в себя:
Ярлычки, которые всплывают, когда пользователь задержит курсор мыши над каким-то элементом окна приложения. В частности, такими ярлычками обязательно должны снабжаться быстрые кнопки инструментальных панелей, поскольку нанесенные на них пиктограммы часто не настолько выразительны, чтобы пользователь без дополнительной подсказки мог понять их назначение.
Более развернутые подсказки в панели состояния или в другом отведенном под это месте экрана, которые появляются при перемещении курсора мыши в ту или иную область окна приложения.
Встроенную систему контекстно-зависимой оперативной справки, вызываемую по клавише F1.
Раздел меню Справка, позволяющий пользователю открыть стандартный файл справки Windows.hlp, содержащий в виде гипертекста развернутую информацию по интересующим пользователя вопросам.
При работе программы могут возникать различного рода ошибки: переполнение, деление на нуль, попытка открыть несуществующий файл и т.п. При возникновении таких исключительных ситуаций программа генерирует так называемое исключение я выполнение дальнейших вычислений в данном блоке прекращается. Исключение — это объект специального вида, характеризующий возникшую в программе исключительную ситуацию. Он может также содержать в виде параметров некоторую уточняющую информацию. Особенностью исключений является то, что это сугубо временные объекты. Как только они обработаны каким-то обработчиком, они разрушаются.
Программист должен принять все мыслимые меры, чтобы ни при каких ошибках пользователя и ни при каких сочетаниях данных приложение не заканчивалось бы аварийно. Но если все-таки аварийное завершение происходит, необходима полная зачистка «мусора» — удаление временных файлов, освобождение памяти, разрыв связей с базами данных и т.д.
2. Проектная часть 2.1 Описание информационной базы
Данный программный продукт имеет шесть таблиц БД.
Таблица 2.1 Владельцы - vladelec.dbf
Наименование поля
Тип
Размер
Назначение
* Kod_vlad
Number
5
Код владельца
Fam
Character
20
Фамилия
Name
Character
20
Имя
Oth
Character
20
Отчество
Adres
Character
20
Адрес
Mail
Character
30
Адрес электронной почты
Tel
Number
20
Номер телефон
Sot
Number
20
Номер мобильного телефона
Таблица 2.2 Менеджеры - sotrud.dbf
Наименование поля
Тип
Размер
Назначение
* Kod_sot
Number
3
Код сотрудника
Fam
Character
20
Фамилия
Name
Character
20
Имя
Oth
Character
20
Отчество
Таблица 2.3 Автомобили - avto.dbf
Наименование поля
Тип
Размер
Назначение
* Kod_avto
Number
6
Код автомобиля
Kod_vlad
Number
5
Код владельца
Kod_Marka
Number
6
Код марки
Model
Character
20
Модель автомобиля
V
Character
5
Объем двигателя
Gos_nom
Character
8
Государственный номер
Cvet
Character
20
Цвет
Tip_kuz
Character
20
Тип кузова
Foto_1
Character
20
Фотография 1
Foto_2
Character
20
Фотография 2
Cena
Number
10
Цена
Таблица 2.4 Регистрация - avto_in.dbf
Наименование поля
Тип
Размер
Назначение
* Kod_in
Number
6
Регистрационный номер
Akt_nom
Number
6
Номер акта
Kod_avto
Number
6
Код автомобиля
Kod_vlad
Number
6
Код владельца
Kod_sot
Number
6
Код менеджера
Data
Date
Дата регистрации
Таблица 2.5 Комплектность - komplect.dbf
Наименование поля
Тип
Размер
Назначение
Kod_avto
Number
6
Код автомобиля
Koleso
Character
15
Оформление колес
Zapaska
Logical
Наличие запасного колеса
Instrument
Logical
Наличие инструмента
Music
Logical
Наличие магнитолы
Medic
Logical
Наличие аптечки
Elect_pak
Logical
Наличие электропакета
ABS
Logical
Наличие АБС
GUR
Logical
Наличие гидроусилителя рулевого колеса
Kondic
Logical
Наличие кондиционера
Korobka
Character
15
Тип КПП
Privod
Character
15
Вид привода
Info
Memo
Дополнительная информация
Defekt
Memo
Описание дефектов
Таблица 2.6 Продажа - avto_out.dbf
Наименование поля
Тип
Размер
Назначение
* Kod_out
Number
6
Код продажи
Data
Date
Дата продажи
Marka_out
Number
6
Код марки
Model_out
Character
20
Модель автомобиля
V_out
Character
5
Объем двигателя
Cvet_out
Character
20
Цвет
Tipkuz_out
Character
20
Тип кузова
Cena
Number
10
Цена
Таблица 2.7 Марки автомобилей - marka.dbf
Наименование поля
Тип
Размер
Назначение
* Kod_marka
Number
6
Код марки
Marka
Character
20
Марка автомобиля
2.2 Спецификации набора данных
Таблица 2.8
Имя набора данных в программе
Имя набора данных на внешнем носителе
Длина записи набора данных (в байтах)
Тип файла
Метод доступа
Vlad
vladelec.dbf
155
Dbase IV
Произвольный
Sot
sotrud.dbf
63
Dbase IV
Произвольный
Avto
avto.dbf
140
Dbase IV
Произвольный
Avto_in
avto_in.dbf
36
Dbase IV
Произвольный
Complect
komplect.dbf
>52
Dbase IV
Произвольный
Auto_out
avto_out.dbf
93
Dbase IV
Произвольный
Marka
Marka.bdf
26
Dbase IV
Произвольный
2.3 Спецификации набора данных
Таблица 2.9
Обозначение
Назначение
Примечание
1
2
3
vladelec.dbf
Информация о владельцах
sotrud.dbf
Информация о менеджерах
avto.dbf
Информация об автомобилях
avto_in.dbf
Регистрация автомобиля
komplect.dbf
Комплектация автомобиля
Продолжение таблицы 2.9
1
2
3
avto_out.dbf
Проданные автомобили
Marka.bdf
Справочник марок автомобилей
2.4 Проект базы данных, используемой в задаче
2.5 Разработка алгоритмов обработки данных 2.5.1 Алгоритм работы главной формы приложения
Схема 3.1
2.5.2 Алгоритм работы форм приложения
Схема 3.2
2.5 Таблица идентификаторов
Таблица 2.10
Идентификатор
Смысловое содержание
Тип
Разрядность
Main.path
Путь к папке программы
string
Add.pic1
Путь к первому изображению
String
Продолжение таблицы 2.10
Add.pic2
Путь ко второму изображению
string
Del. AppProgID
Идентификатор приложения Microsoft Excel
string
Del.App
Указатель на приложение Microsoft Excel
Variant
Del.Ke
Указатель на рабочую книгу Microsoft Excel
Variant
Del.Abc
Указатель на лист Microsoft Excel
Variant
Del.Result
Предназначена для проверки удачной активизации приложения Mcirosoft Excel
HResult
Del.i
Счетчик цикла
integer
2.6 Разработка SQL-запросов к базе данных
Запрос на выборку автомобилей по необходимым критериям формируется динамически, в зависимости от выбранных параметров поиска.
Query1.SQL.Add('from avto a, komplect k, marka m ');
Query1.SQL.Add('where ');
if checkBox9.Checked then Query1.SQL.Add('a.marka = '+ Inttostr(DBLookupComboBox1.keyvalue)+' and');
if checkBox10.Checked then Query1.SQL.Add('a.tip_kuz="'+ComboBox1.Text+
'" and ');
if checkBox11.Checked then Query1.SQL.Add('a.v<='+Edit1.Text+' and ');
if checkBox12.Checked then Query1.SQL.Add('a.cena<='+Edit2.Text+' and ');
if checkBox4.Checked then Query1.SQL.Add('k.elect_pak = '+
BoolToStr(CheckBox17.Checked)+' and ');
if checkBox5.Checked then Query1.SQL.Add('k.kondic = '+
BoolToStr(CheckBox16.Checked)+' and ');
if checkBox6.Checked then Query1.SQL.Add('k.music = '+ BoolToStr(CheckBox15.Checked)+' and ');
if checkBox7.Checked then Query1.SQL.Add('k.gur = '+ BoolToStr(CheckBox14.Checked)+' and ');
if checkBox8.Checked then Query1.SQL.Add('k.abs = '+ BoolToStr(CheckBox13.Checked)+' and ');
if checkBox1.Checked then Query1.SQL.Add('k.koleso = "'+ComboBox2.Text+ '" and ');
if checkBox2.Checked then Query1.SQL.Add('k.korobka = "'+ComboBox3.Text+ '" and ');
if checkBox3.Checked then Query1.SQL.Add('k.privod = "'+ComboBox4.Text+ '" and ');
Query1.SQL.Add('a.marka=m.id_marka and a.kod_avto=k.kod_avto');
Query1.Open;
except
MessageDlg('Введены не все данные',mtWarning,[mbOk],0);
end;
end;
2.7 Разработка форм приложения, меню, отчетов
Разработка форм, меню и множество других графических элементов относятся к дизайну приложения. Дизайн приложения или интерфейс пользователя, должен быть прост, удобен.
Для написания данной программы я использовал как стандартный набор компонентов палитры Delphi 7, так и дополнительные (RXLib, GlobusLib, LmdTools v6.12.00 Professional For Delphi 7).
В программе реализованы такие функции как отчёт, он же экспорт в Excel. Данные которые отображаются в таблице БД по инициативе пользователя могут быть помещены в отчёт. Все отчёты созданные программой хранятся во вложенном каталоге «Reports». Название отчётов формируется из параметров: место в программе откуда был произведён отчёт и текущая дата.
Меню, спроектированное на главной форме можно представить следующим образом:
Файл
Выход
Справочники
Менеджеры
Владельцы
Марки
Проданные автомобили
Операции
Зарегистрировать автомобиль
Редактировать данные
Продать автомобиль
Поиск
Вид
Размер шрифта
Большой
Средний
Маленький
Цвет шрифта
Помощь
Справка
О программе
Подробное описание назначения и использования команд главного меню описано в инструкции пользователю (п. 5.2).
Наиболее часто используемые команды вынесены на формы в виде кнопок, кроме того, на некоторые команды назначены горячие функциональные клавиши.
В приложении использованы стандартные системные цвета, что позволит пользователю использовать удобную для себя цветовую палитру.
Ко всем элементам интерфейса определены всплывающие подсказки, указывающие назначение данного элемента.
По возможности произведена обработка исключений, генерируемых при работе с базой данных.
3. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА РЕАЛИЗАЦИИ ДИПЛОМНОГО ПРОЕКТА 3.1 Краткая характеристика операционных систем
Windows 95, Windows 98, Windows NT, Windows 2000 - это последнее воплощение графических операционных систем, впервые представленных в ноябре 1985 и последующем развитии до 1999 года для использования на компьютерах типа IBM PC и совместимых с ним. По мере проникновения на рынок, за последнее десятилетие, Windows 95, Windows NT, Windows 98.Windows 2000 почти полностью вытеснили всех имевшихся конкурентов и стали, фактическими, эталонами операционной системы для персональных компьютеров. Теперь, если вы пишете программу для совместимых с IBM PC компьютеров, то вы пишете для Windows95, Windows NT, Windows 98,Windows 2000.
Windows обладает важными преимуществами и для пользователей, и для программистов по сравнению со средой MS-DOS. Выгоды для пользователей и выгоды для создателей программ на самом деле весьма схожи, поскольку задача создателя программы состоит в том, чтобы дать пользователю то, в чём он нуждается и то, что он хочет. Windows 95, Windows NT, Windows 98, Windows 2000 делает это возможным.
Операционная система не может реализовывать многозадачность без управления памятью. Так как одни программы запускаются, а другие завершаются, память фрагментируется. Система должна быть способной объединять свободное пространство.
3.2 Краткая характеристика языка программирования Object Pascal и среды Delphi
Delphi - это комбинация нескольких важнейших технологий:
Высокопроизводительный компилятор в машинный код
Объектно-ориентированная модель компонент
Визуальное (а, следовательно, и скоростное) построение приложений из программных прототипов
Масштабируемые средства для построения баз данных
Повсеместное признание концепции объектно-ориентированного программирования и компонентного подхода к созданию оттеснило на второй план вопросы программирования, без которого невозможна разработка действительно серьезных, профессиональных программ.
Если рассмотреть все компоненты библиотеки визуальных компонентов Delphi с точки зрения реализуемых функций, то окажется, что выполняемая компонентом основная операция состоит из нескольких более простых. Причем этих простых операций не так уж и много – это ввод и вывод данных, работа с адресным пространством, обработка списков, использование объектов.
Поэтому разъезженная в десятках книг метафора приобретает новый смысл. Оказывается и в самом программировании в Delphi также можно выделить некую модульную структуру. При этом под программированием понимается создание собственного исходного кода приложения, а не перенос компонентов на форму и настройка их в Инспекторе объектов, - для этого процесса имеется хорошее и емкое определение – визуальное программирование.
Итак, в разработке программ – визуальное программирование обеспечивает быстрое и качественное выполнение стандартных задач. Программирование позволяет решать нестандартные и сложные задачи и увеличивать эффективность, хотя при этом используются те же самые программные инструменты.
Концепция Delphi была реализована в конце 1994 года, когда вышла первая версия среды разработки. В основу программного продукта легли концепции объектно-ориентированного программирования на базе языка Object Pascal и визуального подхода к построению приложений. Именно благодаря этому сочетанию каждая новая версия среды разработки становилась событием.
Среда Delphi 5 представляет собой оболочку разработчика, в которую входит набор специализированных программ, ответственных за разные этапы создания готового приложения. Исходный текст программы готовится в среде Delphi 5 с помощью встроенного редактора исходных текстов. Этот редактор специализирован. Он отличается гибкими возможностями цветового выделения различных элементов текста программы и предоставляет возможность быстрого ввода часто встречающихся конструкций.
Левая панель редактора представляет собой Проводник, позволяющий быстро перемещать между частями исходного текста и по структуре создаваемой программе.
Важнейшая характеристика разрабатываемой программы – удобство ее пользовательского интерфейса, наличие и доступность необходимых элементов управления. В системе Delphi 5 имеется специальный проектировщик форм, с помощью которого окна будущей программы подготавливаются в виде форм. Проектировщик позволяет подобрать оптимальные размеры окон, разместить и настроить всевозможные элементы управления и меню, добавить готовые изображения, указать заголовки, подсказки, подписи и так далее.
Любая работа в Delphi начинается с создания нового проекта. Как правило, из одного проекта получается одно приложение. Таким образом, проект представляет собой фундамент или каркас, на который “крепятся” все нужные детали. Самый маленький проект представляет собой только один файл с исходным кодом проекта, имеющий расширение DPR, он называется главным файлом проекта. Серьезный большой проект содержит десятки разнообразных форм, модулей, а также динамические библиотеки и ресурсы и т.д.
В главном файле содержится описание всех модулей и форм, входящих в состав проекта. Кроме того, в секции begin…end может располагаться любой код, который должен выполняться перед началом работы приложения или в процессе его закрытия.
Модулем называется текстовый файл с расширением PAS , в котором содержится некоторый исходный код на языке Object Pascal. С модулем может быть связана форма, которая представляет собой отдельно взятое окно программы с расположением на нем интерфейсными элементами. Служебная информация о формах хранится в файлах с расширением DFM. В общем случае в состав проекта могут входить модули, не имеющие связанных с ними форм.
В проекте Delphi помимо модулей и форм могут присутствовать различные служебные файлы. Среди них важное место занимают ресурсы (расширение RES), которые хранят значки, курсоры, строки сообщений, информацию о версии программы и т.д.
Группа проектов объединяет для совместной разработки несколько проектов. Файл группы проектов имеет расширение BPG и представляет собой текстовый файл с системной информацией и описанием проектов, входящих в группу.
3.3 Краткая характеристика используемой СУБД
Основные идеи современной информационной технологии базируются на концепции, согласно которой данные должны быть организованы в базы данных с целью адекватного отображения изменяющегося реального мира и удовлетворения информационных потребностей пользователей. Эти базы данных создаются и функционируют под управлением специальных программных комплексов, называемых системами управления базами данных (СУБД).
Увеличение объема и структурной сложности хранимых данных, расширение круга пользователей информационных систем привели к широкому распространению наиболее удобных и сравнительно простых для понимания реляционных (табличных) СУБД. Для обеспечения одновременного доступа к данным множества пользователей, нередко расположенных достаточно далеко друг от друга и от места хранения баз данных, созданы сетевые мультипользовательские версии СУБД. В них тем или иным путем решаются специфические проблемы параллельных процессов, целостности (правильности) и безопасности данных, а также санкционирования доступа.
Формат dBase
Этот формат представляет собой обычный плоский файл *.DBF. Записи расположены в порядке добавления, поскольку новые записи помещаются всегда в конец файла. Если Вы хотите просматривать записи в порядке, отличном от естественного, то Вы должны построить индекс. Индекс имеет структуру B-дерева, элементами которого являются ключевые значения и номера соответствующих записей в DBF-файле. Таким образом, при поиске или просмотре данных по индексу, из индекса берется номер записи, соответствующий конкретному значению ключа, и осуществляется выборка нужной записи из DBF-файла. Если в индексе ключевые значения расположены последовательно, то соответствующие им записи в DBF - произвольно, и при таком способе доступа происходят частые перемещения по файлу с записями, что безусловно замедляет работу
(например FILTER в Clipper) и более того, при больших объемах данных делает работу аппаратного или программного кэша практически бесполезной (кэш в этом случае помогает только индексу).
Для удаления записей применяется следующий подход - чтобы не оставлять "пустоты" в файле записей, при удалении первый байт записи принимает специальное значение, индицирующее, что запись удалена. Такие записи исключаются из просмотра, и как-бы отсутствуют. Безусловно, есть средства, позволяющие просматривать таблицу и с
удаленными записями, а также восстанавливать их (отменять флаг удаления). Номера записей остаются соответствующими физическим, и если удалена запись N 5, то при просмотре подряд идут записи с номерами 4 и 6.
При упаковке таблицы удаленные записи затираются записями, находящимися после них по порядку. Т.к. записи переместились (и изменились их физические порядковые номера), все индексы нужно перестроить.
Как результат, ориентация программы на номера записей DBF-файла имеет недостатки - номера записей никак не связаны с содержимым записей, и могут меняться после упаковки файла. Однако механизм закладок BDE для формата DBF использует именно номера записей, т.к. они стабильны в течение сеанса работы, и не зависят от используемого индекса.
4. ЭКСПЛУАТАЦИЯ 4.1.Требования к аппаратному обеспечению
Чтобы комфортно эксплуатировать программу требуется, чтобы компьютер был сконфигурирован следующим образом:
2. Оперативная память (ОЗУ) 128 MB (рекомендуется 256 Mb);
3. Свободного места на винчестере 100 Mб;
4. Window XР, MS Office (можно не весь пакет, а только Excel для отчётов)
4.2.Инструкция пользователю
После загрузки программы на экране появляется основное рабочее окно. В данном окне отображаются основные данные, об имеющихся в наличии автомобилях, и их характеристики. Из этого окна можно перейти к любому модулю программы по нажатию на соответствующую кнопку на панели кнопок.
По нажатию на кнопку «Менеджеры» - Открывается справочник менеджеров. Перейти к справочнику менеджеров так же можно при помощи меню: Справочники \ Менеджеры.
По нажатию на кнопку «Владельцы» - Открывается справочник владельцев. Перейти к справочнику владельцев так же можно при помощи меню: Справочники \ Владельцы.
По нажатию на кнопку «Проданные» - Открывается окно, содержащее основную информацию по проданным автомобилям. Перейти в окно проданных автомобилей так же можно при помощи меню: Справочники \ Проданные.
По нажатию на кнопку «Добавить» - Открывается окно регистрации автомобиля. Перейти к окну регистрации можно при помощи меню: Правка \ Зарегистрировать автомобиль.
По нажатию на кнопку «Редактировать» - Открывается окно редактирования записи. Перейти к окну редактирования можно при помощи меню: Правка \ Редактировать данные. ВАЖНО! В окне редактирования отображается текущая выделенная запись, для того чтобы внести корректировки в нужную запись, следует сначала выделить её.
По нажатии на кнопку «Продать» - Появляется запрос на подтверждение удаления. Если Вы выбрали «Yes», то в фоновом режиме происходит копирование основных данных в таблицу проданные, после чего запись в основной таблице удаляется. Продать автомобиль можно и через меню: Правка \ Продать автомобиль.
По нажатии на кнопку «Справка» - Открывается справочная система по программе. Так же вызвать справку можно при помощи меню: Помощь \ Справка, или же по нажатию на клавишу F1.
По нажатии на кнопку «Выход» - программа будет закрыта. Закрыть программу так же можно из меню: Файл \ Выход.
По нажатии на кнопку «Искать» - Происходит поиск по БД автомобили. Предварительно нужно ввести параметр для поиска и выбрать поле, по которому будет производиться поиск.
По нажатии на кнопку «Сортировать» - Происходит сортировка записей в таблице в алфавитном порядке (для цифровых полей – по возрастанию).
По нажатии на кнопку «Сформировать запрос» - Открывается окно формирования запросов. Так же открыть данное окно можно при помощи меню: Файл \ Создать запрос.
Справочник менеджеров. В этом окне отображены данные о персонале (фамилия, имя, отчество.
По нажатию на кнопку «Искать» - Происходит поиск по БД. Предварительно в поле необходимо ввести параметр поиска (искомое значение), затем выбрать где искать (имя, фамилия) и нажать на кнопку "Искать". Если в БД содержится запись с таким значением курсор таблицы переместится на неё, если же нет, то программа выдаст сообщение о том что нет такой записи.
По нажатию на кнопку «Редактировать» - Внизу окна появляется панель, куда автоматически переносятся данные из выделенной записи. После внесения необходимых корректировок нужно нажать на кнопку «Сохранить», в противном случае «Отмена».
По нажатию на кнопку «Новый» - Внизу окна появляется панель для ввода данных о новом сотруднике. После ввода следует нажать на кнопку «Сохранить», в противном случае «Отмена». Панель добавления нового менеджера.
Па нажатию на кнопку «Удалить» - Появляется запрос на подтверждение удаления. Если Вы выбрали «Yes» то выделенная запись будет удалена. Запрос на подтверждение удаления
Справочник владельцев. В этом окне отображены данные о владельцах автомобилей (фамилия, имя, отчество, адрес, E-mail, телефон, сотовый) которые зарегистрированных в базе данных.
По нажатию на кнопку «Искать» - Происходит поиск по БД. Предварительно в поле необходимо ввести параметр поиска (искомое значение), затем выбрать где искать (фамилия, № телефона) и нажать на кнопку "Искать". Если в БД содержится запись с таким значением курсор таблицы переместится на неё, если же нет, то программа выдаст сообщение о том что нет такой записи.
По нажатию на кнопку «Сортировать» - Происходит сортировка записей в таблице БД в алфавитном порядке (для числовых полей – в порядке возрастания). Предварительно нужно указать поле по которому будет происходить сортировка.
По нажатию на кнопку «Редактировать» - Внизу окна появляется панель, куда автоматически переносятся данные из выделенной записи. После внесения необходимых корректировок нужно нажать на кнопку «Сохранить», в противном случае «Отмена».Панель редактирования.
Справочник проданных автомобилей. В данном окне отображаются данные о проданных автомобилях (марка, модель, объём, свет, тип кузова, цена, дата продажи), которых в данный момент физически нет.
По нажатию на кнопку «Искать» - Происходит поиск по БД. Предварительно в поле необходимо ввести параметр поиска (искомое значение), затем выбрать где искать (марка, модель) и нажать на кнопку "Искать". Если в БД содержится запись с таким значением курсор таблицы переместится на неё, если же нет, то программа выдаст сообщение о том что нет такой записи.
По нажатию на кнопку «Сортировать» - Происходит сортировка записей в таблице БД в алфавитном порядке (для числовых полей – в порядке возрастания). Предварительно нужно указать поле по которому будет происходить сортировка.
По нажатию на кнопку «Отчёт» - Происходит экспорт данных из таблицы БД в MS Excel. После окончания создания отчёта откроется окно MS Excel, в котором будут помещены данные.
По нажатию на кнопку «Назад» - Закрывается справочник проданных автомобилей, происходит возврат к основному рабочему окну.
Окно регистрации автомобиля. Это окно предназначено для добавления новой записи об автомобиле и его владельце, комплектности и фотографий в соответствующие базы данных.
После заполнения всех полей и прикрепления фотографий следует нажать на кнопку «Записать», после чего если все поля заполнены корректно происходит запись в БД.
При необходимости можно отчистить все поля разом, для этого необходимо нажать на кнопку «Очистить» .
Окно редактирования записи. Это окно предназначено для редактирования выбранной (выделенной) записи в таблице базы данных.
Пользователю предлагается внести необходимые корректировки в полях и если всё готово, нажать на кнопку "Записать".
Окно поиска. Это окно предназначено для формирования запросов по различным критериям базе данных.
В данном окне пользователю предлагается ввести (выбрать) параметры запроса и нажать кнопку "Найти". По нажатию на эту кнопку происходит обработка запроса и результат его выполнения отображается в таблице.
4.3 Инструкция программисту
Для того чтобы программа работала, на компьютере пользователя должно быть установлено ядро BDE, и желательно Windows XР. Все фотографии которыми пользуется программа должна находится во вложенной папке «FOTO». Все файлы базы данных должны находится в корневом каталоге.
Инсталляция программы не требуется.
5. ЭКОНОМИЧЕСКАЯ ЧАСТЬ
В экономической части дипломного проекта должна быть определена:
себестоимость-цена,
экономическая эффективность проекта.
Для подсчета себестоимости продукции и экономической эффективности данного программного продукта, нужно знать следующие составляющие:
затрат на техническое и программное обеспечение проекта;
расчет затрат на материальные ресурсы;
расчет затрат на энергоресурсы;
амортизационные отчисления;
расчет фонда заработной платы;
прочие расходы.
5.1. Определение затрат на создание программного продукта
Трудоемкость разработки программного продукта можно определить следующим способом:
(6.1)
где
- затраты труда на подготовку описание задачи;
- затраты труда на разработку алгоритма решение задачи;
- затраты труда на разработку блок-схемы алгоритма решение задачи;
- затраты труда на составление программы по готовой блок-схеме;
- затраты труда на подготовку документации задачи;
- затраты труда на отладку программы на ЭВМ при комплексной отладке задачи.
Составляющие затрат, в свою очередь можно вычислить через условное число операторов Q. В нашем случае число операторов в отлаженной программе Q=4.200 творческим характером работы, в место этого оценим затраты труда на изучение описания задачи с учетом уточнения описания и квалификации программиста определяются:
(6.2)
где
В- коэффициент увеличения затрат труда вследствие недостаточного описания задачи, уточнение и некоторой доработки. (В = от 1,2 до 5). В = 1,2
К- коэффициент квалификации разработчика (К = от 0,8 до 1,5) К = 1,1
5.1.1 Трудоемкость работ на разработку программы
№№
Этапы проектирования
В
К
Формула расчета
Трудоемкость чел. час.
1
Подготовительный
1,2
1,1
39,27
2
Алгоритм решения задачи
40,91
3
Блок-схема алгоритма
40,91
4
Составление программы по блок-схеме
40,91
5
Отладка программы на ЭВМ
92,05
6
Подготовка документации
16,36
12,27
Итого:
Тн=282,68
Примечание:
(6.3)
где
- затраты труда на подготовку материалов и рукописи.
-затраты на редактирование, печать и оформление документации.
Для разработки программы принимается один программист:
Инженер-программист 12 разряда, с трудоемкостью работ
5.2 Расчет себестоимости и цены программного продукта 5.1.2 Расчет фонда заработной платы
Работа программиста по условиям труда квалифицируется вредной. Согласно положению об оплате труда доплата за вредность составляет до 12% в зависимости от аттестации рабочего места.
Для расчета заработной платы, тарифной ставки учитывается поправочный коэффициент за условие труда 1,12. Тарифный коэффициент 2,2 разряд 12.
Дополнительный фонд заработной платы – 10%
Отчисления на социальные нужды- 19,5% Определение фонда заработной платы инженера-программиста 12 разряда.
Часовая тарифная ставка 2,2 разряда, с учетом доплаты за вредность, составляет:
Тарифная заработная плата за отработанное время:
Дополнительная заработная плата-10% от Зтар
Оплата труда программиста составит:
40050,10+ 4005 = 44055,11
Фонд оплаты труда на разработку программы составит:
44055,11
Отчисления на социальные нужды:
Общий фонд заработной платы на разработку программного обеспечения составит:
44055,11+8811 = 52866,13
Среднемесячная заработная плата одного специалиста составит:
31718,18
5.1.3 Расчет затрат на техническое обеспечения проекта
Для разработки программного обеспечения необходимы технические средства:
монитор - 30000 тенге
системный блок - 95000 тенге
клавиатура – 1500 тенге
мышь – 1200 тенге
принтер – 20000 тенге
программный продукт - «Delphi» (лицензионный) - 150000 тенге
Windows XP (лицензионный) - 10000 тенге
Итого затрат на техническое и программное обеспечение Соф = 307700 тенге
Основные фонды переносят свою стоимость на создаваемую продукцию в виде амортизационных отчислений.
Срок использования технических средств 3 года.
Амортизация- это денежное выражения износа основных фондов.
5.1.4 Прочие затраты
Затраты на оплату машинного времени при отладке программы определяются путем умножения фактического времени отладки программы на цену машино-часа арендного времени:
где
Счас- цена машино-часа арендного времени, тен/час;
tэвм- фактическое время отладки программы ЭВМ;
Фактическое время отладки вычислим по формуле:
= 40,91+92,05+28,64 = 161,59
По усредненным расчетам фирм цена машино-часа арендуемого времени составляет 22,8 тг.
Общие затраты на оплату машинного времени составляют:
= 3684,27
5.1.5 Расчет затрат на текущий ремонт
Затраты на текущий и профилактический ремонт принимаются равными 5% от стоимости ЭВМ
/12*1,5= 1923,13 тенге
Затраты на материалы, необходимые для обеспечения нормальной работы ПЭВМ составляют около 1% от стоимости ЭВМ:
Для выполнения программного проекта используется электроэнергия на технологические цели:
тенге
N - мощность технических средств- 0,5квт
n - количество используемых технических средств.
Ц - цена одного киловатта электроэнергии – 4,84 тг.
t- время работы в часах. 35*8 = 280
5.3 Расчет экономической эффективности проекта
Калькуляция себестоимости и отпускной цены
№ П/П
Статьи и затраты
Сумма (тенге)
1
Материалы
3900,00
2
Энергоресурсы
2032,80
3
Основная заработная плата
44055,11
4
Дополнительная заработная плата
4005,00
5
Отчисление на социальные нужды
8811,00
6
Амортизационные нужды
13687,95
7
Прочие затраты
5992,00
8
Расходы на подготовку и осваивание производства
0,5% от
1
7
412,42
9
Общехозяйственные расходы 3 %
от 1
/7
2474,52
10
Производственная себестоимость 1/9
85370,80
11
Прибыль предприятия 20% от гр 10
17074,16
12
Цена продукции гр 10+11
102444,96
13
НДС- 14% от гр 12
14342,29
14
Отпускная цена гр 12+гр 13
116787,25
Эф = (Ц-С)/К
Где Эф- экономическая эффективность.
Готовая эффективность создания системы определяется из выражения:
Эг =
З/(Ен+Кр) = 57132,29/0,44 = 130445,87
Где
З- изменение размера затрат на создание и обслуживание информационной системы определяется из выражения:
З =
И∑ - К*(Ен+Кр) = 57132,29
где
И∑ - абсолютное изменение издержек работы с использованием программ.
Кр- коэффициент реновации, принимается как норма амортизации с учетом срока службы существующего оборудования ( срок службы системы Т сл – 3года) и определяется по формуле:
Кр = Ен/((1+Ен) тел -1),
Кр = 0,15/((1+0,15)3 – 1) = 0,29
К- единовременное капиталовложение
К = 97876,64 тенге (программные и технические затраты, фонд заработной платы, прочие
расходы, материальные затраты, затраты на энергоносители и прочие расходы)
Тогда изменение размера затрат составит:
З = 57132,29 тенге.
Точная эффективность планируется в размере
Эг = 130445,87 тенге.
Теперь можно определить срок окупаемости Ток создания новой системы из выражения:
Ток = К/Эг = 0,75
Данный срок окупаемости учитывает только материальные преимущества создания новой системы.
В целом система считается рентабельной если ее срок окупаемости меньше года.№