Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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


Ответ
 
Опции темы
Старый 18.04.2018, 21:41   #1
ЕвгенийABC
Новичок
 
Регистрация: 18.04.2018
Сообщений: 1
Репутация: 10
По умолчанию Имеются данные об учащихся музыкальной школы. Выдать на экран фамилию ученика, который обучается на указанном инструменте наибольшее количество лет. Как продолжить?

Программа должна выводить на экран меню с командами:
1 - создание файла
2 - просмотр файла
3 - добавление в файл
4 - обработка файла(вывести на экран фамилию ученика, который обучается на указанном инструменте наибольшее количество лет)
5 - выход

Пользователь выбирает нужную команду, выполняет определенные действия и снова возвращается в меню (оператор GOTO не использовать!!!). При выборе последнего пункта программа завершает свою работу.

Имеются данные об учащихся музыкальной школы: фамилия, инструмент, количество лет обучения. Выдать на экран фамилию ученика, который обучается на указанном инструменте наибольшее количество лет
Код:

uses crt;
type STUD=record
fam, instr:string[15];
kollet:real;
end;   
anketa=file of STUD;
var 
k,i,n,kol,b:integer;
    f1:biblio;
    max:real;
    a:kniga;  
    av:string[15];
begin
assign(f1, 'biblio.dat');
     b:=0;
     while b=0 do
     begin      
    clrscr;
    
    writeln ('Введите диапазон: ');
    readln(a,b);
writeln('1 - создание файла');
writeln('2 - просмотр файла');
writeln('3 - добавление в файл');
writeln('4 - обработка файла');
writeln ('5 - выход');
write('Сделайте выбор: '); readln (k);   
case k of 
  1:
         begin
clrscr;
write('Введите количество учеников: ');
readln(n);
rewrite(f1);          
              for i:=1 to n do
              with a do
              begin
                   writeln(i,'-й ученик ');
                   write('-фамилия: '); readln(fam);
                   write('-инструмент: '); readln(instr);
                   write('-количество лет обучения: '); readln(kollet);                  
                   write(f1,a);
              end;          
close(f1);        
writeln('Файл успешно создан');
readln;
 end;
        2:
        begin
clrscr;          
reset(f1);       
 readln;
 end;
 close(f1);
3:
clrscr;
write('Введите количество учеников: ');
readln(n);         
 reset(f1);
seek(f1,filesize(f1));         
for i:=1 to n do
  with a do
begin
writeln(i,'-й ученик ');
write('-фамилия: '); readln(fam);
write('-инструмент: '); readln(instr);
write('-количество лет обучения: '); readln(kollet);                  
write(f1,a);
  end;
close(f1);
writeln ('Ученики успешно добавлены');
readln;
end;

4:
begin


readln;
end.
reset(f1);


Последний раз редактировалось ЕвгенийABC; 18.04.2018 в 22:33.
ЕвгенийABC вне форума   Ответить с цитированием
Старый 04.05.2018, 07:52   #2
Баламут
Баламучу слегка...
СуперМодератор
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Адрес: Владивосток
Сообщений: 1,532
Репутация: 1059
По умолчанию

Хм... А это че, даже проглатывает компилятор?
Баламут вне форума   Ответить с цитированием
Старый 04.05.2018, 09:14   #3
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 24,354
Репутация: 5274
По умолчанию

Цитата:
Сообщение от Баламут Посмотреть сообщение
Хм... А это че, даже проглатывает компилятор?
Шутите? Там же структура в корне неверная, даже begin ... end неверно расставлены.

я уже не говорю про то, что это попытка переделать чужой код:

Цитата:
Сообщение от ЕвгенийABC Посмотреть сообщение
Код:

f1:biblio;
    max:real;
    a:kniga;

я бы предложил продолжить примерно так:
Код:

uses crt;

type
  STUD = record
    fam, instr: string[15];
    kollet: real;
  end;
  musical_school_BD_file = file of STUD;

var
  k, i, n, kol: integer;
  f1: musical_school_BD_file;
  max: real;
  a: STUD;  
  av: string[15];

begin
  assign(f1, 'mschool.dat');
  k := 0;
  while k <> 5 do
  begin
    clrscr;
    
    writeln('1 - создание файла');
    writeln('2 - просмотр файла');
    writeln('3 - добавление в файл');
    writeln('4 - обработка файла');
    writeln('5 - выход');
    write('Сделайте выбор: ');readln(k);   
    case k of 
      1:
        begin
          clrscr;
          write('Введите количество учеников: ');
          readln(n);
          rewrite(f1);          
          for i := 1 to n do
            with a do
            begin
              writeln(i, '-й ученик ');
              write('-фамилия: ');readln(fam);
              write('-инструмент: ');readln(instr);
              write('-количество лет обучения: ');readln(kollet);                  
              write(f1, a);
            end;          
          close(f1);        
          writeln('Файл успешно создан');
          readln;
        end;
      2:
        begin
          clrscr;          
          reset(f1);
          i:=0;
          WriteLn('Шапка таблицы');
          WriteLn('--------------------------------');
          while Not Eof(f1) do begin
            inc(i);
            Read(f1, a);
            WriteLn(i:4,' ', a.fam:15, ' ', a.instr:15, ' ', a.kollet:5:2);
          end;
          WriteLn('--------------------------------');          
          readln;
          close(f1);
        end;
      3:
        begin
          clrscr;
          write('Введите количество учеников: ');
          readln(n);         
          reset(f1);
          seek(f1, filesize(f1));         
          for i := 1 to n do
            with a do
            begin
              writeln(i, '-й ученик ');
              write('-фамилия: ');readln(fam);
              write('-инструмент: ');readln(instr);
              write('-количество лет обучения: ');readln(kollet);                  
              write(f1, a);
            end;
          close(f1);
          writeln('Ученики успешно добавлены');
          readln;
        end;
      
      4:
        begin
          reset(f1);
    
          close(f1); 
          readln;
        end;
    end;
  end;
end.

Serge_Bliznykov вне форума   Ответить с цитированием
Старый 04.05.2018, 14:16   #4
Баламут
Баламучу слегка...
СуперМодератор
 
Аватар для Баламут
 
Регистрация: 01.11.2006
Адрес: Владивосток
Сообщений: 1,532
Репутация: 1059
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Шутите?
Ну как бы да. Серьезно тут говорить не приходится. За сим удаляюсь
Баламут вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задание по основам программирования! - Pascal ABC - В одной строке ввести фамилию, имя, отчество. Вывести на экран фамилию и инициалы. love26 Паскаль 1 19.04.2018 15:35
Поиск учащихся школы, у которых совпадают имя и дата рождения 4ertovo4ka Паскаль 1 12.02.2015 09:09
Выдать на экран список лиц, родившихся за последние N лет и их возраст SAnastasi Паскаль 1 26.05.2014 17:31
Вывести в таблицу фамилию менеджера, который отправил наибольшее кол-во туристов(VBA) blondino4ka_milk Помощь студентам 4 20.09.2012 20:34
запрос который бы подсчитывал количество полных лет начиная с того года который указан в данных мне базах PereCCC Помощь студентам 8 15.05.2008 16:24


20:15.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru