Program Sotrudniki(input, output); Uses CRT; {подключение модуля CRT} type Tspisok = record {запись данных о сотруднике} fio:string; koddol:integer; podraz:string end; type Tspravochnik=record {запись данных о зарплате} namedol:Integer; zarplata:Real end; var i:Char; nal:Real; Pfond:Real; nl:real; pf:Real; time:real; podz:String; k:Boolean;{Переменная возврата меню} sp:Tspisok; {переменная для данных о сотруднике} spr:Tspravochnik; {переменная для данных о зарплате} SF: Text; SrF:Text; n:integer; Procedure oshibka; {процедура вывода сообщения о шибке ввода} begin TextBackGround(4); writeln ('ОШИБКА ВВОДА'); Writeln ('Повторите ввод выбранной опперации'); if KeyPressed Then i:=Readkey else Delay(9999); Delay(9999); Delay(9999); Delay(9999); Delay(9999); TextBackGround(0); k:=True; end; Procedure Spravca; {процедура для записи данных о зарплате} begin Writeln('Введите код должности: '); Readln(spr.namedol); Writeln('Введите зарплату сотрудника за один час работы: '); Readln(spr.zarplata); Assign(SrF, 'c:\Spravochnik.txt'); {$I-} Append(SrF); {$I+} If IOResult<>0 Then begin {$I-} Rewrite(SrF); {$I+} If IOResult<>0 Then Writeln('Ошибка создания файла!'); end; Write(SrF, spr.namedol, '', spr.zarplata); Close(SrF); end; Procedure Spisok; {процедура для данных о сотруднике} begin Writeln ('Введите ФИО сотрудника'); Readln (sp.fio); Writeln('Введите код должности'); Readln(sp.Koddol); Writeln('Введите подразделение в котором работает сотрудник института'); readln(sp.Podraz); Assign(SF, 'c:\spsotr.txt'); {$I-} Append(SF); {$I+} If IOResult<>0 Then begin {$I-} Rewrite(SF); {$I+} If IOResult<>0 Then Writeln('Ошибка создания файла!'); end; Write (SF, sp.fio, sp.Koddol, sp.Podraz); Close(SF); end; Procedure vvod; {процедура ввода информации} begin ClrScr; Writeln ('Ввод информации о сотрудниках '); Writeln; Writeln; Writeln('Выберите направления ввода информации: '); Writeln('1 Ввод зарплаты'); Writeln('2 Ввод данных о сотрудниках'); Readln(i); case I of '1':Spravca; '2': Spisok; else oshibka; end; Readln; k:=True; ClrScr; end; Procedure delet; {процедура удаления ненужной информации} begin Writeln ('Вы выбрали удаление'); Readln; k:=True; ClrScr; end; Procedure correct; {процедура корректирования информации} begin Writeln ('Вы выбрали корректирование'); Readln; k:=True; ClrScr end; Procedure raschet; {процедура вывода расчётной ведомости для каждого подразделения} begin Writeln ('Вы выбрали расчёт'); Write('Введите процент подоходного налога'); Readln(nal); Write('Введите процент отчисления в пенсионный фонд'); Readln(Pfond); Write('Введите название подразделения для которого нужно просмотреть расчётную ведомость'); Readln(podz); Assign(SrF, 'c:\Spravochnik.txt'); Assign(SF, 'c:\spsotr.txt'); Reset(SrF); Reset(SF); n:=1; While not EOF (SF) do begin nl:=time* Readln; k:=True; ClrScr; end; Procedure raschsumma; {процедура вывода расчётной ведомости по институту} begin Writeln ('Вы выбрали сумму'); Readln; k:=True; ClrScr; end; Procedure konec; {процедура окончания выполнения программы} begin Writeln('Вы выбрали Завершение работы программы'); Writeln('Спасибо за использование нашего продукта'); Write('Для выхода нажмите любую клавищу'); ReadKey; k:=False; ClrScr; end; Procedure menu; {Процедура выбора меню} var I:Integer; begin ClrScr; Writeln(''); Writeln('1 - Ввод информации о сотрудниках и запись её на диск'); Writeln('2 - Удаление ненужной информации с файлов на диске'); Writeln('3 - Корректирование записей базы данных'); Writeln('4 - Вывод расчётной ведомости для каждого подразделения'); Writeln ('5 - расчёт суммы выплаты заработной платы по институту в целом'); Writeln('0 - выход из программы'); Writeln ('Выберите пункт соответствующий требуемой операции для выполнения'); readln (i); case i of 1: vvod; {Процедура ввода информации о сотрудниках и записи её на диск} 2: delet; {Процедура удаления ненужной информации с файлов на диске} 3: correct; {Процедура корректирования записей базы данных} 4: raschet; {Процедура ввывода расчётной ведомости для каждого подразделения} 5: raschsumma; {Процедура расчёта суммы выплаты заработной платы по институту в целом} 0: konec {Процедура окончания выполнения программы} else oshibka; end; end; begin ClrScr; TextColor(4); Writeln (' Вас приетствует база данных "Сотрудники"'); Writeln(' научного учреждения "ПРОГРЕСС"'); Writeln(''); Writeln (''); Writeln(''); TextColor(15); k:=true; while k=True do menu end.