Базы данных торговой фирмы

Содержание 2 Содержание 3 Введение 4 Основная часть 7 1 Разработка эскизного и технического проектов программы 7 1.1 Назначение и область применения 7 1.2 Постановка задачи 7 1.3 Организация входных и выходных данных 7 1.4 Выбор состава технических и программных средств 7 2 Разработка рабочего проекта 9 2.1 Разработка программы 9 2.2 Спецификация программы 9 2.3 Текст программы 11 2.4 Описание программы 18 Заключение 20 Глоссарий 21 Качество 21 Список использованных источников 22 Приложение А 23 Приложение Б 24 Введение Delphi — результат развития языка Турбо Паскаль, который, в свою очередь, развился из языка Паскаль. Паскаль был полностью процедурным языком, Турбо Паскаль, начиная с версии 5.5, добавил в Паскаль объектно-ориентированные свойства, а в Object Pascal — динамическую идентификацию типа данных с возможностью доступа к метаданным классов (то есть к описанию классов и их членов) в компилируемом коде, также называемом интроспекцией — данная технология получила обозначение RTTI. Так как все классы наследуют функции базового класса TObject, то любой указатель на объект можно преобразовать к нему, после чего воспользоваться методом ClassType и функцией TypeInfo, которые и обеспечат интроспекцию. Object Pascal (Delphi) являются результатом функционального расширения Turbo Pascal. Delphi оказал огромное влияние на создание концепции языка C# для платформы .NET. Многие его элементы и концептуальные решения вошли в состав С#. Одной из причин называют переход Андерса Хейлсберга, одного из ведущих разработчиков Дельфи, из компании Borland Ltd. в Microsoft Corp. Версия 1 была предназначена для разработки под 16-разрядную платформу Win16; Версии со второй компилируют программы под 32-разрядную платформу Win32; Вместе с 6-й версией Delphi вышла совместимая с ним по языку и библиотекам среда Kylix, предназначенная для компиляции программ под операционную систему GNU/Linux; Версия 8 способна генерировать байт-код исключительно для платформы .NET. Это первая среда, ориентированная на разработку мультиязычных приложений (лишь для платформы .NET); Последующие версии (обозначаемые годами выхода, а не порядковыми номерами, как это было ранее) могут создавать как приложения Win32, так и байт-код для платформы .NET. Delphi for .NET — среда разработки Delphi, а также язык Delphi (Object Pascal), ориентированные на разработку приложений для .NET. Первая версия полноценной среды разработки Delphi для .NET — Delphi 8. Она позволяла писать приложения только для .NET. В настоящее время, в Delphi 2006, можно писать приложения для .NET, используя стандартную библиотеку классов .NET, VCL для .NET. Среда также позволяет создавать .NET-приложения на C# и Win32-приложения на C++. Delphi 2006 содержит функции для написания обычных приложений с использованием библиотек VCL и CLX. Delphi 2006 поддерживает технологию MDA с помощью ECO (Enterprise Core Objects) версии 3.0. В марте 2006 года компания Borland приняла решение о прекращении дальнейшего совершенствования интегрированных сред разработки JBuilder, Delphi и C++ Builder по причине убыточности этого направления. Планировалась продажа IDE-сектора компании. Группа сторонников свободного программного обеспечения организовала сбор средств для покупки у Borland прав на среду разработки и компилятор. Однако в ноябре того же года было принято решение отказаться от продажи IDE бизнеса. Тем не менее, разработкой IDE продуктов теперь будет заниматься новая компания — CodeGear, которая будет финансово полностью подконтрольна Borland. В августе 2006 года Borland выпустил облегченные версию RAD Studio под именем Turbo: Turbo Delphi (для Win32 и .NET), Turbo C#, Turbo C++. В марте 2008 года было объявлено о прекращении развития этой линейки продуктов. В марте 2007 года CodeGear порадовала пользователей обновленной линейкой продуктов Delphi 2007 for Win32 и выходом совершенно нового продукта Delphi 2007 for PHP. В июне 2007 года CodeGear представила свои планы на будущее, то есть опубликовала так называемый roadmap. 25 августа 2008 года компания Embarcadero, новый хозяин CodeGear, опубликовала пресс-релиз на Delphi for Win32 2009. Версия принесла множество нововведений в язык, таких как: По умолчанию полная поддержка Юникода во всех частях языка, VCL и RTL; замена обращений ко всем функциям Windows API на юникодные аналоги (то есть MessageBox вызывает MessageBoxW, а не MessageBoxA). Обобщённые типы, они же generics. Анонимные методы. Новая директива компилятора $POINTERMATH [ON|OFF]. Функция Exit теперь может принимать параметры в соответствии с типом функции. Цель этой работы: создание программы ведения базы данных торговой фирмы. Программа включает в себя: формирование и корректирование файлов данных; расчет комиссионного вознаграждения сотрудников фирмы. Файл данных о продавце включает его имя и фамилию, табельный номер, дату поступления на работу. Торговая фирма выплачивает продавцам комиссионное вознаграждение в размере 5%, если товара продано на сумму менее 1000 долл. в день, и 6%, если выручка составляет 1000 долл./день и выше. Продавцы, проработавшие в фирме более 10 лет, получают комиссионные на 1% больше. Сумма выручки за день для каждого продавца вводится с клавиатуры ЭВМ. Организуйте вывод общих итогов по сумме выручки и сумме комиссионного вознаграждения за месяц. Основная часть 1 Разработка эскизного и технического проектов программы 1.1 Назначение и область применения Назначение программы: ведение учета работы продавцов. Область применения: справочная информация. 1.2 Постановка задачи База данных представляет собой диалоговое окно с пользователем. Программа должна обеспечивать хранение, редактирование данных продавцов и содержать поля: Фамилия и имя, Табельный номер, год приема на работу и выручка в день. 1.3 Организация входных и выходных данных В программе используются следующие переменные и объекты, в которых хранятся входные и выходные данные: Form1 – для отображения данных базы. StringGrid – таблица, содержащая БД. MainMenu – для сервисных функций. Form2 – для ввода и изменения данных в базе. 1.4 Выбор состава технических и программных средств Среда программирования – Delphi – весьма быстрая и удобная для разработки приложений различного назначения для Windows. Для нормальной работы программы необходим IBM совместимый компьютер с тактовой частотой процессора не ниже 144МГц и выше, оперативной памятью 16 Мб, жесткий диск объемом не менее 500Мб. 2 Разработка рабочего проекта 2.1 Разработка программы С точки зрения пользователя, база данных — это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную. С точки зрения программиста, база данных — это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создает программу, которая обеспечивает работу с файлами данных.1 В настоящее время существует достаточно большое количество программных систем, позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox) и удаленные (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) базы данных.2 В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами: от SE до Infomix и Oracle. Delphi также позволяет программисту, используя утилиту Borland Database Desktop, создавать файлы баз данных в Различных форматах. 2.2 Спецификация программы База данных — это набор однородной, как правило, упорядоченной по некоторому критерию, информации. База данных может быть представлена в "бумажном" или в компьютерном виде. Типичным примером "бумажной" базы данных является каталог библиотеки — набор бумажных карточек, содержащих информацию о книгах. Информация в этой базе однородная (содержит сведения только о книгах) и упорядоченная (карточки расставлены, например, в соответствии с алфавитным порядком фамилий авторов). 3 Следует обратить внимание, что каждая запись состоит из одинаковых полей. Некоторые поля могут быть не заполнены, однако они все равно присутствуют в записи. На бумаге базу данных удобно представить в виде таблицы. Каждая строка таблицы соответствует записи, а ячейка таблицы — полю. При этом заголовок столбца таблицы — это имя поля, а номер строки таблицы — номер записи. Информацию компьютерных баз данных обычно выводят на экран в виде таблиц. Таблицы физически хранится в отдельном файле. В простейшем случае источником информации для программы, работающей с базой данных, может быть вся таблица. Однако, как правило, пользователя интересует не вся информация, находящаяся в базе данных, а только какая-то ее часть. Он выбирает и просматривает только некоторые, удовлетворяющие его запросу записи. Поэтому в модель базы данных помимо таблицы, представляющей собой всю базу данных, было введено понятие запроса, являющегося выборкой, т. е. группой записей базы данных. База данных — это набор файлов (таблиц), в которых находится информация. Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Каталог для новой базы данных создается обычным образом, например, при помощи Проводника. Исполняемый файл программы «База данных Торговая фирма» имеет название Basa.exe и находится в корневом каталоге диска А. Состав проекта представлен в приложении. 2.3 Текст программы unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, Menus, StdCtrls; type TForm1 = class(TForm) sg: TStringGrid; mm: TMainMenu; N1: TMenuItem; N2: TMenuItem; N3: TMenuItem; N4: TMenuItem; N5: TMenuItem; N6: TMenuItem; N7: TMenuItem; N8: TMenuItem; N9: TMenuItem; N10: TMenuItem; N11: TMenuItem; procedure FormCreate(Sender: TObject); procedure N5Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N2Click(Sender: TObject); procedure N3Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N11Click(Sender: TObject); private { Private declarations } public { Public declarations } Procedure LoadBD; //Загрузка Базы Procedure SaveBD; //Сохранение Базы end; var Form1: TForm1; God: integer; //Нынешний год implementation uses Unit2; {$R *.dfm} function CalcComiss(index:integer):integer; //Подсчет комиссионных по номеру продавца в таблице var year,dohod:integer; begin Result:=0; //Изначально комиссионные = 0 with form1.sg do begin year:=StrToInt(Cells[2,index]); //Узнаем год приема на работу Dohod:=StrToInt(Cells[3,index]); //И средний доход за день end; if god-year>=10 then //Если продавец работает 10 лет и больше Result:=Result+1; //Добавляем 1% if Dohod>=1000 then //Если еще и продает на сумму 1000 или больше Result:=Result+6 else //то добавляем 6% Result:=Result+5; //Если же нет, то 5% end; procedure TForm1.SaveBD; var I:integer; s:TStringList; begin S:=TStringList.Create; //Создаем Список строк for i:=1 to sg.RowCount-2 do //Проходим по всей таблице begin {Переносим в список данные из таблицы} S.Add(Sg.Cells[0,i]); S.Add(Sg.Cells[1,i]); S.Add(Sg.Cells[2,i]); S.Add(Sg.Cells[3,i]); end; S.SaveToFile(‘Base.txt’); //Сохраняем S.Free; //Очищаем память end; procedure Tform1.LoadBD; //Загрузка базы var I:integer; s:TstringList; begin sg.RowCount:=2; S:=TStringList.Create; //Создаем в памяти Список строк S.LoadFromFile(‘Base.txt’); //Загружаем в него файл с базой For i:=0 to S.Count div 4 -1 do //Организуем цикл загрузки 4х данных для каждого продавца begin sg.RowCount:=sg.RowCount+1; //Увеличиваем таблицу на 1 пункт {Помещаем в таблицу данные} sg.Cells[0, sg.RowCount-2]:=S[i*4]; sg.Cells[1, sg.RowCount-2]:=S[i*4+1]; sg.Cells[2, sg.RowCount-2]:=S[i*4+2]; sg.Cells[3, sg.RowCount-2]:=S[i*4+3]; sg.Cells[4, sg.RowCount-2]:=IntToStr(CalcComiss(sg.RowCount-2)); end; S.Free; //Очищаем память от уже ненужного файла end; procedure TForm1.FormCreate(Sender: TObject); begin {Заполняем заголовок таблицы} sg.Cells[0,0]:=’Фамилия и имя продавца’; sg.Cells[1,0]:=’Табельный номер’; sg.Cells[2,0]:=’Год приема на работу’; sg.Cells[3,0]:=’Выручка $ за день’; sg.Cells[4,0]:=’% комиссионных’; God:=StrToInt(Copy(DateToStr(Date),7,4)); //Узнаем нынешний год LoadBD; //Загружаем базу с диска end; procedure TForm1.N5Click(Sender: TObject); begin close; //Выход end; procedure TForm1.N8Click(Sender: TObject); var i, j:integer; begin {Удаление продавца из списка, все следующие за ним продавцы, просто поднимаются на ячейку выше} if sg.Selection.Top<>sg.RowCount-1 then begin for i:=sg.Selection.Top+1 to sg.RowCount-1 do for j:=0 to 4 do sg.Cells[j,i-1]:=sg.Cells[j,i]; sg.RowCount:=sg.RowCount-1; end; end; procedure TForm1.N2Click(Sender: TObject); begin LoadBd; //Загружаем базу с диска end; procedure TForm1.N3Click(Sender: TObject); begin SaveBD; //Сохраняем end; procedure TForm1.N10Click(Sender: TObject); begin ShowMessage(‘Выполнил Самсонов Евгений ‘+#13+’Группа ОИ-809′); //Автор end; procedure TForm1.N7Click(Sender: TObject); var I:integer; begin {Открываем окно "Добавить" и в случае нажатия на кнопку Ok, добавляем продавца в таблицу} Form2.Caption:=’Добавить’; for i:=1 to 4 do //Цикл очистки полей ввода TEdit(Form2.FindComponent(‘Edit’+inttostr(i))).text:=”; if form2.showmodal=mrOk then begin sg.RowCount:=sg.RowCount+1; //Увеличиваем таблицу на 1 пункт {Помещаем в таблицу данные} sg.Cells[0, sg.RowCount-2]:=Form2.Edit1.Text; sg.Cells[1, sg.RowCount-2]:=Form2.Edit2.Text; sg.Cells[2, sg.RowCount-2]:=Form2.Edit3.Text; sg.Cells[3, sg.RowCount-2]:=Form2.Edit4.Text; sg.Cells[4, sg.RowCount-2]:=IntToStr(CalcComiss(sg.RowCount-2)); end; end; procedure TForm1.N9Click(Sender: TObject); var i:integer; begin if sg.Selection.Top<>sg.RowCount-1 then begin Form2.Caption:=’Изменить’; for i:=1 to 4 do TEdit(Form2.FindComponent(‘Edit’+inttostr(i))).text:=sg.cells[i-1,sg.selection.top]; if form2.showmodal=mrOk then begin {Помещаем в таблицу данные} sg.Cells[0, sg.selection.top]:=Form2.Edit1.Text; sg.Cells[1, sg.selection.top]:=Form2.Edit2.Text; sg.Cells[2, sg.selection.top]:=Form2.Edit3.Text; sg.Cells[3, sg.selection.top]:=Form2.Edit4.Text; sg.Cells[4, sg.selection.top]:=IntToStr(CalcComiss(sg.selection.top)); end; end; end; procedure TForm1.N11Click(Sender: TObject); var summ,kom:integer; i,j,k,z:integer; days:integer; begin case StrToInt(copy(DateToStr(Date),4,2)) of 1,3,5,7,8,10,12:days:=31; 2: days:=28; else days:=30; end; summ:=0; Kom:=0; z:=0; for i:=1 to sg.RowCount-2 do begin j:=calccomiss(i); k:=strtoint(sg.cells[3,i])*days; j:=Trunc((j / 100)*K); kom:=kom+j; z:=z+k-j; summ:=summ+k; end; showmessage(‘Общий доход за этот месяц: ‘+inttostr(summ)+#13#10+’Комиссионные выплаты: ‘+inttostr(kom)+#13#10+’Доход с вычетом выплат комиссионных: ‘+inttostr(z)+#13#10+’Дней в этом месяце: ‘ +inttostr(days)); end; end. 2.4 Описание программы 1) Общие сведения. Программа написана с среде программирования Delphi. Для запуска программы необходима операционная система Windows 98, Nt, 2000, Me, XP. Программа не предназначена для работы в DOS. 2) Функциональное назначение. Программа может использоваться на различных торговых точках с небольшим количеством продавцов. 3) Используемые технические средства (минимальные требования). Рекомендуемые системные требования: процессор Pentium-133 и выше, ОЗУ 16Мб, место на диске не меньше 4Мб. 4) Вызов и загрузка. Исполняемый файл программы – Basa.exe. В родительском каталоге программы также содержится файл БД – Base.txt. Запустить программу можно пользуясь стандартным приложением для Windows «проводник» или через «Мой компьютер», просмотрев содержимое диска. 5) Входные данные. Входные данные представляют собой фамилию и имя, табельный номер, год приема на работу, и выручку продавца в день. 6) Выходные данные. Выходные данные выводятся на экран компонентом StringGrid. Заключение С точки зрения пользователя, база данных — это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную. С точки зрения программиста, база данных — это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создает программу, которая обеспечивает работу с файлами данных. 1) Условия выполнения программы. Для выполнения программы необходим IBM совместимый компьютер с процессором 133МГц и выше, ОЗУ объемом не менее 16Мб и стандартным набором внутренних и внешних устройств. Программное обеспечение – ОС Windows 95 и более поздние версии Windows. 2) Выполнение программы. Для того чтобы запустить программу на панели управления щелкните кнопкой мыши кнопку Пуск. Выберете в развернувшимся меню пункт Программы->проводник. В проводнике выберете нужный каталог с файлом Basa.exe и дважды щелкните по нему левой кнопкой мыши. Программа запустится. При выборе в главном меню пункта «Автор» появляется сообщение с краткой информацией о программе и разработчике (см. рис.2). Рисунок 2 – Окно «Автор» Глоссарий № Понятия Определение 1 Объектно-ориентированное программирование подход к программированию, рассматривающий программу как совокупность объектов и сообщений 2 Объект пакет информации, содержащий данные и процедуры их обработки. Сообщение – это спецификация условий выполнения одной из процедур обработки объекта 3 Язык программирования система обозначений, служащая для точного описания программ или алгоритмов машинных вычислений. Язык программирования – это искусственный язык, в котором алфавит ( набор различных символов языка), синтаксис (правила построения множества текстов или конструкций языка из алфавита языка) и семантика (описание соответствия между текстами и их «смыслами») строго и однозначно определены 4 Операция действие в языке программирование, которое выполняется над данными 5 Структура программы общая схема построения программы, рассматривающая все ее составные компоненты и взаимосвязи между ними 6 Оператор присваивания оператор языка программирования, предназначенный для вычисления значения заданного выражения и записи в память полученного результата 7 Файл определенным образом организованная совокупность данных, имеющих общее имя и размещенных на одном из внешних устройств компьютера (например, на жестком или гибком дисках) 8 Оператор ввода данных специальный оператор, предназначенный для ввода данных в память из файла, закрепленного за одним из внешних устройств компьютера 9 Оператор вывода данных специальный оператор, предназначенный для вывода данных из памяти в файл, закрепленный за одним из внешних устройств компьютера 10 Качество программы степень соответствия программы своему функциональному назначению с точки зрения предъявляемых к ней требований Список использованных источников 1 Александровский А. Д. Delphi 5.0. Разработка корпоративных приложений. – М.: ДМК, 2000. – 512 с. 2 Бобровский С.И. Delphi 7^ Учебный курс, -СПб.: Издательство «Питер» 2004. – 184 с. 3 Бондарёв В. М., Рублинецкий В. И., Качко Е. Г. «Основы программирования». Харьков: Фолио; Ростов н/Д: Феникс, 2003. – 504 с. 4 Власов А.Я. Справочник по программированию на Object Pascal. Киев, 2001. – 401 с. 5 Гудман С., Хидетниеми С. Введение в разработку и анализ алгоритмов. М., 2003. – 220 с. 6 Дарахвелидзе П., Марков Е. Программирование в Delphi 4.СПб.: БХВ. СПб., 2004.- 209 с. 7 Карпов Б. «Delphi: специальный справочник» -СПб.: Издательство «Питер», 2002. – 236 с. 8 Культин Н. «Delphi в задачах и примерах» -СПб.: Издательство «БХВ-Петербург», 2003. – 436 с. 9 Марков Е. «Программирование в Delphi 4», -СПб, «БХВ-Петербург», 2004. – 306 с. 10 Мейер Б., Бодуэн К. Методы программирования. М., 2001. – 310 с. 11 Wikipedia. (свободная энциклопедия) http://ru.wikipedia.org/wiki/Delphi Приложение А Наименование Обозначение Примечание Basa.dof Файл параметров проекта Содержит текущие установки проекта: настройки компилятора и компоновщика, имена служебных каталогов, условные директивы Basa.dpr Файл проекта Связывает все файлы, из которых состоит приложение Basa.cfg Файл, содержащий настройки проекта Содержит информацию о том, какие окна открыты и в каких позициях они расположены Basa.res Файл ресурсов Содержит пиктограммы, графические изображения Unit1.pas Файл программного модуля для формы Form1 Определяет функциональность формы Form1 Unit1.dfm Файл формы Form1 Содержит список свойств всех компонентов, включённых в форму Form1 Unit1.dcu Объектный файл для Unit1.pas Откомпилированная версия Unit1.pas Unit2.dcu Объектный файл для Unit2.pas Откомпилированная версия Unit2.Pas Unit2.pas Файл программного модуля Формы 2 Определяет функциональность формы №2 Unit2.dfm Файл формы 2 Содержит список всех компонентов, включенных в форму 2 Base.txt Текстовый файл Сохраняет и загружает данные базы данных Таблица 1. Состав проекта. Приложение Б Ссылка: 1 Карпов Б. «Delphi: специальный справочник» -СПб.: Издательство «Питер», 2002. – С. 23-24 2 Бондарёв В. М., Рублинецкий В. И., Качко Е. Г. «Основы программирования». Харьков: Фолио; Ростов н/Д: Феникс, 2003. – С. 45 3 Карпов Б. «Delphi: специальный справочник» -СПб.: Издательство «Питер», 2002. – С. 120