3. НАЗНАЧЕНИЕ И ОБЛАСТЬ ПРИМЕНЕНИЯ
Программный модуль разрабатывается на основе учебного плана специальности «Программное обеспечение вычислительной техники и автоматизированных систем».
Программный модуль представляет собой ведомость зарплаты, позволяющий пользователю рассчитывать средний размер оклада, сумму всех премий сотрудников, выводить сведения о сотрудниках, чья зарплата меньше 3000 рублей и чья премия выше 1000 рублей.
4. ТРЕБОВАНИЕ К ПРОГРАММНОМУ ПРОДУКТУ
4.1. Требования к функциональным характеристикам
4.1.1. Программа должна обеспечивать возможность выполнения следующих функций:
- вывод шапки таблицы (SH);
- вывод данных одной записи (P);
- создание файла (SOZ);
- дополнение файла новыми записями ();
- запись данных в файл (ZF);
- чтение данных из файла (CHT);
- модификация ряда записей файла ();
- поиск записей файла с выводом найденных записей или сообщения о неуспешном поиске (POISK);
- отсортировать таблицу по возрастанию ();
- удаление записей из типизированного файла ();
- функция для фильтрации строки – удаления пробелов (FILTR).
4.1.2. Организация входных и выходных данных:
- Входные данные поступают из файла “Ish.txt”
- Выходные данные поступают в текстовый файл “REZYL.txt”;
4.2. Требования к надёжности
4.2.1. Предусмотреть контроль вводимой информации
Нет контроля вводимой информации.
4.3. Требования к составу и параметрам технических средств:
Система должна работать на IBM – совместимых персональных компьютерах.
Минимальная конфигурация:
тип процессора Pentium и выше
объём оперативного запоминающего устройства 32 Мб и более
объём свободного места на жёстком диске.40 Мб
Рекомендуемая конфигурация:
тип процессора Pentium II и выше
объём оперативного запоминающего устройства 128 Мб и более
объём свободного места на жёстком диске 60 Мб
4.4. Требования к программной совместимости
Программа должна работать под управлением семейства операционных систем Win 32 (Windows 95/98/2000/ME/XP и т.п.) и ОС MS DOS версии не ниже 5.5. Базовый язык программирования - Turbo Pascal 7.0.
5. ПРОГРАММНАЯ ДОКУМЕНТАЦИЯ МОДУЛЯ
«ВЕДОМОСТЬ ЗАРПЛАТЫ»
5.1. Исходные данные и результат работы программы
5.1.1.Исходный файл:____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53 | 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62 | 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43 | 164.50 | 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 | 400.44 | 148.10 | 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67 | 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69 | 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56 | 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85 | 165.40 | 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10 | 7000.60 |
|_________________________|________|________|________|_________|
Ivanov I.I. 1000.0 100.53 166.5 9004.5
Petrov P.P. 2000.0 200.62 167.5 1864.4
Repina G.G. 3000.0 300.43 164.5 3150.5
Sidirov F.F. 4000.0 400.44 148.1 4256.5
Kotov K.K. 1512.0 500.67 168.4 1864.5
Somova S.S. 2654.0 600.69 168.1 3264.4
Dedov D.D. 1655.0 700.56 684.1 1680.4
Popova P.P. 3545.0 800.85 165.4 4210.6
Sidova S.S. 1658.0 900.75 168.1 2566.1
Komov K.K. 6574.0 1000.95 642.1 7000.6
5.1.2. Результирующий Файл:
a) Ведомость зарплаты:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53 | 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62 | 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43 | 164.50 | 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 | 400.44 | 148.10 | 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67 | 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69 | 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56 | 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85 | 165.40 | 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10 | 7000.60 |
|_________________________|________|________|________|_________|
b) Нахождение среднего размера оклада:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53 | 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62 | 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43 | 164.50 | 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 | 400.44 | 148.10 | 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67 | 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69 | 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56 | 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85 | 165.40 | 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10 | 7000.60 |
|_________________________|________|________|________|_________|
Sredniy razmer oklada 5519.60
c) Сведенья о сотрудниках с окладом менее 3000 рублей
Svedenia o sotrudnikah s okladom menshe 3000 rub:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53 | 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62 | 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67 | 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69 | 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56 | 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
d) Сведенья о сотрудниках с премией больше 1000 рублей
Svedenia o sotrudnikah s premiey bolshe 1000 rub:
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10 | 7000.60 |
|_________________________|________|________|________|_________|
e) Суммарная сумма премий всех сотрудников
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo |
|_________________________|________|________|________|_________|
| Ivanov I.I. | 1000.00 | 100.53 | 166.50 | 9004.50 |
|_________________________|________|________|________|_________|
| Petrov P.P. | 2000.00 | 200.62 | 167.50 | 1864.40 |
|_________________________|________|________|________|_________|
| Repina G.G. | 3000.00 | 300.43 | 164.50 | 3150.50 |
|_________________________|________|________|________|_________|
| Sidirov F.F. | 4000.00 | 400.44 | 148.10 | 4256.50 |
|_________________________|________|________|________|_________|
| Kotov K.K. | 1512.00 | 500.67 | 168.40 | 1864.50 |
|_________________________|________|________|________|_________|
| Somova S.S. | 2654.00 | 600.69 | 168.10 | 3264.40 |
|_________________________|________|________|________|_________|
| Dedov D.D. | 1655.00 | 700.56 | 684.10 | 1680.40 |
|_________________________|________|________|________|_________|
| Popova P.P. | 3545.00 | 800.85 | 165.40 | 4210.60 |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
| Komov K.K. | 6574.00 | 1000.95 | 642.10 | 7000.60 |
|_________________________|________|________|________|_________|
Summa premiy 5506.49
f) Поиск записей файла по сочетанию двух заданных поисковых признаков с помощью “ppoi.dat”:
Нахождение в ведомости зарплаты людей с ФИО Sidova S.S. и окладом 1658.00.
Naiti v baze svedenia lud9h s fio = Sidova S.S. i okladom 1658.00
Vivod zarplati
____________________________________________________________
| fio | oklad | premi9 | nalog | Itogo |
|_________________________|________|________|________|_________|
| Sidova S.S. | 1658.00 | 900.75 | 168.10 | 2566.10 |
|_________________________|________|________|________|_________|
5.2. Блок-схемы индивидуальной части курсовой работы
Блок-схема процедуры а
Блок-схема процедуры c1
Program Zarplata;
CONST N=5; {количество записей в файле}
TYPE ST=ARRAY[1..4] OF STRING[80];
ST1=STRING[12];
STR=RECORD {состав записи}
fio:string[30];
oklad:real;
premi9:real;
nalog:real;
itogo:real;
END;
FL=File of STR; {имя для типизированного файла}
CONST C:ST=( {массив шапки таблицы}
' Vivod zarplati ',
'_________________________________________________________',
'| fio | oklada | premi9 | nalog | Itogo |',
'|________________________|_______|________|________|________|' );
Var
Z:STR; {запись со сведениями о зарплате}
{для сортировки}
z1,z2:STR;
k:integer;
ok:boolean;
i,j:BYTE ; { неоходимы для огранизации циклов}
str1:STR;
FI, {файл для исходных данных}
FR:text; {файл для результатов}
f:FL; {типизированный файл}
{Вывод шапки таблицы}
PROCEDURE SH;
Begin
Writeln(FR);
FOR I:=1 TO 5 DO Writeln(FR,C[i]);
END;
{Опережающее описание функции}
FUNCTION FILTR(STR:ST1):st1;
FORWARD;
{Вывод одной строки таблицы}
PROCEDURE P;
BEGIN
WITH Z DO
Writeln(FR,'| ',fio:15,' | ',oklad:10:2,' | ',premi9:10:2,' | ',nalog:10:2,' | ',itogo:10:2,' |');
Writeln(FR,c[4]);
END;
{Запись данных в файл}
procedure ZF (NF:ST1);
var FID:text;
begin
assign(FID,'d:\Ish.txt');{связывание FID с физическим файлом NF}
reset (FID); {открыть FID для чтения}
with Z do
while not seekeof (FID) do
begin {Ввод данных строки:}
readln (FID,fio,oklad,premi9,nalog,itogo);
fio:=filtr(fio); {фильтрация naim}
write (F,Z); {вызов процедуры вывода в F}
end;
close(FID);
end; {конец процедуры ZF}
procedure ZF1 (NF:ST1);
var FID:text;
begin
assign(FID,'d:\pdop.dat');{связывание FID с физическим файлом NF}
reset (FID); {открыть FID для чтения}
with Z do
while not seekeof (FID) do
begin {Ввод данных строки:}
readln (FID,fio,oklad,premi9,nalog,itogo);
fio:=filtr(fio); {фильтрация name}
write (F,Z); {вызов процедуры вывода в F}
end;
close(FID);
end; {конец процедуры ZF1}
{_Опережающее описание процедуры чтения записей файла_}
procedure CHT;