Смекни!
smekni.com

Разработка системы автоматизированного учета для багетной мастерской (стр. 8 из 27)

возможность решения широкого класса задач;

набор операторов языка должен отражать принципы структурного проектирования;

возможность работы с базами данных;

возможности создания запросов к базам данных;

синтаксис языка должен быть достаточно не сложным и включать в себя возможность объектно-ориентированного программирования;

язык должен быть лёгок для изучения;

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

Для разработки системы " Багетная мастерская" выбираем язык Object Pascal и структурированный язык запросов SQL.

4.2.2 Общая характеристика языка Object Pascal

Object Pascal - язык программирования высокого уровня, удовлетворяющий следующим требованиям:

развитая система типов;

возможность решения широкого класса задач;

набор операторов языка отражает принципы структурного проектирования и позволяет записывать достаточно сложные алгоритмы в лёгкой и элегантной форме;

синтаксис языка достаточно не сложный и включает в себя возможности объектно-ориентированного программирования;

язык лёгок для изучения;

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

позволяет составлять отчёты;

наличие компилятора с возможностью компоновки исполняемых файлов под операционную систему Windows XP Professional, требования к которой были предъявлены в техническом задании.

От языка Visual Basic Pascal отличает строгая типизированность, позволяющая компилятору ещё на этапе компиляции обнаружить многие ошибки, а также средства работы с указателями.

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

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

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

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

при объектно-ориентированном программировании данные объединяются со свойственными им операциями обработки в некоторые объекты. При этом свойства одних могут передаваться другим.

Структура составления программы в Object Pascal можно условно разделить на три основные части:

раздел объявлений и соглашений;

раздел текстов процедур и функций;

раздел основного блока.

Ниже показана структура Object Pascal - программ.

4.2.2.1 Структура программы Object Pascal

program{Заголовок программы}

{$... }{Глобальные директивы компилятора}

uses{Подключаемые библиотеки}

label{Подраздел объявления меток}

const{Подраздел объявления глобальных констант}

type{Подраздел объявления глобальных типов}

var{Подраздел объявления глобальных переменных}

begin{Основной блок программы}

end.

4.2.2.2 Структура модуля Object Pascal

unit{Заголовок модуля}

interface{Раздел объявлений}

uses{Подключаемые библиотеки}

label{Подраздел объявления меток}

const{Подраздел объявления констант}

type{Подраздел объявления типов}

var{Подраздел объявления переменных}

implementation{Раздел реализации}

uses{Подключаемые библиотеки}

label{Подраздел объявления меток}

const{Подраздел объявления констант}

type{Подраздел объявления типов}

var{Подраздел объявления переменных}

initialization{Раздел инициализации}

finalization{Раздел завершения}

end.

4.2.2.3 Структура текста процедур и функций:

procedure (function) {Заголовок процедуры (функции) }

label{Подраздел объявления меток}

const{Подраздел объявления локальных констант}

type{Подраздел объявления локальных типов}

var{Подраздел объявления локальных переменных}

begin{Основной блок процедуры или функции}

end;

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

метки (Label) - описание меток вводит совокупность идентификаторов и/или целых чисел, предназначенных для организации последовательности вычислений;

константы (Const) - определение констант задаёт в программе идентификаторы, являющиеся синонимами некоторых значений;

определённые пользователем типы данных (Type) - определение типов предназначено для задания конкретных множеств значений;

переменные (Var) - в этом разделе происходит определение глобальных переменных, переменная обозначается идентификатором и каждой переменной присваивается тип.

Основной блок программы состоит из последовательности операторов, причём работа программы начинается с первого оператора основного блока программы. Тело программы ограничено операторами begin и end. После оператора end ставится точка.

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

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

4.2.3 Структурированный язык запросов SQL

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

Отбор данных из таблиц БД осуществляется с помощью оператора SELECT. Результат такого отбора называется выборкой. В общем виде этот оператор имеет такой формат:

SELECT [DISTINCT] {*| поле1, [, поле2 …] }

FROM таблица1 [, таблица2 …]

[WHERE условия_отбора]

[GROUP BY список_группируемых_полей]

[HAVING условие_группирования]

[ORDER BY список_полей_для_сортировки]

[UNION оператор_SELECT]

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

SELECT Tovar, Price

FROM Shop

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

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

WHERE имя_поля операция константа

В качестве операции может выступать одна из операций отношения: = (равно), > (больше), < (меньше), >= (больше или равно), <= (меньше или равно),! < (не меньше),! > (не больше), <> (не равно). Кроме того, условие может быть составным, для объединения частей которого применяются круглые скобки и логические функции NOT, AND, OR.

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

SELECT Otdel, COUNT (Tab_nom)

FROM firm

GROUP BY Otdel

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

SELECT Otdel, COUNT (Tab_nom)

FROM firm

GROUP BY Otdel

HAVING COUNT (Tab_nom) >10

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

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