База данных "Магазин по продаже автомобилей"

Проектирование базы данных "Магазин автомобилей" в среде СУБД Microsoft Office Access. Схема решения задачи. Архитектура программно-аппаратного комплекса. Логика работы программы. Минимальные системные требования, разработка руководства пользователя.

Рубрика Программирование, компьютеры и кибернетика
Вид курсовая работа
Язык русский
Дата добавления 07.10.2015
Размер файла 2,1 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

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

Размещено на http://www.allbest.ru/

Содержание

  • Введение
  • 1. Теоретическая часть
  • 1.1 СУБД Microsoft Office Access
  • 1.2 Технология ADO
  • 1.3 Язык SQL
  • 2. Практическая часть
  • 2.1 Цель работы
  • 2.3 Проектирование БД "Магазин автомобилей" в среде СУБД Microsoft Office Access
  • 2.4 Формализация и постановка задачи
  • 2.5 Разработка ER-диаграмм
  • 2.6 Задание на курсовой проект
  • 2.7 Схема решения задачи
  • 3. Логика работы программы
  • 3.1 Архитектура программно-аппаратного комплекса
  • 3.2 Минимальные системные требования
  • 3.3 Руководство пользователя
  • Заключение
  • Список использованной литературы
  • Приложения

Введение

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

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

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

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

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

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

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

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

1.1 СУБД Microsoft Office Access

Microsoft Access является настольной СУБД (система управления базами данных) реляционного типа. Достоинством Access является то, что она имеет очень простой графический интерфейс, который позволяет не только создавать собственную базу данных, но и разрабатывать приложения, используя встроенные средства.

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

Для выполнения почти всех основных операций Access предлагает большое количество Мастеров (Wizards), которые делают основную работу за пользователя при работе с данными и разработке приложений, помогают избежать рутинных действий и облегчают работу неискушенному в программировании пользователю.

Особенности MS Access, отличающиеся от представления об "идеальной" реляционной СУБД. Создание многопользовательской БД Access и получение одновременного доступа нескольких пользователей к общей базе данных возможно в локальной одноранговой сети или в сети с файловым сервером. Сеть обеспечивает аппаратную и программную поддержку обмена данными между компьютерами. Access следит за разграничением доступа разных пользователей к БД и обеспечивает защиту данных. При одновременной работе. Так как Access не является клиент серверной СУБД, возможности его по обеспечению многопользовательской работы несколько ограничены. Обычно для доступа к данным по сети с нескольких рабочих станций, файл БД Access (с расширением *. mdb или *. accdb) выкладывается на файловый сервер. При этом обработка данных ведется в основном на клиенте - там, где запущено приложение, в силу принципов организации файловых СУБД. Этот фактор ограничивает использование Access для обеспечения работы множества пользователей (более 15-20) и при большом количестве данных в таблицах, так как многократно возрастает нагрузка не сеть.

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

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

Однако при известных недостатках MS Access обладает большим количеством преимуществ по сравнению с системами подобного класса.

В первую очередь можно отметить распространенность, которая обусловлена тем, что Access является продуктом компании Microsoft, программное обеспечение и операционные системы которой использует большая часть пользователей персональных компьютеров. MS Access полностью совместим с операционной системой Windows, постоянно обновляется производителем, поддерживает множество языков.

В целом MS Access предоставляет большое количество возможностей за сравнительно небольшую стоимость. Также необходимо отметить ориентированность на пользователя с разной профессиональной подготовкой, что выражается в наличии большого количества вспомогательных средств (Мастеров, как уже отмечалось), развитую систему справки и понятный интерфейс. Эти средства облегчают проектирование, создание БД и выборку данных из нее.

база продажа автомобиль пользователь

MS Access предоставляет в распоряжение непрограммирующему пользователю разнообразные диалоговые средства, которые позволяют ему создавать приложения не прибегая к разработке запросов на языке SQL или к программированию макросов или модулей на языке VBA.

Access обладает широкими возможностями по импорту/экспорту данных в различные форматы, от таблиц Excel и текстовых файлов, до практически любой серверной СУБД через механизм ODBC.

Еще одно немаловажное преимущество MS Access заключается в развитых встроенных средствах разработки приложений. Большинство приложений, распространяемых среди пользователей, содержит тот или иной объем кода VBA (Visual Basic for Applications). Поскольку VBA является единственным средством для выполнения многих стандартных задач в Access (работа с переменными, построение команд SQL во время работы программы, обработка ошибок, использование Windows API и т.д.), для создания более-менее сложных приложений необходимо его знание и знание объектной модели MS Access.

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

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

1.2 Технология ADO

Компоненты для работы с Microsoft ActiveX Data Objects (ADO) впервые появились в среде Delphi версии 5.

ADO - это технология стандартного обращения к реляционным структурам данных от Microsoft. Она аналогична BDE по назначению и сродни ему по возможностям.

В основе архитектуры ADO лежит объектная модель компонентов COM (Component Object Model). Все объекты и интерфейсы ADO представляют собой интерфейсы и объекты СОМ.

Модель СОМ является базовой для технологий ActiveX и OLE. Проиллюстрировать это отношение можно на примере объекта TObject, как базового объекта для VC L Delphi.

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

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

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

Технология СОМ имеет два явных плюса:

· создание СОМ-объектов не зависит от языка программирования. Таким образом, СОМ-объекты могут быть написаны на различных языках;

· СОМ-объекты пригодны для использования в любой среде программирования под Windows. В число этих сред входятDelphi, Visual С++, С++ Builder, Visual Basic и многие другие.

ПРИМЕЧАНИЕ: Хотя технология СОМ имеет очевидные достоинства, ей свойственны также и минусы, среди которых можно выделить зависимость от платформы. Эта технология применима только в операционной системе Windows и на платформе Intel.

Технология СОМ реализуется с помощью СОМ-библиотек (такие файлы операционной системы, как OLE32. DLL и OLEAUT32. DLL). СОМ-библиотеки содержат набор стандартных интерфейсов, которые отвечают за функциональность СОМ-объекта, а также небольшой набор функций API, обеспечивающих создание СОМ-объектов и управление ими.

В Delphi воплощение и поддержка технологии СОМ называется Delphi ActiveX framework, DAX. Реализация DAX описана в модуле AxCtrls.

Перечислим основные интерфейсы ADO и кратко поясним их назначение:

· интерфейс IConnection выполняет следующие функции:

· осуществляет связь с сервером;

· управляет транзакциями;

· получает информацию о произошедших ошибках (свойство Errors);

· получает информацию о схеме данных (таблицы, поля и т.д.);

· интерфейс IRecordset (на нижнем уровне ADO это IRowset) является аналогом TDataSet в Delphi и поддерживает текущее положение и перемещение курсора, закладки (Bookmarks), чтение, изменение и удаление записей и т.п.;

· интерфейс IReld позволяет получать значение поля, его тип, длину и другие сведения о поле данных;

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

· интерфейс IProperty позволяет получать и устанавливать параметры, специфические для провайдера данных.

Для работы с механизмом ADO в Delphi 7 предназначены семь стандартных компонентов, расположенных на закладке ADO палитры компонентов

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

Следующий компонент закладки ADO называется ADOCommand. Он предназначен для выполнения SQL-команды без возврата результирующего набора данных

Третий компонент закладки ADO - ADODataSet. Его назначение - получение набора данных из одной или нескольких таблиц базы данных. Кроме того, он также позволяет работать с возвращенным набором данных визуальным компонентам, предназначенным для отображения данных. Это наиболее общий компонент для работы с набором данных, который может использоваться вместо компонентов ADOTable, ADOQuery или ADOStoredProc.

Следующий компонент закладки ADO называется ADOTable. Он является аналогом компонента Table, расположенного на закладке BDE, и предназначен для доступа к таблице с помощью механизма ADO. Компонент ADOTable имеет свойства, которые мы уже рассматривали ранее в компонентах Table и ADODataSet, поэтому мы не будем возвращаться к ним еще раз.

Компонент ADOQuery представляет собой запрос к базе данных. Это может быть как запрос, в результате которого возвращаются данные из базы (например, SELECT), так и запрос, не формирующий результирующего набора данных (например, INSERT). Компонент аналогичен компоненту Query из BDE. Все основные его свойства мы уже рассматривали в описании свойств компонентов Query н ADODataSet

Компонент ADOStoredProc предназначен для вызова процедуры, хранимой на сервере базы данных. В отличие от BDE и InterBase хранимые процедуры в ADO могут возвращать набор данных, поэтому компонент такого типа является потомком DataSet и может выступать источником данных в компонентах типа DataSource.

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

ПРИМЕЧАНИЕ: Маршалингом данных называется механизм, который позволяет клиенту получать доступ к объектам, расположенным в другом адресном пространстве или на другом компьютере.

На события в ADO возлагаются те же задачи, что и на события в VCL. Многие из событий ADO имеют аналоги в VCL, и соответствующие компоненты вызывают из событий ADO события VCL.

Все события в ADO условно разделим на несколько групп: события соединения, события транзакции, события выполнения команд. События соединения:

· OnWillConnect - вызывается перед установкой соединения;

· OnConnectComplete - вызывается после установки соединения;

· OnDisconnect - активируется при разрыве соединения. Эти события инкапсулированы в компоненте ADOConnection. События транзакции:

· OnBeginTransComplete - происходят при выполнении BeginTrans;

· OnCommitTransComplete - происходят при выполнении CommitTrans;

· OnRollbackTransComplete - вызываются при выполнении RollbackTrans.

События данной группы инкапсулированы в компоненте ADOConnection. События выполнения команд OnWillExecute и OnExecuteComplete вызываются перед выполнением команды и после него соответственно.

Эти события "зашиты" в компоненте ADOConnection, а не в ADOCommand, как можно было бы предположить. Указанная "странность" связана с тем, что в ADO объекта команды как такового нет, и по этой причине он не может получать сообщения.

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

В ADO есть и события, связанные с набором данных, а не с соединением, как вышеописанные. Они инкапсулированы в компоненты, представляющие наборы данных: ADODataSet, ADOTable, ADOQuery и ADOStoredProc.

Эти события можно условно разбить на три группы.

События выборки данных.

· OnFetchProgress - многократно вызывается в процессе выборки данных;

· OnFetchComplete - завершение выборки.

· Уведомления об изменении положения текущей записи в наборе:

· OnWillMove - вызывается до изменения положения текущей записи. Позволяет отменить действие;

· OnMoveComplete - вызывается после изменения положения текущей записи;

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

Уведомления об изменении набора данных.

· OnWillChangeField, OnFieldChangeComplete - вызываются до и после изменения текущей записи набора;

· OnWillChangeRecord, OnRecordChangeComplete - вызываются до и после изменения, добавления, удаления строки набора и при отмене этих действий;

· OnWillChangeRecordset, OnRecordsetChangeComplete - вызываются до и после открытия, закрытия, повторного запроса и синхронизации набора данных.

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

В ADO есть возможность, не имеющая аналогов ни в BDE, ни в InterBase. Это асинхронное выполнение операций с сервером. Асинхронно могут выполняться:

· установка соединения с сервером (Connection);

· выполнение команды (Execute);

· выборка данных (Fetch).

Для включения этого режима необходимо присвоить свойству ConnectOptions компонента ADOConnection значение coAsyncConnect.

При установлении соединения происходит следующее:

· вызывается обработчик события OnWillConnect;

· управление передается программе.

· После завершения соединения, как успешного, так и ошибочного, вызывается обработчик события OnConnectComplete.

Надо заметить, что многие компоненты ADO при активизации или выполнении отрабатывают команду на языке SQL. Это такие компоненты, как ADOCommand, ADODataSet, ADOTable, ADOQuery и ADOStoredProc. Для асинхронного выполнения команды установите в свойстве ExecuteOptions значение coAsyncExecute. При выполнении команды будет происходить следующее:

· вызовется обработчик события OnWillExecute;

· управление передастся программе.

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

1.3 Язык SQL

SQL (англ. structured query language - "структурированный язык запросов") - формальный непроцедурный язык программирования, применяемый для создания, модификации и управления данными в произвольной реляционной базе данных, управляемой соответствующей системой управления базами данных (СУБД). SQL основывается на исчислении кортежей.

В начале 1970-х годов в одной из исследовательских лабораторий компании IBM была разработана экспериментальная реляционная СУБД IBM System R, для которой затем был создан специальный язык SEQUEL, позволявший относительно просто управлять данными в этой СУБД. Аббревиатура SEQUEL расшифровывалась как Structured English QUEry Language - "структурированный английский язык запросов". Позже по юридическим соображениям [2] язык SEQUEL был переименован в SQL. Когда в 1986 году первый стандарт языка SQL был принят ANSI (American National Standards Institute), официальным произношением стало [,es kju: ' el] - эс-кью-эл. Несмотря на это, даже англоязычные специалисты зачастую продолжают читать SQL как сиквел (по-русски часто говорят "эс-ку-эль" или используют жаргонизм "скуль").

Целью разработки было создание простого непроцедурного языка, которым мог воспользоваться любой пользователь, даже не имеющий навыков программирования. Собственно разработкой языка запросов занимались Дональд Чэмбэрлин (Donald D. Chamberlin) и Рэй Бойс (Ray Boyce). Пэт Селинджер (Pat Selinger) занималась разработкой стоимостного оптимизатора (cost-based optimizer), Рэймонд Лори (Raymond Lorie) занимался компилятором запросов.

Стоит отметить, что SEQUEL был не единственным языком подобного назначения. В Калифорнийском Университете Беркли была разработана некоммерческая СУБД Ingres (являвшаяся, между прочим, дальним прародителем популярной сейчас некоммерческой СУБД PostgreSQL), которая являлась реляционной СУБД, но использовала свой собственный язык QUEL, который, однако, не выдержал конкуренции по количеству поддерживающих его СУБД с языком SQL.

Первыми СУБД, поддерживающими новый язык, стали в 1979 году Oracle V2 для машин VAX от компании Relational Software Inc. (впоследствии ставшей компанией Oracle) и System/38 от IBM, основанная на System/R.

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

Изначально SQL был основным способом работы пользователя с базой данных и позволял выполнять следующий набор операций:

· создание в базе данных новой таблицы;

· добавление в таблицу новых записей;

· изменение записей;

· удаление записей;

· выборка записей из одной или нескольких таблиц (в соответствии с заданным условием);

· изменение структур таблиц.

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

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

Каждое предложение SQL - это либо запрос данных из базы, либо обращение к базе данных, которое приводит к изменению данных в базе. В соответствии с тем, какие изменения происходят в базе данных, различают следующие типы запросов:

· запросы на создание или изменение в базе данных новых или существующих объектов (при этом в запросе описывается тип и структура создаваемого или изменяемого объекта);

· запросы на получение данных;

· запросы на добавление новых данных (записей);

· запросы на удаление данных;

· обращения к СУБД.

Основным объектом хранения реляционной базы данных является таблица, поэтому все SQL-запросы - это операции над таблицами. В соответствии с этим, запросы делятся на:

· запросы, оперирующие самими таблицами (создание и изменение таблиц);

· запросы, оперирующие с отдельными записями (или строками таблиц) или наборами записей.

· Каждая таблица описывается в виде перечисления своих полей (столбцов таблицы) с указанием

· типа хранимых в каждом поле значений;

· связей между таблицами (задание первичных и вторичных ключей);

· информации, необходимой для построения индексов.

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

· вставка новой строки;

· изменение значений полей строки или набора строк;

· удаление строки или набора строк.

Самый главный вид запроса - это запрос, возвращающий (пользователю) некоторый набор строк, с которым можно осуществить одну из трёх операций:

· просмотреть полученный набор;

· изменить все записи набора;

· удалить все записи набора.

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

Язык SQL представляет собой совокупность

· операторов,

· инструкций,

· и вычисляемых функций.

Согласно общепринятому стилю программирования, операторы (и другие зарезервированные слова) в SQL обычно рекомендуется писать прописными буквами. [5] Операторы SQL делятся на:

· операторы определения данных (Data Definition Language, DDL):

· CREATE создает объект БД (саму базу, таблицу, представление, пользователя и т.д.),

· ALTER изменяет объект,

· DROP удаляет объект;

· операторы манипуляции данными (Data Manipulation Language, DML):

· SELECT считывает данные, удовлетворяющие заданным условиям,

· INSERT добавляет новые данные,

· UPDATE изменяет существующие данные,

· DELETE удаляет данные;

· операторы определения доступа к данным (Data Control Language, DCL):

· GRANT предоставляет пользователю (группе) разрешения на определенные операции с объектом,

· REVOKE отзывает ранее выданные разрешения,

· DENY задает запрет, имеющий приоритет над разрешением;

· операторы управления транзакциями (Transaction Control Language, TCL):

· COMMIT применяет транзакцию,

· ROLLBACK откатывает все изменения, сделанные в контексте текущей транзакции,

· SAVEPOINT делит транзакцию на более мелкие участки.

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

2.1 Цель работы

Целью курсового проекта является закрепление и углубление знаний, полученных при изучении дисциплины "Базы данных”. Развитие навыков самостоятельной работы при проектировании реляционных баз данных и создании прикладных программ (приложений) для работы с реляционными базами данных.

2.2 Даталогическое проектирование

Логическое (даталогическое) проектирование - создание схемы базы данных на основе конкретной модели данных, например, реляционной модели данных. Для реляционной модели данных даталогическая модель - набор схем отношений, обычно с указанием первичных ключей, а также "связей" между отношениями, представляющих собой внешние ключи.

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

На этапе логического проектирования учитывается специфика конкретной модели данных, но может не учитываться специфика конкретной СУБД.

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

Связи между объектами данных реализуются одинаковыми реквизитами - ключами связи в соответствующих таблицах. При этом ключом связи типа 1: М всегда является уникальный ключ главной таблицы (Рисунок 3).

Рисунок 3 - Даталогическая модель

2.3 Проектирование БД "Магазин автомобилей" в среде СУБД Microsoft Office Access

В ходе проектирования БД "Магазин автомобилей " были разработаны следующие таблицы:

· Заказы

· Клиенты

· Каталог

2.4 Формализация и постановка задачи

На основании описания предметной области спроектировать базу данных ER-методом с применением диаграмм ER-типа. Разработанные в результате проектирования таблицы находятся в нормальной форме Бойса-Кодда.

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

а) ввод, редактирование и удаление записей таблиц базы данных без нарушения целостности данных, хранящихся в базе данных;

б) выборку данных по заданным условиям и предъявление результатов выборки на экране в удобном для пользователя виде;

в) обработку данных по заданному алгоритму;

г) создание заданных отчетов по базе данных.

д) вывод отчета проданных машин за 30 дней на экран и в файл

2.5 Разработка ER-диаграмм

Размещено на http://www.allbest.ru/

2.6 Задание на курсовой проект

Вариант 20

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

Магазин оформляет заказ и затем получает нужный автомобиль. Клиенту выписывается счет, в котором указывается модель автомобиля, его идентификационный номер (15 знаков), а также номера двигателя и кузова (14 знаков), цвет автомобиля и его цена. В счете обязательно указывается дата выписки счета и дата оплаты. После оплаты счета клиент получает автомобиль, о чем делается отметка в заказе (выполнен). Кроме заказов и счетов, выпускается ежемесячно отчет с данными о продаже каждой модели (количество, сумма) и общей суммой продаж.

Клиент может сделать несколько заказов. Сведения о продавце не нужны.

2.7 Схема решения задачи

Размещено на http://www.allbest.ru/

3. Логика работы программы

3.1 Архитектура программно-аппаратного комплекса

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

ADO

Использование ADO является альтернативой Borland Database Engine (BDE), обеспечивающей более эффективную работу с данными. Для использования этой возможности на вашем компьютере должна быть установлена система ADO 2.1 или более старшая версия. Кроме того должна быть установлена клиентская система доступа к данным, например, Microsoft SQL Server, а в ODBC должен иметься драйвер OLE DB для того типа баз данных, с которыми вы работаете.

Microsoft Office Access 2007

Microsoft Office Access 2007 является системой управления базами данных в которой можно создавать и редактировать базы данных.

Microsoft Office Access 2007 позволяет просматривать сведения о зависимостях между объектами базы данных. Просмотр списка объектов, используемых указанным объектом, помогает осуществлять поддержку базы данных и предотвращать ошибки, связанные с потерей источников записей.

3.2 Минимальные системные требования

· Частота процессора не менее 500 МГц

· Не менее 256 Мб оперативной памяти

· 1,5-2 Гб свободного места на жёстком диске

· Разрешение экрана не менее 1024x768 точек

· Операционная система Windows XP с SP2, Windows Server 2003 с SP2 [1] или более новые версии.

· Принтер

· Клавиатура

· Мышь

3.3 Руководство пользователя

При открытии приложения открывается главное окно программы (Рисунок 4)

Рисунок 4 - Главное окно программы

Нажав на "Оформление заказа" откроется каталог машин для выбора понравившейся машины и оформления заказа (Рисунок 5).

Рисунок 5 - Окно оформления заказа

При выборе машин можно сортировать данные по различным признакам. Для выбора понравившейся машины необходимо кликнуть двойным щелчком по строке таблицы или нажать кнопку "Оформить заказ" откроется форма по управлению заказом (Рисунок 6)

Рисунок 6 - Оформление заказа

Заполнив все необходимые поля формы и нажав на кнопку "ОК" клиенту будет выписан счет (Рисунок 7).

Рисунок 8 - Счет покупателю

Если вернуться к главное форме (Рисунок 4) и нажать на "Управление базой" то выйдет окно для работы с базой данных, ее редактирования и вывода отчетов о продаж, но прежде чем приступить к работе требуется ввести пароль (Рисунок 8).

Введем пароль для входа в базу данных и нажмем "ОК" появиться окно для управления базой

Нажав на кнопку "Редактирование таблиц" появиться форма для удаление, изменения и добавления записей в таблицу

Если вернуться в окно управления базой (Рисунок 9) и нажать на кнопку "Работа с данными" выйдет список форм для открытия. Самой первой формой является форма поиск клиента

Перейдя во вкладку "Продажи" можно увидеть продажи машин по клиентам

Перейдя по вкладку "Поиск автомобиля" откроется форма для поиска нужного автомобиля

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

Нажав на кнопку "Просроченные заказы" выйдет форма, в которой выведены только те заказы, у которых дата оплаты просрочена, эти записи можно редактировать

Если вернуться на форму "Управление базой" и нажать на вкладку "Отчеты" можно посмотреть отчет о продажах за месяц (Рисунок 16). Выбираем месяц и нажимаем "ОК".

После выбора соответствующего месяца будет выведен и сохранен в файл отчет о продажах за месяц

Заключение

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

1) просмотр и редактирование данных;

2) поиск и редактирование записей о машинах;

3) поиск и редактирование записей о клиентах;

4) Поиск и обработка заказов;

5) Печать чека;

6) Просмотр машин в магазине;

7) Просмотр отчета проданных машин за 30 дней на экране, и вывод этого отчета в файл;

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

Список использованной литературы

1. Карпова Т.С. Базы данных: модели, разработка. - СПб.: Питер, 2001, 304 с.

2. Петров В.Н. Информационные системы. - СПб.: Питер, 2002.

3. Фаронов В.В. Программирование баз данных в Delphi 7: Учебный курс. - СПб.: Питер, 2004 - 464 с.

4. Кренке Д. Теория и практика построения баз данных: [пер. с англ] / Д. Кренке. - 9 - е изд. - СПб.: Питер, 2005. - 858 с.

5. Хомоненко А.Д., Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / Под ред. проф. А.Д. Хомоненко. - СПб.: КОРОНА принт, 2000. - 416 с.

6. Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001. - 304с.

7. Ульман Дж., Уидом Дж. Введение в системы баз данных. - М.: Лори, 2000. - 374с.

8. Мейер Д. Теория реляционных баз данных. - М.: Мир, 1987. - 608с.

9. Джексон Г. Проектирование реляционных баз данных для использования с микро - ЭВМ. - М.: Мир, 1991.

10. Четвериков В.Н. и др. Базы и банки данных. - М.: Высш. шк., 1987.

11. Бойко В.В., Савинов В.М. Проектирование баз данных информационных систем. - М.: Финансы и статистика, 1989.

12. Дейт К. Введение в системы баз данных. - К.: Диалектика, 1998.

13. Хансен Г., Хансен Д. Базы данных: разработка и управление. - М.: БИНОМ, 1999.

14. Боровский, А.Н. Программирование в Delphi/ А.Н. Боровский. - СПб.: БХВ-Петербург. - 2005.

Приложения

Приложение 1. Исходный код программы

Главная форма программы.

unit main;

interface

uses

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

Dialogs, StdCtrls;

type

TMainForm = class (TForm)

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

Button1: TButton;

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

MainForm: TMainForm;

implementation

uses katalog, password;

{$R *. dfm}

procedure TMainForm. Button1Click (Sender: TObject);

begin

if RadioButton1. Checked

then

KatalogAvto. Show

else

PassForm. Show

end;

end.

Форма ModulBD

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

Форма выбора машины по каталогу

unit katalog;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls;

type

TKatalogAvto = class (TForm)

DBGrid1: TDBGrid;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

GroupBox2: TGroupBox;

Edit1: TEdit;

Button1: TButton;

Edit2: TEdit;

Button2: TButton;

Button3: TButton;

procedure FormActivate (Sender: TObject);

procedure RadioButton1Click (Sender: TObject);

procedure RadioButton2Click (Sender: TObject);

procedure RadioButton3Click (Sender: TObject);

procedure RadioButton4Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure DBGrid1DblClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

KatalogAvto: TKatalogAvto;

implementation

uses main, module, zak;

{$R *. dfm}

procedure TKatalogAvto. FormActivate (Sender: TObject);

begin

ModuleBD. ADOQuery_Katalog. SQL. Clear;

ModuleBD. ADOQuery_Katalog. SQL. Add ('SELECT * FROM Catalogs');

ModuleBD. ADOQuery_Katalog. Active: =True;

end;

procedure TKatalogAvto. RadioButton1Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Katalog. SQL. Clear;

ModuleBD. ADOQuery_Katalog. SQL. Add ('SELECT * FROM Catalogs ORDER BY Engine_power DESC ');

ModuleBD. ADOQuery_Katalog. Active: =True;

end;

procedure TKatalogAvto. RadioButton2Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Katalog. SQL. Clear;

ModuleBD. ADOQuery_Katalog. SQL. Add ('SELECT * FROM Catalogs ORDER BY Number_seats DESC ');

ModuleBD. ADOQuery_Katalog. Active: =True;

end;

procedure TKatalogAvto. RadioButton3Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Katalog. SQL. Clear;

ModuleBD. ADOQuery_Katalog. SQL. Add ('SELECT * FROM Catalogs ORDER BY Rashod_topliva DESC');

ModuleBD. ADOQuery_Katalog. Active: =True;

end;

procedure TKatalogAvto. RadioButton4Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Katalog. SQL. Clear;

ModuleBD. ADOQuery_Katalog. SQL. Add ('SELECT * FROM Catalogs ORDER BY Volume_trunk DESC');

ModuleBD. ADOQuery_Katalog. Active: =True;

end;

procedure TKatalogAvto. Button1Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Katalog. SQL. Clear;

ModuleBD. ADOQuery_Katalog. SQL. Add ('SELECT * FROM Catalogs WHERE Marka_modeli LIKE '''+Edit1. Text+''' and Model LIKE '''+Edit2. Text+'''');

ModuleBD. ADOQuery_Katalog. Active: =True;

end;

procedure TKatalogAvto. Button2Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Katalog. SQL. Clear;

ModuleBD. ADOQuery_Katalog. SQL. Add ('SELECT * FROM Catalogs');

ModuleBD. ADOQuery_Katalog. Active: =True;

end;

procedure TKatalogAvto. Button3Click (Sender: TObject);

begin

Zakaz. Show;

end;

procedure TKatalogAvto. DBGrid1DblClick (Sender: TObject);

begin

Zakaz. Show;

Zakaz. Edit2. Text: = DBGrid1. DataSource. DataSet. Fields [0]. AsString;

Zakaz. Edit9. Text: = DBGrid1. DataSource. DataSet. Fields [1]. AsString;

Zakaz. Edit10. Text: = DBGrid1. DataSource. DataSet. Fields [2]. AsString;

end;

end.

Форма оформления заказа

unit zak;

interface

uses

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

Dialogs, StdCtrls;

type

TZakaz = class (TForm)

Button3: TButton;

GroupBox1: TGroupBox;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Edit5: TEdit;

Edit6: TEdit;

Button1: TButton;

Button2: TButton;

Edit7: TEdit;

Edit8: TEdit;

Label9: TLabel;

Label10: TLabel;

Edit9: TEdit;

Edit10: TEdit;

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button3Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Zakaz: TZakaz;

implementation

uses klient, avto, module, zak2, main, cek;

{$R *. dfm}

procedure TZakaz. Button1Click (Sender: TObject);

begin

PoiskKlienta. Show;

end;

procedure TZakaz. Button2Click (Sender: TObject);

begin

Form_Avto. show;

end;

procedure TZakaz. Button3Click (Sender: TObject);

var

zakazid,warehouseid, i: Integer;

begin

ModuleBD. ADOQuery_Zakaz. Insert;

zakazid: =ModuleBD. ADOQuery_Zakaz. RecordCount+1;

ModuleBD. ADOQuery_Zakaz. FieldByName ('id_orders'). AsInteger: = zakazid;

ModuleBD. ADOQuery_Zakaz. FieldByName ('id_clients'). AsInteger: = StrToInt (Edit1. Text);

ModuleBD. ADOQuery_Zakaz. FieldByName ('Order_status'). AsBoolean: =false;

ModuleBD. ADOQuery_Zakaz. FieldByName ('Status_oplati'). AsBoolean: =false;

ModuleBD. ADOQuery_Zakaz. FieldByName ('Date_vipiski'). AsString: =Edit7. Text;

ModuleBD. ADOQuery_Zakaz. FieldByName ('Date_oplati'). AsString: =Edit8. Text;

ModuleBD. ADOQuery_Zakaz. FieldByName ('№_engine'). AsInteger: = StrToInt (Edit3. Text);

ModuleBD. ADOQuery_Zakaz. FieldByName ('№_kuzova'). AsInteger: = StrToInt (Edit4. Text);

ModuleBD. ADOQuery_Zakaz. FieldByName ('Color'). AsString: =Edit5. Text;

ModuleBD. ADOQuery_Zakaz. FieldByName ('Price'). AsString: =Edit6. Text;

ModuleBD. ADOQuery_Zakaz. FieldByName ('id_cars'). AsFloat: = StrToFloat (Edit2. Text);

Chek. QRLabel13. Caption: =Edit9. Text;

Chek. QRLabel14. Caption: =Edit10. Text;

Chek. QRLabel15. Caption: =Edit2. Text;

Chek. QRLabel16. Caption: =Edit3. Text;

Chek. QRLabel17. Caption: =Edit4. Text;

Chek. QRLabel18. Caption: =Edit5. Text;

Chek. QRLabel19. Caption: =Edit8. Text;

Chek. QRLabel20. Caption: =Edit7. Text;

Chek. QRLabel12. Caption: =Edit6. Text;

Chek. QuickRep1. PreviewModal;

end;

end.

Форма ввода пароля для доступа к базе

unit password;

interface

uses

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

Dialogs, StdCtrls;

type

TPassForm = class (TForm)

Edit1: TEdit;

Button1: TButton;

procedure Edit1Change (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure FormActivate (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

PassForm: TPassForm;

implementation

uses main, admin;

{$R *. dfm}

procedure TPassForm. Button1Click (Sender: TObject);

begin

Upravlenie. visible: = true;

PassForm. Visible: = false;

end;

procedure TPassForm. Edit1Change (Sender: TObject);

begin

if Edit1. Text = '1' then begin

Button1. Enabled: = true; end;

end;

procedure TPassForm. FormActivate (Sender: TObject);

begin

edit1. Clear;

Button1. Enabled: = false;

end;

end.

Форма управления БД

unit admin;

interface

uses

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

Dialogs, Menus;

type

TUpravlenie = class (TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

procedure N9Click (Sender: TObject);

procedure N1Click (Sender: TObject);

procedure N4Click (Sender: TObject);

procedure N5Click (Sender: TObject);

procedure N6Click (Sender: TObject);

procedure N7Click (Sender: TObject);

procedure N10Click (Sender: TObject);

procedure N8Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Upravlenie: TUpravlenie;

implementation

uses edit, klient, prodan, avto, zak2, skld, otchet;

{$R *. dfm}

procedure TUpravlenie. N9Click (Sender: TObject);

begin

Upravlenie. Close;

end;

procedure TUpravlenie. N1Click (Sender: TObject);

begin

EditBD. Show;

end;

procedure TUpravlenie. N4Click (Sender: TObject);

begin

PoiskKlienta. Show;

end;

procedure TUpravlenie. N5Click (Sender: TObject);

begin

Prodano. Show;

end;

procedure TUpravlenie. N6Click (Sender: TObject);

begin

Form_Avto. Show;

end;

procedure TUpravlenie. N7Click (Sender: TObject);

begin

Zakazi. Show;

end;

procedure TUpravlenie. N10Click (Sender: TObject);

begin

Sklad. Show;

end;

procedure TUpravlenie. N8Click (Sender: TObject);

begin

Otchet_za_mec. Show;

end;

end.

Форма просмотра и редактирования БД

unit edit;

interface

uses

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

Dialogs, Grids, DBGrids, ExtCtrls, DBCtrls, StdCtrls;

type

TEditBD = class (TForm)

DBGrid1: TDBGrid;

DBNavigator1: TDBNavigator;

GroupBox1: TGroupBox;

ComboBox1: TComboBox;

GroupBox2: TGroupBox;

Edit1: TEdit;

Button1: TButton;

procedure FormActivate (Sender: TObject);

procedure ComboBox1Change (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

EditBD: TEditBD;

implementation

uses module;

{$R *. dfm}

procedure TEditBD. FormActivate (Sender: TObject);

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Catalogs');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

procedure TEditBD.comboBox1Change (Sender: TObject);

begin

if ComboBox1. Text='Клиенты' then

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Clients');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

if ComboBox1. Text='Каталог' then

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Catalogs');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

if ComboBox1. Text='Заказы' then

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Orders');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

end;

procedure TEditBD. Button1Click (Sender: TObject);

begin

if ComboBox1. Text='Клиенты' then

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Clients WHERE id_clienta LIKE '''+Edit1. Text+'''');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

if ComboBox1. Text='Каталог' then

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Catalogs WHERE id_cars LIKE '''+Edit1. Text+'''');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

if ComboBox1. Text='Склад' then

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Warehouse WHERE id_warehouse LIKE '''+Edit1. Text+'''');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

if ComboBox1. Text='Заказы' then

begin

ModuleBD. ADOQuery_Edit. SQL. Clear;

ModuleBD. ADOQuery_Edit. SQL. Add ('SELECT * FROM Orders WHERE id_orders LIKE '''+Edit1. Text+'''');

ModuleBD. ADOQuery_Edit. Active: =True;

end;

end;

end.

Форма для поиска клиента

unit klient;

interface

uses

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

Dialogs, StdCtrls, Grids, DBGrids;

type

TPoiskKlienta = class (TForm)

DBGrid1: TDBGrid;

GroupBox1: TGroupBox;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

procedure FormActivate (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure DBGrid1DblClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

PoiskKlienta: TPoiskKlienta;

implementation

uses module, zak;

{$R *. dfm}

procedure TPoiskKlienta. FormActivate (Sender: TObject);

begin

ModuleBD. ADOQuery_Klient. SQL. Clear;

ModuleBD. ADOQuery_Klient. SQL. Add ('SELECT * FROM Clients');

ModuleBD. ADOQuery_Klient. Active: =True;

end;

procedure TPoiskKlienta. Button1Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Klient. SQL. Clear;

ModuleBD. ADOQuery_Klient. SQL. Add ('SELECT * FROM Clients WHERE Familya LIKE '''+Edit1. Text+'''');

ModuleBD. ADOQuery_Klient. Active: =True;

end;

procedure TPoiskKlienta. Button2Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Klient. SQL. Clear;

ModuleBD. ADOQuery_Klient. SQL. Add ('SELECT * FROM Clients ');

ModuleBD. ADOQuery_Klient. Active: =True;

end;

procedure TPoiskKlienta. DBGrid1DblClick (Sender: TObject);

begin

Zakaz. Edit1. Text: = DBGrid1. DataSource. DataSet. Fields [0]. AsString;

end;

end.

Форма для вывода продаж по клиентам

unit prodan;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls;

type

TProdano = class (TForm)

DBGrid1: TDBGrid;

procedure FormActivate (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Prodano: TProdano;

implementation

uses module;

{$R *. dfm}

procedure TProdano. FormActivate (Sender: TObject);

begin

ModuleBD. ADOQuery_Prodano. SQL. Clear;

ModuleBD. ADOQuery_Prodano. SQL. Add ('SELECT id_clienta,Familya, (SELECT Count (id_clients) FROM Orders WHERE (Orders. id_clients=Clients. id_clienta) GROUP BY id_clienta) AS Кол_воМашин FROM Clients');

ModuleBD. ADOQuery_Prodano. Active: =True;

end;

end.

Форма для поиска автомобиля

unit avto;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls;

type

TForm_Avto = class (TForm)

DBGrid1: TDBGrid;

GroupBox1: TGroupBox;

RadioButton1: TRadioButton;

RadioButton2: TRadioButton;

RadioButton3: TRadioButton;

RadioButton4: TRadioButton;

GroupBox2: TGroupBox;

Edit1: TEdit;

Button1: TButton;

Button2: TButton;

procedure FormActivate (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure RadioButton1Click (Sender: TObject);

procedure RadioButton2Click (Sender: TObject);

procedure RadioButton3Click (Sender: TObject);

procedure RadioButton4Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure DBGrid1DblClick (Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form_Avto: TForm_Avto;

implementation

uses module, zak;

{$R *. dfm}

procedure TForm_Avto. FormActivate (Sender: TObject);

begin

ModuleBD. ADOQuery_Avto. SQL. Clear;

ModuleBD. ADOQuery_Avto. SQL. Add ('SELECT * FROM Catalogs');

ModuleBD. ADOQuery_Avto. Active: =True;

end;

procedure TForm_Avto. Button1Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Avto. SQL. Clear;

ModuleBD. ADOQuery_Avto. SQL. Add ('SELECT * FROM Catalogs WHERE Marka_modeli LIKE '''+Edit1. Text+'''');

ModuleBD. ADOQuery_Avto. Active: =True;

end;

procedure TForm_Avto. RadioButton1Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Avto. SQL. Clear;

ModuleBD. ADOQuery_Avto. SQL. Add ('SELECT * FROM Catalogs ORDER BY Engine_power DESC ');

ModuleBD. ADOQuery_Avto. Active: =True;

end;

procedure TForm_Avto. RadioButton2Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Avto. SQL. Clear;

ModuleBD. ADOQuery_Avto. SQL. Add ('SELECT * FROM Catalogs ORDER BY Number_seats DESC ');

ModuleBD. ADOQuery_Avto. Active: =True;

end;

procedure TForm_Avto. RadioButton3Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Avto. SQL. Clear;

ModuleBD. ADOQuery_Avto. SQL. Add ('SELECT * FROM Catalogs ORDER BY Rashod_topliva DESC');

ModuleBD. ADOQuery_Avto. Active: =True;

end;

procedure TForm_Avto. RadioButton4Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Avto. SQL. Clear;

ModuleBD. ADOQuery_Avto. SQL. Add ('SELECT * FROM Catalogs ORDER BY Volume_trunk DESC');

ModuleBD. ADOQuery_Avto. Active: =True;

end;

procedure TForm_Avto. Button2Click (Sender: TObject);

begin

ModuleBD. ADOQuery_Avto. SQL. Clear;

ModuleBD. ADOQuery_Avto. SQL. Add ('SELECT * FROM Catalogs');

ModuleBD. ADOQuery_Avto. Active: =True;

end;

procedure TForm_Avto. DBGrid1DblClick (Sender: TObject);

begin

Zakaz. Edit2. Text: = DBGrid1. DataSource. DataSet. Fields [0]. AsString;

Zakaz. Edit9. Text: = DBGrid1. DataSource. DataSet. Fields [1]. AsString;

Zakaz. Edit10. Text: = DBGrid1. DataSource. DataSet. Fields [2]. AsString;

end;

end.

Форма для обработки заказов

unit zak2;

interface

uses

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

Dialogs, Grids, DBGrids, StdCtrls;

type

TZakazi = class (TForm)

DBGrid1: TDBGrid;

Button1: TButton;

Button2: TButton;

Button3: TButton;

procedure FormActivate (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button1Click (Sender: TObject);


Подобные документы

  • Концептуальное и инфологическое проектирование базы данных в системе управления базами данных Microsoft Access. Физическое проектирование базы данных "Магазин спорттоваров". Тестирование и отладка базы данных, составление руководства пользователя.

    курсовая работа [6,7 M], добавлен 22.11.2022

  • Реализация приложения "Книжный магазин" средствами систем управления базами данных. Проектирование структуры базы данных, определение сущности и атрибутов. Логическое проектирование базы данных и реализация базы данных в СУБД Microsoft Office Access.

    курсовая работа [7,8 M], добавлен 13.02.2023

  • Проектирование базы данных в среде СУБД MS Access. Автоматизация учета информации о товаре в магазине. Определение требований и функций системы. Анализ предметной области. Разработка, создание таблиц, запросов, форм и отчетов. Инструкция для пользователя.

    отчет по практике [523,6 K], добавлен 21.04.2014

  • Создание базы данных, планирование разработки и системные требования. Проектирование базы данных в среде Microsoft Access, элементы и типы данных. Создание таблицы и использование конструктора для их модернизации. Построение запросов и создание макросов.

    курсовая работа [2,0 M], добавлен 16.04.2011

  • Возможности Microsoft Access, типы данных, оценка степени безопасности, принципы защиты информации. Инфологическое проектирование базы данных. Основные преимущества Office Access 2007. Разработка и описание пользовательского интерфейса, решаемые задачи.

    курсовая работа [1,5 M], добавлен 28.04.2014

  • Состав, расширение баз данных Access (Microsoft Office). Выполнение запросов, заполнение форм и таблиц. Типы данных Microsoft Access. Средства создания объектов базы данных СУБД. Дополнительные возможности запросов. Свойства полей. Режим работы с формами.

    презентация [3,0 M], добавлен 28.10.2014

  • Освоение методов проектирования баз данных и работы с базами данных в среде СУБД. Ведение точного учета поступивших и реализованных товаров и определение их остатка с помощью БД "Оптовый магазин". Преимущества и недостатки спроектированной базы данных.

    курсовая работа [4,8 M], добавлен 12.01.2015

  • Создание отчета как объекта базы данных. Структура отчета в режиме Конструктора, способы его создания. Скоростные характеристики СУБД Access, использование программы в пакете Microsoft Office. Разработка базы данных "Сотрудники ресторана ВасабиКо".

    контрольная работа [17,7 K], добавлен 06.12.2010

  • Изучение основных понятий баз данных: структура простейшей базы данных, компоненты базы данных Microsoft Access. Проектирование базы данных "Туристическое агентство" в СУБД Access 2010, в которой хранятся данные о клиентах, которые хотят поехать отдыхать.

    курсовая работа [3,3 M], добавлен 20.09.2013

  • Программа перенесения данных из таблицы Word в таблицу базы данных. Алгоритм решения задачи в виде текстового описания. Описание базы данных (структура таблиц, схема). Копии с экрана форм для работы с базой данных при разработке их в конструкторе.

    контрольная работа [914,3 K], добавлен 26.03.2011

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.