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

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

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2012, 01:52   #1
Anton94.by
Форумчанин
 
Регистрация: 16.10.2011
Сообщений: 115
Сообщение Запись содержит сведения о сдаче экзаменов. Структура записи.

Измените программу написанную ниже согласно заданию 1. Программа написанна для задания 2. Но надо чтобы эта программа содержала задание 1 и задание 2.

Задание 1: Тема: «Конструирование файлов с элементами сложной структуры»

Разработать программу работы с файлами записей. Каждая запись создаваемых (ис-ходных) файлов содержит сведения согласно варианту.
Обработка каждого из исходных файлов заключается в выводе записей файла с тре-буемыми сведениями (согласно варианту).
Имена файлам даются пользователем по запросу программы.
Выводить нужно любой из созданных файлов (по имени, вводимому пользователем по запросу программы).
Корректировку (расширение, замену содержимого записи, удаление записи из файла) предусмотреть также для каждого из исходных файлов(по имени, вводимому пользо-вателем по запросу программы).
Программу оформить с помощью меню со следующей структурой:
1. Создание
2. Вывод
3. Обработка
4. Расширение
5. Замена полей записи
6. Удаление записи
7. Выход


Задание 2: Запись содержит сведения о сдаче экзаменов. Структура записи:
- Номер группы;
- Ф.И.О.;
- Шифр;
- Оценки сдачи трех экзаменов.
Выдать сведения о студентах, успешно сдавших экзамены.

Код:
program st;
type
  Tabiturient=Record
    Nomer_gruppy:string[10];
    FIO:string[200];
    Shifr:string[100];
    Ocenka:array[1..3] of integer;
    end;
var
  zap:array of Tabiturient;
  abiturient:Tabiturient;
  kolvo, i:integer;
begin
  writeln('vvedite kolichestvo abiturientov');
  readln(kolvo);
  SetLength(zap, kolvo);
  writeln('vvedite dannye abiturientov');
  for i:=0 to kolvo-1 do
    begin
      writeln('abiturient N* ',i+1);
      write(' nomer gruppy -->  ');
      readln( abiturient. Nomer_gruppy);
      write( ' F.I.O -->  ');
      readln(abiturient.FIO);
      write(' Shifr -->  ');
      readln(abiturient.Shifr);
      write(' Ocenka po matematike -->  ');
      readln(abiturient.ocenka[1]);
      write(' Ocenka po fizike -->  ');
      readln(abiturient.ocenka[2]);
      write(' Ocenka po russkomy -->  ');
      readln(abiturient.ocenka[3]);
      zap[i]:=abiturient;
    end;
  writeln(' uspeshno sdali ekzameny');
  for i:=0 to kolvo-1 do
    begin
      if zap[i].Ocenka[1]>=4 then
      if zap[i].Ocenka[2]>=4 then
      if zap[i].Ocenka[3]>=4 then
        begin
          writeln;
          writeln(' F.I.O. ',zap[i]. FIO);
          writeln(' Nomer gruppy ',zap[i].Nomer_gruppy);
          writeln('Shifr ',zap[i].Shifr);
          writeln;
        end;
    end;
  readln;
end.
Anton94.by вне форума Ответить с цитированием
Старый 15.03.2012, 23:40   #2
Anton94.by
Форумчанин
 
Регистрация: 16.10.2011
Сообщений: 115
По умолчанию

Вот пример как надо оформить программу:
Код:
Program Zapisi;
  Uses Crt;
  Const 
    FileName:String[10]=’Stud.dat’; {имя Файла}
  Type Sved=record
         Fio:String[50];	{Фамилия}
         Nom:String[10];	{Номер группы}
         b1,b2,b3:0..10; {Результаты сдачи экзаменов}
         sb:Real;			{Средний балл}
       end;
  Var
    Fv,Fv1:File of Sved;
    Rv: Sved;
    i,N:Byte;
{Создание файла записей}
Procedure Vvod;
Begin
  Assign (Fv,FileName);
  Rewrite(Fv);
  While True do
  With Rv do
  begin
    Clrscr;
    Write ('ФИО (признак окончания ввод ***)-->');
    ReadLn(Fio);
    If Fio=’***’ then 
    begin
      Close(Fv);
      Exit;
    end;
    Write ('Группа -->');
    ReadLn(Nom);
    Write ('Оценки -->');
    ReadLn(b1,b2,b3);
    sb:=(b1+b2+b3)/3;
    Write(Fv,Rv);
  end
end;
{Вывод исходного файла записей}
Procedure Vivod;
begin
  clrscr;
  WriteLn ('Сведения о студентах:');
  WriteLn ('Фамилия  Группа Оценки  Средний балл');
  Assign (Fv,FileName);
  Reset(Fv);
  While not EOF(Fv) do
  With Rv do
  begin
    Read(Fv,Rv);
    WriteLn (Fio:10,Nom:10,b1:2,b2:2,b3:2,sb:5:1);
  end;
  Close (Fv);
  Repeat Until KeyPressed;
end;
{Вывод списка студентов, получающих стипендию}
Procedure Obr;
begin
  clrscr;
  WriteLn ('Сведения о студентах:');
  WriteLn ('Фамилия  Группа Оценки  Средний балл');
  Assign (Fv,FileName);
  Reset(Fv);
  While not EOF(Fv) do
  With Rv do
  begin
    Read(Fv,Rv);
    If sb>5 then
      WriteLn(Fio:10,Nom:10,b1:2,b2:2,b3:2,sb:5:1);
  end;
  Close (Fv);
  Repeat Until KeyPressed;
end;
{Расширение файла за счет внесения новых компонент}
Procedure Rasch;
Begin
  Assign (Fv,FileName);
  Reset(Fv);
  Seek(Fv,FileSize(Fv));
  While True do
  With Rv do
  begin
    Clrscr;
    Write ('ФИО (признак окончания ввод ***)-->');
    ReadLn(Fio);
    If Fio=’***’ then 
    begin
      Close(Fv);
      Exit;
    end;
    Write ('Группа -->');
    ReadLn(Nom);
    Write ('Оценки -->');
    ReadLn(b1,b2,b3);
    sb:=(b1+b2+b3)/3;
    Write(Fv,Rv);
  end
end;
{Замена содержимого записи}
Procedure Zam_zapisi;
Begin
  Clrscr;
  Assign (Fv,FileName);
  Reset(Fv);
  Write (’Введите номер заменяемой записи N=’);
  ReadLn (N);
  Seek(Fv,N-1);
  Read(Fv,Rv);
  Write ('ФИО: ',Fio,'-->');
  ReadLn(Fio);
  Write ('Группа: ',Nom,' -->');
  ReadLn(Nom);
  Write ('Оценки: ',b1:2,b2:2,b3:2,' -->');
  ReadLn(b1,b2,b3);
  sb:=(b1+b2+b3)/3;
  Seek(Fv,N-1);
  Write(Fv,Rv);
  Close(Fv);
end;
{Удаление записи из файла}
Procedure Udal_zapisi;
Begin
  Clrscr;
  Assign (Fv,FileName);
  Reset(Fv);
  Write (’Введите номер удаляемой записи N=’);
  ReadLn (N);
  Assign (Fv1,’Temp.dat’); {создаем промежуточный файл}
  Rewrite(Fv1);				{открываем его для записи}

  For i:=1 to N-1 do	{считываем из исходного файла и записываем в промежуточный файл все компоненты до удаляемой}
  begin
    Read(Fv,Rv);
    Write(Fv1,Rv);
  end;
  Read(Fv,Rv); {считываем удаляемую компоненту} 
                                     { но не записываем}
  While not EOF(Fv) do {считываем все остальные}
                                                       {компоненты до конца файла}
  begin
    Read(Fv,Rv);
    Write(Fv1,Rv);
  end;
  Close(Fv);
  Close(Fv1);
  {переписываем данные из промежуточного файла в исходный}
  Assign (Fv,FileName); 
  Rewrite(Fv);
  Assign (Fv1,’Temp.dat’);
  Reset(Fv1);
  While not EOF(Fv1) do
  begin
    Read(Fv1,Rv);
    Write(Fv,Rv);
  end;
  Close(Fv);
  Close(Fv1);
end;
{Основная программа}
Begin
  Vvod;
  Vivod;
  Obr;
  Rasch;
  Zam_zapisi;
  Udal_zapisi;
End.
Anton94.by вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись содержит сведения о сдаче экзаменов. Структура записи: Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 2 28.02.2012 12:49
Запись содержит сведения о сдаче экзаменов. Структура записи: Anton94.by Паскаль, Turbo Pascal, PascalABC.NET 2 08.02.2012 19:26
Создать массив, который содержит сведения о сдаче студентами сессии... bot0 Помощь студентам 9 25.12.2010 20:20
файл, содержащий сведения о сдачи студентами сессии. Каждая запись содержит поля: номер группы, фамилия Babur4iK Помощь студентам 3 18.05.2010 23:11
Help (Составить запись, содержащую сведения о сдаче группой студентов экзамена) Forro Паскаль, Turbo Pascal, PascalABC.NET 2 08.01.2008 12:15