Подскажите что не так с программой в Dilphi?

Модераторы: Duncon, Naeel Maqsudov, Игорь Акопян, Хыиуду

Ответить
vladimir412561
Сообщения: 3
Зарегистрирован: 02 фев 2014, 20:23

04 май 2014, 11:20

Код: Выделить всё

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[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 c именем файла?
    Rewrite(Ft); // Открытие нового текстового файла
  for i:=1 to nzap do
  with stud[i] do Writeln(Ft,i:4,'. ',fio,sball:8:2); // Запись в текстовой файл
  CloseFile(Ft); // Закрытие текстового файла
end;
end;
 procedure TForm1.BitBtn1Click(Sender: TObject);
begin
  CloseFile(fz); // Закрытие файла записей при нажатии на кнопку  "Close"
end;
 
end.
Аватара пользователя
somewhere
Сообщения: 1837
Зарегистрирован: 31 авг 2006, 17:14
Откуда: 71 RUS
Контактная информация:

06 май 2014, 09:24

Так это вы должны сказать, что у вас не так
It's a long way to the top if you wanna rock'n'roll
Ответить