База данных футбольных игроков

Автор работы: Пользователь скрыл имя, 26 Декабря 2011 в 13:29, курсовая работа

Описание работы

Курсовая работа посвящена решению задачи проектирования программы, которая предоставляла бы собой базу данных футбольных игроков на языке Objekt Pascal, используемый в инструментальной среде разработки приложения Delphi7. Для написания приложения была использована инструментальная среда разработки (ИСР) Delphi 7 ввиду большого количества ее преимуществ;
- поддержка технологий быстрой разработки приложения (Rapid Application Development);
- поддержка технологий визуальной разработки;
- наличие мощных средств отладки и тестирования разработанных приложений;

Содержание работы

Введение…………………………………………………………………………………………...4
1 Разработка эскизного и технического проектов программы (ГОСТ 19.404–79)……………5
1.1 Задание…………………………………………………………………………………………5
1.2 Назначение и область применения…………………………………………………..............5
1.3 Технические характеристики………………………………………………………………...5
1.3.1 Постановка задачи…………………………………………………………………………..5
1.3.2 Описание алгоритма………………………………………………………………………...6
1.3.3 Организация входных и выходных данных……………………………………………….7
1.3.4 Выбор состава технических и программных средств…………………………………….7
2 Разработка рабочего проекта…………………………………………………………………...8
2.1 Разработка программы………………………………………………………………………..8
2.2 Спецификация программы………………………………………………………………….18
2.3 Текст программы…………………………………………………………………………….19
2.4 Описание программы………………………………………………………………………..36
2.5 Тестирование программы……………………………………………………………………42
3 Внедрение………………………………………………………………………………………44
Заключение……………………………………………………………………………………….45
Список используемой литературы…………………

Файлы: 1 файл

Документ Microsoft Office Word.docx

— 382.58 Кб (Скачать файл)
ify">       Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

       Dialogs, Grids, StdCtrls, ExtCtrls;

     type

       TfrmSearch = class(TForm)

         GroupBox1: TGroupBox;

         StringGrid1: TStringGrid;

         GroupBox2: TGroupBox;

         Edit1: TEdit;

         Edit2: TEdit;

         Edit3: TEdit;

         Edit4: TEdit;

         CheckBox1: TCheckBox;

         CheckBox2: TCheckBox;

         CheckBox3: TCheckBox;

         CheckBox4: TCheckBox;

         Button1: TButton;

         Label6: TLabel;

         Label7: TLabel;

         Bevel1: TBevel;

         procedure FormShow(Sender: TObject);

         procedure Button1Click(Sender: TObject);

         procedure CheckBox1Click(Sender: TObject);

         procedure CheckBox2Click(Sender: TObject);

         procedure CheckBox4Click(Sender: TObject);

         procedure CheckBox3Click(Sender: TObject);

       private

         procedure ResetView;

       public

         { Public declarations }

       end;

     var

       frmSearch: TfrmSearch;

     implementation

     uses Unit1;

     {$R *.dfm}

     { TfrmSearch }

     //Сброс  всех настроек

     procedure TfrmSearch.ResetView;

     var i : integer;

     begin

     StringGrid1.RowCount := 40;

     For i := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cols[i].Clear;

     For i := 0 to StringGrid1.RowCount - 1 do StringGrid1.Rows[i].Clear;

     StringGrid1.Cells[0,0] := 'ФИО';

     StringGrid1.Cells[1,0] := 'Страна';

     StringGrid1.Cells[2,0] := 'Команда';

     StringGrid1.Cells[3,0] := 'Цена';

     StringGrid1.Cells[4,0] := 'В сборной';

     Edit1.Clear;

     Edit2.Clear;

     Edit3.Clear;

     Edit4.Clear;

     Edit1.Enabled := false;

     Edit2.Enabled := false;

     Edit3.Enabled := false;

     Edit4.Enabled := false;

     CheckBox1.Checked := false;

     CheckBox2.Checked := false;

     CheckBox3.Checked := false;

     CheckBox4.Checked := false;

     end;

     //При  отображении формы

     procedure TfrmSearch.FormShow(Sender: TObject);

     begin

     ResetView;

     end;

     //Действие  кнопки Поиск

     procedure TfrmSearch.Button1Click(Sender: TObject);

     var

       Max : Integer;

      Match: Boolean;

      A, i: integer;

     begin

     For i := 0 to StringGrid1.ColCount - 1 do StringGrid1.Cols[i].Clear;

     For i := 0 to StringGrid1.RowCount - 1 do StringGrid1.Rows[i].Clear;

     Max := 0;

     For a := 1 to frmMain.StringGrid1.RowCount - 1 do

       begin

       Match := true; //Факт совпадения

       If CheckBox1.Checked then

         If pos(Edit1.Text, frmMain.StringGrid1.Cells[0, a]) = 0 then Match := false;

       If CheckBox2.Checked then

         If pos(Edit2.Text, frmMain.StringGrid1.Cells[1, a]) = 0 then Match := false;

       If CheckBox3.Checked then

         If pos(Edit3.Text, frmMain.StringGrid1.Cells[2, a]) = 0 then Match := false;

       If CheckBox4.Checked then

         If pos(Edit4.Text, frmMain.StringGrid1.Cells[3, a]) = 0 then Match := false;

       If Match then

        begin

         Inc(max);

         StringGrid1.Cells[0, Max] := frmMain.StringGrid1.Cells[0, a];

         StringGrid1.Cells[1, Max] := frmMain.StringGrid1.Cells[1, a];

         StringGrid1.Cells[2, Max] := frmMain.StringGrid1.Cells[2, a];

         StringGrid1.Cells[3, Max] := frmMain.StringGrid1.Cells[3, a];

         StringGrid1.Cells[4, Max] := frmMain.StringGrid1.Cells[4, a];

        end;

       end;

     end;

     //Доступность  поля ФИО

     procedure TfrmSearch.CheckBox1Click(Sender: TObject);

     begin

     Edit1.Enabled := CheckBox1.Checked;

     end;

     //Доступность  поля Страна

     procedure TfrmSearch.CheckBox2Click(Sender: TObject);

     begin

     Edit2.Enabled := CheckBox2.Checked;

     end;

     //Доступность  поля Команда

     procedure TfrmSearch.CheckBox4Click(Sender: TObject);

     begin

     Edit4.Enabled := CheckBox4.Checked;

     end;

     //Доступность  поля Цена

     procedure TfrmSearch.CheckBox3Click(Sender: TObject);

     begin

     Edit3.Enabled := CheckBox3.Checked;

     end;

     end.

     unit Unit4;

     interface

     uses

       Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

       Dialogs, StdCtrls, jpeg, ExtCtrls;

     type

       TfrmAbout = class(TForm)

         Image1: TImage;

         Label1: TLabel;

         Label2: TLabel;

         Label3: TLabel;

         Button1: TButton;

         procedure Button1Click(Sender: TObject);

       private

         { Private declarations }

       public

         { Public declarations }

       end;

     var

       frmAbout: TfrmAbout;

     implementation

     {$R *.dfm}

     //Закрытие  окна

     procedure TfrmAbout.Button1Click(Sender: TObject);

     begin

     Hide;

     end;

     end. 

2.4.Описание программы 

     При запуске программы открывается основное её окно (рис. 6). Оно содержит VCL-компоненты, необходимые для удобной и простой работы с базой: TStringGrid, TEdit, TLabel, TMainMenu, TGroupBox, TBevel и TButton. Также на форме содержится компонент класса TCheckBox, создаваемый динамически.

     Форма по умолчанию располагается в  центре экрана, в ней отключена  возможность развертывания рабочего пространства (Maximize) и изменения размера окна. На ней находится главное меню, состоящее из следующих пунктов:

      1. Файл
          1. Создать
          2. Открыть
          3. Сохранить как
          4. Выход
      2. Вид
          1. Сортировка
            1. По цене
            2. По имени
          2. Диаграммы
          3. Поиск
      3. О программе
 

     

     Рисунок 6 – Главное окно приложения 

     С пункта «Создать» начинается создание новой базы. Очищаются все поля, внутренние переменные и записи, происходит общий сброс к значениям по умолчанию. Действие подтверждается диалоговым окном «Yes/No» (рис. 7). 

     

     Рисунок 7 – Диалоговое окно на подтверждение  создания новой базы данных 

     Команда «Открыть…» приводит к появлению  системного диалогового окна TOpenDialog, с заранее настроенными параметрами (рис. 8). После открытия файла базы заполняются соответствующие поля таблицы TStringGrid. Процесс открытия описан в процедуре ReadFromFile.

     

     Рисунок 8 – Системное диалоговое окно TOpenDialog,

     с заранее настроенными параметрами 

     Команда «Сохранить как…» выполняется аналогично предыдущей команде, с учётом лишь сохранения данных в файл, а не открытия. Сохранение также описано во внутриклассовой  процедуре WriteToFile.

     Пункт «Выход» закрывает приложение.

     Доступ  к функциям сортировки полей таблицы  осуществляется посредством команд «Сортировка – по имени/по цене» (рис. 10-11). Методы сортировки практически идентичны, отличие лишь в номере обрабатываемого столбца. Ниже можно пронаблюдать пример работы функций этих функций для фрагмента БД, приведенного на рисунке 9. 

     

     Рисунок 9 – Фрагмент БД до выполнения функции сортировки

     

     Рисунок 10 – Сортировка БД по цене 

     

     Рисунок 11 – Сортировка БД по ФИО игроков 

     Меню  «О программе…» имеет чисто информативный  характер, оно отображает окно с  информацией о разработчике приложения (рис. 12). Оно закрашено в черный цвет и имеет на фоне объект TImage. Закрытие его происходит путём нажатия кнопки «ОК».

     Разберем  подробнее работу главного окна приложения – режим заполнения базы данных.

     Всё реализовано посредством интерактивного редактирования значения полей таблицы  – изменения в неё вносятся напрямую, без использования посреднических компонентов класса TEdit и TButton. Чтобы осуществить такую возможность, в свойствах компонента StringGrid1 флаг goEditing в множестве Options был установлен в True. Также были прописаны обработчики событий OnClick и OnSelectCell. Следует также отметить, что при выборе какого-либо поля, значения его дополнительно отображаются в компонентах TEdit группы «Свойства». Изменять их оттуда невозможно, свойство Enabled у каждого установлено в False, т.е. они выполняют лишь дополнительную информационную функцию.

     

     Рисунок 12 – Окно «О программе» 

     Важным  замечанием на этапе редактирования полей базы является то, что поле «В сборной» принимает лишь два значения: «Да» и «Нет»; по сути это True и False. Для  подобной реализации используется динамический компонент CheckBox1, создаваемый непосредственно Runtime – в режиме работы программы, а не на этапе проектирования в интегрированной среде. При выборе ячейки поля «В сборной» он отображается над соответсвующей ячейкой и значение его свойства Checked влияет на то, какую запись в таблице мы видим – «Да» или «Нет». Данный метод редактирования ограничивает нас от возможных ошибок при вводе текста напрямую и является гораздо более удобным решением (рис. 13).

Информация о работе База данных футбольных игроков