Кинопрокат
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к курсовой работе
по дисциплине «Высокоуровневые методы информатики и программирования»
на тему «Кинопрокат»
Содержание
1. Постановка задачи …………………………………………………………….3
2. Описание предметной области…………………………………………...….4
3. Проектирование интерфейса
3.1. Выбор и
назначение визуальных
3.2. Формы проекта ..…………………………………………….…....……7
4. Разработка программного обеспечения
4.1. Процедуры, функции проекта и их назначение………………….…9
4.2. Текст программы………………………………………………….…
5. Визуальное
представление результатов……………
6. Список литературы…………………………………
- Постановка задачи
Задачей данного проекта является разработка программного обеспечения в среде визуального программирования Delphi для информационной системы в конкретной предметной области. В данном курсовом проекте велась работа над созданием базы данных для кинопроката.
- Описание предметной области
В настоящее время киноиндустрия очень быстро развивается, количество новых фильмов растет, следовательно, увеличиваются объемы информации, которая хранится в кинопрокате. Хранение информации в бумажной форме не всегда удобно, так как зачастую появляются сложности с поиском и изменением необходимой информации. Создание электронной базы данных намного упростит вышеперечисленные процедуры и позволит экономить большое количество времени.
Разработанная база данных предназначена для сотрудников кинопроката она позволяет быстро находить и редактировать необходимую информацию.
Структура базы данных:
- Название
- Год выпуска
- Страна
- Жанр
- Режиссер
- Формат
- Количество
Для лучшего представления данных используются графический вывод информации, визуальные компоненты, диаграммы, иллюстрации.
3. Проектирование интерфейса
3.1. Выбор и
назначение визуальных
Для создания интерфейса приложений система Delphi предлагает обширный набор визуальных компонентов, основные из которых располагаются на страницах Standard и Additional палитры компонентов.
Button (стандартная кнопка) - компонент меню Standard, используемый для создания кнопок, которыми пользователь выполняет команды в приложении. SpeedButton – кнопка с графикой.
Edit (окно редактирования) - компонент меню Standard, предназначенный для ввода/вывода и редактирования однострочных текстов.
Label (метка) - компонент меню Standard, используемый для отображения надписи на форме, которая не изменяется пользователем. Никакого оформления текста не предусмотрено, кроме цвета метки и текста. Основное свойство — Caption.
DBGrid (таблица строк) — компонент меню Data Controls, отображающий информацию в таблице из строк и столбцов с возможностью перемещаться по строкам и столбцам и осуществлять выбор.
Image (изображение) — компонент меню Additional. Используется для отображения графики: пиктограмм, битовых матриц, и метафайлов.
Chart (диаграммы и графики) – компонент меню Additional. Используется для создания диаграмм и графиков.
PopupMenu (Контекстное меню) - почти не отличается от компонента MainMenu. Но в отличие от Главного меню, которое одно на Форме, всплывающие меню могут быть у каждого объекта, размещённого на Форме.
3.2. Формы проекта
Работа с данными в Microsoft Access осуществляется в основном с помощью форм. Любая форма содержит окна - поля, которые предназначены для ввода информации.
Были созданы следующие формы:
- Форма запуска программы.
На форме можно осуществить одно из предложенных действий: начать работу (кнопка «Вход»), выйти из программы (кнопка «Выход»).
- Кинопрокат (главная форма).
В процессе работы с главной формой сотрудники кинопроката могут добавлять информацию о фильмах, редактировать, удалять и сохранять все изменения в БД. Также можно отсортировать, имеющиеся данные по названию, году выпуска и режиссеру. Есть возможность перейти на панели поиска и диаграмм.
- Поиск.
На форме поиск может осуществляться поиск фильмов по названию, стране, формату. Имеется кнопка перехода главную форму. Также можно осуществить выход из программы.
- Диаграммы.
На форме отображаются диаграммы по режиссеру, стране и жанру. Есть возможность перейти на главную форму.
3.2. Формы проекта
Рис.1 Форма запуска программы.
Рис.2 Кинопрокат (главная форма).
Рис.3 Форма «Поиск»
Рис.4 Форма «диаграммы».
4. Разработка программного обеспечения
- Процедуры.
procedure TForm1.SpeedButton2Click(
procedure TForm1.SpeedButton1Click(
procedure TForm2.N1Click(Sender: TObject);- предназначена для добавления информации в таблицу;
procedure TForm2.SpeedButton9Click(Sende
procedure TForm2.N3Click(Sender:
TObject); procedure TForm2.SpeedButton8Click(
procedure TForm2.SpeedButton6Click(
procedure TForm2.SpeedButton5Click(
procedure TForm2.SpeedButton4Click(
procedure TForm2.SpeedButton1Click(Sende
procedure TForm2.SpeedButton2Click(
procedure TForm3.SpeedButton1Click(
procedure TForm3.SpeedButton3Click(
procedure TForm4.SpeedButton1Click(
procedure TForm4.SpeedButton2Click(
procedure TForm4.SpeedButton1Click(
4.2. Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls, Buttons;
type
TForm1 = class(TForm)
Image1: TImage;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm1.SpeedButton2Click(
begin
form1.hide;
form2.show;
end;
procedure TForm1.SpeedButton1Click(
begin
close;
end;
end.
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, DB, ADODB, Grids, DBGrids, jpeg, ExtCtrls,
Menus;
type
TForm2 = class(TForm)
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
SpeedButton6: TSpeedButton;
Label1: TLabel;
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOTable1: TADOTable;
ADOTable1DSDesigner: TAutoIncField;
ADOTable1DSDesigner2: TWideStringField;
ADOTable1_: TIntegerField;
ADOTable1DSDesigner3: TWideStringField;
ADOTable1DSDesigner4: TWideStringField;
ADOTable1DSDesigner5: TWideStringField;
ADOTable1DSDesigner6: TWideStringField;
ADOTable1DSDesigner7: TIntegerField;
ADOConnection1: TADOConnection;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
SpeedButton7: TSpeedButton;
SpeedButton8: TSpeedButton;
SpeedButton9: TSpeedButton;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
Edit7: TEdit;
Image1: TImage;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton7Click(Sender: TObject);
procedure SpeedButton8Click(Sender: TObject);
procedure SpeedButton9Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N2Click(Sender: TObject);
procedure N3Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form2: TForm2;
implementation
uses Unit3, Unit4;
{$R *.dfm}
procedure TForm2.SpeedButton6Click(
begin
Form2.ADOTable1.
end;
procedure TForm2.SpeedButton5Click(
begin
Form2.ADOTable1.
end;
procedure TForm2.SpeedButton4Click(
begin
Form2.ADOTable1.
end;
procedure TForm2.SpeedButton7Click(
begin
Form2.ADOTable1.Insert;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit1.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit2.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit3.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit4.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit5.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit6.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit7.Text;
Form2.ADOTable1.Post;
Form2.Edit1.Clear;
Form2.Edit2.Clear;
Form2.Edit3.Clear;
Form2.Edit4.Clear;
Form2.Edit5.Clear;
Form2.Edit6.Clear;
Form2.Edit7.Clear;
end;
procedure TForm2.SpeedButton8Click(
begin
if MessageDlg ('Сохранить изменения?', mtConfirmation, [mbYes, mbNo], 0)
= mrNO then Abort;
if Form2.ADOTable1.Modified then
Form2.ADOTable1.Post;
end;
procedure TForm2.SpeedButton9Click(
begin
if MessageDlg ('Удалить запись?', mtConfirmation, [mbYes, mbNo], 0)
= mrNO then Abort;
Form2.ADOTable1.Delete;
end;
procedure TForm2.SpeedButton1Click(
begin
Form2.Hide;
Form3.show;
end;
procedure TForm2.SpeedButton2Click(
begin
Form2.Hide;
Form4.show;
end;
procedure TForm2.SpeedButton3Click(
begin
close;
end;
procedure TForm2.N1Click(Sender: TObject);
begin
Form2.ADOTable1.Insert;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit1.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit2.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit3.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit4.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit5.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit6.Text;
Form2.ADOTable1.FieldByName(
.AsString := Self.Edit7.Text;
Form2.ADOTable1.Post;
Form2.Edit1.Clear;
Form2.Edit2.Clear;
Form2.Edit3.Clear;
Form2.Edit4.Clear;
Form2.Edit5.Clear;
Form2.Edit6.Clear;
Form2.Edit7.Clear;
end;
procedure TForm2.N2Click(Sender: TObject);
begin
if MessageDlg ('Удалить запись?', mtConfirmation, [mbYes, mbNo], 0)
= mrNO then Abort;
Form2.ADOTable1.Delete;
end;
procedure TForm2.N3Click(Sender: TObject);
begin
if MessageDlg ('Сохранить изменения?', mtConfirmation, [mbYes, mbNo], 0)
= mrNO then Abort;
if Form2.ADOTable1.Modified then
Form2.ADOTable1.Post;
end;
end.
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls, DB, ADODB, Grids, DBGrids, Menus, jpeg,
ExtCtrls;
type
TForm3 = class(TForm)
DataSource1: TDataSource;
DBGrid1: TDBGrid;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
ADOTable1DSDesigner: TAutoIncField;
ADOTable1DSDesigner2: TWideStringField;
ADOTable1_: TIntegerField;
ADOTable1DSDesigner3: TWideStringField;
ADOTable1DSDesigner4: TWideStringField;
ADOTable1DSDesigner5: TWideStringField;
ADOTable1DSDesigner6: TWideStringField;
ADOTable1DSDesigner7: TIntegerField;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
SpeedButton1: TSpeedButton;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
Image1: TImage;
Image2: TImage;
Image3: TImage;
Image4: TImage;
Image5: TImage;
Image6: TImage;
Image7: TImage;
Image8: TImage;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm3.SpeedButton1Click(
begin
if RadioButton1.Checked then
begin
if Edit1.Text='' then exit;
Form3.ADOTable1.Filtered := false;
Form3.ADOTable1.Filter := 'Назваие LIKE ''*' + Edit1.Text + '*''';
Form3.ADOTable1.Filtered := true;
end;
if RadioButton2.Checked then
begin
if Edit1.Text='' then exit;
Form3.ADOTable1.Filtered := false;
Form3.ADOTable1.Filter := 'страна LIKE ''*' + Edit1.Text + '*''';
Form3.ADOTable1.Filtered := true;
end;
if RadioButton3.Checked then
begin
if Edit1.Text='' then exit;
Form3.ADOTable1.Filtered := false;
Form3.ADOTable1.Filter := 'Формат LIKE ''*' + Edit1.Text + '*''';
Form3.ADOTable1.Filtered := true;
end;
end;
procedure TForm3.SpeedButton3Click(
begin
Form3.Hide;
Form2.show;
end;
procedure TForm3.SpeedButton2Click(
begin
close;
end;
end.
unit Unit4;
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, Buttons, Series, TeEngine, TeeProcs, Chart, DB,
ADODB, Grids, DBGrids;
type
TForm4 = class(TForm)
DBGrid1: TDBGrid;
DataSource1: TDataSource;
ADOConnection1: TADOConnection;
ADOTable1: TADOTable;
Chart1: TChart;
Chart2: TChart;
Chart3: TChart;
Series1: TBarSeries;
Series2: THorizBarSeries;
Series3: TPieSeries;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
SpeedButton4: TSpeedButton;
SpeedButton5: TSpeedButton;
Image1: TImage;
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure SpeedButton5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses Unit2;
{$R *.dfm}
procedure TForm4.SpeedButton1Click(
var
kat: array of string;
kol: array of integer;
I,f: integer;
n:boolean;
begin
chart3.hide;
chart2.hide;
chart1.show;
Chart1.Series[0].Clear;
SetLength(kat, Form4.ADOTable1.RecordCount);
SetLength(kol, Form4.ADOTable1.RecordCount);
for I := 0 to length(kat)-1 do
begin
kat[I] := '';
kol[I] := 0;
end;
Form4.ADOTable1.First;
I := 0;
while not Form4.ADOTable1.Eof do
begin
if Form4.ADOTable1.FieldByName('
begin
n:=false;
for f := 0 to length(kat)-1 do
if kat[f] = Form4.ADOTable1.FieldByName
('режиссер').AsString then
begin
n:=true;
end;
if n=false then
begin
kat[I] := Form4.ADOTable1.FieldByName('
kol[I] := 0;
end;
I := I + 1;
end;
Form4.ADOTable1.Next;
end;
Form4.ADOTable1.First;
I := 0;
Form4.ADOTable1.First;
while not Form4.ADOTable1.Eof do
begin
for I := 0 to length(kat)-1 do
if kat[I] = Form4.ADOTable1.FieldByName
('режиссер').AsString then
kol[I] := kol[I] + Form4.ADOTable1.FieldByName
(Form4.DBGrid1.Columns.Items[
Form4.ADOTable1.Next;
end;
Form4.ADOTable1.First;
for I := 0 to length(kat)-1 do
if kat[I] <> '' then
begin
Chart1.Series[0].Add(kol[I], kat[I], clTeeColor);
end;
end;
procedure TForm4.SpeedButton2Click(
var
kat: array of string;
kol: array of integer;
I,f: integer;
n:boolean;
begin
chart3.hide;
chart1.hide;
chart2.show;
Chart2.Series[0].Clear;
SetLength(kat, Form4.ADOTable1.RecordCount);
SetLength(kol, Form4.ADOTable1.RecordCount);
for I := 0 to length(kat)-1 do
begin
kat[I] := '';
kol[I] := 0;
end;
Form4.ADOTable1.First;
I := 0;
while not Form4.ADOTable1.Eof do
begin
if Form4.ADOTable1.FieldByName('
begin
n:=false;
for f := 0 to length(kat)-1 do
if kat[f] = Form4.ADOTable1.FieldByName
('страна').AsString then
begin
n:=true;
end;
if n=false then
begin
kat[I] := Form4.ADOTable1.FieldByName('
kol[I] := 0;
end;
I := I + 1;
end;
Form4.ADOTable1.Next;
end;
Form4.ADOTable1.First;
I := 0;
Form4.ADOTable1.First;
while not Form4.ADOTable1.Eof do
begin
for I := 0 to length(kat)-1 do
if kat[I] = Form4.ADOTable1.FieldByName
('страна').AsString then
kol[I] := kol[I] + Form4.ADOTable1.FieldByName
(Form4.DBGrid1.Columns.Items[
Form4.ADOTable1.Next;
end;
Form4.ADOTable1.First;
for I := 0 to length(kat)-1 do
if kat[I] <> '' then
begin
Chart2.Series[0].Add(kol[I], kat[I], clTeeColor);
end;
end;
procedure TForm4.SpeedButton3Click(
var
kat: array of string;
kol: array of integer;
I,f: integer;
n:boolean;
begin
chart1.hide;
chart2.hide;
chart3.show;
Chart3.Series[0].Clear;
SetLength(kat, Form4.ADOTable1.RecordCount);
SetLength(kol, Form4.ADOTable1.RecordCount);
for I := 0 to length(kat)-1 do
begin
kat[I] := '';
kol[I] := 0;
end;
Form4.ADOTable1.First;
I := 0;
while not Form4.ADOTable1.Eof do
begin
if Form4.ADOTable1.FieldByName(' жанр ').AsString <> '' then
begin
n:=false;
for f := 0 to length(kat)-1 do
if kat[f] = Form4.ADOTable1.FieldByName
('жанр').AsString then
begin
n:=true;
end;
if n=false then
begin
kat[I] := Form4.ADOTable1.FieldByName('
kol[I] := 0;
end;
I := I + 1;
end;
Form4.ADOTable1.Next;
end;
Form4.ADOTable1.First;
I := 0;
Form4.ADOTable1.First;
while not Form4.ADOTable1.Eof do
begin
for I := 0 to length(kat)-1 do
if kat[I] = Form4.ADOTable1.FieldByName
('жанр').AsString then
kol[I] := kol[I] + Form4.ADOTable1.FieldByName
(Form4.DBGrid1.Columns.Items[
Form4.ADOTable1.Next;
end;
Form4.ADOTable1.First;
for I := 0 to length(kat)-1 do
if kat[I] <> '' then
begin
Chart3.Series[0].Add(kol[I], kat[I], clTeeColor);
end;
end;
procedure TForm4.SpeedButton4Click(
begin
form4.hide;
form2.show;
end;
procedure TForm4.SpeedButton5Click(
begin
close;
end;
end.
5. Визуальное представление
результатов
Рис.5 Диаграмма по названию
Рис.6 Диаграмма по стране
Рис.7 Диаграмма по жанру

- Кино самое массовое из искусств
- Киносеансы
- Кинотеатр
- Кинотеатр с клубными помещениями
- Кинофильм «Маленькая Вера, как социальный конструкт эпохи перестройки». Культурно – исторический анализ
- Кинофото құжаттар және дыбыс жазбаларының Орталық мемлекеттік мұрағаты
- Киноцентр «Космос»
- Кино и телевидение как средство коммуникации
- Кино как культурное явление XX века
- Кино как новый элемент культуры ХХ века
- Кино как синтетическое искусство ХХ века
- Кино как явление культуры XX века
- Кинокритика в жанровой системе журналистики
- Кинообразы русского кино 1910-х годов и их влияниe на моду