Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2013, 16:58   #1
Sadist666
 
Регистрация: 21.03.2013
Сообщений: 5
Восклицание Файлы

Помогите пожалуйста переделать код под это условие: Ведомость абитуриентов, сдавших вступительные экзамены в университет, содержит: Ф.И.О. абитуриента, оценки. Определить средний балл по университету и вывести список абитуриентов, средний балл которых выше среднего балла по университету. Первыми в списке должны идти студенты, сдавшие все экзамены на 5.
Код:
unit Unit1;
interface
uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Buttons, StdCtrls;
type
  TForm1 = class(TForm)
    OpenDialog1: TOpenDialog;
    SaveDialog1: TSaveDialog;
    Label1: TLabel;
    Edit1: TEdit;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Button1: TButton;
    Memo1: TMemo;
    Button2: TButton;
    Button3: TButton;
    Button4: TButton;
    Button5: TButton;
    BitBtn1: TBitBtn;
    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);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
  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
  Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.FormCreate(Sender: TObject);
begin
 Edit1.Text:='';
 Edit2.Text:='';
 Edit3.Text:='';
 Edit4.Text:='';
 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.Text:='';
 Edit2.Text:='';
 Edit3.Text:='';
 Edit4.Text:='';
end;
 
procedure TForm1.Button2Click(Sender: TObject); //создание нового файла записей
begin
OpenDialog1.Title:='Создать новый файл'; //изменение заголовка окна диалога
if OpenDialog1.Execute then begin //выполнение стандартного диалога выбора имени файла
  FileNameZ:=Opendialog1.FileName; //возвращение имени дискового файла
  AssignFile(Fz,FileNameZ); //связывание файловой переменной fz (файла //записей) с именем файла
  Rewrite(Fz);//создание нового файла
end; 
Button1.Show; //сделать видимой кнопку “Ввести запись”
end;
 
procedure TForm1.Button3Click(Sender: TObject); //открыть существующий файл
begin
if OpenDialog1.Execute then begin
  FileNameZ:=Opendialog1.FileName;
  AssignFile(Fz,FileNameZ);
  Reset(Fz); //открытие существующего файла
  end;
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: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 TForm1.Button5Click(Sender: TObject); //сохранение результата сортировки в //текстовом фале
var i:word;
begin
if SaveDialog1.Execute then
 begin
   FileNameT:=SaveDialog1.FileName;
   AssignFile(Ft,FileNameT);
   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 TForm1.BitBtn1Click(Sender: TObject); 
begin
CloseFile(fz); //закрытие файла записей при нажатии кнопки “Close”
end;
end.

Последний раз редактировалось Stilet; 26.05.2013 в 17:01.
Sadist666 вне форума Ответить с цитированием
Старый 26.05.2013, 17:35   #2
alextrof94
Форумчанин
 
Регистрация: 16.03.2013
Сообщений: 599
По умолчанию

У тебя есть готовый шаблон, но ты все равно просишь его переделать? 500р.
alextrof94$gmail.com
alextrof94 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Файлы: Составить программу, которая перепишет фамилии в отдельные файлы в соответствии с названием группы Гульвира Помощь студентам 1 23.05.2013 10:04
Очень нужно сделать задачу в Delphi(Типизированные файлы. файлы записи) Vitalik1 Помощь студентам 1 16.12.2011 10:38
Не сохраняет файлы (Создает файлы пустышки) Rock231 Помощь студентам 2 25.12.2010 12:31
Файлы данных.Типизированные файлы. вылка Помощь студентам 6 17.05.2010 15:42
два вредных вопроса:про асю и прикриплёные файлы файлы steck Свободное общение 3 17.06.2007 14:53