Автор работы: Пользователь скрыл имя, 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
Список используемой литературы…………………
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(
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(
begin
Edit1.Enabled := CheckBox1.Checked;
end;
//Доступность поля Страна
procedure
TfrmSearch.CheckBox2Click(
begin
Edit2.Enabled := CheckBox2.Checked;
end;
//Доступность поля Команда
procedure
TfrmSearch.CheckBox4Click(
begin
Edit4.Enabled := CheckBox4.Checked;
end;
//Доступность поля Цена
procedure
TfrmSearch.CheckBox3Click(
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, создаваемый динамически.
Форма
по умолчанию располагается в
центре экрана, в ней отключена
возможность развертывания
Рисунок
6 – Главное окно приложения
С
пункта «Создать» начинается создание
новой базы. Очищаются все поля,
внутренние переменные и записи, происходит
общий сброс к значениям по
умолчанию. Действие подтверждается диалоговым
окном «Yes/No» (рис. 7).
Рисунок
7 – Диалоговое окно на подтверждение
создания новой базы данных
Команда «Открыть…» приводит к появлению системного диалогового окна TOpenDialog, с заранее настроенными параметрами (рис. 8). После открытия файла базы заполняются соответствующие поля таблицы TStringGrid. Процесс открытия описан в процедуре ReadFromFile.
Рисунок 8 – Системное диалоговое окно TOpenDialog,
с
заранее настроенными параметрами
Команда «Сохранить как…» выполняется аналогично предыдущей команде, с учётом лишь сохранения данных в файл, а не открытия. Сохранение также описано во внутриклассовой процедуре WriteToFile.
Пункт «Выход» закрывает приложение.
Доступ
к функциям сортировки полей таблицы
осуществляется посредством команд
«Сортировка – по имени/по цене»
(рис. 10-11). Методы сортировки практически
идентичны, отличие лишь в номере обрабатываемого
столбца. Ниже можно пронаблюдать пример
работы функций этих функций для фрагмента
БД, приведенного на рисунке 9.
Рисунок 9 – Фрагмент БД до выполнения функции сортировки
Рисунок
10 – Сортировка БД по цене
Рисунок
11 – Сортировка БД по ФИО игроков
Меню
«О программе…» имеет чисто
Разберем подробнее работу главного окна приложения – режим заполнения базы данных.
Всё
реализовано посредством
Рисунок
12 – Окно «О программе»
Важным замечанием на этапе редактирования полей базы является то, что поле «В сборной» принимает лишь два значения: «Да» и «Нет»; по сути это True и False. Для подобной реализации используется динамический компонент CheckBox1, создаваемый непосредственно Runtime – в режиме работы программы, а не на этапе проектирования в интегрированной среде. При выборе ячейки поля «В сборной» он отображается над соответсвующей ячейкой и значение его свойства Checked влияет на то, какую запись в таблице мы видим – «Да» или «Нет». Данный метод редактирования ограничивает нас от возможных ошибок при вводе текста напрямую и является гораздо более удобным решением (рис. 13).