Помогите пожалуйста переделать код под это условие: Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, оценки. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету. Первыми в списке должны идти студенты, сдавшие все экзамены на 5.
Код:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TForm1 = class(TForm)
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Edit1: TEdit;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Button1: TButton;
Memo1: TMemo;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
BitBtn1: TBitBtn;
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);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
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);//создание нового файла
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 //вывод в 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);
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;
end.