Лабораторная работа 6
Тема: разработка программы с использованием компонентов TOpenDialog и TSaveDialog.
Цель: научиться разрабатывать приложения с помощью среды быстрой разработки Delphi, используя компоненты TOpenDialog и TSaveDialog.
Ход выполнения работы:
Задание: разработать программу, которая будет открывать, создавать, сохранять данные в файл и сортировать эти данные. Использовать компоненты TOpenDialog и TSaveDialog.
Выполнение задания:
Листинг программы:
Type
TStudent = record
FIO: string[40];
otc: array [1 .. 3] of word;
sball: extended;
end;
var
Form1: TForm1;
Fz: file of TStudent;
Ft: TextFile;
Stud: array [1 .. 100] of TStudent;
nzap: integer;
FileNameZ, FileNameT: string;
implementation
{$R *.DFM}
procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '';
Edit4.Text := '';
Memo1.Clear;
Button1.Hide;
nzap := 0;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
nzap := nzap + 1;
with Stud[nzap] do
begin
FIO := Edit1.Text;
otc[1] := StrToInt(Edit2.Text);
otc[2] := StrToInt(Edit3.Text);
otc[3] := StrToInt(Edit4.Text);
sball := (otc[1] + otc[2] + otc[3]) / 3;
Memo1.Lines.Add(FIO + ' ' + IntToStr(otc[1]) + ' ' + IntToStr(otc[2]) +
' ' + IntToStr(otc[3]));
end;
Write(Fz, Stud[nzap]);
Edit1.Text := '';
Edit2.Text := '';
Edit3.Text := '';
Edit4.Text := '';
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
OpenDialog1.Title := 'Создать новый файл';
if OpenDialog1.Execute then
begin
FileNameZ := OpenDialog1.FileName;
AssignFile(Fz, FileNameZ);
Rewrite(Fz);
end;
Button1.Show;
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
if OpenDialog1.Execute then
begin
FileNameZ := OpenDialog1.FileName;
AssignFile(Fz, FileNameZ);
Reset(Fz);
end;
while not eof(Fz) do
begin
nzap := nzap + 1;
Read(Fz, Stud[nzap]);
with Stud[nzap] do
Memo1.Lines.Add(FIO + ' ' + IntToStr(otc[1]) + ' ' + IntToStr(otc[2]) +
' ' + IntToStr(otc[3]));
end;
Button1.Show;
end;
procedure TForm1.Button4Click(Sender: TObject);
var
i, j: word;
st: TStudent;
begin
for i := 1 to nzap - 1 do
for j := i + 1 to nzap do
if Stud[i].sball < Stud[j].sball then
begin
st := Stud[i];
Stud[i] := Stud[j];
Stud[j] := st;
end;
Memo1.Clear;
for i := 1 to nzap do
with Stud[i] do
Memo1.Lines.Add(IntToStr(i) + ' ' + FIO + ' ' + FloatToStrf(sball,
fffixed, 4, 2));
end;
procedure TForm1.Button5Click(Sender: TObject);
var
i: word;
begin
if SaveDialog1.Execute then
begin
FileNameT := SaveDialog1.FileName;
AssignFile(Ft, FileNameT);
Rewrite(Ft);
end;
for i := 1 to nzap do
with Stud[i] do
Writeln(Ft, i:4, '. ', FIO, sball:8:2);
CloseFile(Ft);
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
CloseFile(Fz);
end;
procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
CloseFile(Fz);
end;
Данная программа состоит из восьми процедур: FormCreate, Button1Click, Button2Click, Button3Click, Button4Click, Button5Click, BitBtn1Click и FormClose.
Процедура FormCreate вызывается при запуске программы. Эта процедура очищает все поля в окне программы.
Процедура Button1Click вызывается нажатием на кнопку Ввести запись (Button1). Эта процедура вводит в поле Memo1 данные, которые пользователь ввел в поля Edit1, Edit2, Edit3 и Edit4.
Процедура Button2Click создает файл данных, она вызывается нажатием на кнопку Создать (Button2).
Процедура Button3Click открывает файл данных, она вызывается нажатием на кнопку Открыть (Button3).
Процедура Button4Click сортирует данные, она вызывается нажатием на кнопку Сортировать (Button4).
Процедура Button5Click сохраняет файл данных, она вызывается нажатием на кнопку Сохранить (Button5).
Процедуры BitBtn1Click и FormClose завершают работу с файлом данных, то есть закрывают его. Процедура BitBtn1Click вызывается нажатием на кнопку Close (BitBtn1), а процедура FormClose при закрытии окна программы.
Блок-схемы процедур FormCreate, Button1Click, Button2Click, Button3Click, Button4Click, Button5Click, BitBtn1Click и FormClose представлены на рисунках 6.1, 6.2, 6.3, 6.4, 6.5, 6.6 и 6.7 соответственно.
Рисунок 6.1 – Блок-схема процедуры FormCreate
Рисунок 6.2 – Блок-схема процедуры Button1Click
Рисунок 6.3 – Блок-схема процедуры Button2Click
Рисунок 6.4 – Блок-схема процедуры Button3Click
Рисунок 6.5 – Блок-схема процедуры Button4Click
Рисунок 6.6 – Блок-схема процедуры Button5Click
Рисунок 6.7 – Блок-схема процедуры BitBtn1Click и FormClose
Выполнение программы представлено на рисунке 6.8.
Рисунок 6.8 – Выполнение программы
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.