Работа с программой

После запуска программы на выполнение появится диалоговое окно программы. Кнопка “Ввести запись”видна не будет. Необходимо создать новый файл записей, нажав на кнопку "Создать" или открыть ранее созданный, нажав - кнопку "Открыть". После этого станет видна кнопка "Ввести запись"

Рисунок 6.2 – Форма приложения

и можно будет вводить записи. При нажатии на кнопку "Сортировать" будет проведена сортировка ведомостипо убыванию среднего балла и диалоговое окно примет вид, как на рисунке 6.2. Затем при нажатии на кнопку “Сохранить” будет создан текстовой файл, содержащий отсортированную ведомость. Файл записей закрывается одновременно с программой при нажатии на кнопку "Close".

Текст программы:

Unit LabRab_6;

Interface

Uses

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

Dialogs, Buttons, StdCtrls;

Type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Edit1: TEdit;

Edit2: TEdit;

Edit3: TEdit;

Edit4: TEdit;

Button1: TButton;

Button2: TButton;

Button3: TButton;

Button4: TButton;

Button5: TButton;

BitBtn1: TBitBtn;

OpenDialog1: TOpenDialog;

SaveDialog1: TSaveDialog;

Memo1: TMemo;

Procedure FormCreate(Sender: TObject);

Procedure Button1Click(Sender: TObject);

Procedure Button2Click(Sender: TObject);

Procedure Button3Click(Sender: TObject);

Procedure Button4Click(Sender: TObject);

Procedure Button5Click(Sender: TObject);

Procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

Type

TStudent = record

FIO: string[40]; //Поле Ф.И.О.

otc: array[1..3] of word; //Поле массива оценок

sball: extended; //Поле среднего балла

end;

var

Fz: file of TStudent; //Файл типа запись

Ft: TextFile; //Текстовой файл

Stud: array[1..100] of TStudent; //Массив записей

Nzap: integer; //Номер записи

FileNameZ, FileNameT: string; //Имена файлов

var

Form1: TForm1;

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);

// Связывание файловой переменной Fz с именем файла

Rewrite(Fz); //Создание нового файла

Button1.Show; //Сделать видимой кнопку "Ввести запись"

end;

end;

Procedure TForm1.Button3Click(Sender: TObject);

begin

if OpenDialog1.Execute then

//Выполнение стандартного диалога выбора имени файла

begin

FileNameZ:= OpenDialog1.FileName;

// Возвращение имени дискового файла

AssignFile(Fz, FileNameZ);

// Связывание файловой переменной Fz с именем файла

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

// Вывод в окно Memo1 отсортированных записей

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);

// Связывание файловой переменной Ft с именем файла

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);

// Закрытие файла записей при нажатии на кнопку "Close"

end;

{

Procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);

begin

CloseFile(fz);

// Закрытие файла записей при нажатии на кнопку

end;

}

end.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: