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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 12:11   #1
prostac
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 17
По умолчанию сохранение инфо в типизированном файле

Доброго времени суток!!!

Помогите с программой пожалуйста.....
Информация о выдаче денег при уходе сотрудников в отпуск содержит следующие данные: фамилия, должность, дата ухода в отпуск (номер месяца и дня в нем), начисленная сумма.
Написать программу, в которой:
обеспечить ввод данных с клавиатуры и сохранение их в типизированном файле;
организовать выборку из типизированного файла информации о сотрудниках заданной должности с минимальным начислением, вывод данных о них на экран и сохранение в текстовом файле.

вот мой вариант:
Код Pascal1

Код:
Program Z4;
type
 
  t_mgts= record        
    fam,dol, tel: string;  {familia}
    d, m: integer; {den,mesajc}
    pl: real;        {viplata}
  end;
var
  m: t_mgts;         {peremennaji dlaj hraneniaj dannih}
  f: file of t_mgts; {fail dlaj hraneniaj dannih}
  ft: text;          {fail dlaj hraneniaj rezultatov obrabotci}
  ans: char;             
  mz: integer; 
  s: real;
begin
 
  assign( f, 'mgts.dat');
  rewrite( f);
  repeat
 
    with m do
    begin
      write('Familia? ');            readln(fam);
      write('Nomer telefona? ');   readln(tel);
      write('Dolgnost? ');            readln(dol);
      write('Mesajc? ');            readln(m);
      write('Den mesajca? ');      readln(d);
      write('Plata? '); readln(pl);
 
    end;
 
    write( f, m);
 
    write('Vvod oconchen? ');
    readln(ans);
 
  until (ans='Y') or (ans='y');
 
  close( f);
 
 
  write('Zadannij mesajc? ');  readln(mz);
    s:=0;
 
  reset( f);
 
 
  begin
 
    read( f, m);
if (m.m<mz) then
 
    begin    
 
 
  assign(ft, 'mgts.txt');
  rewrite(ft);
 
  reset(f);
 
  while not eof(f) do
 
  begin
 
    read( f, m);
 
    with m do
      if (m=mz) and (pl<s+1) then
 
      begin
 
        writeln( fam, tel, m, d, pl);
 
        writeln( ft, fam, tel, m, d,pl);
      end;
  end;
 
  close(ft);
  readln
end;
end;
end.
короче проблема в том,что не выходит вывести информацию о сотрудниках с минимальной выплатой на экран и сохранение всего этого в типизированном файле...
Зарание спасибо!!!

Последний раз редактировалось Stilet; 23.11.2009 в 12:25.
prostac вне форума Ответить с цитированием
Старый 23.11.2009, 14:41   #2
dr.Chas
***
Участник клуба
 
Аватар для dr.Chas
 
Регистрация: 30.07.2007
Сообщений: 1,162
По умолчанию

Код:
program Project1;

{$APPTYPE CONSOLE}

  type  t_mgts=record
        fam : string[15];
        dol: string[10];
        tel: string[15];
        den, mes: byte;
        viplata : real;
  end;
var
  fail: file of  t_mgts; {fail dlaj hraneniaj dannih}
  s:  t_mgts;         {peremennaji dlaj hraneniaj dannih}
  txtf: text;          {fail dlaj hraneniaj rezultatov obrabotci}
  ans: char;
  dolg: string;
  mzarpl: real;
begin

  assign( fail, 'C:\mgts.dat');
  rewrite(fail);
  repeat
    with s do
    begin
      write('Familia? ');            readln(fam);
      write('Nomer telefona? ');   readln(tel);
      write('Dolgnost? ');            readln(dol);
      write('Mesajc? ');            readln(mes);
      write('Den mesajca? ');      readln(den);
      write('Plata? '); readln(viplata);
    end;
    write( fail, s);
    write('Vvod oconchen? da="y": ');
    readln(ans);
  until (ans='Y') or (ans='y');

  close( fail);



  write('Vvedite dolgnost? ');
  readln(dolg);

  reset(fail);
  read( fail, s);
  mzarpl:=s.viplata;
  writeln('----------------------');
  while not eof(fail) do
  begin
    read( fail, s);
    if (s.dol=dolg)and(s.viplata<mzarpl) then mzarpl:=s.viplata;
  end;
  closeFile(fail);
  assign( fail, 'C:\mgts.dat');
  reset(fail);

  assign(txtf, 'C:\mgts2.txt');
  rewrite(txtf);
  while not eof(fail) do
  begin
    read(fail, s);
    if (s.dol=dolg)and(s.viplata=mzarpl) then
    begin
      write('Familia: ');            writeln(s.fam);
      write('Nomer telefona: ');   writeln(s.tel);
      write('Dolgnost: ');            writeln(s.dol);
      write('Mesajc: ');            writeln(s.mes);
      write('Den mesajca: ');      writeln(s.den);
      write('Plata: '); writeln(s.viplata:6:2);

      writeln(txtf, 'Familia: ',s.fam, '  Nomer telefona: ',s.tel,
      '  Dolgnost: ',s.dol,'  Plata: ', s.viplata );
      writeln('----------------------');
    end;
  end;
  closeFile(fail);
  closeFile(txtF);

  readln
end.
Если первой должностью в файле будет минимальная зарплата, и эта должность не является запрашиваемой то он не сработает. Это оставлю вам доделывайте.
dr.Chas вне форума Ответить с цитированием
Старый 23.11.2009, 14:55   #3
prostac
Пользователь
 
Регистрация: 23.11.2009
Сообщений: 17
По умолчанию

спасибо огромное
prostac вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сохранение положения сплиттеров в ини файле mutabor Общие вопросы Delphi 10 11.09.2009 17:23
процедура вывода и нахождения массивов, находящихся в типизированном файле квак Помощь студентам 1 28.04.2009 15:08
отсортировать информацию обменом в типизированном файле rainbow Помощь студентам 6 07.03.2009 09:26
Расчет числа строк в типизированном файле 1234 Паскаль, Turbo Pascal, PascalABC.NET 6 20.05.2008 11:14
Сохранение имен компонентов в текстовом файле!!! LETA Помощь студентам 2 17.06.2007 15:05