ГОТОВЫЕ ДИПЛОМНЫЕ РАБОТЫ, КУРСОВЫЕ РАБОТЫ, ДИССЕРТАЦИИ И РЕФЕРАТЫ
Автоматизация учета и контроля оборота видеоносителей в видеотеке | |
Автор | ошибка |
Вуз (город) | РГТЭУ |
Количество страниц | 39 |
Год сдачи | 2008 |
Стоимость (руб.) | 1500 |
Содержание | Содержание
Задание на курсовую работу 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. Её структура вы¬глядит следующим образом: |
Список литературы | нет |
Выдержка из работы | Реализация команды Приём меню Прокат
Для реализации этой команды необходимо на соответствующей форме ввести код клиента в отведенный для этого 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; |