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

Автор работы: Пользователь скрыл имя, 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 Кб (Скачать файл)

       d.Name := Edit1.Text;

       d.Country := Edit2.Text;

       d.Team := Edit3.Text;

       d.Cost := Edit4.Text;

       d.Side := CheckBox1.Checked;

       Write(F, d);

     CloseFile(F);

     end;

     //Закрытие приложения

     procedure TfrmMain.FormClose(Sender: TObject; var Action: TCloseAction);

     begin

     CheckBox1.Destroy;

     DeleteFile('Default.dat');

     end;

     //Сортировка по имени

     procedure TfrmMain.N4Click(Sender: TObject);

     var Done : Boolean;

         l    : Byte;

         s    : BaseField;

     begin

     With StringGrid1 do

       Repeat

         Done := false;

         For l := 1 to RowCount - 2 do

          begin

           If (Cells[0, l] > Cells[0, l + 1]) and (Cells[0, l] <> '') then

             begin

               s.Name:=Cells[0,l];

               s.Country:=Cells[1,l];

               s.Team:=Cells[2,l];

               s.Cost:=Cells[3,l];

               s.Side:=(Cells[4,l] = 'Да');

               Cells[0,l]:=Cells[0,l+1];

               Cells[1,l]:=Cells[1,l+1];

               Cells[2,l]:=Cells[2,l+1];

               Cells[3,l]:=Cells[3,l+1];

               Cells[4,l]:=Cells[4,l+1];

               Cells[0,l+1]:=s.Name;

               Cells[1,l+1]:=s.Country;

               Cells[2,l+1]:=s.Team;

               Cells[3,l+1]:=s.Cost;

               If s.Side then Cells[4,l+1] := 'Да' else Cells[4,l+1] := 'Нет';

                Done := true;

             end;

          end;

       Until not Done;

     WriteToFile('Default.dat');

     ResetView;

     ReadFromFile('Default.dat');

     end;

     //Сортировка по цене

     procedure TfrmMain.N3Click(Sender: TObject);

     var Done : Boolean;

         l    : Byte;

         s    : BaseField;

     begin

     With StringGrid1 do

       Repeat

         Done := false;

         For l := 1 to RowCount - 2 do

          begin

           If (Cells[3, l] <> '') and (Cells[3, l + 1] <> '') then If (StrToInt(Cells[3, l]) > StrToInt(Cells[3, l + 1])) then

             begin

               s.Name:=Cells[0,l];

               s.Country:=Cells[1,l];

               s.Team:=Cells[2,l];

               s.Cost:=Cells[3,l];

               s.Side:=(Cells[4,l] = 'Да')

               Cells[0,l]:=Cells[0,l+1];

               Cells[1,l]:=Cells[1,l+1];

               Cells[2,l]:=Cells[2,l+1];

               Cells[3,l]:=Cells[3,l+1];

               Cells[4,l]:=Cells[4,l+1];

               Cells[0,l+1]:=s.Name;

               Cells[1,l+1]:=s.Country;

               Cells[2,l+1]:=s.Team;

               Cells[3,l+1]:=s.Cost;

               If s.Side then Cells[4,l+1] := 'Да' else Cells[4,l+1] := 'Нет';

                Done := true;

             end;

          end;

       Until not Done;

     WriteToFile('Default.dat');

     ResetView;

     ReadFromFile('Default.dat');

     end;

     //Открытие окна Диаграмм

     procedure TfrmMain.N11Click(Sender: TObject);

     begin

     frmDiagrams.Show;

     end;

     //Прорисовка CheckBox1 в нужной позиции внутри таблицы

     procedure TfrmMain.StringGrid1SelectCell(Sender: TObject; ACol,

       ARow: Integer; var CanSelect: Boolean);

     var

       r : TRect;

     begin

       if (cell_x>=StringGrid1.LeftCol) and

        (cell_x<=StringGrid1.LeftCol+StringGrid1.VisibleColCount)

         then CheckBox1.Visible := true

       else

          CheckBox1.Visible:=false;

       if acol = cell_x then

       begin

       //Подгоняем наш CheckBox1 в размер выбранного поля в StringGrid1

        r := StringGrid1.CellRect(ACol, ARow);

        r.Left := r.left + GroupBox1.Left + stringgrid1.left + 2;

        r.right := r.right + stringgrid1.left + 2;

        r.top := r.top + GroupBox1.Top + stringgrid1.top + 4;

        r.bottom := r.bottom + stringgrid1.top + 2;

        CheckBox1.BoundsRect := r;

       end

       else

       CheckBox1.Visible:=false;

     end;

     //Открытие окна Поиска

     procedure TfrmMain.N22Click(Sender: TObject);

     begin

     frmSearch.Show;

     end;

     //Открытие окна О программе

     procedure TfrmMain.N31Click(Sender: TObject);

     begin

     frmAbout.Show;

     end;

     //Выход  из приложения по кнопке Закрыть и Файл-Выход

     procedure TfrmMain.N14Click(Sender: TObject);

     begin

     Close;

     end;

     end.

     unit Unit2;

     interface

     uses

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

       Dialogs, StdCtrls, ExtCtrls, TeeProcs, TeEngine, Chart, Series;

     type

       Data = record

        Caption : String [24];

        Num     : Byte;

        Exist   : Boolean;

       end;

       TfrmDiagrams = class(TForm)

         RadioGroup1: TRadioGroup;

         Chart1: TChart;

         Series1: TPieSeries;

         Label6: TLabel;

         Label7: TLabel;

         Bevel1: TBevel;

         Series2: TBarSeries;

         procedure RadioGroup1Click(Sender: TObject);

         procedure FormShow(Sender: TObject);

       private

         procedure ResetSettings;

       public

         { Public declarations }

       end;

     var

       frmDiagrams: TfrmDiagrams;

       Fields  : Array [1..40] of Data;

     implementation

     uses Unit1, Grids;

     {$R *.dfm}

     //Изменение  отображаемой диаграммы на основе  выбранного пункта

     procedure TfrmDiagrams.RadioGroup1Click(Sender: TObject);

     var

       i, j, A : integer;

       flag: Boolean;

     begin

     ResetSettings;

     If RadioGroup1.ItemIndex = 0 then A := 1 else A := 2;

     Chart1.Series[0].Clear;

     Chart1.Series[1].Clear;

     With frmMain.StringGrid1 do

      For j := 1 to RowCount - 1 do

       begin

        Flag := true;

        For i := 1 to 40 do

         begin

          If (Flag) and(Fields[i].Exist) then

           If Fields[i].Caption = Cells[A, j] then

            begin

             Inc(Fields[i].Num);

             Flag := false;

            end;

          If (Flag) and (not (Fields[i].Exist)) then

           begin

            Fields[i].Exist := true;

            Fields[i].Caption := cells[A, j];

            Fields[i].Num := 1;

            Flag := false;

           end;

         end;

        If Flag then messagedlg('Ошибка', mtError, [mbOk], 0);

       end;

      For i:=1 to 40 do

       If (Fields[i].Num > 0) and (Fields[i].Caption <> '') then

        begin

         If RadioGroup1.ItemIndex = 0 then

          Chart1.Series[0].Add(Fields[i].Num, Fields[i].Caption, random(93562))

         else

          Chart1.Series[1].Add(Fields[i].Num, Fields[i].Caption, random(93562));

        end;

     end;

     //Принудительный  вызов события OnClick для первого отображения диаграмм

     procedure TfrmDiagrams.FormShow(Sender: TObject);

     begin

     RadioGroup1Click(self);

     end;

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

     procedure TfrmDiagrams.ResetSettings;

     begin

     ZeroMemory(@Fields, SizeOf(Fields));

     Chart1.Series[0].Clear;

     Chart1.Series[1].Clear;

     end;

     end.

     unit Unit3;

     interface

     uses

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