Автор работы: Пользователь скрыл имя, 20 Мая 2013 в 00:11, курсовая работа
Целью курсовой работы является разработка информационной системы «Туристический клуб», содержащей информацию о походах, тренировках, а также данные об инструкторах и туристах. Исходными данными являются таблицы: «Категория», «Маршруты», «Инструкторы», «Туристы», «Маршруты», «Тренировки», «Походы», «Участники».
Главная задача информационный системы состоит в представлении данных о туристах, инструкторах, походах, и другой информации в зависимости от критериев поиска, будь то определённая характеристика искомого объекта, дата тренировки или категория сложности маршрута и тому подобное. Также информационная система предоставляет возможность редактирования, добавления и удаления информации. Таким образом, конечный продукт представляет собой поисковую систему по базе «Туристический клуб» с возможностью редактирования.
Введение 3
1 Анализ предметной области и постановка задачи 4
Описание предметной области 4
Функциональные задачи будущих пользователей 5
Постановка задачи 6
Выбор и обоснование критериев качества продукта 7
2 Разработка программы 9
Разработка структуры программы 9
Разработка алгоритмов обработки информации 14
Разработка форм входных и выходных документов 17
3 Внедрение программного продукта 30
Инструкция по установке программы 30
Инструкция пользователю 31
Заключение 33
Список используемой литературы 34
3 ВНЕДРЕНИЕ ПРОГРАММНОГО ПРОДУКТА
3.1 Инструкция по установке программы
Программа не требует установки. Для начала эксплуатации скопируйте файл с расширением .exe и запустите, два раза щёлкнув по её иконке.
3.2 Инструкция пользователю
В данном разделе содержится описание работы программы «Информационная система туристический клуб».
Для запуска программы щёлкните два раза по её иконке либо выделите иконку и нажмите клавишу <Enter>.
После запуска откроется главная форма, на которой расположена панель с несколькими вкладками, предоставляющими доступ к основным разделам базы данных. Также на данной форме расположено меню, с помощью которого можно выйти из программы.
На вкладке "Походы" представлен полный список походов и четыре кнопки.
Кнопка "Добавить" открывает форму для добавления нового похода. Здесь необходимо выбрать маршрут и дату проведения похода, нажать "ОК", далее из открывшегося списка выбрать инструктора и еще раз нажать "ОК".
Кнопка "Подробно/Туристы" открывает форму, которая отображает более подробную информацию о выбранном походе и предоставляет возможность создания и редактирования списка туристов, которые идут в данный поход.
Кнопка "Удалить" осуществляет удаление выбранного похода из базы данных.
Кнопка "Обновить" необходима для обновления данных в таблице, только если производились изменения в таблицах "Инструкторы" или "Маршруты".
На вкладке "Тренировки" представлен полный список тренировок и четыре кнопки.
Кнопка "Добавить" открывает форму для добавления новой тренировки. Здесь необходимо ввести название тренировки и дату проведения, нажать "ОК", далее из открывшегося списка выбрать инструктора и еще раз нажать "ОК".
Кнопка "Поиск" открывает форму с несколькими вкладками, каждая из которых соответствует определенному критерию поиска тренировки.
Кнопка "Удалить" осуществляет удаление выбранной тренировки из базы данных.
Кнопка "Обновить" необходима для обновления данных в таблице, только если производились изменения в таблице "Инструкторы".
На вкладке "Участники" слева расположены две таблицы, для каждой есть панель навигации, которая позволяет добавлять, удалять и редактировать данные об инструкторах и туристах. Справа расположена панель поиска участников по категории (квалификации), здесь необходимо выбрать категорию из открывающегося списка и нажать кнопку "Найти", данные об инструкторах и туристах будут представлены в разных таблицах.
На вкладке "Маршруты" расположена таблица, содержащая список маршрутов. Панель навигации данной таблицы позволяет добавлять, удалять и редактировать данные о маршрутах. Также на вкладке расположена кнопка "Поиск маршрутов", которая открывает форму поиска по определенному критерию.
ЗАКЛЮЧЕНИЕ
В курсовом проекте реализованы все поставленные задачи, но необходимо доработать две процедуры: TForm6.Button1Click и TForm4.Button1Click. Были приобретены знания по работе с базами данных, а так же технологии обработки запросов SQL в среде Delphi.
1. Алан Бьюли, «Изучаем SQL», изд.
Символ-Плюс, 2007г
2. Дунаев В.В., «Базы данных. Язык SQL», изд.СПб.: БХВ-Петербург, 2006г
3. Архангельский Алексей,
Справочное пособие «Delphi»,
4. Архангельский Алексей, Справочное пособие «Delphi», изд. Бином, 2011г
5. Андрей Шкрыль, «Разработка клиент-серверных приложений в Delphi», изд. БХВ-Петербург, 2006г
6. Дмитрий Осипов, «Delphi. Профессиональное программирование», изд. Символ-Плюс, 2006г
7. Алан Бьюли, «Изучаем SQL», изд. Символ-Плюс, 2007г
8. Дунаев В.В., «Базы данных. Язык SQL», изд.СПб.: БХВ-Петербург, 2006г.
9. Сайт ru.wikipedia.org.
Рисунок 3 - Таблица Instruktor
Рисунок 4 - Таблица Kategoria
Рисунок 5 - Таблица Marshrut
Рисунок 6 - Таблица Pohod
Рисунок 7 - Таблица Trenirovka
Рисунок 8 - Таблица Turist
Рисунок 9 - Таблица Ush
ПРИЛОЖЕНИЕ Б
Формы клиентского приложения
Рисунок 10 - Главная форма
Рисунок 11 - Форма поиска маршрутов
Рисунок 12 - Форма добавления тренировки
Рисунок 13 - Форма поиска тренировки
Рисунок 14 - Форма добавления похода
Рисунок 14 - Форма информации о походе и его участниках
ПРИЛОЖЕНИЕ В
Результаты работы
Рисунок 15 - Запрос "Поиск инструкторов по категории" и "Поиск туристов по категории"
Рисунок 16 - Запрос " Список всех тренировок: название, фамилия и имя инструктора и дата"
Рисунок 17 - Запрос " Список всех походов: начальная и конечная точки, дата, имя и фамилия инструктора"
Рисунок 18 - Запрос "Поиск маршрутов по категории сложности"
Рисунок 19 - Запрос "Поиск маршрутов по длительности"
Рисунок 20 - Запрос " Список инструкторов, которые не заняты в походе или на тренировке в определённую дату и имеют необходимую категорию для проведения похода"
Рисунок 21 - Запрос «Поиск тренировок проводимых выбранным инструктором"
Рисунок 22 - Запрос «Поиск тренировок проводимых в определенную дату"
Рисунок 23 - Запрос «Поиск тренировок проводимых в определенный промежуток времени"
Рисунок 24 - Запрос " Список туристов, которые участвуют в выбранном походе" (таблица слева) и запрос " Список туристов, которые имеют необходимую категорию и не участвуют в другом походе" (таблица справа)
ПРИЛОЖЕНИЕ Г
Листинг программы на языке BORLAND DELPHI
program Project1;
uses
Forms,
Unit1 in 'Unit1.pas' {Form1},
Unit2 in 'Unit2.pas' {DataModule2: TDataModule},
Unit3 in 'Unit3.pas' {Form3},
Unit4 in 'Unit4.pas' {Form4},
Unit5 in 'Unit5.pas' {Form5},
Unit6 in 'Unit6.pas' {Form6},
Unit7 in 'Unit7.pas' {Form7},
Unit8 in 'Unit8.pas' {Form8};
{$R *.res}
begin
Application.Initialize;
Application.CreateForm(TForm1, Form1);
Application.CreateForm(
Application.CreateForm(TForm3, Form3);
Application.CreateForm(TForm4, Form4);
Application.CreateForm(TForm5, Form5);
Application.CreateForm(TForm6, Form6);
Application.CreateForm(TForm7, Form7);
Application.CreateForm(TForm8, Form8);
Application.Run;
end.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Menus, Unit3, StdCtrls, Grids, DBGrids,
ExtCtrls, DBCtrls, dbcgrids, DB, DBTables, Unit2,unit4, Unit5, Unit6, Unit7;
type
TForm1 = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N2: TMenuItem;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
DBGrid2: TDBGrid;
DBNavigator2: TDBNavigator;
DBGrid3: TDBGrid;
DBNavigator3: TDBNavigator;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
GroupBox1: TGroupBox;
Label3: TLabel;
Button2: TButton;
DBGrid4: TDBGrid;
DBGrid5: TDBGrid;
Label4: TLabel;
Label5: TLabel;
DBNavigator4: TDBNavigator;
DBNavigator5: TDBNavigator;
Label6: TLabel;
DBGrid6: TDBGrid;
DBNavigator6: TDBNavigator;
Button3: TButton;
Button4: TButton;
ComboBox1: TComboBox;
DBGrid7: TDBGrid;
DBNavigator7: TDBNavigator;
Button8: TButton;
Button9: TButton;
Button10: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
procedure N2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.N2Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Form3.edit1.Text:='';
Form3.ShowModal ;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
if (ComboBox1.Text='') then
ShowMessage('Данные некорректны!')
else
begin
DataModule2.ADOQuery3.SQL.
DataModule2.ADOQuery3.SQL.
combobox1.Text +';' ;
DataModule2.ADOQuery3.Open;
DataModule2.ADOQuery4.SQL.
DataModule2.ADOQuery4.SQL.
combobox1.Text+';' ;
DataModule2.ADOQuery4.Open;
end;
end;
procedure TForm1.Button3Click(Sender: TObject);
var a: string;
begin
a:=DBGrid6.DataSource.DataSet.
if not(a='') then
begin
DataModule2.ADOQuery5.Close;
DataModule2.ADOQuery5.SQL.
DataModule2.ADOQuery5.SQL.
'WHERE id_t = '+a+';';
DataModule2.ADOQuery5.ExecSQL(
DataModule2.ADOQuery5.SQL.
DataModule2.ADOQuery5.SQL.
'FROM trenirovka, instruktor '+
'WHERE trenirovka.instruktor=
DataModule2.ADOQuery5.ExecSQL(
DataModule2.ADOQuery5.open;
end;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form4.edit1.Text:='';
Form4.DBNavigator1.Visible:=
Form4.MonthCalendar1.Visible:= true;
Form4.Button1.Visible:=true;
Form4.label1.Visible:=true;
Form4.label2.Visible:=true;
Form4.edit1.Visible:=true;
Form4.BitBtn1.Visible:=false;
Form4.Label3.Visible:=false;
Form4.DBGrid1.Visible:=false;
Form4.ShowModal ;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Form5.ShowModal ;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Form6.MonthCalendar1.Visible:= true;
Form6.Button1.Visible:=true;
Form6.DBGrid1.Visible:=true;
Form6.DBGrid2.Visible:=false;
Form6.BitBtn1.Visible:=false;
Form6.DBNavigator1.Visible:= true;
Form6.ShowModal ;
end;
procedure TForm1.Button10Click(Sender: TObject);
begin
Form7.ShowModal ;
DataModule2.ADOQuery10.close;
DataModule2.ADOQuery11.Close;
end;
procedure TForm1.Button9Click(Sender: TObject);
var a: string;
begin
a:=DBGrid7.DataSource.DataSet.
if not(a='') then
begin
DataModule2.ADOQuery9.Close;
DataModule2.ADOQuery9.SQL.
DataModule2.ADOQuery9.SQL.
'WHERE p_id = '+a+';' ;
DataModule2.ADOQuery9.ExecSQL(
DataModule2.ADOQuery9.SQL.
'FROM marshrut,pohod,instruktor '+
'where pohod.id_marsh = marshrut.m_id and pohod.id_i= instruktor.i_id;';
DataModule2.ADOQuery9.open;
end;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
DataModule2.ADOQuery5.close;
DataModule2.ADOQuery5.open;
end;
procedure TForm1.Button7Click(Sender: TObject);
begin
DataModule2.ADOQuery9.close;
DataModule2.ADOQuery9.open;
end;
end.
unit Unit2;
interface
uses
SysUtils, Classes, DB, ADODB;
type
TDataModule2 = class(TDataModule)
ADOTable1: TADOTable;
ADOTable2: TADOTable;
ADOTable3: TADOTable;
ADOTable4: TADOTable;
ADOTable5: TADOTable;
ADOTable6: TADOTable;
DataSource1: TDataSource;
DataSource2: TDataSource;
DataSource3: TDataSource;
DataSource4: TDataSource;
DataSource5: TDataSource;
DataSource6: TDataSource;
ADOTable1k_id: TAutoIncField;
ADOTable1k_kat: TWideStringField;
ADOTable2m_id: TAutoIncField;
ADOTable2p_otpr: TWideStringField;
ADOTable2p_naz: TWideStringField;
ADOTable2dlina: TWideStringField;
ADOTable2dlit: TIntegerField;
ADOTable2kategoria: TIntegerField;
ADOTable3i_id: TAutoIncField;
ADOTable3name: TWideStringField;
ADOTable3surename: TWideStringField;
ADOTable3kat: TIntegerField;
ADOTable2kat: TIntegerField;
ADOTable3k: TIntegerField;
ADOTable4t_id: TAutoIncField;
ADOTable4name: TWideStringField;
ADOTable4surename: TWideStringField;
ADOTable4kategoria: TIntegerField;
ADOTable4kat: TIntegerField;
DataSource7: TDataSource;
ADOQuery1: TADOQuery;
ADOQuery1m_id: TAutoIncField;
ADOQuery1p_otpr: TWideStringField;
ADOQuery1p_naz: TWideStringField;
ADOQuery1dlina: TWideStringField;
ADOQuery1dlit: TIntegerField;
ADOQuery1kategoria: TIntegerField;
DataSource8: TDataSource;
ADOQuery2: TADOQuery;
ADOQuery2m_id: TAutoIncField;
ADOQuery2p_otpr: TWideStringField;
ADOQuery2p_naz: TWideStringField;
ADOQuery2dlina: TWideStringField;
ADOQuery2dlit: TIntegerField;
ADOQuery2kategoria: TIntegerField;
ADOQuery3: TADOQuery;
DataSource9: TDataSource;
ADOQuery3i_id: TAutoIncField;
ADOQuery3name: TWideStringField;
ADOQuery3surename: TWideStringField;
ADOQuery3kat: TIntegerField;
ADOQuery4: TADOQuery;
DataSource10: TDataSource;
ADOQuery4t_id: TAutoIncField;
ADOQuery4name: TWideStringField;
ADOQuery4surename: TWideStringField;
ADOQuery4kategoria: TIntegerField;
DataSource11: TDataSource;
ADOQuery5: TADOQuery;
ADOQuery5id_t: TAutoIncField;
ADOQuery5instruktor: TIntegerField;
ADOQuery5trenirovkaname: TWideStringField;
ADOQuery5t_date: TDateTimeField;
ADOQuery5i_id: TAutoIncField;
ADOQuery5instruktorname: TWideStringField;
ADOQuery5surename: TWideStringField;
ADOQuery5kat: TIntegerField;
ADOQuery6: TADOQuery;
DataSource12: TDataSource;
ADOQuery7: TADOQuery;