Создание модели, показывающей результаты соревнований по лыжному забегу

  • Вид работы:
    Курсовая работа (т)
  • Предмет:
    Информационное обеспечение, программирование
  • Язык:
    Русский
    ,
    Формат файла:
    MS Word
    1,37 Мб
  • Опубликовано:
    2013-01-21
Вы можете узнать стоимость помощи в написании студенческой работы.
Помощь в написании работы, которую точно примут!

Создание модели, показывающей результаты соревнований по лыжному забегу

Введение

Объектно-ориентированное программирование представляет собой метод программирования, который весьма близко напоминает наше поведение. Оно является естественной эволюцией более ранних нововведений в разработке языков программирования. Объектно-ориентированное программирование является более структурным, чем все предыдущие разработки, касающиеся структурного программирования. Оно также является более модульным и более абстрактным, чем предыдущие попытки абстрагирования данных и переноса деталей программирования на внутренний уровень. Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:

1.      Инкапсуляция. Комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных - объект.

2.      Наследование. Определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.

.        Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.

В данной курсовой работе будет создана модель, показывающей результаты соревнований по лыжному забегу. Модель результатов соревнований даёт возможность работать с информацией, которая обычно хранится в таблице результатов соревнований, также она предоставляет возможность использовать ее в качестве модели, показывающей результаты по любому виду соревнований, включающие в себя время старта и время финиша (мотогонки, бег на различные дистанции, гонки на автомобилях и др.). Также программа позволяет работать с записями в таблице результатов, производить поиск по различным параметрам, добавлять, редактировать, удалять, просматривать данные. На главной форме имеется кнопка, по нажатию которой появляется диалоговое окно, здесь вам предлагают ввести фамилию интересующего вас лыжника, нажимаем на кнопку “OK” и в главной таблице появляется информации о спорстмене, которого вы искали.

Анализ предметной области

Основная цель данной курсовой работы заключается в разработке программы, моделирующей таблицу результатов по лыжному забегу. Любой пользователь, имеющий доступ к данной программе может произвести поиск интересующего его спортсмена по фамилии и по ID. Так же должна предоставиться возможность разбить всю таблицу результатов на три возрастные категории( до 18, от 18 до 30 и старше 30) и, соответственно, определить чемпиона по каждой из них. Необходимо предоставить отчет по всей таблице и по запросам, а также предусмотреть возможность вывода на печать соответствующего отчета. Должно организовываться добавление информации по спорстменам в таблицу результатов, удаление и редактирование.

Требования к функциональным характеристикам

.1 Система должна обеспечивать возможность выполнения следующих функций:

инициализацию системы ;

ввод, удаление и коррекцию текущей информации;

получение сведений об участниках лыжного забега;

разбиение на возрастные категории.

.2 Результаты:

поиск по ID;

поиск по Фамилии, Имени;

определение чемпиона выбранной возрастной группы;

вывод на печать основной таблицы;

вывод на печать запросов.

Вся информация находится в БД. Каждому полю таблицы соответствует свой подходящий для нее тип.

Разработка программы

Разрабатывается программа, представляющая модель таблицы результатов лыжного забега. Языком программирования был выбран объектно-ориентированный язык Паскаль. Для разработки пользовательского интерфейса выбрана среда программирования Delphi.

В данной работе будет использована одна таблица - Результаты соревнования по лыжному забегу. Для удобства работы все составляющие системы будут расположены на отдельных формах одного проекта, а переход из формы в главную форму будет производиться при выполнении некоторого условия или по какому-либо действию пользователя. База данных была разработана с помощью СУБД Paradox.

Работа программы будет основываться на формировании различных запросов к базе данных. Результаты всех запросов будут выводиться в одну таблицу DbGrid1 на форме, предназначенной для запросов.

Разработка пользовательского интерфейса

Пользовательский интерфейс проекта будет реализован с помощью среды программирования Delphi 7. Для представления базы на главной форме будет использоваться визуальный компонент для отображения базы данных DbGrid. Этот же визуальный компонент будет использоваться и для представления результатов всех запросов.

Для того чтобы иметь возможность импортировать данные из базы данных в Delphi 7 мы связали данные двух программм с помощью компонента Table, находящегося в закладке BDE. Основными его свойстами являются- DataBaseName, в котором мы выбираем созданный нами alias, и TableName, в котором мы выбираем созданную в Paradox’e таблицу.

Компонент DataSource предназначен для того, чтобы получить доступ к созданным нами таблицам. В этой курсовой работе компонент DataSource1 служит для организации доступа к таблице baza1.db, в которой хранится вся информация (свойство DataSet у него Table1).















Риc.1-Схема связи главной формы с подчиненными формами

Просмотр базы данных

Пользователю предоставляется возможность просматривать базу данных в режиме таблицы. Для того чтобы пользователь имел возможность просматривать записи базы данных, в форму приложения был добавлен компонент DBNavigator, значок которого находится на вкладке Data Controls. Компонент DBNavigator представляет собой набор кнопок, при щелчках на которых во время работы программы происходит перемещение указателя текущей записи к следующей, предыдущей, первой или последней записи базы данных, а также добавление к файлу данных новой записи, удаление текущей записи.

Рис.2 - Компонент DBNavigator

Выбор информации из базы данных

При работе с базой данных пользователя, как правило, интересует не все ее содержимое, а некоторая конкретная информация. Найти нужные сведения можно последовательным просмотром записей. Однако такой способ поиска неудобен и малоэффективен. Большинство систем управления базами данных позволяют произвести выборку нужной информации путем выполнения запросов. Пользователь в соответствии с определенными правилами формулирует запрос, указывая, каким критериям должна удовлетворять интересующая его информация, а система выводит записи, удовлетворяющие запросу. Для выборки из базы данных записей, удовлетворяющих некоторому критерию, предназначен компонент Query.

Анализ работы программы

До момента открытия главной формы, перед пользователем появляется вспомогательная форма Password Dialog, которая требует от него ввести пароль, в случае правильно введенного пароля пользователю откроется основная форма, в противном случае, при неверном вводе пароля или нажатии кнопки «Отмена» производится выход из программы.

Рис.3-Форма ввода пароля

Рис.4-Главная форма проекта

Анализ работы программы произведем по результатам различных запросов.

В данной курсовой работе реализованы следующие запросы:

.Запрос по возрастной категории и определение чемпиона выбранной категории (выбор возрастной категории предоставлен на компоненте RadioGroup1).

Рис.5-Выбор возрастной категории

Например, при выборе категории «до 18 лет» в основной таблице произведтся поиск участников, чей возраст не достиг восемнадцати лет, также будет определен чемпион в данной категории путем сортировки по времени:

Рис.6-Выбор возрастной категории до 18 лет

Рис.7-Результат запроса

Как видно чемпион в данной категории является Сатиев Самир с минимальным временем финиша.

Запрос по оставшимся двум категориям выполняется аналогично.

2.Запрос по фамилии и имени участника лыжного забега.

При нажатии кнопки «Информация об участнике», расположенной на главной форме, перед пользователем появляется вспомогательное диалоговое окно(выборка информации из БД):

Рис.8- Выборка информации из БД

После ввода фамилии и имени интересующего вас участника лыжного забега:

Рис.9- Ввод фамилии и имени

в главной таблице появляется информации об этом участнике:

Рис.10- Результат запроса

3.Запрос по ID

На главной форме расположен компонент edit1, после введения ID участника необходимо нажать на кнопку «ОК» после чего выполнится запрос на поиск по введенному ID, пользователь получит информацию об участнике лыжного забега под этим номером:

Рис.11- Результат запроса

Отчет таблицы результатов


Отчет запроса

Рис.13-Вывод запроса в отчет

В качестве примера вывода запроса в отчет был взят запрос по выбору возрастной категории «до 18 лет».

Для создания отчетов был использован генератор отчетов QuickReport. Было создано два вида отчета : один для основной информации, то есть для вывода на печать всего списка имеющихся данных, а второй ,для печати отчетов по запросу, того, что искал пользователь

В данной программе пользователю предоставляется возможность вывести любой отчет на печать по нажатию кнопок:

Рис.14-Отправка отчета на печать

Заключение

паскаль delphi электронный таблица

В данной курсовой работе была разработана электронная модель таблицы результатов соревнований по лыжному забегу, которая позволяет не только редактировать, добавлять, удалять содержащиеся в ней данные, но и производить поиск по различным критериям, то есть реализованы запросы по возрасту, по определению чемпиона выбранной возрастной категории , по ID участника и по фамилии-имени. Так как данная модель была реализована с помощью применения базы данных, то пользователь имеет возможность редактировать и добавлять данные как в базе, данные из которой затем импортируются в Delphi, так и в самой модели (для это были использованы соответствующие связи)

Также была предусмотрена возможность просмотра отчета по всей таблице результатов и по запросам, и, соответственно, возможность вывода на печать всего отчета. Для защиты базы был предусмотрен запрос пароля.

При выполнении курсовой работы были изучены технологии связывания Paradox со средой программирования Delphi, приемы создания различных меню для проекта, построение простейших SQL-запросов и построение отчетов при использовании компонента QuickReport.

Список литературы:

1.   Желонкин А. В. Основы программирования в интегрированной среде DELPHI. Практикум. - М.: БИНОМ, 2006.

2.      Жуков А. Изучаем Delphi. - М. : Питер, 2002.

.        Фленов М. Библия Delphi.- СПб.: БХВ - Петербург, 2008.

.        Культин Н. С++ Builder в задачах и примерах.- СПб.: БХВ-Петербург, 2005.

.        Культин Н. Б. Основы программирования в Delphi 7, БХВ-Петербург, Санкт-Петербург 2003

.        Шпак Ю. А. Delphi 7 на примерах, Издательство Юниор, Киев 2003

Приложение А. Листинги

Unit1;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,,MyWord, jpeg;= class(TForm): TDBGrid;: TDBNavigator;: TTable;: TQuery;: TDataSource;: TButton;: TRadioGroup;: TButton;: TButton;: TTimer;: TButton;: TButton;: TButton;: TButton;: TEdit;: TButton;: TButton;: TImage;: TLabel;: TLabel;: TLabel;Button1Click(Sender: TObject);RadioGroup1Click(Sender: TObject);Button2Click(Sender: TObject);FormShow(Sender: TObject);Button3Click(Sender: TObject);Timer1Timer(Sender: TObject);Button4Click(Sender: TObject);Button5Click(Sender: TObject);Button6Click(Sender: TObject);Button8Click(Sender: TObject);Button9Click(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm1;Unit2, Unit3, Unit4;

{$R *.dfm}TForm1.Button1Click(Sender: TObject);;;TForm1.RadioGroup1Click(Sender: TObject);.Filtered:=not(RadioGroup1.ItemIndex=3);RadioGroup1.ItemIndex of

:beginquery1 do begin;.Clear;.Add('SELECT ID,FIO,Vozrast,Start,Finish');.Add('FROM ":papa:baza1.db"');.Add('WHERE Vozrast<18');.Add('ORDER by Finish');;RecordCount<>0DataSource1.DataSet:=Query1 ShowMessage('В БД нет записей, удовлетворяющих'+#13+'критерию запроса.');

end;;

:beginquery1 do begin;.Clear;.Add('SELECT ID,FIO,Vozrast,Start,Finish');.Add('FROM ":papa:baza1.db"');.Add('WHERE Vozrast>=18 and Vozrast<30');.Add('ORDER by Finish');;RecordCount<>0DataSource1.DataSet:=Query1 ShowMessage('В БД нет записей, удовлетворяющих'+#13+'критерию запроса.');

end;;

:beginquery1 do begin;.Clear;.Add('SELECT ID,FIO,Vozrast,Start,Finish');.Add('FROM ":papa:baza1.db"');.Add('WHERE Vozrast>30');.Add('ORDER by Finish');;RecordCount<>0DataSource1.DataSet:=Query1 ShowMessage('В БД нет записей, удовлетворяющих'+#13+'критерию запроса.');

end;;;;TForm1.Button2Click(Sender: TObject);buf:string[30];:=InputBox('Выборка информации из БД',

'Введите фамилию,имя и щелкните ОК','');

if buf = '' then exit;query1 do begin;.Clear;.Add('select *');.Add('from ":papa:baza1.db"');.Add('where');.Add('(FIO="' + buf +'")');;recordcount<>0 then.DataSet:=query1 else(''В БД нет записей, удовлетворяющих'+#13+'критерию запроса.'.');

end;;TForm1.FormShow(Sender: TObject);.showmodal;;TForm1.Button3Click(Sender: TObject);table:integer;CreateWord then begin(false);;.DisableControls;(DBGrid1,true,table);(true);.EnableControls;;;TForm1.Timer1Timer(Sender: TObject);

Label1.Caption := 'ТАБЛИЦА РЕЗУЛЬТАТОВ СОРЕВНОВАНИЙ ПО ЛЫЖНОМУ ЗАБЕГУ';

if Label1.Visible then.Visible:=False.Visible:=True;;.Font.Color := clBlue;;TForm1.Button4Click(Sender: TObject);.QuickRep1.Preview;;TForm1.Button5Click(Sender: TObject);.QuickRep1.Print;;TForm1.Button6Click(Sender: TObject);.QuickRep1.Preview;;TForm1.Button8Click(Sender: TObject);edit1.Text <> ''form1.Query1 do begin;.Clear;.Add('SELECT ID,FIO,Vozrast,Start,Finish');.Add('FROM ":papa:baza1.db"');.Add('WHERE');.Add('(ID= "'+ edit1.Text + '")');;;Query1.RecordCount <> 0 then.DataSet:=Query1begin(''В БД нет записей, удовлетворяющих'+#13+'критерию запроса.'');.DataSet:=Table1;;;;TForm1.Button9Click(Sender: TObject);query1 do begin;.Clear;.Add('SELECT ID,FIO,Vozrast,Start,Finish');.Add('FROM ":papa:baza1.db"');.Add('ORDER by ID');;RecordCount<>0DataSource1.DataSet:=Query1 ShowMessage(''В БД нет записей, удовлетворяющих'+#13+'критерию запроса.'');

end;;;.

Unit3Unit3;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, QRCtrls, DB, DBTables, QuickRpt, ExtCtrls;= class(TForm): TQuickRep;: TQRBand;: TQRBand;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRSysData;FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm3;unit1;

{$R *.dfm}TForm3.FormCreate(Sender: TObject);.DataSet:=Form1.Table1;.DataSet:=Form1.Table1;.DataSet:=Form1.Table1;.DataSet:=Form1.Table1;.DataSet:=Form1.Table1;.DataField:='ID';.DataField:='FIO';.DataField:='Vozrast';.DataField:='Start';.DataField:='Finish';;.

Unit4;, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,, QRCtrls, QuickRpt, ExtCtrls;= class(TForm): TQuickRep;: TQRLabel;: TQRBand;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRLabel;: TQRBand;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRDBText;: TQRSysData;FormCreate(Sender: TObject);

{ Private declarations }

{ Public declarations };: TForm4;unit1;

{$R *.dfm}TForm4.FormCreate(Sender: TObject);.DataSet:=Form1.Query1;.DataSet:=Form1.Query1;.DataSet:=Form1.Query1;.DataSet:=Form1.Query1;.DataSet:=Form1.Query1;.DataField:='ID';.DataField:='FIO';.DataField:='Vozrast';.DataField:='Start';.DataField:='Finish';;.

Похожие работы на - Создание модели, показывающей результаты соревнований по лыжному забегу

 

Не нашли материал для своей работы?
Поможем написать уникальную работу
Без плагиата!