Автор работы: Пользователь скрыл имя, 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
Список используемой литературы…………………
2.3
Текст программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, Menus, ExtCtrls, XPMan;
const
cell_x = 4;
type
BaseField = record
Name : String[28];
Country : String[28];
Team : String[28];
Cost : String[28];
Side : Boolean;
end;
TfrmMain = class(TForm)
MainMenu1: TMainMenu;
N1: TMenuItem;
N12: TMenuItem;
N14: TMenuItem;
N2: TMenuItem;
N10: TMenuItem;
N22: TMenuItem;
N27: TMenuItem;
GroupBox1: TGroupBox;
StringGrid1: TStringGrid;
N28: TMenuItem;
N29: TMenuItem;
N30: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
N11: TMenuItem;
N24: TMenuItem;
N31: TMenuItem;
Bevel1: TBevel;
Label6: TLabel;
Label7: TLabel;
Button7: TButton;
XPManifest1: TXPManifest;
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
GroupBox2: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
PopupMenu1: TPopupMenu;
C1: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N13: TMenuItem;
N15: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N29Click(Sender: TObject);
procedure N30Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure StringGrid1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure N4Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure N22Click(Sender: TObject);
procedure N31Click(Sender: TObject);
procedure N14Click(Sender: TObject);
private
{ Private declarations }
public
procedure ResetView;
procedure WriteToFile(AFile: String);
procedure AppendToFile(AFile: String);
procedure ReadFromFile(AFile: String);
end;
var
frmMain: TfrmMain;
FileName: String;
K: BaseField;
F: File of BaseField;
CheckBox1: TCheckBox;
//All: Array [0..24] of BaseField;
implementation
uses Unit2, Unit3, Unit4;
{$R *.dfm}
//Сброс и очистка
procedure TfrmMain.ResetView;
var 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;
StringGrid1.RowCount := 40;
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
CheckBox1.Checked := false;
StringGrid1.Cells[0,0]:='
StringGrid1.Cells[1,0]:='
StringGrid1.Cells[2,0]:='
StringGrid1.Cells[3,0]:='
StringGrid1.Cells[4,0]:='
end;
//Предварительные операции при создании формы
procedure TfrmMain.FormCreate(Sender: TObject);
begin
//Динамическое создание СheckBox1
CheckBox1:=TCheckBox.
CheckBox1.Parent := frmMain;
CheckBox1.Caption := 'В сборной';
CheckBox1.Visible := false;
CheckBox1.OnClick := CheckBox1Click;
//Очистка области памяти, занятой k
ZeroMemory(@k, SizeOf(k));
ResetView;
end;
//Файл - Создать...
procedure TfrmMain.N12Click(Sender: TObject);
begin
//Проверка, какая кнопка нажата на окне сообщения
If
MessageDlg('Это приведёт к
ResetView;
end;
//Файл - Открыть...
procedure TfrmMain.N29Click(Sender: TObject);
begin
If not OpenDialog1.Execute then Exit;
ResetView;
ReadFromFile(OpenDialog1.
end;
//Файл - Сохранить как...
procedure TfrmMain.N30Click(Sender: TObject);
begin
If not SaveDialog1.Execute then Exit;
WriteToFile(SaveDialog1.
end;
//Чтение данных из файла и заполнение таблицы StringGrid1
procedure TfrmMain.ReadFromFile(AFile: String);
var d : BaseField;
i : Integer;
s : string;
begin
ZeroMemory(@d, SizeOf(d));
AssignFile(F, AFile);
Reset(F);
i := 1;
while not EOF(F) do
begin
Read(F, d);
If d.Name = '' then Continue;
StringGrid1.Cells[0, i] := d.Name;
StringGrid1.Cells[1, i] := d.Country;
StringGrid1.Cells[2, i] := d.Team;
StringGrid1.Cells[3, i] := d.Cost;
If d.Side then s := 'Да' else s := 'Нет';
StringGrid1.Cells[4, i] := s;
Inc(i);
If i > StringGrid1.RowCount then
StringGrid1.RowCount := i;
end;
CloseFile(F);
end;
//Запись данных в файл из таблицы StringGrid1
procedure TfrmMain.WriteToFile(AFile: String);
var d : BaseField;
i : Integer;
begin
AssignFile(F, AFile);
Rewrite(F);
ZeroMemory(@d, SizeOf(d));
For i := 1 to StringGrid1.RowCount - 1 do
begin
d.Name := StringGrid1.Cells[0, i];
d.Country := StringGrid1.Cells[1, i];
d.Team := StringGrid1.Cells[2, i];
d.Cost := StringGrid1.Cells[3, i];
d.Side := (StringGrid1.Cells[4, i] = 'Да');
Write(F, d);
end;
CloseFile(F);
end;
//Изменение флажка "В сборной"
procedure
TfrmMain.CheckBox1Click(
begin
If CheckBox1.Checked then StringGrid1.Cells[4, StringGrid1.Row] := 'Да' else StringGrid1.Cells[4, StringGrid1.Row] := 'Нет';
end;
//Реакция на изменение номера текущего поля в таблице. Обновление
procedure
TfrmMain.StringGrid1Click(
begin
//Копируем в Editы соответствующие тексты таблицы
Edit1.Text:=StringGrid1.
Edit2.Text:=StringGrid1.
Edit3.Text:=StringGrid1.
Edit4.Text:=StringGrid1.
//Ставим CheckBox1 в нужное состояние (да, нет)
CheckBox1.Checked := (StringGrid1.Cells[4, StringGrid1.Row] = 'Да');
end;
//Добавление данных в конец существующего файла
procedure TfrmMain.AppendToFile(AFile: String);
var d : BaseField;
begin
If not FileExists(AFile) then
begin
AssignFile(F, AFile);
Rewrite(F);
CloseFile(F);
end;
AssignFile(F, AFile);
Reset(F);
Seek(F, FileSize(F));
ZeroMemory(@d, SizeOf(d));