Разработка рабочего проекта
Разработка программы
С точки зрения пользователя, база данных — это программа, которая обеспечивает работу с информацией. При запуске такой программы на экране, как правило, появляется таблица, просматривая которую пользователь может найти интересующие его сведения. Если система позволяет, то он может внести изменения в базу данных: добавить новую информацию или удалить ненужную. С точки зрения программиста, база данных — это набор файлов, содержащих информацию. Разрабатывая базу данных для пользователя, программист создает программу, которая обеспечивает работу с файлами данных. В настоящее время существует достаточно большое количество программных систем, позволяющих создавать и использовать локальные (dBASE, FoxPro, Access, Paradox) и удаленные (Interbase, Oracle, Sysbase, Infomix, Microsoft SQL Server) базы данных. В состав Delphi входят компоненты, позволяющие создавать программы работы с файлами данных, созданными различными системами: от SE до Infomix и Oracle. Delphi также позволяет программисту, используя утилиту Borland Database Desktop, создавать файлы баз данных в различных форматах Спецификация программы
База данных — это набор однородной, как правило, упорядоченной по некоторому критерию, информации. База данных может быть представлена в "бумажном" или в компьютерном виде. Типичным примером "бумажной" базы данных является каталог библиотеки — набор бумажных карточек, содержащих информацию о книгах. Информация в этой базе однородная (содержит сведения только о книгах) и упорядоченная (карточки расставлены, например, в соответствии с алфавитным порядком фамилий авторов). Следует обратить внимание, что каждая запись состоит из одинаковых полей. Некоторые поля могут быть не заполнены, однако они все равно присутствуют в записи. На бумаге базу данных удобно представить в виде таблицы. Каждая строка таблицы соответствует записи, а ячейка таблицы — полю. При этом заголовок столбца таблицы — это имя поля, а номер строки таблицы — номер записи. Информацию компьютерных баз данных обычно выводят на экран в виде таблиц. Таблицы физически хранится в отдельном файле. В простейшем случае источником информации для программы, работающей с базой данных, может быть вся таблица. Однако, как правило, пользователя интересует не вся информация, находящаяся в базе данных, а только какая-то ее часть. Он выбирает и просматривает только некоторые, удовлетворяющие его запросу записи. Поэтому в модель базы данных помимо таблицы, представляющей собой всю базу данных, было введено понятие запроса, являющегося выборкой, т. е. группой записей базы данных. База данных — это набор файлов (таблиц), в которых находится информация. Как правило, база данных состоит из нескольких таблиц, которые размещают в одном каталоге. Каталог для новой базы данных создается обычным образом, например, при помощи Проводника.
Текст программы
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 N2Click(Sender: TObject); // Процедура нажатия пункта в главнам меню Фаил - Сохранить procedure N3Click(Sender: TObject); // Процедура нажатия пункта в главнам меню Фаил - Загрузить procedure N5Click(Sender: TObject); // Процедура нажатия пункта в главнам меню Файл - Выход procedure N7Click(Sender: TObject); // Процедура нажатия пункта в главнам меню Продавец - Добавить procedure N8Click(Sender: TObject); // Процедура нажатия пункта в главнам меню Продавец - Удалить procedure N9Click(Sender: TObject); // Процедура нажатия пункта в главнам меню Продавец - Редактировать procedure N10Click(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, Unit3; {$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 Form3.ShowModal; 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:integer; //Общий доход за этот месяц kom:integer; //Комиссионные выплаты z:integer; //Доход с вычетом комиссионных выплат days:integer; //Дней в этом месяце i,j,k:integer; //Вспомогательные переменные begin case StrToInt(copy(DateToStr(Date),4,2)) of //Проверяем какой щас месяц 1,3,5,7,8,10,12:days:=31; // если месяц 1,3,5,7,8,10,12 то дней в месяце 31 2: days:=28; // если месяц 2 то дней в месяце 28 else days:=30; // иначе в месяце 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); //"Trunc" - целая часть числа 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. Рисунок 1- Таблица ведения базы данных торговой фирмы
Описание программы 1) Общие сведения. Программа написана в среде программирования Delphi. Для запуска программы необходима операционная система Windows 98, NT, 2000, Me, XP. Программа не предназначена для работы в DOS. 2) Функциональное назначение. Программа может использоваться на различных торговых точках с небольшим количеством продавцов. 3) Используемые технические средства (минимальные требования). Рекомендуемые системные требования: процессор Pentium-133 и выше, ОЗУ 16Мб, место на диске не меньше 4Мб. 4) Вызов и загрузка. Исполняемый файл программы – Basa.exe. В родительском каталоге программы также содержится файл БД – Base.txt. Запустить программу можно пользуясь стандартным приложением для Windows «проводник» или через «Мой компьютер», просмотрев содержимое диска. 5) Входные данные. Входные данные представляют собой фамилию и имя, табельный номер, год приема на работу, и выручку продавца в день. 6) Выходные данные. Выходные данные выводятся на экран компонентом StringGrid.
Тестирование Тестирование было проведено на примере Базы Данных в каталоге A:\База данных\Base.txt (см. Приложение А). В базу данных было произведено введение данных о продавцах. Всего было введено 20 строк с Фамилиями и Именами, Табельным номером, Годом приема на работу и Выручки за день. Все данные были введены в случайном порядке. В результате ввода все продавцы, которые имели выручку больше 1000 долларов в день или проработали более 10 лет, получают 6% комиссионных, а остальные 5% комиссионных (по условию задачи). В результате был произведен подсчет данных и программа вывела отчет об общих доходах за этот месяц, комиссионных выплатах, доходах с вычетом комиссионных выплат и дней в этом месяце, все данные были верны. Программа без затруднений вывела все результаты. Внедрение
1) Условия выполнения программы. Для выполнения программы необходим IBM совместимый компьютер с процессором 133МГц и выше, ОЗУ объемом не менее 16Мб и стандартным набором внутренних и внешних устройств. Программное обеспечение – ОС Windows 95 и более поздние версии Windows. 2) Выполнение программы. Для того чтобы запустить программу на панели управления щелкните кнопкой мыши кнопку Пуск. Выберете в развернувшимся меню пункт Программы->проводник. В проводнике выберете нужный каталог с файлом Basa.exe и дважды щелкните по нему левой кнопкой мыши. Программа запустится. На экране вы увидите окно программы (рис. 2).
Рисунок 2- Окно программы База Данных
Для добавления в таблицу данных необходимо нажать в главном меню пункт «Продавец – Добавить» (Рис.3). Рисунок 3- Меню для: добавления, удаления, редактирования – строки в таблице
Появится диалоговое окно Добавить (рис.4). В этом окне необходимо ввести Имя и фамилию, Табельный номер – цифрами, Год приема на работу – цифрами, Сумма продаж за день – цифрами, затем нажать на кнопку «Ок», если хотите добавить, а если нет то кнопку «Нет».
Рисунок 4- Окно добавить
Если вы нажали «Ок» то в таблице появится строчка с данными которые вы набрали (Рис. 5). Рисунок 5- Так выглядит таблица после добавления в ней строчки Чтобы сохранить данные в текстовом файле, нужно в главном меня выбрать пункт «Файл – Сохранить». Если вы вынесли изменения в таблицу но не сохраняли их, вы можете вернуть документ в исходное состояние, так как он выглядел перед открытием, то вам необходимо в главном меня выбрать пункт «Файл – Загрузить». (Рис.6).
Рисунок 6- Меню Файл: сохранить, загрузить, выход
Чтобы вывести отчет, в главном меню программы необходимо выбрать пункт «Отчет». На экране появится диалоговое окно, в котором вы увидите отчет о: общим доходам за этот месяц, комиссионным выплатам, доходе с вычетом комиссионных выплат и дней в этом месяце. Это окошко вы можете видеть на Рис.7.
Рисунок 7- Окно – отчет В программе я сделал свой пункт в главном меню «О программе». Нажав на него, вы можете видеть мою информацию: название института, мою фамилию и имя, номер группы и год когда была сделана программа. Рисунок 8- Окно – О программе
Для выхода из программы База Данных можно нажать на крестик, а можно нажать на пункт, в главном меню 11, «Файл – Выход» (Рис. 6). Заключение Я разработал программу ведения баз данных для торговой фирмы. С помощью моей программы можно без затруднений и специальных знаний вести базу данных, которая позволяет делать все необходимые операции по учету сотрудников. То есть добавлять, изменять, обновлять, удалять и просматривать все имеющиеся и вводимые данные. Кнопочная форма позволяет просматривать отчеты об общей выручке в текущем месяце, комиссионных выплатах и доходах с учетом комиссионных выплат. На примере моей программы ведения базы данных для торговой фирмы, я предоставил к рассмотрению функции и возможности написания подобных программ при помощи Delphi. Эта программа достаточно проста и удобна в обращении. Я считаю, что моя написанная мною программа в практическом применении удобна и достаточно эффективна. Все зависит от пользователя, объема располагаемых им знаний и умения ими воспользоваться. Говоря о себе могу сказать, что эта программа имеет много полезных функций и опыт полученный при ее разработке и написании в дальнейшем мне очень пригодится. Глоссарий
Популярное: Генезис конфликтологии как науки в древней Греции: Для уяснения предыстории конфликтологии существенное значение имеет обращение к античной... Как выбрать специалиста по управлению гостиницей: Понятно, что управление гостиницей невозможно без специальных знаний. Соответственно, важна квалификация... ©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (188)
|
Почему 1285321 студент выбрали МегаОбучалку... Система поиска информации Мобильная версия сайта Удобная навигация Нет шокирующей рекламы |