Автор работы: Пользователь скрыл имя, 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
Список используемой литературы…………………
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.
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.
end;
//Открытие окна Диаграмм
procedure TfrmMain.N11Click(Sender: TObject);
begin
frmDiagrams.Show;
end;
//Прорисовка CheckBox1 в нужной позиции внутри таблицы
procedure
TfrmMain.
ARow: Integer; var CanSelect: Boolean);
var
r : TRect;
begin
if (cell_x>=StringGrid1.LeftCol) and
(cell_x<=StringGrid1.LeftCol+
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(
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]
else
Chart1.Series[1].Add(Fields[i]
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