Dilphi

Тема в разделе "Pascal and Delphi", создана пользователем vladimir412, 4 май 2014.

  1. vladimir412

    vladimir412 New Member

    Регистрация:
    3 апр 2014
    Сообщения:
    4
    Симпатии:
    0
    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.
     
  2. LuMee

    LuMee Well-Known Member

    Регистрация:
    2 май 2006
    Сообщения:
    477
    Симпатии:
    0
    Думаю, дело пойдет быстрее, если вы хоть как-то намекнете на то, что вам не нравится в поведении программы (падает? выдает неверный результат? не компилируется?). А уж если еще и код оформите по-человечески, станет вообще здорово.
     
  3. vladimir412

    vladimir412 New Member

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

Поделиться этой страницей