Создание модели, показывающей результаты соревнований по лыжному забегу
Разработка электронной модели таблицы результатов соревнований по лыжному забегу с помощью объектно-ориентированный языка Паскаль. Схема связи главной формы с подчиненными формами. Разработка пользовательского интерфейса в среде программирования Delphi 7.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 21.01.2013 |
Размер файла | 2,1 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Введение
Объектно-ориентированное программирование представляет собой метод программирования, который весьма близко напоминает наше поведение. Оно является естественной эволюцией более ранних нововведений в разработке языков программирования. Объектно-ориентированное программирование является более структурным, чем все предыдущие разработки, касающиеся структурного программирования. Оно также является более модульным и более абстрактным, чем предыдущие попытки абстрагирования данных и переноса деталей программирования на внутренний уровень. Объектно-ориентированный язык программирования характеризуется тремя основными свойствами:
1. Инкапсуляция. Комбинирование записей с процедурами и функциями, манипулирующими полями этих записей, формирует новый тип данных - объект.
2. Наследование. Определение объекта и его дальнейшее использование для построения иерархии порожденных объектов с возможностью для каждого порожденного объекта, относящегося к иерархии, доступа к коду и данным всех порождающих объектов.
3. Полиморфизм. Присваивание действию одного имени, которое затем совместно используется вниз и вверх по иерархии объектов, причем каждый объект иерархии выполняет это действие способом, именно ему подходящим.
В данной курсовой работе будет создана модель, показывающей результаты соревнований по лыжному забегу. Модель результатов соревнований даёт возможность работать с информацией, которая обычно хранится в таблице результатов соревнований, также она предоставляет возможность использовать ее в качестве модели, показывающей результаты по любому виду соревнований, включающие в себя время старта и время финиша (мотогонки, бег на различные дистанции, гонки на автомобилях и др.). Также программа позволяет работать с записями в таблице результатов, производить поиск по различным параметрам, добавлять, редактировать, удалять, просматривать данные. На главной форме имеется кнопка, по нажатию которой появляется диалоговое окно, здесь вам предлагают ввести фамилию интересующего вас лыжника, нажимаем на кнопку “OK” и в главной таблице появляется информации о спорстмене, которого вы искали.
Анализ предметной области
Основная цель данной курсовой работы заключается в разработке программы, моделирующей таблицу результатов по лыжному забегу. Любой пользователь, имеющий доступ к данной программе может произвести поиск интересующего его спортсмена по фамилии и по ID. Так же должна предоставиться возможность разбить всю таблицу результатов на три возрастные категории( до 18, от 18 до 30 и старше 30) и, соответственно, определить чемпиона по каждой из них. Необходимо предоставить отчет по всей таблице и по запросам, а также предусмотреть возможность вывода на печать соответствующего отчета. Должно организовываться добавление информации по спорстменам в таблицу результатов, удаление и редактирование.
Требования к функциональным характеристикам
1.1 Система должна обеспечивать возможность выполнения следующих функций:
- инициализацию системы ;
- ввод, удаление и коррекцию текущей информации;
- получение сведений об участниках лыжного забега;
- разбиение на возрастные категории.
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-Главная форма проекта
Анализ работы программы произведем по результатам различных запросов.
В данной курсовой работе реализованы следующие запросы:
1.Запрос по возрастной категории и определение чемпиона выбранной категории (выбор возрастной категории предоставлен на компоненте RadioGroup1).
Рис.5-Выбор возрастной категории
Например, при выборе категории «до 18 лет» в основной таблице произведтся поиск участников, чей возраст не достиг восемнадцати лет, также будет определен чемпион в данной категории путем сортировки по времени:
Рис.6-Выбор возрастной категории до 18 лет
Рис.7-Результат запроса
Как видно чемпион в данной категории является Сатиев Самир с минимальным временем финиша.
Запрос по оставшимся двум категориям выполняется аналогично.
2.Запрос по фамилии и имени участника лыжного забега.
При нажатии кнопки «Информация об участнике», расположенной на главной форме, перед пользователем появляется вспомогательное диалоговое окно(выборка информации из БД):
Рис.8- Выборка информации из БД
После ввода фамилии и имени интересующего вас участника лыжного забега:
Рис.9- Ввод фамилии и имени
в главной таблице появляется информации об этом участнике:
Рис.10- Результат запроса
3.Запрос по ID
На главной форме расположен компонент edit1, после введения ID участника необходимо нажать на кнопку «ОК» после чего выполнится запрос на поиск по введенному ID, пользователь получит информацию об участнике лыжного забега под этим номером:
Рис.11- Результат запроса
Отчет таблицы результатов
Рис.12-Вывод всех записей в отчет
Отчет запроса
Рис.13-Вывод запроса в отчет
В качестве примера вывода запроса в отчет был взят запрос по выбору возрастной категории «до 18 лет».
Для создания отчетов был использован генератор отчетов QuickReport. Было создано два вида отчета : один для основной информации, то есть для вывода на печать всего списка имеющихся данных, а второй ,для печати отчетов по запросу, того, что искал пользователь
В данной программе пользователю предоставляется возможность вывести любой отчет на печать по нажатию кнопок:
Рис.14-Отправка отчета на печать
Заключение
паскаль delphi электронный таблица
В данной курсовой работе была разработана электронная модель таблицы результатов соревнований по лыжному забегу, которая позволяет не только редактировать, добавлять, удалять содержащиеся в ней данные, но и производить поиск по различным критериям, то есть реализованы запросы по возрасту, по определению чемпиона выбранной возрастной категории , по ID участника и по фамилии-имени. Так как данная модель была реализована с помощью применения базы данных, то пользователь имеет возможность редактировать и добавлять данные как в базе, данные из которой затем импортируются в Delphi, так и в самой модели (для это были использованы соответствующие связи)
Также была предусмотрена возможность просмотра отчета по всей таблице результатов и по запросам, и, соответственно, возможность вывода на печать всего отчета. Для защиты базы был предусмотрен запрос пароля.
При выполнении курсовой работы были изучены технологии связывания Paradox со средой программирования Delphi, приемы создания различных меню для проекта, построение простейших SQL-запросов и построение отчетов при использовании компонента QuickReport.
Список литературы:
1. Желонкин А. В. Основы программирования в интегрированной среде DELPHI. Практикум. - М.: БИНОМ, 2006.
2. Жуков А. Изучаем Delphi. - М. : Питер, 2002.
3. Фленов М. Библия Delphi.- СПб.: БХВ - Петербург, 2008.
4. Культин Н. С++ Builder в задачах и примерах.- СПб.: БХВ-Петербург, 2005.
5. Культин Н. Б. Основы программирования в Delphi 7, БХВ-Петербург, Санкт-Петербург 2003
6. Шпак Ю. А. Delphi 7 на примерах, Издательство Юниор, Киев 2003
Приложение А. Листинги
Unit1
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, StdCtrls,
DBClient,MyWord, jpeg;
type
TForm1 = class(TForm)
DBGrid1: TDBGrid;
DBNavigator1: TDBNavigator;
Table1: TTable;
Query1: TQuery;
DataSource1: TDataSource;
Button1: TButton;
RadioGroup1: TRadioGroup;
Button2: TButton;
Button3: TButton;
Timer1: TTimer;
Button4: TButton;
Button5: TButton;
Button6: TButton;
Button7: TButton;
Edit1: TEdit;
Button8: TButton;
Button9: TButton;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
procedure Button1Click(Sender: TObject);
procedure RadioGroup1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure Button4Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.RadioGroup1Click(Sender: TObject);
begin
Table1.Filtered:=not(RadioGroup1.ItemIndex=3);
case RadioGroup1.ItemIndex of
0:begin
with query1 do begin
close;
SQL.Clear;
SQL.Add('SELECT ID,FIO,Vozrast,Start,Finish');
SQL.Add('FROM ":papa:baza1.db"');
SQL.Add('WHERE Vozrast<18');
SQL.Add('ORDER by Finish');
open;
if RecordCount<>0
then DataSource1.DataSet:=Query1
else ShowMessage('В БД нет записей, удовлетворяющих'+#13+'критерию запроса.');
end;
end;
1:begin
with query1 do begin
close;
SQL.Clear;
SQL.Add('SELECT ID,FIO,Vozrast,Start,Finish');
SQL.Add('FROM ":papa:baza1.db"');
SQL.Add('WHERE Vozrast>=18 and Vozrast<30');
SQL.Add('ORDER by Finish');
open;
if RecordCount<>0
then DataSource1.DataSet:=Query1
else ShowMessage('В БД нет записей, удовлетворяющих'+#13+'критерию запроса.');
end;
end;
2:begin
with query1 do begin
close;
SQL.Clear;
SQL.Add('SELECT ID,FIO,Vozrast,Start,Finish');
SQL.Add('FROM ":papa:baza1.db"');
SQL.Add('WHERE Vozrast>30');
SQL.Add('ORDER by Finish');
open;
if RecordCount<>0
then DataSource1.DataSet:=Query1
else ShowMessage('В БД нет записей, удовлетворяющих'+#13+'критерию запроса.');
end;
end;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
var buf:string[30];
begin
buf:=InputBox('Выборка информации из БД',
'Введите фамилию,имя и щелкните ОК','');
if buf = '' then exit;
with query1 do begin
close;
sql.Clear;
sql.Add('select *');
sql.Add('from ":papa:baza1.db"');
sql.Add('where');
sql.Add('(FIO="' + buf +'")');
open;
if recordcount<>0 then
datasource1.DataSet:=query1 else
ShowMessage(''В БД нет записей, удовлетворяющих'+#13+'критерию запроса.'.');
end;
end;
procedure TForm1.FormShow(Sender: TObject);
begin
PasswordDlg.showmodal;
end;
procedure TForm1.Button3Click(Sender: TObject);
var table:integer;
begin
if CreateWord then begin
VisibleWord(false);
AddDoc;
Table1.DisableControls;
WordTableAddFromDBGrid(DBGrid1,true,table);
VisibleWord(true);
Table1.EnableControls;
end;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
begin
Label1.Caption := 'ТАБЛИЦА РЕЗУЛЬТАТОВ СОРЕВНОВАНИЙ ПО ЛЫЖНОМУ ЗАБЕГУ';
if Label1.Visible then
Label1.Visible:=False
else
Label1.Visible:=True;
randomize;
Label1.Font.Color := clBlue;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin
Form3.QuickRep1.Preview;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin
Form3.QuickRep1.Print;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form4.QuickRep1.Preview;
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
if edit1.Text <> ''
then
begin
with form1.Query1 do begin
Close;
SQL.Clear;
SQL.Add('SELECT ID,FIO,Vozrast,Start,Finish');
SQL.Add('FROM ":papa:baza1.db"');
SQL.Add('WHERE');
SQL.Add('(ID= "'+ edit1.Text + '")');
Open;
end;
if Query1.RecordCount <> 0 then
DataSource1.DataSet:=Query1
else begin
ShowMessage(''В БД нет записей, удовлетворяющих'+#13+'критерию запроса.'');
DataSource1.DataSet:=Table1;
end;
end;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
begin
with query1 do begin
close;
SQL.Clear;
SQL.Add('SELECT ID,FIO,Vozrast,Start,Finish');
SQL.Add('FROM ":papa:baza1.db"');
SQL.Add('ORDER by ID');
open;
if RecordCount<>0
then DataSource1.DataSet:=Query1
else ShowMessage(''В БД нет записей, удовлетворяющих'+#13+'критерию запроса.'');
end;
end;
end;
end.
Unit3
unit Unit3;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, DB, DBTables, QuickRpt, ExtCtrls;
type
TForm3 = class(TForm)
QuickRep1: TQuickRep;
QRBand1: TQRBand;
QRBand2: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRLabel1: TQRLabel;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRSysData1: TQRSysData;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form3: TForm3;
implementation
uses unit1;
{$R *.dfm}
procedure TForm3.FormCreate(Sender: TObject);
begin
QRDBText1.DataSet:=Form1.Table1;
QRDBText2.DataSet:=Form1.Table1;
QRDBText3.DataSet:=Form1.Table1;
QRDBText4.DataSet:=Form1.Table1;
QRDBText5.DataSet:=Form1.Table1;
QRDBText1.DataField:='ID';
QRDBText2.DataField:='FIO';
QRDBText3.DataField:='Vozrast';
QRDBText4.DataField:='Start';
QRDBText5.DataField:='Finish';
end;
end.
Unit4
unit Unit4;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, QRCtrls, QuickRpt, ExtCtrls;
type
TForm4 = class(TForm)
QuickRep1: TQuickRep;
QRLabel1: TQRLabel;
QRBand1: TQRBand;
QRLabel2: TQRLabel;
QRLabel3: TQRLabel;
QRLabel4: TQRLabel;
QRLabel5: TQRLabel;
QRLabel6: TQRLabel;
QRBand2: TQRBand;
QRDBText1: TQRDBText;
QRDBText2: TQRDBText;
QRDBText3: TQRDBText;
QRDBText4: TQRDBText;
QRDBText5: TQRDBText;
QRSysData1: TQRSysData;
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form4: TForm4;
implementation
uses unit1;
{$R *.dfm}
procedure TForm4.FormCreate(Sender: TObject);
begin
QRDBText1.DataSet:=Form1.Query1;
QRDBText2.DataSet:=Form1.Query1;
QRDBText3.DataSet:=Form1.Query1;
QRDBText4.DataSet:=Form1.Query1;
QRDBText5.DataSet:=Form1.Query1;
QRDBText1.DataField:='ID';
QRDBText2.DataField:='FIO';
QRDBText3.DataField:='Vozrast';
QRDBText4.DataField:='Start';
QRDBText5.DataField:='Finish';
end;
end.
Размещено на Allbest.ru
Подобные документы
Предмет объектно-ориентированного программирования и особенности его применения в средах Паскаль, Ада, С++ и Delphi. Интегрированная среда разработки Delphi: общее описание и назначение основных команд меню. Процедуры и функции программы Delphi.
курсовая работа [40,8 K], добавлен 15.07.2009Характеристики и свойства языков программирования. Исследование эволюции объектно-ориентированных языков программирования. Построение эволюционной карты механизмов ООП. Разработка концептуальной модели функционирования пользовательского интерфейса.
курсовая работа [2,6 M], добавлен 17.11.2014История развития, характеристика, предназначение и особенности языка программирования Delphi. Разработка проекта создания кроссворда на объектно-ориентированном языке Delphi, который состоит из 19 вопросов по горизонтали и 16 вопросов по вертикали.
курсовая работа [970,5 K], добавлен 15.05.2014Изучение символьных и строковых типов данных, алгоритма задачи на языке программирования Паскаль. Описания получения и установки отдельного символа строки, изменения регистра символов. Анализ создания и просмотра файла, поиска и сортировки информации.
курсовая работа [440,7 K], добавлен 13.06.2011Логические конструкции в системе программирования Паскаль. Команды языка программирования, использование функций, процедур. Постановка и решение задач механики в среде системы Паскаль. Задачи статики, кинематики, динамики решаемые с помощью языка Паскаль.
курсовая работа [290,9 K], добавлен 05.12.2008Входные и выходные данные программы. Выбор языка программирования. Рабочая среда Delphi 7. Правила игры "Кости". Разработка пользовательского интерфейса. Экономическое обоснование программного продукта. Расчет расходов на содержание и эксплуатацию.
дипломная работа [960,6 K], добавлен 07.02.2016Разработка объектно-ориентированной модели информационной подсистемы учета студентов университета во время экзаменационной сессии с помощью программы Rational Rose 2000, с использованием языка UML. Порядок генерации программного кода на языке С++.
курсовая работа [689,9 K], добавлен 21.06.2011Ознакомление с историей создания и особенностями объектно-ориентированного языка программирования Delphi. Разработка приложения, фиксирующего количество повторений какого-либо слова в тексте, введённом в поле MEMO. Описание интерфейса программы.
курсовая работа [880,1 K], добавлен 21.04.2015Delphi - среда быстрой разработки, в которой в качестве языка программирования используется типизированный объектно-ориентированный язык Delphi. Варианты программного пакета. Особенности работы, вид экрана после запуска. Описание структуры программы.
курсовая работа [1,3 M], добавлен 25.11.2014Общая характеристика интерфейса языка программирования Delphi. Рассмотрение окна редактора кода, конструктора формы, инспектора объектов и расширения файлов. Ознакомление с основными этапами создания и сохранения простого приложения; проверка его работы.
презентация [184,3 K], добавлен 18.03.2014