p align="left">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- Таблица ведения базы данных торговой фирмы 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. 2.5 Тестирование Тестирование было проведено на примере Базы Данных в каталоге A:\База данных\Base.txt (см. Приложение А). В базу данных было произведено введение данных о продавцах. Всего было введено 20 строк с Фамилиями и Именами, Табельным номером, Годом приема на работу и Выручки за день. Все данные были введены в случайном порядке. В результате ввода все продавцы, которые имели выручку больше 1000 долларов в день или проработали более 10 лет, получают 6% комиссионных, а остальные 5% комиссионных (по условию задачи). В результате был произведен подсчет данных и программа вывела отчет об общих доходах за этот месяц, комиссионных выплатах, доходах с вычетом комиссионных выплат и дней в этом месяце, все данные были верны. Программа без затруднений вывела все результаты. 3. Внедрение 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. Эта программа достаточно проста и удобна в обращении. Я считаю, что моя написанная мною программа в практическом применении удобна и достаточно эффективна. Все зависит от пользователя, объема располагаемых им знаний и умения ими воспользоваться. Говоря о себе могу сказать, что эта программа имеет много полезных функций и опыт полученный при ее разработке и написании в дальнейшем мне очень пригодится. Глоссарий |
№ п/п | Новое понятие | Содержание | | 1 | 2 | 3 | | 1 | Информационно-коммуникационные технологии (ИКТ) | использование на основе компьютеров информационных и коммуникационных систем для обработки, передачи и хранения данных и информации | | 2 | Система программирования | система программирования -- это система для разработки новых программ на конкретном языке программирования | | 3 | База данных (БД) | структурированный организованный набор данных, описывающих характеристики какой-либо физической или виртуальной системы | | 4 | Компонент | функциональный элемент, имеющий определенные свойства и размещаемый программистом в окне формы | | 5 | Файл | именованная часть жесткого диска или гибкой дискеты. Также логическое устройство, потенциальный источник или приемник информации. Длина каждого файла ограничивается только емкостью устройства внешней памяти компьютера | | 6 | Исполняемый файл | файл, содержащий в себе готовую к запуску компьютерную программу | | 7 | Файл проекта | автоматически создаваемый файл, связывающий вместе все файлы приложения и содержащий код инициализации | | 8 | Файл формы | файл, содержащий список свойств всех компонентов, включенных в форму, значения которых были изменены по сравнению со значениями, заданными по умолчанию | | 9 | Проект | совокупность файлов, обеспечивающих разработку приложения в Delphi | | 10 | RAD (Rapid Application Development) | быстрая разработка приложений. Технология разработки приложений с использованием средств визуализации и повторного использования кода | | |
Список использованных источников 1. Архангельский А.Я. «Приемы программирования в Delphi».: Издательство «Бином-Пресс» 2006г. -944 стр. -ISBN 5-9518-0145-1 2. С.И. Бобровский «Delphi 7 Учебный курс».: Издательство «Питер» 2004. - 736 с. - ISBN 5-8046-0086-9 3.Г.В. Галисеев «Компоненты в Delphi 7».: Издательство «Вильямс» 2004г. - 624стр. -ISBN 5-8459-0555-9 4. А. Шкрыль «Delphi.Народные советы».: Издательство BHV-СПБ 2007г. - 400стр. - ISBN 5-9775-0047-5 5. Культин Н.Б. «Основы программирования в Delphi 7».: Издательство BHV- СПБ. 2008г. - 480 с. -ISBN 978-5-9775-0235-1 6. Культин Н.Б. Программирование на Object Pascal в Delphi 5.Самоучитель.:Издательство BHV-СПБ. - 464стр. -ISBN 5-8206-0079-7 7. Лабзина Т.А. Алгоритмические языки и программирование Юнита 5. Издательство НОУ СГУ, 1999. 8. Е.Марков «Программирование в Delphi 7».:Издательство BHV-СПБ. 2003г. -784стр. -ISBN 5-94157-116-X 9. В.Кадлец «Delphi. Книга рецептов. Практические примеры, трюки и секреты».: Издательство «Наука и техника». 2006г. - 384стр. - ISBN 80-251-0017-0 10. Фаронов В.В. «Delphi 2005. Разработка приложений для баз данных и Интернета».: Издательство «Питер». 2006г. - 608стр. - ISBN 5-469-01191-7 11. Анатолий Хомоненко «Delphi 7. Наиболее полное руководство».: Издательство: BHV - Санкт - Петербург, 2006 г.-1216 стр.-ISBN 5-94157-267 12. Дмитрий Осипов «Delphi. Профессиональное программирование».: Издательство: Символ-Плюс, 2006 г.-1056 стр.-ISBN 5-93286-074-Х Приложение А База данных на которой проводилось тестирование |
Фамилия и Имя | Табельный номер | Год приема на работу | Выручка за день | | Петров Денис | 001 | 2000 | 400 | | Боброва Елена | 002 | 1987 | 250 | | Борисова Елена | 003 | 1995 | 345 | | Афонина Екатерина | 004 | 1993 | 654 | | Дворниченко Владимир | 005 | 1996 | 865 | | Сидоренко Николай | 006 | 1998 | 1024 | | Мартакова Валерия | 007 | 1997 | 567 | | Бондаренко Иван | 008 | 1995 | 856 | | Свиридова Мария | 009 | 1989 | 687 | | Иванушкина Мария | 010 | 2000 | 1050 | | Заботина Нина | 011 | 1995 | 678 | | Попова Татьяна | 012 | 2005 | 1420 | | Галкина Виктория | 013 | 2003 | 758 | | Тимошина Анастасия | 014 | 1998 | 754 | | Афанасьевна Анна | 015 | 2001 | 574 | | Пучкова Алена | 016 | 1999 | 854 | | Голубев Егор | 017 | 2004 | 966 | | Гуреев Владислав | 018 | 1997 | 924 | | Курсин Степан | 019 | 1994 | 125 | | Казаков Андрей | 020 | 2000 | 876 | | |
Страницы: 1, 2
|