Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
ожков Артем. Лабораторная №8 по Delphi 8
Лабораторная работа №8
«ПРОГРАММИРОВАНИЕ С ИСПОЛЬЗОВАНИЕМ ЗАПИСЕЙ И
ФАЙЛОВ »
Выполнил: студент 2 курса факультета Информатики Рожков Артем
Вариант № 13
Постановка задачи:
Ведомость абитуриентов, сдавших вступительные экзамены в
университет, содержит: фамилию абитуриента, три оценки. Определить
средний балл по университету и вывести список абитуриентов, средний балл
которых выше среднего балла по университету. Первыми в списке должны
идти студенты, сдавшие все экзамены на 5.
Описание переменных:
Fz : file of Tstudent файл типа запись
Ft : TextFile текстовый файл
Stud : array[1..100] of Tstudent массив записей
nzap : integer номер записи
FileNameZ, FileNameT : string имя файла
sball : extended средний балл
otc: array[1..3] of word массив оценок
FIO: string[40] поле ф.и.о.
Программа:
unit Unit2;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Buttons, StdCtrls;
type
TForm2 = class(TForm)
OpenDialog1: TOpenDialog;
SaveDialog1: TSaveDialog;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Memo1: TMemo;
Button1: TButton;
Button2: TButton;
Button3: TButton;
Button4: TButton;
BitBtn1: TBitBtn;
Button5: TButton;
procedure FormCreate(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button4Click(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
Form2: TForm2;
implementation
{$R *.dfm}
procedure TForm2.FormCreate(Sender: TObject);
begin
Edit1.Clear;
Edit2.Clear;
Edit3.Clear;
Edit4.Clear;
Memo1.Clear;
Button5.Visible:=false;// Сделать невидимой кнопку “Ввести запись”
nzap:=0;
end;
procedure TForm2.Button5Click(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 TForm2.Button1Click(Sender: TObject); //Создание
begin
OpenDialog1.Title :='Создать новый файл'; // Изменение заголовка окна диалога
if OpenDialog1.Execute then // Выполнение стандартного диалога
begin // выбора имени файла
FileNameZ:= OpenDialog1.FileName; // Возвращение имени дискового файла
AssignFile(Fz, FileNameZ); // Связывание файловой переменной Fz c именем файла
Rewrite(Fz);// Создание нового файла
end;
Button5.Show;// Сделать видимой кнопку “Ввести запись”
end;
procedure TForm2.Button2Click(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;
Button5.Show; // Сделать видимой кнопку “Ввести запись”
end;
procedure TForm2.Button3Click(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 TForm2.Button4Click(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 TForm2.BitBtn1Click(Sender: TObject);
begin
CloseFile(fz); // Закрытие файла записей при нажатии на кнопку “Сlose”
end;
end.
Тесты: