Реализация команды Приём меню Прокат
Для реализации этой команды необходимо на соответствующей форме ввести код клиента в отведенный для этого MaskEdit, после чего в появив¬шийся ComboBox ввести номер заказа. При щелчке на кнопку «Принять» кассеты данного заказа принимаются в видеотеку и удаляются из специали¬зированных списков, и число таких кассет в базе увеличивается на 1.
Реализация команды Добавить новую меню Кассеты
При регистрации видеоносителей в прокате учитывается вся информа¬ция о них: название кассеты, ФИО режиссера, жанр произведения, страна-производитель, кинокомпания, сделавшая данный продукт, время воспроиз¬ведения, цена проката (руб.) за сутки, а так же дата выпуска кассеты в прокат и количество принятых в данное отделение кассет с аналогичным названием. При щелчке по кнопке Добавить В БД добавится установленное количество кассет. Цена их будет зависеть от даты выдачи им лицензии, так как новинки всегда стоят дороже остальных кассет. В программе установлено, что кассета является новинкой в течение месяца после получения лицензии, после чего её цена автоматически снижается до уровня простых кассет. Реализация команды Изменить меню кассеты
Эта команда применяется в том случае, если необходимо изменить данные видеокассете, которые находятся в таблице на главной форме. Для этого необходимо кликнуть правой кнопкой мыши по той записи, которая нуждается в изменении. Из появившегося меню выбрать строку «Изменить». Появится форма, аналогичная форме добавления, но результирующей кноп¬кой «Изменить», на которую надо нажать после коррекции записей.
Реализация команды Добавить меню Клиенты
Регистрируется вся необходимая информация о клиенте: ФИО, контактный телефон, серия и номер паспорта (включая срок действия паспорта), адрес прописки. При щелчке по кнопке «Добавить» В БД добавится 1 новый кли¬ент.
Реализация команды Продажа меню Кассеты
Если стоимость проката кассеты превышает её номинальную стоимость, то клиенту предлагается приобрести кассету. Если клиент согласен, то с формы Выдача сотрудник проката переходит на форму продажа. Форма со¬держит окно, где отображаются выбранные для продажи кассеты, а так же окна, в которых отображаются код клиента, ФИО клиента и цена заказа. При щелчке по кнопке ОК выручка увеличивается на сумму заказа, а количество таких кассет в базе уменьшается на 1.
Разработчик полагает, что описание реализации остальных опций не
имеет смысла по причине их простоты.
Заключение
Полученные результаты полностью соответствуют поставленным зада¬чам. Разработанная программа являет собой автоматизированную систему учета видеоносителей в видеотеке.
22
Приложение 1.
Исходные тексты программы
type
//TStr = array [0.. 10] of String;
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
DBGrid1: TDBGrid;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
GroupBox1: TGroupBox;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Edit1: TEdit;
Label5: TLabel;
ADOQuery1: TADOQuery;
ADOCommand1: TADOCommand;
Label6: TLabel;
N14: TMenuItem;
Edit2: TEdit;
procedure FormActivate(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure N5Click(Sender: TObject);
procedure N10Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N9Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure ComboBox1Change(Sender: TObject);
procedure ComboBox2Change(Sender: TObject);
procedure ComboBox3Change(Sender: TObject);
procedure Edit2Change(Sender: TObject);
procedure Edit1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses ADO, priem, Output, manreg, outputmen, stats, Operations, cassreg,
sell, outputed;
{$R *.dfm}
procedure TForm1.FormActivate(Sender: TObject);
var
SQL : String;
i,j,k: Integer;
begin
{SQL:='update isriks_cassets set isriks_cassets.cas_director = ''Unknown''';
SQL:=SQL + 'where cas_director is null';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(SQL);
ADOQuery1.Open;
ADoquery1.ExecuteOptions;
ADOQuery1.close; }
SQL:='update isriks_cassets set isriks_cassets.cas_director = ''Unknown''';
SQL:=SQL + 'where cas_director is null';
ADOCommand1.prepared:=false;
ADOCommand1.CommandText:=SQL;
ADOCommand1.prepared:=true;
ADOCommand1.execute;
SQL := 'SELECT gen_name FROM isriks_gengers';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add(SQL);
ADOQuery1.Open;
ADOQuery1.First;
ComboBox1.Items.Clear;
ComboBox1.Items. Add('Bce');
for i := 1 to ADOQuery1.RecordCount do begin
ComboBox1.Items. Add(Trim(ADOQuery1.FieldValues['gen_name']));
ADOQuery1.Next; end;
ComboBox1.ItemIndex := 0;
SQL := 'SELECT distinct cas_director FROM isriks_cassets';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL. add(SQL);
ADOQuery1.Open;
ADOQuery1.First;
ComboBox2.Items.Clear;
ComboBox2.Items.Add('Все');
for i := 1 to ADOQuery1.RecordCount do begin
ComboBox2.Items.Add(Trim(ADOQuery1.FieldValues['cas_director']));
//tmp[i] := Trim(ADOQuery1.FieldValues['cas_director']);
ADOQuery1.Next;
end;
ComboBox3.ItemIndex := 0;
SQL := 'SELECT distinct cas_country FROM isriks_cassets';
ADOQuery1.SQL.Clear;
ADOQuery1.SQL. add(SQL);
ADOQuery1.Open;
ADOQuery1.First;
ComboBox3.Items.Clear;
ComboBox3.Items.Add('Все');
for i := 1 to ADOQuery1.RecordCount do begin
ComboBox3.Items.Add(Trim(ADOQuery1.FieldValues['cas_country']));
ADOQuery1.Next;
end;
end;
procedure TForm1.N6Click(Sender: TObject);
begin
Form2.Show;
end;
procedure TForm1.N7Click(Sender: TObject);
begin
Form5.Show;
end;
procedure TForm1.N8Click(Sender: TObject);
begin
Form6.Show; //возможно ссылка не туда..
end;
procedure TForm1.N5Click(Sender: TObject);
begin
form1.Close;
end;
procedure TForm1.N10Click(Sender: TObject);
begin
Form4.Show;
end;
procedure TForm1.N11Click(Sender: TObject);
begin
Form8.show;
end;
procedure TForm1.N12Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm1.N13Click(Sender: TObject);
begin
Form9.Show;
end;
procedure TForm1.N9Click(Sender: TObject);
begin
Form7.Show;
end;
procedure TForm1.N14Click(Sender: TObject);
begin
form10.show
end;
procedure TForm1.ComboBox1Change(Sender: TObject);
begin
ado.DataModule1.Cas.Filtered:=false;
ado.DataModule1.Cas.Filter:='gen_id='+inttostr(combobox1.ItemIndex+1);
ado.DataModule1.Cas.Filtered:=true;
end;
procedure TForm1.ComboBox2Change(Sender: TObject);
begin
ado.DataModule1.Cas.Filtered:=false;
ado.DataModule1.Cas.Filter:='cas_director='''+combobox2.Text+'''';
ado.DataModule1.Cas.Filtered:=true;
end;
procedure TForm1.ComboBox3Change(Sender: TObject);
begin
ado.DataModule1.Cas.Filtered:=false;
ado.DataModule1.Cas.Filter:='cas_country='''+combobox3.Text+'''';
ado.DataModule1.Cas.Filtered:=true
end;
procedure TForm1.Edit2Change(Sender: TObject);
begin
ado.DataModule1.Cas.Filtered:=false;
ado.DataModule1.Cas.Filter:='cas_year='+edit2.Text;
ado.DataModule1.Cas.Filtered:=true;
end;
procedure TForm1.Edit1Change(Sender: TObject);
begin
ado.DataModule1.Cas.Filtered:=false;
if edit1.Text='' then ado.DataModule1.Cas.Filtered:=false
else
begin
ado.DataModule1.Cas.Filter:='cas_name like '''+edit1.Text+'*''';
ado.DataModule1.Cas.Filtered:=true;
end
end;
end.
unit ADO;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDataModule1 = class(TDataModule)
ADOConnection1: TADOConnection;
Cas: TADODataSet;
srccas: TDataSource;
genre: TADODataSet;
srcgenre: TDataSource;
cust: TADODataSet;
srccust: TDataSource;
private
{ Private declarations }
public
{ Public declarations }
end;
1,200 руб.
Задание на курсовую работу 3
1. Описание задачи 4
2. Описание программы 5
2.1. Выполняемые операции 5
2.2. База данных 7
2.3. Описание проекта 10
3. Инструкция для пользователя 19
4. Заключение 21
Приложение 1. Текст программы
"Инструментальные средства разработки информационных коммерче¬ских систем"
студенту группы ЭФЗ1Д Ожерельевой Е.И..
1. Тема работы: Организация учета и контроля видеоносителей в видео-
теке
2. Цель работы: Создание Windows-приложения для автоматизации ос¬
новных рутинных процедур учета материально-технического снабжения
предприятия.
3. Среда разработки: Visual Basic6.0, Delphi7.0, MS Access 2000, MS Access
XP, VBA.
4. Материалы, представляемые к защите:
4.1. Пояснительная записка с постановкой задачи, описанием и исход¬
ными текстами программы.
4.2. Дискета с файлами исходных текстов программы и файлом демон¬
страционной базы данных с 20 записями.
5. Рекомендуемая литература:
5.1. Смирнова Г.Н., Сорокин А.А., Тельнов Ю.Ф. Проектирование экономических ин¬
формационных систем. М.: Финансы и статистика. 2003.509с.
5.2. Боб Роселман, Ричерд А. Писли и др. Использование Visual Basic 6.0. Москва-С-
Пб.-Киев. 1999. 605с.
5.3. Климова Л.М. Delphi 7. Самоучитель. Основы программирования. Решение типо¬
вых задач. М.: Кудиц-Образ. 2004. 463с.
5.4. Васильев А., Андреев A. VBA в Office 2000. Учебный курс. М.: Питер. 2001.423с.
5.5. Сюзанн Новалис. Access 2000. Руководство по VBA. - М.: изд-во Лори, 2001.
5.6. Дженнингс P. Microsoft Acsess 97 в подлиннике. Том 2. - СПб.: BHV-Санкт-
Петербург, 2000.
Приложение: Техническое задание на разработку программы.
Руководитель:
ст. преподаватель кафедры ИТ Киреева Г.И.
77
Приложение 2. Техническое задание
"Автоматизация учета и контроля оборота видеоносителей в видеотеке"
Техническое задание на разработку программы
1. Выполняемые операции
1.1 Файловые операции
1.1.4 Окончание сеанса работы. Операция должна заканчивать работу про¬граммы с предварительной проверкой наличия в памяти не сохраненного те¬кущей базы данных.
1.2 Операции учета оборота кассет
1.2.1 Поступление новых кассет. Операция должна выполнять поиск названия фильма в базе данных и, в случае отсутствия такового, добавлять новую запись с данными поступившей кассеты, после чего список должен быть отсортирован по названиям фильмов. В случае нахождения в списке за¬писи с поступившим фильмом, количество указанных в записи копий должно быть соответственно увеличено.
1.2.2 Исключение кассеты из базы данных. Операция должна уменьшать ко¬
личество указанных в текущей записи копий фильма на 1, либо удалять за¬
пись, если количество копий было 1. Текущая запись устанавливается выбо¬
ром в списке в основном окне программы.
1.2.3 Регистрация выдачи кассеты. Операция должна уменьшать количество
имеющихся в наличии копий фильма в текущей записи списка, заносить в за¬
пись фамилию и инициалы клиента, увеличивать значение количества выдач
на 1, а сумму выручки на стоимость проката. Операция должна быть недос¬
тупной для записей, в которых количество имеющихся в наличии копий
фильма равно 0. Текущая запись устанавливается выбором в списке в основ¬
ном окне программы.
1.2.4 Регистрация возврата кассеты. Операция должна увеличивать количе¬
ство имеющихся в наличии копий фильма в текущей записи базы данных и
удалять из записи фамилию и инициалы клиента. Текущая запись устанавли¬
вается выбором в списке в основном окне программы.
1.2.5 Вывод информации о кассете. В этой операции выводится вся ин¬формация о кассете из текущей записи списка.
1.3 Анализ спроса и выручки
78
1.3.1 Анализ спроса. В этой операции должен выполняться поиск 3 фильмов,
пользующихся наибольшим спросом, и вывод списка этих фильмов с коли¬
чеством выдач на экран.
1.3.2 Анализ выручки. В этой операции должен выполняться поиск 3 филь¬
мов, прокат которых дал наибольшую выручку, и вывод списка этих фильмов
с величинами выручки на экран.
2. Обрабатываемая информация
2.1 В записи базы данных должна храниться, как минимум, следующая информация о фильме:
название фильма,
фамилия и инициалы режиссера,
год выпуска,
киностудия,
длительность,
стоимость проката,
количество копий в фонде,
количество копий в наличии,
список фамилий клиентов, взявших кассеты в прокат,
количество выдач,
суммарная выручка за прокат.
2.2 Входная информация:
2.2.1 Операции открытия файла со списком и сохранения списка в файле. В
этих операциях должны вводиться имя файла с путем доступа к нему.
2.2.2 Операция регистрации поступления новых кассет. В этой операции
должны вводиться первые 6 вышеуказанных данных, и количество посту¬
пивших копий, поля количества копий в фонде и в наличии заполняется ав¬томатически.
2.2.3 Операции регистрации выдачи и возврата. В операциях регистрации
должен быть предусмотрен ввод фамилии и инициалов клиента.
2.3 Выходная информация:
2.3.1 Вывод информации о кассете. См. п. 1.2.3.
2.3.2 Анализ спроса и выручки, вывод справочной информации. См. п.п. 1.3,
1.4.
3. Пользовательский интерфейс
Рабочая среда программы должна состоять из основного окна, диалоговых окон выполнения операций, информационных окон (окон сообщений) и
79
контекстных меню с командами выполнения основных операций. Основное окно должно содержать:
операционное меню,
панель инструментов с кнопками выполнения файловых операций и
основных операций учета видеоносителей,
таблицу записей базы данных (с сокращенным набором полей) для визуализации данных и выбора текущей записи,
строку состояния с номером текущей записи и количеством записей базы данных.
Руководитель, ст. преподаватель кафедры ИТ Киреева Г.И.
1.Описание задачи
Открытие сетей видеопроката является на данный момент одним из са¬мых быстроразвивающихся видов бизнеса на территории крупных городов. Каждое отделение видеопроката оснащено крупной видеотекой, и, при жела¬нии, клиент может не только взять напрокат нужную кассету, но и приобре¬сти её. Новинки мировой индустрии кинематографа поступают в прокат по мере выдачи им лицензии и прокатного удостоверения, утвержденных зако¬нодательством РФ.
При регистрации видеоносителей в прокате учитывается вся информа¬ция о них: название кассеты, ФИО режиссера, жанр произведения, страна-производитель, кинокомпания, сделавшая данный продукт, время воспроиз¬ведения, цена проката (руб.) за сутки, а так же дата выпуска кассеты в прокат и количество принятых в данное отделение кассет с аналогичным названием.
Продажа видеоносителей производится по установленной законом цене (600 руб. за штуку).
Клиент имеет право взять напрокат (или приобрести) любое количество кассет, и длительность проката ограничена только финансовыми возможно¬стями клиента. Но для этого клиенту необходимо получить регистрационную кару, на которую заносится вид заказа и его стоимость. При выдаче данной карты регистрируется вся необходимая информация о клиенте: ФИО, кон¬тактный телефон, серия и номер паспорта (включая срок действия паспорта), адрес прописки.
При желании, сотрудник виопроката может просмотреть список выдан¬ных кассет, список клиентов данного отделения, поверить какие кассеты и кому были выданы за определённый промежуток времени, а так же узнать, какая кассета пользовалась наибольшим спросом у клиентов за отчётный пе¬риод. Так же в программе предусмотрена опция показа выручки за отчетный
период, в которую входят выручка от продаж, выручка от проката и суммар¬ная выручка.
Объем вышеуказанной работы по учету видеоносителей достаточно ве¬лик даже в условиях небольших отделений проката и требует использования вычислительной техники и специальных программных средств.
Целью работы является создание компьютерной программы для автома¬тизации основных процедур учета видеоносителей в видеотеке.
Для разработки подобных программных средств существуют специаль¬ные инструментальные системы - системы управления базами данных (СУБД), как например SQL Server фирмы Microsoft. Однако, они не имеют встроенного языка программирования высокого уровня, с помощью которого и создается прикладная программа управления базой данных, настроенная на особенности той предметной области, где она будет использоваться. Поэтому для решения задачи была использована универсальная система программи¬рования Delphi 7, набор средств которой вполне достаточен для создания программ управления базами данных малой и средней сложности.
1. Описание программы
1.1 Выполняемые операции
Программа выполняет следующие операции с базой данных (БД), со¬держащей данные о видеоносителях в видеотеке и о клиентах данного отде¬ления видеопроката:
Добавление новых данных в БД. В этой операции создаются новые запи¬си БД, в которую заносятся данные о видеоносителях, поступивших в прокат для последующей реализации, и клиентах данного отделения видеопроката, введенные с клавиатуры. Системная дата компьютера заносится в запись как дата выдачи данной продукции прокатного удостоверения. За один сеанс вы¬полнения этой операции можно ввести произвольное количество записей.
Изменение номера текущей записи. Некоторые операций выполняются программой с текущей записью БД. Перед выполнением таких операций не¬обходимо нужную запись сделать текущей. Это выполняется щелчком пра¬вой кнопки мыши по соответствующей строке списка в главном окне про¬граммы.
Изменение данных. В этой операции пользователю предоставляется воз¬можность изменить данные из текущей записи БД (например, сведения о принятой видеокассете).
Удаление данных. Эта операция удаляет из БД текущую запись. Восста¬новление удаленной записи невозможно.
Вывод данных на экран. Эта операция выводит на экран все данные од¬ной - текущей записи. Выборочные поля всех записей БД (номер контракта, вид и наименование материала, объем и дата поставки и название фирмы -поставщика) выводятся в виде таблицы в основном окне программы. Про-листывание строк с целью просмотра данных в этой таблице и выбора теку¬щей записи выполняется обычным для Windows-приложений путем.
Регистрация выдачи кассеты. В этой операции регистрируется ФИО клиента, который берёт напрокат кассету (кассеты), а так же название взятой продукции и время возврата. Все зарегистрированные данные заносятся в специализированные списки. Количество записей в БД с названием выдавае¬мых кассет уменьшается на 1.
Регистрация приёма кассеты. В этой операции, зарегистрированные при выдаче кассеты данные, удаляются из специализированных списков. Ко¬личество записей в БД с названием принимаемых кассет увеличивается на 1.
Поиск записи. В этой операции выполняется поиск записей БД, в кото¬рой содержится искомое данное. Поиск можно выполнить либо по номеру жанру произведения, либо по названию кассеты, либо по названию страны -производителя, либо по фамилии режиссера, либо по ФИО клиента. Данные основных полей найденной записи выводятся на экран. После нахождения
очередной записи с искомым данным можно продолжить поиск, до тех пор пока не будут проверены все записи БД.
Подсчет выручки. Эта операция предоставляет возможность узнать, ка¬кого размера была выручка у данного отделения видеопроката за тот или иной период. Выручка высчитывается как от продаж, так и от выдачи кассет напрокат, а так же суммарная выручка.
1.2 База данных
База данных хранится в двух файлах с расширением .MDF и .LDF, при этом в первом находится физическая структура базы, во втором - логическая. БД разрабатывалась в среде SQL Server фирмы Microsoft. Её структура вы¬глядит следующим образом:
1,200 руб.