unit unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, Buttons, ExtCtrls; type TTForm1 = class(TForm) Edit1: TEdit; Edit2: TEdit; Edit3: TEdit; Edit4: TEdit; Label1: TLabel; Label2: TLabel; Label3: TLabel; Label4: TLabel; Label5: TLabel; Memo1: TMemo; Button1: TButton; Button3: TButton; Splitter1: TSplitter; Button5: TButton; BitBtn1: TBitBtn; SaveDialog1: TSaveDialog; Button2: TButton; OpenDialog1: TOpenDialog; Button4: TButton; 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 TForm1: TTForm1; implementation {$R *.DFM} procedure TTForm1.FormCreate(Sender: TObject); begin Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; Memo1.Clear; Button1.Hide;// Ñäåëàòü íåâèäèìîé êíîïêó “Ââåñòè çàïèñü” nzap:=0; end; procedure TTForm1.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.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear; end; procedure TTForm1.Button2Click(Sender: TObject); //Ñîçäàíèå íîâîãî begin // ôàéëà çàïèñåé OpenDialog1.Title :=’Ñîçäàòü íîâûé ôàéë’; // Èçìåíåíèå çàãîëîâêà //îêíà äèàëîãà if OpenDialog1.Execute then // Âûïîëíåíèå ñòàíäàðòíîãî äèàëîãà begin// âûáîðà èìåíè ôàéëà FileNameZ:= OpenDialog1.FileName; // Âîçâðàùåíèå èìåíè // äèñêîâîãî ôàéëà AssignFile(Fz, FileNameZ); // Ñâÿçûâàíèå ôàéëîâîé ïåðåìåííîé Fz // c èìåíåì ôàéëà Rewrite(Fz); // Ñîçäàíèå íîâîãî ôàéëà end; Button1.Show; // Ñäåëàòü âèäèìîé êíîïêó “Ââåñòè çàïèñü” end; procedure TTForm1.Button3Click(Sender: TObject); // Îòêðûòü begin // ñóùåñòâóþùèé ôàéë if OpenDialog1.Execute then // Âûïîëíåíèå ñòàíäàðòíîãî äèàëîãà begin// âûáîðà èìåíè ôàéëà FileNameZ:= OpenDialog1.FileName; // Âîçâðàùåíèå èìåíè äèñêîâîãî ôàéëà AssignFile(Fz, FileNameZ); // Ñâÿçûâàíèå ôàéëîâîé ïåðåìåííîé Fz // c èìåíåì ôàéëà Reset(Fz); // Îòêðûòèå ñóùåñòâóþùåãî ôàéëà end; nzap:=0; 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 TTForm1.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 TTForm1.Button5Click(Sender: TObject); // Ñîõðàíåíèå var i:word;// ðåçóëüòàòîâ ñîðòèðîâêè â òåêñòîâîì ôàéëå begin if SaveDialog1.Execute then // Âûïîëíåíèå ñòàíäàðòíîãî äèàëîãà begin// âûáîðà èìåíè ôàéëà FileNameT:= SaveDialog1.FileName; // Âîçâðàùåíèå èìåíè // äèñêîâîãî ôàéëà AssignFile(Ft, FileNameT); // Ñâÿçûâàíèå ôàéëîâîé ïåðåìåííîé Ft c // èìåíåì ôàéëà 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 TTForm1.BitBtn1Click(Sender: TObject); begin CloseFile(fz); // Çàêðûòèå ôàéëà çàïèñåé ïðè íàæàòèè íà êíîïêó “Ñlose” end; end.