Программное средство для расчета расхода легковых автомобилей
Разработка программы для ведения учета автомобилей организации, норм расхода топлива, путевых листов; расчета расхода топлива по каждому автомобилю и виду топлива. Определение вычислительной системы, необходимой для создания программного продукта.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 29.05.2013 |
Размер файла | 4,8 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Частное учреждение образования
"ТЕХНИКУМ БИЗНЕСА И ПРАВА"
Пояснительная записка
к курсовому проекту по предмету
"Основы алгоритмизации и программирование"
Программное средство для расчета расхода легковых автомобилей
Введение
- 1. Постановка задачи
- 1.1 Организационная сущность задачи
- 1.2 Информационная модель
- 1.3 Входные данные
- 1.4 Постоянная информация
- 1.5 Выходные данные
- 2. Вычислительная система
- 2.1 Используемые технические средства
- 2.2 Инструменты разработки
- 3. Проектирование задачи
- 3.1 Объектно-ориентированный анализ
- 3.2 Концептуальный прототип
- 3.3 Функции: логическая и физическая организация и элементы управления
- 4. Описание программного средства
- 4.1 Общие сведения
- 4.2 Функциональное назначение
- 5. Методика испытаний
- 5.1 Технические требования
- 5.2 Порядок проведения испытаний
- 5.2.1 Функциональное тестирование
- 5.2.2 Полное тестирование
- 6. Применение
- 6.1 Назначение программы
- 6.2 Условия применения
- 6.3 Справочная система
- Заключение
- Литература
- Приложение
Введение
На данный момент существуют программные средства, позволяющие автоматизировать и облегчить расчет расхода топлива, однако данные средства являются либо платными, либо содержат ряд сложных дополнительных функций, которые крайне редко используются пользователем. К тому же многие предприятия до сих пор ведут учет расхода топлива по имеющимся у них в автопарке транспорту ручным способом.
Целью курсового проекта "Программное средство для расчета расхода легковых автомобилей" является анализ предметной области в области расчета расхода топлива для легковых автомобилей, а также создание программы, позволяющей автоматизировать данный расчет. Данный программный продукт позволит вести учет расхода топлива путем заполнения электронного вида путевого листа, с указанием нормы расхода и дистанции. В результате расчетов по имеющимся в системе путевым листам за заданный период программа произведет вычисление общего расстояния и расхода топлива по каждому автомобилю, а также суммирует общих расход по каждому виду топлива.
Для достижения цели курсового проекта нужно решить следующие задачи:
- выполнить объектно-ориентированный анализ и проектирование системы, результатом которой будет модель системы;
- определить вычислительную систему, необходимую для создания программного продукта;
- по модели выполнить проектирование задачи;
- разработать программный продукт;
- описать созданный программный продукт;
- выбрать методику испытаний;
- описать процесс тестирования;
- привести примеры области применения.
Решение поставленных задач отражено в пояснительной записке.
Пояснительная записка состоит из 6 разделов и содержит необходимую и достаточную информацию по использованию данного программного продукта.
В первом разделе "Постановка задачи" описывается исследование предметной области, определение круга задач, перечисляются основные функции программы.
Во втором разделе "Вычислительная система" перечисляются требования к аппаратному обеспечению и конфигурации компьютера, проводится характеристика операционной системы, обоснование выбранной среды для разработки приложения.
В третьем разделе "Проектирование задачи" проводится объектно-ориентированный анализ задачи, строится алгоритм, строится концептуальный прототип системы меню и элементов управленияв рамках среды разработки приложения.
В четвертом разделе "Описание программного средства" содержится информация об обозначении и наименовании приложения, о программном обеспечении, необходимом для функционирования программы, о классах решаемых задач и назначении программы.
В пятом разделе "Методика испытаний" описываются требования к техническим средствам для проведения испытаний, требования к характеристикам программы применительно к условиям эксплуатации, требования к информационной и программной совместимости. Описывается проверка каждого пункта меню, каждой операции, которая выполняет приложение. Моделируются все возможные действия пользователя при работе с программой. Представляются результаты тестирования.
Шестой раздел "Применение" предназначен для описания сведений о назначении программного средства,классе решаемых задач, ограничениях, накладываемых на область применения, требования к необходимым для данного программного средства техническим и программным ресурсам, структуре справочной системы, методике использования справочной системыи области его применения.
В заключении будет проанализировано выполнение поставленной задачи и выполненной работы, степень ее соответствия проектным решениям. Приложения будут содержать тексты программных модулей, схемы работы приложения.
1. Постановка задачи
1.1 Организационная сущность задачи
Требуется разработать программу, которая будет вести учет автомобилей организации, норм расхода топлива, путевых листов на водителей, а также производить расчет расхода топлива по каждому автомобилю и виду топлива за указанный период.
1.2 Информационная модель
Согласно общим требованиям стандартный графический интерфейс разрабатываемого приложения должен:
- содержать привычные и понятные пользователю пункты меню или закладки, соответствующие функциям обработки;
- сохранять стандартное назначение и местоположение на экране графических объектов, работающих в среде Windows.
Большинство программных приложений работают в диалоговом режиме. Диалоговый режим -это способ взаимодействия пользователя с программой, при котором происходит непосредственный и двухсторонний обмен информацией, командами или инструкциями между человеком и программой. Диалоговый режим подразумевает такую скорость обработки данных, которая не сказывается на технологии действий пользователя. Различают активные и пассивные диалоговые режимы.
Состав для диалоговых систем представляет собой:
- главное меню в виде закладок, где пользователю предлагается выбор функций из фиксированного перечня программы для работы с ней: "Автомобили организации", "Водители", "Путевые листы", "Отчет о расходе топлива по автомобилям за период". Каждая из закладок отвечает за работу с той или иной информацией. На каждой из закладок пользователь может вводить или удалять данные. На закладке "Отчет о расходе топлива по автомобилям за период" пользователю предлагается указать период и запустить обработку и формирование отчета о расходе топлива;
- действия запрос-ответ, где при удалении у пользователя спрашивается подтверждение его действия.
Пользователь осуществляет заполнение БД программы и после внесения данных инициализацию расчета расхода топлива, в результате чего получает сведенный по автомобилям и видам топлива отчет о расходе.
При работе с программным продуктом не должно быть трудностей, а созданная заранее справочная система должна помочь в использовании программы и решении поставленных задач.
1.3 Входные данные
Входными данными являются:
Таблица 1 - Входные данные
Функция |
Входные данные |
|
Добавление нового автомобиля в список |
Марка автомобиля Регистрационный номер автомобиля Пробег авто на момент ввода информации о нем Вид топлива автомобиля (выбирается из списка видов топлива) |
|
Добавление нового вида топлива |
Наименование вида топлива |
|
Добавление вида нормы расхода топлива на автомобиль |
Дата вступления в силу вида нормы расхода Название вида нормы расхода (выбирается из списка видов норм расхода) Значение нормы расхода (л/100 км.) |
|
Добавление нового вида нормы расхода |
Наименование вида нормы расхода |
|
Добавление водителя |
ФИО водителя |
|
Добавление путевого листа |
Номер путевого листа Водитель (выбирается из списка водителей системы) Автомобиль (выбирается из списка автомобилей системы) Дата начала Дата окончания |
|
Добавление информации в содержимое путевого листа |
Дата Вид нормы расхода на автомобиль (выбирается из списка действующих норм на указанную дату) Расстояние |
|
Функции удаления |
Указанная информация к удалению (запись) Подтверждение удаления |
1.4 Постоянная информация
Постоянной информацией в данном проекте является имя файла БД MS ACCESS - autos.mdb, файл которой должен находится в одном каталоге с файлом разрабатываемой программы Autos.exe.
1.5 Выходные данные
Выходными данными являются текстовый файл report.txt, содержащие в себе информацию о расходе топлива. Например:
Расход топлива за период: 01.01.2013 - 27.03.2013
1. Lexus LX 470 г.н.0004 ВМ-2 ДТ - 112,25
Итого по видам топлива:
1. ДТ - 112,25
А также к выходным данным можно отнести запросы на подтверждение удаления и сообщения при неверном указании входных данных.
2. Вычислительная система
2.1 Используемые технические средства
Конфигурация компьютера, на котором будет разрабатываться программное приложение: процессор Athlon Palomino 2100+; оперативная память DDR 400 512 Мб; жёсткий диск HDD Seagate 80Gb 4 Мб.
2.2 Инструменты разработки
Инструментами разработки будут являться:
- операционная система Windows XP Professional;
- среда программирования Borland Delphi7.0;
- язык программирования Objec tPascal.
Сегодня никем не опровергается тот факт, что операционные системы семейства Windows завоевали не только подавляющую часть белорусского рынка настольных операционных систем и в корпоративном, и в домашнем секторе, но и немалую долю рынка серверных операционных систем. Каковы бы ни были претензии к этим операционным системам и к их производителю со стороны некоторых пользователей, нельзя отрицать того, что именно среди операционных систем этого семейства большинство белорусских потребителей находят тут сочетание цены, производительности, удобства, функциональности и надежности которой удовлетворяет требованиям, предъявляемым решаемыми задачами.
Для разработки данного программного приложения была использована операционная система Microsoft Windows XP Professional. Данная операционная система является оптимальным решением для предприятия любого размера. Данная версия операционной системы Windows сочетает в себе преимущества Windows 2000 Professional (например, средства безопасности, управляемость и надежность) с лучшими качествами Windows 98 и Windows ME (поддержка Plug&Play, простой пользовательский интерфейс и передовые службы поддержки). Это делает Windows XP Professional наиболее подходящей операционной системой для настольных компьютеров, применяемых в корпоративной среде. Независимо от того, где устанавливается Windows XP Professional - на одном компьютере или в масштабе локальной сети, - эта система повышает вычислительные возможности предприятия, одновременно сокращая совокупную стоимость программного обеспечения всех настольных компьютеров.
Для реализации программы была выбрана среда программированияDelphi, а именно пакет Borland Delphi Enterprise Version 7.0. Borland Delphi 7 Studio позволяет создавать самые различные программы: от простейших однооконных приложений до программ управления распределенными базами. В состав пакета включены разнообразные утилиты, обеспечивающие работу с базами данных, XML-документами, создание справочной системы, решение других задач. Отличительной особенностью седьмой версии является поддержка технологии .NET.
Язык программирования Object Pascal является последней версией семейства языков Pascal, реализующей принципы объектно-ориентированного программирования. Этот язык является основой системы визуального программирования Delphi. Наиболее существенным отличием от традиционного языка Pascal является наличие достаточно сложных структур данных (классы) и возможность средствами Pascal обращаться к функциям Windows API для создания полноценных Windows-приложений. Object Pascal позволяет использовать множество самых разнообразных типов и структур данных. Все типы данных можно разбить на три группы: простые (базовые), структурированные и пользовательские типы, которые создаются на основе базовых и объединяют несколько переменных разных типов в одной структуре данных.
3. Проектирование задачи
3.1 Объектно-ориентированный анализ
Принципиальное различие между структурным и объектно-ориентированным подходом (ООП) заключается в способе декомпозиции системы. ООП использует объектную декомпозицию, при этом статическая структура системы описывается в терминах объектов и связей между ними, а поведение системы описывается в терминах обмена сообщениями между объектами. Каждый объект системы обладает своим собственным поведением, моделирующим поведение объекта реального мира. Концептуальной основой ООП является объектная модель. Основными ее элементами являются: абстрагирование, инкапсуляция, наследование, полиморфизм, модульность, иерархия.
В проектируемой системе используются стандартные классы TForm, TPageControl, TTabSheet, TDBGrid, TBitBtn, TDateTimePicker, TLabel, TDBEdit, TDBLookupComboBox, TSpeedButton, и т.п. подобные классы.
Таблица 2 - Используемые компоненты
Класс компонента |
Назначение |
|
TForm |
Компонент TForm представляет собой окно программы, предназначенное для размещения остальных компонентов, и организации диалога с пользователем. |
|
TLabel |
Компоненты класса TLabel предназначены для размещения на форме различного рода текстовых надписей. |
|
TDBEdit |
Компонент класса TDBEdit представляет собой однострочный редактор текста. С его помощью можно вводить и отображать достаточно длинные текстовые строки. Значение вводимое в данный компонент однозначно связывается с полем текущей записи указанного набора данных. |
|
TPageControl |
Компонент TPageControl представляет собой контейнер для хранения компонентов класса TTabSheet и представления их в виде закладок |
|
TTabSheet |
Компонент класса TTabSheet представляет собой закладку (область или контейнер) для хранения других компонентов и группировки их по логической принадлежности |
|
TBitBtn |
Компонент класса TBitBtn представляет собой кнопку с возможностью помимно надписи на ней размещения еще и изображения |
|
TDBGrid |
Компонент класса TDBGrid представляет собой таблицу с заголовками для отображения набора данных (результата запроса к БД) |
|
TDateTimePicker |
Компонент класса TDateTimePicker представляет собой поле для вода даты или выбора ее из календаря |
|
TDBLookupComboBox |
Компонент класса TDBLookupComboBox представляет собой раскрывающийся список содержащий значения из заданного поля одного набора данных и сохраняющий выбранный результат в указанное поле другого набора |
|
TSpeedButton |
Представляет собой кнопку, с возможностью определить для нее дополнительные эффекты такие как прозрачность или вдавлинность и т.п. |
3.2 Концептуальный прототип
Концептуальный прототип состоит из описания внешнего пользовательского интерфейса - системы меню, диалоговых окон и элементов управления. Кнопочная навигация дублирует часто используемые пункты основного меню. При создании приложения важную роль играют формы, так как они являются основным диалоговым средством работы пользователя. Разрабатываемое приложение будет многооконное. Оно будет содержать несколько форм (модулей) - 7 штук. В приложении не предусмотрено меню. Оно будет заменено компонентом класса TPageControl, имеющим четыре вкладки, которые обеспечат быструю навигацию в программе, удобный доступ к функциям приложения и структурируют их в однородные группы. Приведем описание вкладок, используемых на главной форме. Можно представить их в виде таблиц. Например,
Таблица 3 - Элементы управления и визуализации
Размещение |
Элемент экрана |
Класс |
Действие |
|
Форма программы, вкладка "Автомобили организации" |
DBGrid1 - таблица для отображения списка автомобилей |
TDBGrid |
Выводит список автомобилей |
|
BitBtn1 - кнопка добавления новой записи об автомобиле |
TBitBtn |
Отображается окно ввода данных о новом автомобиле и добавление записи |
||
BitBtn2 - кнопка удаления текущей записи об автомобиле |
TBitBtn |
Отображается подтверждение на удаление, и при подтверждении - удаление записи и обновление таблицы DBGrid1 |
||
BitBtn3 - кнопка для отображение списка норм расхода топлива для указанного автомобиля |
TBitBtn |
Отображается окно для ввода новых или удаления имеющихся норм |
||
Форма программы, вкладка "Водители" |
DBGrid2 - таблица для отображения списка водителей |
TDBGrid |
Выводит список водителей |
|
BitBtn4 - кнопка добавления новой записи о водителе |
TBitBtn |
Отображается окно ввода ФИО водителя и добавление записи |
||
BitBtn5 - кнопка удаления текущей записи о водителе |
TBitBtn |
Отображается подтверждение на удаление, и при подтверждении - удаление записи и обновление таблицы DBGrid2 |
||
Форма программы, вкладка "Путевые листы" |
DBGrid3 - таблица для отображения списка путевых листов |
TDBGrid |
Выводит список путевых листов |
|
BitBtn6 - кнопка добавления новой записи |
TBitBtn |
Отображается окно ввода данных о новом путевом листе и добавление записи |
||
BitBtn7 - кнопка удаления текущей записи |
TBitBtn |
Отображается подтверждение на удаление, и при подтверждении - удаление записи и обновление таблицы DBGrid3 |
||
BitBtn8 - кнопка для отображение содержимого путевого листа |
TBitBtn |
Отображается окно для ввода новых или удаления имеющихся записей о содержимом путевого листа |
||
Форма программы, вкладка "Отчет о расходе топлива по автомобилям за период" |
DateTimePicker1 - воле ввода даты начала требуемого периода |
ТDateTimePicker |
||
DateTimePicker2 - воле ввода даты окончания требуемого периода |
ТDateTimePicker |
|||
BitBtn9 - кнопка запуска формирования отчета |
TBitBtn |
Формирование отчета по расходу топлива в текстовый фай report.txt и открытие его после формирования в блокноте |
Весь интерфейс программы организован однотипно и интуитивно понятно, так что, описание остальных форм программы не требуется. Программа использует БД состоящую из 7 таблиц:
Таблица 4 - Структура таблицы "Autos" - список автомобилей
Имя поля |
Тип поля |
Назначение |
|
Id_Auto |
Счетчик |
Однозначно идентифицирует запись в таблице, первичный ключ |
|
Marka |
Текстовый |
Марка авто |
|
Number |
Текстовый |
Регистрационный номер |
|
Start_Statement |
Длинное целое |
Показания пробега |
|
Id_vid_toplivo |
Длинное целое |
ID вида топлива |
Таблица 5 - Структура таблицы "toplivo" - список видов топлива
Имя поля |
Тип поля |
Назначение |
|
Id_vid_toplivo |
Счетчик |
Однозначно идентифицирует запись в таблице, первичный ключ |
|
Naim_toplivo |
Текстовый |
Название топлива |
Таблица 6 - Структура таблицы "Norms"
Имя поля |
Тип поля |
Назначение |
|
Id_norma |
Счетчик |
Однозначно идентифицирует запись в таблице, первичный ключ |
|
ID_Auto |
Длинное целое |
Номер записи (первичного ключа) об автомобиле |
|
Start_date |
Дата/время |
Дата вступления в силу нормы |
|
Rasxod_na_100 |
Длинное целое |
Показания расхода л/100 км. |
|
Id_vid_norma |
Длинное целое |
ID вида нормы |
Таблица 7 - Структура таблицы "vid_norma" - список видов норм
Имя поля |
Тип поля |
Назначение |
|
Id_vid_norma |
Счетчик |
Однозначно идентифицирует запись в таблице, первичный ключ |
|
vid_norma |
Текстовый |
Название вида |
Таблица 8 - Структура таблицы "Voditel" - список водителей
Имя поля |
Тип поля |
Назначение |
|
Id_voditel |
Счетчик |
Однозначно идентифицирует запись в таблице, первичный ключ |
|
FIO |
Текстовый |
ФИО водителя |
Таблица 9 - Структура таблицы "Put_lists" - список путевых листов
Имя поля |
Тип поля |
Назначение |
|
Id_Put_list |
Счетчик |
Однозначно идентифицирует запись в таблице, первичный ключ |
|
Number |
Длинное целое |
Номер путевого листа |
|
Id_voditel |
Длинное целое |
ID водителя |
|
Id_Auto |
Длинное целое |
ID авто |
|
Data_start |
Дата/время |
Дата начала |
|
Data_end |
Дата/время |
Дата окончания |
Таблица 10 - Структура таблицы "Put_list_content" - содержимое путевого листа
Имя поля |
Тип поля |
Назначение |
|
Id |
Счетчик |
Однозначно идентифицирует запись в таблице, первичный ключ |
|
Id_Put_list |
Длинное целое |
ID путевого листа |
|
Id_norma |
Длинное целое |
ID нормы расхода на авто |
|
Distance |
Длинное целое |
Расстояние |
|
Data |
Дата/время |
Дата |
3.3 Функции: логическая и физическая организация и элементы управления
Рассмотрим основные функции программы. В программном приложении основные функции по добавлению, удалению и редактированию данных будут производиться путем выборки и изменения информации в базе данных. Ведение самой базы данных будет осуществляться стандартными средствами Delphi.
В программном приложении "Autos.exe" для обработки событий на главной форме используются следующие методы:
- procedure TFormMain.FormShow - процедура обработки первого показа окна, осуществляет соединение с БД и открытие необходимых наборов данных;
- procedure TFormMain.BitBtn1Click - процедура вызова модального окна создания новой записи об авто, и при положительном результате модального вызова - создание новой записи об автомобиле в БД;
- procedure TFormMain.BitBtn2Click - обработка удаления записи об автомобиле. При наличии записей об авто в БД выдает запрос на подтверждение удаления, и при подтверждении удаляет запись об авто из БД;
- procedure TFormMain.BitBtn3Click - отображает модальное окно, содержащее список норм расхода для указанного авто. На форме можно добавлять и удалять необходимые нормы;
- procedure TFormMain.BitBtn4Click - обработка добавления водителя. Запрашивает ФИО и при правильном указании - добавление записи о водителе в БД.
- procedure TFormMain.BitBtn5Click - обработка удаления записи о водителе. При наличии записей в БД выдает запрос на подтверждение удаления, и при подтверждении удаляет запись из БД;
- procedure TFormMain.BitBtn7Click - обработка удаления записи о путевом листе. При наличии записей в БД выдает запрос на подтверждение удаления, и при подтверждении удаляет запись из БД;
- procedure TFormMain.BitBtn6Click - процедура вызова модального окна создания новой записи о путевом листе, и при положительном результате модального вызова - создание новой записи БД;
- procedure TFormMain.BitBtn8Click - отображает модальное окно, содержащее список, представляющий содержимое путевого листа. На форме можно добавлять и удалять необходимое содержимое;
- procedure TFormMain.BitBtn9Click - осуществляет вычисление норм расхода на заданный период. Сохранение результатов в текстовый файл report.txt и вывод его на просмотр.
4. Описание программного средства
4.1 Общие сведения
Для того чтобы начать работу с программой, нужно запустить файл "Autos.exe". Его объем составляет 890 килобайт. Все действия пользователя осуществляются при помощи файла клавиатуры и мыши. Программный продукт функционирует в среде Windows. После запуска программы, пользователю отображено главное окно программы.
В ходе работы программа использует файл MS ACCESS "autos.mdb", расположенный в директории, в которых хранится сам файл программы.
Файл "autos.mdb" представляет собой БД в таблицах которой хранятся вводимые пользователем данные.
4.2 Функциональное назначение
Главным назначением программы является по введенным пользователем данным осуществлять расчет расхода топлива легковых автомобилей и выводить полученный результат. В программном продукте реализованы функции, которые были определены на этапе объектно-ориентированного программирования и анализа, т.е. хранение информации о автомобилях, водителях путевых листах и расчет расхода топлива.
Средства защиты, разграничения доступа к данным и сетевая поддержка не предусмотрены.
5. Методика испытаний
5.1 Технические требования
Для полноценного функционирования разработанного программного продукта, качественного выполнения всех поставленных задач, требуется ПК следующей конфигурации, характеристики которого представлены ниже:
Таблица 11 - Минимальные системные требования
Элементы конфигурации |
Описание характеристик |
|
Процессор |
AMD/Intel 200ГГц |
|
Оперативная память |
5Мб |
|
Видео адаптер |
16Мб |
|
Дисковой накопитель |
2Мб |
|
Клавиатура |
Совместимая с персональным компьютером |
|
Мышь |
Совместимая с персональным компьютером |
|
Блок питания |
200Вт |
|
Монитор |
15" |
|
Операционная система |
Windows 98\2000\XP\7 |
5.2 Порядок проведения испытаний
5.2.1 Функциональное тестирование
При функциональном тестировании осуществляется проверка каждого пункта меню, каждой операции, с целью проверки выполнения всех функций, определенных на этапе объектно-ориентированного анализа и проектирования. Функциональное тестирование должно гарантировать работу всех элементов управления в автономном режиме.
Протестируем функцию создания записи о новом автомобиле:
Для того чтобы ввести новую запись об автомобиле необходимо:
Перейти на вкладку "Автомобили организации":
Рисунок 1 - Вкладка "Автомобили организации"
Нажать кнопку "Добавить автомобиль";
В появившемся диалоговом окне ввести данные и нажать сохранить:
Рисунок 2 - Окно для ввода новой информации об авто
В результате будет добавлена запись о новом авто:
Рисунок 3 - Результат добавления новой записи об автомобиле
Далее произведем полное тестирование и проверим выполнение всех функций все функции
5.2.2 Полное тестирование
Полное тестирование выполняется после успешного завершения функционального тестирования, продемонстрировавшего корректное выполнение всех функций, определенных на этапе проектирования.
Полное тестирование должно показать работу программного продукта с момента запуска до завершения с иллюстрацией реакций программы на некорректные действия пользователя.
Последовательность действий по процессу полного тестирования приведена в таблице 12
Таблица 12 - Алгоритм полного тестирования
Этап тестирования |
Ожидаемый результат |
Иллюстрация полученного результата |
|
Запуск приложения "Autos.exe" |
Активирование главной формы на вкладке "Автомобили организации", открытие БД, отображение списка авто в БД: |
||
Добавление новой записи об автомобиле:1.Нажатие кнопки "Добавить автомобиль" |
Активизация формы для ввода информации об автомобиле "Введите информацию" |
||
2.Ввод неполной информации об авто |
|||
3.Попытка сохранения |
Сообщение о некорректности вводимых данных |
||
4.Ввод корректных данных |
|||
5.Попытка сохранения |
Сохранение успешное, запись добавлена |
||
Удаление записи об автомобиле:1. Выделение необходимой записи и нажатие на кнопку "Удалить автомобиль" |
Подтверждение на удаление |
||
2.1 Отмена подтверждения |
Запись не удалена и осталась в списке |
||
2.2 Подтверждение |
Запись удалена |
||
Просмотр норм расхода на авто:Выделение необходимой записи и нажатие на кнопку "нормы расхода топлива" |
Активизация формы содержащей нормы расхода текущего авто |
||
Удаление нормы:1. Выделение необходимой записи и нажатие на кнопку "Удалить" |
Подтверждение на удаление |
||
2.1 Отмена подтверждения |
Запись не удалена и осталась в списке |
||
2.2 Подтверждение |
Запись удалена |
||
Добавление нормы расхода:Нажатие на кнопку "Добавить" |
Активизация формы для ввода информации об автомобиле "Введите информацию" |
||
1. Ввод неполной или некорректной информаци |
|||
2. Попытка сохранения |
Сообщение об ошибке |
||
3.1 Ввод корректной информации и сохранение |
Сохранение и отображение в списке: |
||
3.2.1 Добавление нового вида названия нормы:Нажатием на кнопку "+" , расположенную возле списка норм |
Запрос названия |
||
3.2.2 Отмена либо подтверждение без указания названия или названия в виде набора пробелов |
Закрытие окна и отсутствие результата |
Да |
|
3.2.3 Ввод нового названия нормы и подтверждение |
Норма добавилась в выпадающий список |
||
Отображение списка водителей:Переключение на закладку "Водители" |
Отображение на закладке списка водителей БД |
||
Удаление водителя:1. Выделение водителя из списка2. Нажатие на кнопку "Удалить" |
Запрос подтверждения |
||
3.1 Отмена подтверждения |
Водитель остался в списке |
Да |
|
3.2 Подтверждение удаления |
Водитель был удален из БД и исчез из списка |
||
Добавление водителя:1. Нажатие на кнопку "Добавить …" |
Запрос ФИО водителя |
||
2.1 Указание ФИО и подтверждение |
Водитель добавлен |
||
2.2 Отмена либо подтверждение без указания названия или названия в виде набора пробелов |
Закрытие окна запроса и отсутствие результата |
Да |
|
Отображение списка путевых листов:Переключение на закладку "Путевые листы" |
Отображение на закладке списка путевых листов из БД |
||
Удаление водителя:1. Выделение листа из списка2. Нажатие на кнопку "Удалить…" |
Запрос подтверждения |
||
3.1 Отмена подтверждения |
Путевой лист остался в списке |
Да |
|
3.2 Подтверждение удаления |
Водитель был удален из БД и исчез из списка |
Да |
|
Добавление путевого листа:Путем нажатия на кнопку "Добавить…" |
Отображение формы для заполнения информации о путевом |
||
2. Ввод некорректных или неполных данных и попытка сохранения |
Отображение сообщения об ошибке |
||
3. Ввод полных корректных данных и сохранение |
Путевой создан и появился в списке |
||
Редактирование содержимого путевого листаНажать на кнопку "Содержимое" |
Отображение формы содержимого путевого листа |
||
Удаление записи из содержимого:1. Выделение записи2. Нажатие на кнопку "Удалить" |
Запрос подтверждение |
||
3.1 Отмена |
Запись не удалена |
Да |
|
3.2 Подтверждение |
Запись удалена |
||
Добавление записи содержимого путевого листаНажатие на кнопку добавить |
Активация формы для новой записи |
||
1.Указание неполных или некорректных данных и попытка сохранения |
Сообщение об ошибке |
||
2. Указание корректных данных и попытка сохранения |
Запись добавлена |
||
Формирование отчета о расходе:1. Переход на вкладку "Отчет о расходе"2. Указание периода3. Нажатие на кнопку "Сформировать …" |
Отчет сформирован и открыт |
При проведении полного тестирования был выполнен конкретный пример действий пользователя и описаны результаты, которые должны быть получены при работе программного продукта. Были описаны все возможные действия пользователя и реакции программного продукта, которые были ожидаемы и соответствовали запланированным в процессе проектирования.
6. Применение
программа учет автомобиль вычислительный
6.1 Назначение программы
Разработанный программный продукт "Autos.exe", предназначен для автоматизации процесса расчета расхода топлива легковых автомобилей по данным путевых листов и норм расхода.
Программный продукт обеспечен справочной системой, которая поможет пользователю в поиске или получении справочной информации. Программный продукт обладает необходимым объемом информации для реализации поставленной задачи.
Разработанное приложение имеет понятный интерфейс, довольно просто в применении, но в тоже время позволяет уменьшить затраты времени и материальных ресурсов, используемых при расчете за счет автоматизации расчетных процессов или чего другого.
6.2 Условия применения
Необходимо отметить, что данное программное средство не обладает средствами, ограничивающими доступ к нему, а также средствами, препятствующими свободному распространения программы. Для работы с приложением не требуется установка дополнительных компонентов и специальных технических и программных ресурсов.
Требования к конфигурации компьютера, на котором будет использоваться программное приложение:
- процессор AMD/Intel 200 ГГц:
- оперативная память 5 Мб;
- жёсткий диск 2 Мб;
- монитор 15";
- клавиатура, совместимая с ПК;
- мышь, совместимая с ПК;
- операционная система Windows 98\2000\XP\7.
6.3 Справочная система
Справочная система для данного программного средства довольно проста. Она представляет собой описание возможных действий для работы с программой. Вся справочная информация расположена в отдельном файле справки, вызов которого осуществляется нажатием на кнопку с вопросительным знаком, расположенную в заголовке главного окна программы.
На рисунке 4 представлен вид справочного файла:
Рисунок 4 - Справочный файл Help.doc
Заключение
В рамках курсового проектирования по предмету "Основы алгоритмизации и программирование" было спроектировано и разработано программное приложение "Autos.exe", позволяющее автоматизировать процесс хранения информации о путевых листах и расчета норм расхода топлива.
Программное средство имеет ряд достоинств: простой и понятный интерфейс, небольшой объем памяти, занимаемый приложением на различных носителях информации, удобно для быстрой обработки информации.
В программе реализованы такие задачи, как: ведение БД автомобилей, водителей и путевых листов, а также расчет норм расхода топлива.
- разработана выходная форма отчета;
- данные отчета сохраняются в виде файла.
В процессе курсового проектирования программный продукт прошел функциональное и полное тестирование, которые доказали корректность выполнения всех определенных функций, отсутствие сбоев и неадекватных реакций со стороны программы.
Возможными недостатками является низкий уровень защиты данных, что и планируется доработать в последующих версиях программы.
В процессе разработки программы использовался в большом объеме тематический (по принципам расчета норм расхода топлива на предприятиях) материал и материал по программированию, что способствовало закреплению наработанных навыков и умений в этих интересных областях знаний.
Программный продукт получит практическое внедрение или использование на предприятии РУП "Витебский ДСК" завод КПД.
Литература
1 Багласова Т.Г. Методические указания по оформлению курсовых и дипломных работ. - Мн.: ТБП, 2006
2 Грибанов В.П. и др. Основы алгоритмизации и программирование. - М.: Бином, 1999
3 Культин Н.Б. Программирование в Turbo Pascal и Delphi. 2-ое изд. переработанное и дополненное. - С-Пб: БХВ-Петербург, 2008
4 Леонтьев В.П. Новейшая энциклопедия персонального компьютера. - М.: ОЛМА-ПРЕСС, 2002
5 Фаронов В.В. Delphi. Программирование на языке высокого уровня. - С-Пб: Питер, 2005
6 ГОСТ 2.106-96. ЕСКД. Текстовые документы
7 ГОСТ 19.401-2000. ЕСПД. Текст программы
8 ГОСТ 19.701-90. ЕСПД. Схемы алгоритмов, программ, данных и систем
Приложение А
Текст программы
unit UnitMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UnitData, ExtCtrls, DBCtrls, Grids, DBGrids, ComCtrls, StdCtrls,
Buttons, UnitAddAuto, UnitNorms, UnitAddList, UnitPutListContent, Math;
type
TFormMain = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
DBGrid2: TDBGrid;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
DBGrid3: TDBGrid;
BitBtn6: TBitBtn;
BitBtn7: TBitBtn;
BitBtn8: TBitBtn;
TabSheet4: TTabSheet;
DateTimePicker1: TDateTimePicker;
Label1: TLabel;
DateTimePicker2: TDateTimePicker;
Label2: TLabel;
BitBtn9: TBitBtn;
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure BitBtn5Click(Sender: TObject);
procedure BitBtn4Click(Sender: TObject);
procedure BitBtn7Click(Sender: TObject);
procedure BitBtn6Click(Sender: TObject);
procedure BitBtn8Click(Sender: TObject);
procedure BitBtn9Click(Sender: TObject);
procedure WMNCLButtonDown(var Msg : TWMNCLButtonDown); message WM_NCLBUTTONDOWN;
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormMain: TFormMain;
implementation
{$R *.dfm}
procedure TFormMain.FormShow(Sender: TObject);
begin
DataM.ADOConnection.Open;
DataM.ADOTableAutos.Open;
DataM.ADOTableVoditel.Open;
DataM.ADOTableToplivo.Open;
DataM.ADOTableVidNorma.Open;
DataM.ADOTableput_list_all.Open;
end;
procedure TFormMain.BitBtn1Click(Sender: TObject);
begin
DataM.ADOTableAutos.Insert;
if FormAddAuto.ShowModal=mrOk then
begin
DataM.ADOTableAutos.Post;
DataM.ADOTableAutos.Close;
DataM.ADOTableAutos.Open;
end
else
begin
DataM.ADOTableAutos.Cancel;
end;
end;
procedure TFormMain.BitBtn2Click(Sender: TObject);
begin
if (DataM.ADOTableAutos.RecordCount>0) then
if (MessageDlg('Действительно удалить авто из БД?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
begin
DataM.ADOQuery.Close;
DataM.ADOQuery.SQL.Text:='DELETE FROM AUTOS WHERE ID_AUTO='+DataM.ADOTableAutosId_Auto.asString;
DataM.ADOQuery.ExecSQL;
DataM.ADOQuery.Close;
DataM.ADOTableAutos.Close;
DataM.ADOTableAutos.Open;
DataM.ADOTableput_list_all.Close;
DataM.ADOTableput_list_all.Open;
end;
end;
procedure TFormMain.BitBtn3Click(Sender: TObject);
begin
if (DataM.ADOTableAutos.RecordCount>0) then
begin
FormNorms.Caption:='Нормы расхода на авто "'+DataM.ADOTableAutosMarka.Value+' г.н. '+DataM.ADOTableAutosNumber.Value+'"';
DataM.ADOTableNorms.Open;
FormNorms.ShowModal;
DataM.ADOTableNorms.Close;
end;
end;
procedure TFormMain.BitBtn5Click(Sender: TObject);
begin
if (DataM.ADOTableVoditel.RecordCount>0) then
if (MessageDlg('Действительно удалить водителя из БД?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
begin
DataM.ADOTableVoditel.Delete;
end;
end;
procedure TFormMain.BitBtn4Click(Sender: TObject);
var
fio:String;
begin
fio:=InputBox('Укажите ФИО водителя','ФИО:','');
if (trim(fio)<>'') then
begin
DataM.ADOTableVoditel.Insert;
DataM.ADOTableVoditelFIO.Value:=fio;
DataM.ADOTableVoditel.Post;
end;
end;
procedure TFormMain.BitBtn7Click(Sender: TObject);
begin
if (DataM.ADOTableput_list_all.RecordCount>0) then
if (MessageDlg('Действительно удалить путевой лист из БД?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
begin
DataM.ADOQuery.Close;
DataM.ADOQuery.SQL.Text:='DELETE FROM PUT_LISTS WHERE ID_PUT_LIST='+DataM.ADOTableput_list_allId_Put_list.asString;
DataM.ADOQuery.ExecSQL;
DataM.ADOQuery.Close;
DataM.ADOTableput_list_all.Close;
DataM.ADOTableput_list_all.open;
end;
end;
procedure TFormMain.BitBtn6Click(Sender: TObject);
begin
DataM.ADOTableput_list_all.Insert;
DataM.ADOTableput_list_allData_start.Value:=Date;
DataM.ADOTableput_list_allData_end.Value:=Date;
FormAddList.DateTimePicker1.Date:=Date;
FormAddList.DateTimePicker2.Date:=Date;
if FormAddList.ShowModal=mrOk then
begin
DataM.ADOTableput_list_all.Post;
DataM.ADOTableput_list_all.Close;
DataM.ADOTableput_list_all.open;
end
else
begin
DataM.ADOTableput_list_all.Cancel;
end;
end;
procedure TFormMain.BitBtn8Click(Sender: TObject);
begin
if (DataM.ADOTableput_list_all.RecordCount>0) then
begin
FormPutListsContent.Caption:='Содержимое путевого листа №'+DataM.ADOTableput_list_allNumber.AsString+' для '+DataM.ADOTableput_list_allauto.AsString;
DataM.ADOTablePut_list_content.Open;
FormPutListsContent.ShowModal;
DataM.ADOTablePut_list_content.Close;
end;
end;
procedure TFormMain.BitBtn9Click(Sender: TObject);
var
f:TextFile;
i:Integer;
begin
DataM.ADOStoredProcReport.Close;
DataM.ADOStoredProcReport.Parameters.FindParam('data_start_param').Value:=StrToDate(DateToStr(DateTimePicker1.Date));
DataM.ADOStoredProcReport.Parameters.FindParam('data_end_param').Value:=StrToDate(DateToStr(DateTimePicker2.Date));
DataM.ADOStoredProcReport.open;
DataM.ADOStoredProcAllToplivo.Close;
DataM.ADOStoredProcAllToplivo.Parameters.FindParam('data_start_param').Value:=StrToDate(DateToStr(DateTimePicker1.Date));
DataM.ADOStoredProcAllToplivo.Parameters.FindParam('data_end_param').Value:=StrToDate(DateToStr(DateTimePicker2.Date));
DataM.ADOStoredProcAllToplivo.open;
AssignFile(f,'report.txt');
Rewrite(f);
writeln(f,'Расход топлива за период: ',DateToStr(DateTimePicker1.Date),' - ',DateToStr(DateTimePicker2.Date));
i:=1;
if (DataM.ADOStoredProcReport.RecordCount>0) then
begin
DataM.ADOStoredProcReport.RecNo:=1;
while (not DataM.ADOStoredProcReport.Eof) do
begin
writeln(f,' ',i,'. ',DataM.ADOStoredProcReportMarka.asString,' г.н.', DataM.ADOStoredProcReportNumber.AsString,' ', DataM.ADOStoredProcReportNaim_toplivo.Asstring,' - ', floatToStr(RoundTo(DataM.ADOStoredProcReportrasxod.Value,-2)));
DataM.ADOStoredProcReport.Next;
inc(i);
end;
i:=1;
writeln(f,'Итого по видам топлива:');
DataM.ADOStoredProcAllToplivo.RecNo:=1;
while (not DataM.ADOStoredProcAllToplivo.Eof) do
begin
writeln(f,' ',i,'. ', DataM.ADOStoredProcAllToplivoNaim_toplivo.AsString,' - ', floatToStr(RoundTo(DataM.ADOStoredProcAllToplivoall_rasxod.Value,-2)));
DataM.ADOStoredProcAllToplivo.Next;
inc(i);
end;
end;
CloseFile(f);
DataM.ADOStoredProcReport.Close;
DataM.ADOStoredProcAllToplivo.Close;
WinExec('notepad.exe report.txt',1);
end;
procedure TFormMain.WMNCLButtonDown(var Msg: TWMNCLButtonDown);
begin
if Msg.HitTest=HTHELP then
showMessage('fsdfsfsd');
else
inherited;
end;
end.
unit UnitNorms;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UnitData, Grids, DBGrids, StdCtrls, Buttons, UnitAddNorma;
type
TFormNorms = class(TForm)
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
procedure BitBtn2Click(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormNorms: TFormNorms;
implementation
uses DB;
{$R *.dfm}
procedure TFormNorms.BitBtn2Click(Sender: TObject);
begin
if (DataM.ADOTableNorms.RecordCount>0) then
if (MessageDlg('Действительно удалить норму для авто из БД?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
begin
DataM.ADOQuery.Close;
DataM.ADOQuery.SQL.Text:='DELETE FROM NORMS WHERE ID_NORMA='+DataM.ADOTableNormsId_norma.asString;
DataM.ADOQuery.ExecSQL;
DataM.ADOQuery.Close;
DataM.ADOTableNorms.Close;
DataM.ADOTableNorms.Open;
end;
end;
procedure TFormNorms.BitBtn1Click(Sender: TObject);
begin
DataM.ADOTableNorms.Insert;
DataM.ADOTableNormsID_Auto.Value:=DataM.ADOTableAutosId_Auto.Value;
DataM.ADOTableNormsStart_date.Value:=Date;
FormAddNorma.DateTimePicker1.Date:=Date;
if FormAddNorma.ShowModal=mrOk then
begin
DataM.ADOTableNorms.Post;
end
else
begin
DataM.ADOTableNorms.Cancel;
end;
DataM.ADOTableNorms.Close;
DataM.ADOTableNorms.Open;
end;
end.
unit UnitPutListContent;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, UnitData, Grids, DBGrids, UnitAddPutListContent;
type
TFormPutListsContent = class(TForm)
BitBtn2: TBitBtn;
BitBtn1: TBitBtn;
DBGrid1: TDBGrid;
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormPutListsContent: TFormPutListsContent;
implementation
uses DB;
{$R *.dfm}
procedure TFormPutListsContent.BitBtn1Click(Sender: TObject);
begin
DataM.ADOTablePut_list_content.Insert;
DataM.ADOTablePut_list_contentId_put_list.Value:=DataM.ADOTableput_list_allId_Put_list.Value;
DataM.ADOTablePut_list_contentData.Value:=Date;
DataM.ADONormsForAutoByDate.Parameters.FindParam('id_auto_param').Value:=DataM.ADOTableput_list_allId_Auto.Value;
DataM.ADONormsForAutoByDate.Parameters.FindParam('date_param').Value:=DataM.ADOTablePut_list_contentData.Value;
DataM.ADONormsForAutoByDate.Open;
FormAddPutListContent.DateTimePicker1.Date:=Date;
if FormAddPutListContent.ShowModal=mrOk then
begin
DataM.ADOTablePut_list_content.Post;
end
else
begin
DataM.ADOTablePut_list_content.Cancel;
end;
DataM.ADOTablePut_list_content.Close;
DataM.ADOTablePut_list_content.Open;
end;
procedure TFormPutListsContent.BitBtn2Click(Sender: TObject);
begin
if (DataM.ADOTablePut_list_content.RecordCount>0) then
if (MessageDlg('Действительно удалить запись из путевого листа?',mtConfirmation,[mbYes,mbNo],0)=mrYes) then
begin
DataM.ADOQuery.Close;
DataM.ADOQuery.SQL.Text:='DELETE FROM Put_list_content WHERE ID='+DataM.ADOTablePut_list_contentId.AsString;
DataM.ADOQuery.ExecSQL;
DataM.ADOQuery.Close;
DataM.ADOTablePut_list_content.Close;
DataM.ADOTablePut_list_content.open;
end;
end;
end.
unit UnitAddAuto;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UnitData, StdCtrls, Buttons, Mask, DBCtrls;
type
TFormAddAuto = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
DBEdit2: TDBEdit;
DBEdit3: TDBEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
Label4: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
SpeedButton1: TSpeedButton;
procedure BitBtn1Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAddAuto: TFormAddAuto;
implementation
{$R *.dfm}
procedure TFormAddAuto.BitBtn1Click(Sender: TObject);
begin
if (trim(DataM.ADOTableAutosMarka.Value)='') then
begin
ShowMessage('Укажите марку авто!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DataM.ADOTableAutosNumber.Value)='') then
begin
ShowMessage('Укажите регистрационный номер авто!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DBEdit3.Text)='') then
begin
ShowMessage('Укажите пробег!!!');
ModalResult:=mrNone;
exit;
end;
if (DataM.ADOTableAutosStart_Statement.Value<0) then
begin
ShowMessage('Пробег не может быть отрицательным!!!');
ModalResult:=mrNone;
end;
if (trim(DBLookupComboBox1.Text)='') then
begin
ShowMessage('Укажите вид топлива!!!');
ModalResult:=mrNone;
end;
end;
procedure TFormAddAuto.SpeedButton1Click(Sender: TObject);
var
toplivo:String;
begin
toplivo:=InputBox('Укажите название топлива','Топливо:','');
if (trim(toplivo)<>'') then
begin
DataM.ADOTableToplivo.Insert;
DataM.ADOTableToplivoNaim_toplivo.Value:=toplivo;
DataM.ADOTableToplivo.Post;
end;
end;
end.
unit UnitAddList;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, UnitData, ComCtrls, Mask, DBCtrls;
type
TFormAddList = class(TForm)
Label1: TLabel;
DBEdit1: TDBEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DateTimePicker1: TDateTimePicker;
DBEdit4: TDBEdit;
Label4: TLabel;
Label2: TLabel;
DBEdit2: TDBEdit;
DateTimePicker2: TDateTimePicker;
Label3: TLabel;
Label5: TLabel;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
procedure DateTimePicker1Change(Sender: TObject);
procedure DateTimePicker2Change(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAddList: TFormAddList;
implementation
{$R *.dfm}
procedure TFormAddList.DateTimePicker1Change(Sender: TObject);
begin
DataM.ADOTableput_list_allData_start.Value:=StrToDate(DateToStr(DateTimePicker1.Date));
end;
procedure TFormAddList.DateTimePicker2Change(Sender: TObject);
begin
DataM.ADOTableput_list_allData_end.Value:=StrToDate(DateToStr(DateTimePicker2.Date));
end;
procedure TFormAddList.BitBtn1Click(Sender: TObject);
begin
if (trim(DBEdit4.Text)='') then
begin
ShowMessage('Укажите номер путевого листа!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DBLookupComboBox1.Text)='') then
begin
ShowMessage('Укажите водителя!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DBLookupComboBox2.Text)='') then
begin
ShowMessage('Укажите автомобиль!!!');
ModalResult:=mrNone;
exit;
end;
end;
end.
unit UnitAddNorma;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, Mask, DBCtrls, Unitdata, ComCtrls;
type
TFormAddNorma = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
DBEdit3: TDBEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DateTimePicker1: TDateTimePicker;
DBLookupComboBox1: TDBLookupComboBox;
SpeedButton1: TSpeedButton;
procedure BitBtn1Click(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAddNorma: TFormAddNorma;
implementation
{$R *.dfm}
procedure TFormAddNorma.BitBtn1Click(Sender: TObject);
begin
if (trim(DBEdit1.Text)='') then
begin
ShowMessage('Укажите дату вступления в силу нормы!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DBLookupComboBox1.Text)='') then
begin
ShowMessage('Укажите наименование нормы!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DBEdit3.Text)='') then
begin
ShowMessage('Укажите норму расхода!!!');
ModalResult:=mrNone;
exit;
end;
if (DataM.ADOTableNormsRasxod_na_100.Value<0) then
begin
ShowMessage('Норма расхода не может быть отрицательной!!!');
ModalResult:=mrNone;
end;
end;
procedure TFormAddNorma.DateTimePicker1Change(Sender: TObject);
begin
DataM.ADOTableNormsStart_date.Value:=StrToDate(DateToStr(DateTimePicker1.Date));
end;
procedure TFormAddNorma.SpeedButton1Click(Sender: TObject);
var
norma:String;
begin
norma:=InputBox('Укажите название вида нормы','Вид нормы:','');
if (trim(norma)<>'') then
begin
DataM.ADOTableVidNorma.Insert;
DataM.ADOTableVidNormavid_norma.Value:=norma;
DataM.ADOTableVidNorma.Post;
end;
end;
end.
unit UnitAddPutListContent;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, UnitData, DBCtrls, ComCtrls, StdCtrls, Buttons, Mask;
type
TFormAddPutListContent = class(TForm)
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
DBEdit1: TDBEdit;
DBEdit3: TDBEdit;
BitBtn1: TBitBtn;
BitBtn2: TBitBtn;
DateTimePicker1: TDateTimePicker;
DBLookupComboBox1: TDBLookupComboBox;
procedure BitBtn1Click(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
FormAddPutListContent: TFormAddPutListContent;
implementation
{$R *.dfm}
procedure TFormAddPutListContent.BitBtn1Click(Sender: TObject);
begin
if (trim(DBEdit1.Text)='') then
begin
ShowMessage('Укажите дату!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DBLookupComboBox1.Text)='') then
begin
ShowMessage('Укажите наименование нормы!!!');
ModalResult:=mrNone;
exit;
end;
if (trim(DBEdit3.Text)='') then
begin
ShowMessage('Укажите расстояние!!!');
ModalResult:=mrNone;
exit;
end;
if (DataM.ADOTablePut_list_contentDistance.Value<0) then
begin
ShowMessage('Расстояние не может быть отрицательным!!!');
ModalResult:=mrNone;
end;
end;
procedure TFormAddPutListContent.DateTimePicker1Change(Sender: TObject);
begin
DataM.ADOTablePut_list_contentData.Value:=StrToDate(DateToStr(DateTimePicker1.Date));
DataM.ADONormsForAutoByDate.Close;
DataM.ADONormsForAutoByDate.Parameters.FindParam('date_param').Value:=DataM.ADOTablePut_list_contentData.Value;
DataM.ADONormsForAutoByDate.Open;
end;
end.
unit UnitData;
interface
uses
SysUtils, Classes, DB, ADODB, MATH;
type
TDataM = class(TDataModule)
ADOConnection: TADOConnection;
ADOTableAutos: TADOTable;
ADOTableAutosId_Auto: TAutoIncField;
ADOTableAutosMarka: TWideStringField;
ADOTableAutosNumber: TWideStringField;
ADOTableAutosStart_Statement: TIntegerField;
DataSourceAutos: TDataSource;
ADOTableNorms: TADOTable;
ADOTableNormsId_norma: TAutoIncField;
ADOTableNormsID_Auto: TIntegerField;
ADOTableNormsStart_date: TDateTimeField;
ADOTableNormsNaim_norma: TWideStringField;
ADOTableNormsRasxod_na_100: TFloatField;
DataSourceNorms: TDataSource;
ADOTableVoditel: TADOTable;
ADOTableVoditelId_voditel: TAutoIncField;
ADOTableVoditelFIO: TWideStringField;
DataSourceVoditel: TDataSource;
ADOTableput_list_all: TADOTable;
ADOTableput_list_allId_Put_list: TAutoIncField;
ADOTableput_list_allNumber: TIntegerField;
ADOTableput_list_allId_voditel: TIntegerField;
ADOTableput_list_allId_Auto: TIntegerField;
ADOTableput_list_allData_start: TDateTimeField;
ADOTableput_list_allData_end: TDateTimeField;
ADOTableput_list_allFIO: TWideStringField;
ADOTableput_list_allauto: TWideStringField;
DataSourceput_list_all: TDataSource;
ADOTableAutosAutoFull: TStringField;
ADOQuery: TADOQuery;
ADOTableAutosId_vid_toplivo: TIntegerField;
ADOTableAutosNaim_toplivo: TWideStringField;
ADOTableToplivo: TADOTable;
DataSourcetoplivo: TDataSource;
ADOTableToplivoId_vid_toplivo: TAutoIncField;
ADOTableToplivoNaim_toplivo: TWideStringField;
ADOTableVidNorma: TADOTable;
DataSourceVidNorma: TDataSource;
ADOTableVidNormaId_vid_norma: TAutoIncField;
ADOTableVidNormavid_norma: TWideStringField;
ADOTableNormsId_vid_norma: TIntegerField;
ADOTablePut_list_content: TADOTable;
DataSourcePut_list_content: TDataSource;
ADOTablePut_list_contentId: TAutoIncField;
ADOTablePut_list_contentId_put_list: TIntegerField;
ADOTablePut_list_contentData: TDateTimeField;
ADOTablePut_list_contentId_norma: TIntegerField;
ADOTablePut_list_contentDistance: TFloatField;
ADOTablePut_list_contentvid_norma: TWideStringField;
ADONormsForAutoByDate: TADOStoredProc;
ADONormsForAutoByDateId_norma: TAutoIncField;
ADONormsForAutoByDatevid_norma: TWideStringField;
ADONormsForAutoByDatedata: TDateTimeField;
DataSourceNormsForAuto: TDataSource;
ADOStoredProcReport: TADOStoredProc;
ADOStoredProcReportAll_distance: TFloatField;
ADOStoredProcReportId_Auto: TAutoIncField;
ADOStoredProcReportMarka: TWideStringField;
ADOStoredProcReportNumber: TWideStringField;
ADOStoredProcReportNaim_toplivo: TWideStringField;
ADOStoredProcReportrasxod: TFloatField;
ADOStoredProcAllToplivo: TADOStoredProc;
ADOStoredProcAllToplivoNaim_toplivo: TWideStringField;
ADOStoredProcAllToplivoall_rasxod: TFloatField;
procedure ADOTableNormsRasxod_na_100GetText(Sender: TField;
Подобные документы
Описание предметной области и прототипа программного продукта. Математическая модель работы программы. Последовательность работы пользователя с программой. Зоны ответственности разработчиков. Программные коды и описание файлов готовой программы.
курсовая работа [4,5 M], добавлен 02.06.2016Определение секундного расхода жидкости, охлаждающей двигатель и количества теплоты, которая относится от двигателя ежесекундно. Разработка программы расчета данных характеристик для воды и тосола для различных автомобилей с использованием средств Pascal.
курсовая работа [104,5 K], добавлен 26.02.2014Расчет количества израсходованного топлива и веса перевезенного груза каждым водителем. Межтабличные связи для автоматического формирования ведомости расхода топлива. Классификации и основные характеристики основных видов памяти персонального компьютера.
контрольная работа [1,3 M], добавлен 05.06.2014Системы дистанционного учета и контроля потребления воды, разработанные различными компаниями. Техническое задание на создание автоматизированной информационной системы учета расхода воды в ООО "Водоснабжение". Экономическая эффективность проекта.
дипломная работа [3,7 M], добавлен 21.01.2015Разработка программного продукта "ИС Автотранспорт". Автоматизация функционирования автопарка и временного склада товаров, учета заявок клиентов и заполнения путевых листов. Реляционная модель базы данных. Описание функционирования программного продукта.
дипломная работа [1,8 M], добавлен 14.03.2017Принципы разработки программы для хранения информации о клиентах, которым предоставляются услуги проката автомобилей, а так же для осуществления оперативного поиска необходимой информации. Структура программного модуля. Описание руководства программиста.
курсовая работа [872,3 K], добавлен 10.06.2014Порядок автоматизации расчетов себестоимости и длительности программного обеспечения производственного предприятия. Выбор языка программирования и системы управления базами данных. Разработка алгоритмов расчета себестоимости программного обеспечения.
дипломная работа [1,7 M], добавлен 13.06.2017Программа для решения транспортной задачи. Метод потенциалов, его математический смысл и порядок действий по его применению. Математические методы решения транспортных задач. Вычисление стоимости перевозок, расхода топлива, общей прибыли и окупаемости.
курсовая работа [33,7 K], добавлен 20.11.2008Разработка базы данных организации, которая занимается ремонтом автомобилей и реализована в виде программного продукта. Моделирование структуры баз данных с использованием CASE-средств средствами языка SQL. Разработка логической и физической модели базы.
курсовая работа [2,3 M], добавлен 21.03.2010Программное обеспечение по автоматизации работы автосервиса. Электронные информационные базы данных по диагностике и ремонту, геометрическим размерам автомобилей. Каталоги запчастей, справочники нормо-часов. Программы для ведения управленческого учета.
реферат [509,0 K], добавлен 23.03.2012