Смекни!
smekni.com

Базы данных торговой фирмы (стр. 2 из 2)

База данных — это набор файлов (таблиц), в которых находится информация. Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Каталог для новой базы данных создается обычным образом, например, при помощи Проводника.

Исполняемый файл программы «База данных Торговая фирма» имеет название 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