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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 07.04.2016, 19:02   #1
vladis23
Новичок
Джуниор
 
Регистрация: 07.04.2016
Сообщений: 2
По умолчанию Консольное приложение с текстовым файлом

Сделать меню программы которое входит в него: Ввод данных в текстовый файл, чтение из текстового файла, добавление записи в текстовый файл, вывод результатов и выход.
В текстовом файле должна быть следующая информация: Фамилия, Год рождения, Оклад сотрудника
Вывести информацию о сотрудниках:
1) чей оклад выше среднего
2) вывести информацию о сотрудниках чей возраст от 40 до 50 лет.
Спасибо большое работает считывание, но у меня не работает выводы 1 и 2. При выводе выводит средний оклад Nan
Буду очень любезен вашей помощи
Вот сам код:
Код:
program office;
uses crt;
type
Toffice = record
FSurname:string[15];
FData:word;
Oklad:real;
end;
Var
Mas:array [1..20] of Toffice;
F:text;
Zap:Toffice;
n:integer;
vibor:integer;
procedure vvod;
var
i:integer;
begin
Assign(f,'office.txt');
Rewrite(f);
writeln('Введите количество записей');
readln(n);
for i:=1 to n do
begin
writeln('Введите ',i,' сотрудника');
writeln('Введите фамилию сотрудника');
readln(Zap.FSurname);
writeln('Введите год рождения');
readln(Zap.FData);
writeln('Введите оклад сотрудника');
readln(Zap.Oklad);
writeln;
writeln(f,i:3,Zap.FSurname:15,'  ',Zap.FData,' ',Zap.Oklad);
  
end; 
close(f);
end;
procedure reading;
var i:integer;
    s:string;
begin
assign(f,'office.txt');
reset(f);
while not (eof(f)) do
 begin
  readln(f,s);//читаем строку
  s:=trim(s)+' ';//убираем пробелы в конце и начале+1 пробел в конец
  while pos('  ',s)>0 do//удалим лишние пробелы
  delete(s,pos('  ',s),1);//в апострофах по 2 пробела
  i:=strtoint(copy(s,1,pos(' ',s)-1));//номер
  delete(s,1,pos(' ',s));//удалим
  Mas[i].FSurname:=copy(s,1,pos(' ',s)-1);//фамилия
  delete(s,1,pos(' ',s));//удалим
  mas[i].FData:=strtoint(copy(s,1,pos(' ',s)-1));//дата
  delete(s,1,pos(' ',s));//удалим
  mas[i].Oklad:=strtoint(copy(s,1,pos(' ',s)-1));//оклад
  writeln(i:3,Mas[i].FSurname:15,'  ',MAs[i].FData,' ',mas[i].Oklad);//вывод
 end;
close(f);
end;
 
procedure adding;
var i:integer;
begin
Append(f);
Write('Сколько записей добавить? n=');
readln(n);
for i:=1 to n do 
with Zap do begin
write('Введите фамилию: ');readln(FSurname);
Write('Введите год рождения: ');Readln(FData);
Write('Введите оклад сотрудника: ');Readln(Oklad);
writeln;
writeln(f,i:3,Zap.FSurname:15,'  ',Zap.FData,' ',Zap.Oklad);
writeln(i:3,Zap.FSurname:15,'  ',Zap.FData,' ',Zap.Oklad);
end;
close(f);
end;
procedure maxoklad;
var k,i:integer;
S:real;
srednee:real;
begin
S:=0;
for i:=1 to n do 
begin
S:=S+Zap.Oklad;
writeln(s);
end;
srednee:=s/n;
writeln('Средний оклад =',srednee:4:2);
end;
 
begin
Writeln('1 - Ввод данных с клавиатуры');
Writeln('2 - Чтение данных с файла');
Writeln('3 - Добавление записи');
Writeln('4 - Вывод чей оклад выше среднего');
Writeln('5 - Вывод возраста сотрудника от 40 до 50 лет');
Writeln('6 - Выход');
readln(vibor);
while vibor<6 do
begin
case vibor of
1:vvod;
2:reading;
3:adding;
4:maxoklad;
5:writeln('5esds');
end;
Writeln('1 - Ввод данных с клавиатуры');
Writeln('2 - Чтение данных с файла');
Writeln('3 - Добавление записи');
Writeln('4 - Вывод чей оклад выше среднего');
Writeln('5 - Вывод возраста сотрудника от 40 до 50 лет');
Writeln('6 - Выход');
readln(vibor);
end;
 
end.
Пожалуйста, оформляйте Ваш код согласно правилам.

Последний раз редактировалось Вадим Мошев; 07.04.2016 в 21:19.
vladis23 вне форума Ответить с цитированием
Старый 10.04.2016, 09:38   #2
vladis23
Новичок
Джуниор
 
Регистрация: 07.04.2016
Сообщений: 2
По умолчанию

Пожалуйста помогите решить эту задачу
vladis23 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Работа с текстовым файлом Алексей_2012 Общие вопросы Delphi 16 28.08.2014 01:54
С++ Работа с текстовым файлом marina12 Помощь студентам 0 19.03.2013 14:34
Работа с текстовым файлом DavioN Помощь студентам 13 08.02.2012 15:10
Delphi. Консольное приложение для работы с txt. файлом MexX Помощь студентам 1 13.05.2009 09:37
Работа с текстовым файлом! Edimus Общие вопросы C/C++ 10 19.11.2007 10:31