• B правой части каждого сообщения есть стрелки и . Не стесняйтесь оценивать ответы. Чтобы автору вопроса закрыть свой тикет, надо выбрать лучший ответ. Просто нажмите значок в правой части сообщения.

  • Познакомьтесь с пентестом веб-приложений на практике в нашем новом бесплатном курсе

    «Анализ защищенности веб-приложений»

    🔥 Записаться бесплатно!

  • CTF с учебными материалами Codeby Games

    Обучение кибербезопасности в игровой форме. Более 200 заданий по Active Directory, OSINT, PWN, Веб, Стеганографии, Реверс-инжинирингу, Форензике и Криптографии. Школа CTF с бесплатными курсами по всем категориям.

Dilphi

  • Автор темы vladimir412
  • Дата начала
V

vladimir412

unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, sSkinManager;

type
TForm1 = class(TForm)
Memo1: TMemo;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
Button5: TButton;
BitBtn1: TBitBtn;
Edit3: TEdit;
Edit4: TEdit;
sSkinManager1: TsSkinManager;
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;
const
n=100;
type
Shool = record
FIO: string[40]; // Поле Ф.И.О.
otc: array[1..3] of word; // Поле массива оценок
sball : extended; // Поле среднего балла

end;
var
Fz : file of Shool; // Файл типа записи
Ft : TextFile; // Текстовой файл
Stud : array[1..100] of Shool; // Массив записи
nzap : integer; // Номер записи
FileNameZ, FileNameT : string; // Имя файла
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
var
Form1: TForm1;

implementation

{$R *.dfm}



procedure TForm1.FormCreate(Sender: TObject);
begin
Edit1.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear;
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.Clear; Edit2.Clear; Edit3.Clear; Edit4.Clear;
end;

procedure TForm1.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 TForm1.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 TForm1.Button4Click(Sender: TObject);//Сортировка записей

var
i,j : word;
st : Shool;
begin
for i:=1 to nzap-1 do // Сортировка массива записей
for j:=i+1 to nzap do
if Stud.sball < Stud[j].sball then begin
st:=Stud;
Stud:=Stud[j];
Stud[j]:=st;
end;
Memo1.Clear;
for i:=1 to nzap do // Вывод в окно Memo1 отсортированных записей
with stud 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 c именем файла?
Rewrite(Ft); // Открытие нового текстового файла
for i:=1 to nzap do
with stud do Writeln(Ft,i:4,'. ',fio,sball:8:2); // Запись в текстовой файл
CloseFile(Ft); // Закрытие текстового файла
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
CloseFile(fz); // Закрытие файла записей при нажатии на кнопку "Close"
end;

end.
 
L

LuMee

Думаю, дело пойдет быстрее, если вы хоть как-то намекнете на то, что вам не нравится в поведении программы (падает? выдает неверный результат? не компилируется?). А уж если еще и код оформите по-человечески, станет вообще здорово.
 
V

vladimir412

программа должна соответствовать вот этим требованиям:
Дан файл SCHOOL, в котором содержится информация о школьниках:
1) Ф.И.О.;
2) Число, месяц, год рождения;
3) Оценки экзаменов;
а) отсортировать записи по возрастанию среднего экзаменационного балла;
б) по запросу на Ф.И.О.- выдавать средний балл;
в) распечатать ведомость школьников со средним баллом меньше 3.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!