REM Программа начисления зарплаты
REM Описание структур данных – записей файлов
TYPE StrRab `Структура – рабочий
TabN AS STRING * 3 `табельный номер
KodK AS STRING * 3 `код качества
END TYPE
TYPE StrIsd `Cтруктура – изделие
Kod AS STRING * 3 `код изделия
Kol AS INTEGER `количество изделий
END TYPE
TYPE ZapZ `Запись файла заявок
Rab AS StrRab `рабочий
Izd AS StrIzd `изделие
END TYPE
TYPE ZapR `Запись файла таблицы расценок
KodI AS STRING * 3 `код изделия
StrIz AS DOUBLE `стоимость изделия
END TYPE
TYPE ZapV `Запись файла ведомости по зарплате
TabN AS STRING * 3 `табельный номер рабочего
Zarpl AS DOUBLE `зарплата рабочего
END TYPE
REM Описание переменных
DIM Punkt AS INTEGER
DIM NameFZ AS STRING
DIM NameFR AS STRING
DIM NameFV AS STRING
DIM KolStr AS INTEGER
DIM Zajavka AS ZapZ
DIM Rastcen AS ZapR
DIM Vedom AS ZapV
DIM fz AS INTEGER
DIM fr AS INTEGER
DIM fv AS INTEGER
DIM i AS INTEGER
DIM st AS DOUBLE
DIM sum AS INTEGER
REM Основная программа
NameFZ = «Заявки.dat»
NameFR = «Расцен.dat»
NameFV = «Ведом.dat»
fz = 1
fr = 2
fv = 3
DO
CLS
PRINT «Главное меню»
PRINT «1. Ввод заявок табеля учета работ»
PRINT «2. Просмотр табеля учета работ»
PRINT «3. Ввод таблицы расценок»
PRINT «4. Просмотр таблицы расценок»
PRINT «5. Расчет заработной платы»
PRINT «6. Просмотр ведомости по зарплате»
PRINT «7. Выход»
PRINT «Выбери пункт меню от 1 до7 и нажми <Enter>»
INPUT Punkt
SELECT CASE Punkt
CASE 1: GOSUB vvod1
CASE 2: GOSUB look1
CASE 3: GOSUB vvod2
CASE 4: GOSUB look2
CASE 5: GOSUB calculate
CASE 6: GOSUB look3
CASE 7: EXIT DO
CASE ELSE: PRINT «Ошибка в работе пункта»; Punkt
END SELECT
LOOP
STOP
vvod1:
REM Подпрограмма ввода заявок табеля учета работ
PRINT «Работает подпрограмма ввода заявок табеля учета работ»
OPEN NameFZ FOR OUTPUT AS #fz
PRINT «Укажи количество заявок: »
INPUT KolStr
REM ввод заявки (Zajavka) и ввод ее в файл
FOR i = 1 TO KolStr
PRINT «Введи реквизиты»; i ; «-й заявки:»
INPUT «табельный номер-», Zajavka.Rab.TabN
INPUT «код изделия-», Zajavka.Izd.Kod
INPUT «количество изделий-», Zajavka.Izd.Kol
INPUT «код качества-», Zajavka.Rab.KodK
WRITE #fz, Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zajavka.Izd.Kol, Zajavka. Rab.KodK
NEXT i
REM Конец ввода, закрытие файла
CLOSE #fz
PRINT «Конец подпрограммы. Нажмите <Enter>.»
Pause$ = INPUT (1)
RETURN
look1:
REM Подпрограмма просмотра табеля учета работ
PRINT «Работает подпрограмма просмотра табеля учета работ»
OPEN NameFZ FOR INPUT AS #fz
REM Вывод заявок
PRINT «табельный код количество код»
PRINT « номер изделия изделий качества»
WHILE NOT EOF (fz)
INPUT #fz, Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zajvka.Izd.Kol, Zajavka.Rab.KodK
PRINT Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zajavka.Izd.Kol, Zajavka.Rab.KodK
WEND
REM Конец вывода
CLOSE (fz)
PRINT «Конец подпрограммы. Нажмите <Enter>.»
Pause$ = INPUT (1)
RETURN
vvod2:
REM Подпрограмма ввода таблицы расценок
PRINT «Работает подпрограмма ввода таблицы расценок»
OPEN NameFR FOR OUTPUT AS #fr
PRINT «Укажите количество строк в таблице расценок: »
INPUT KolStr
REM ввод заявки (Rastcen) и вывод ее в файл
FOR i = 1 TO KolStr
PRINT «Введи реквизиты»; i; «-го изделия:»
INPUT «код изделия-», Rastcen.KodI
INPUT «стоимость изделия-», Rastcen.StIz
WRITE #fr, Rastcen.KodI, Rastcen.StIz
NEXT i
REM Конец ввода
CLOSE fr
PRINT «Конец подпрограммы. Нажмите <Enter>.»
Pause$ = INPUT$ (1)
RETURN
look2:
REM Подпрограмма просмотра таблицы расценок
PRINT «Работает подпрограмма просмотра таблицы расценок»
OPEN NameFR FOR INPUT AS #fr
REM Вывод строк таблицы
PRINT « код стоимость»
PRINT «изделия изделия»
WHILE NOT EOF (fr)
INPUT #fr, Rastcen.KodI, Rastcen.StIz
PRINT Rastcen.KodI, Rastcen.StIz
WEND
REM Конец вывода
CLOSE (fr)
PRINT «Конец подпрограммы. Нажмите <Enter.»
Pause$ = INPUT$ (1)
RETURN
calculate:
REM Подпрограмма расчета заработной платы
PRINT «Работает подпрограмма расчета заработной платы»
OPEN NameFZ FOR INPUT AS #fr
OPEN NameFV FOR RANDOM AS #fv
KolZapV = 0
WHILE NOT EOF (fz)
INPUT #fz, Zajavka.Rab.TabN, Zajavka.Izd.Kod, Zjavka.Izd.Kol, Zajavka.Rab.KodK
OPEN NameFR FOR INPUT AS #fr
WHILE NOT EOF (fr)
INPUT #fr, Rastcen.KodI, Rastcen.StIz
IF Zajavka.Izd.Kod = Rastcen.KodI THEN st = Rastcen.StIz
WEND
CLOSE fr
REM Вычисление стоимости заявки
Stoim = st * Zajavka.Izd.Kol
IF Zajavka.Rab.KodK = «001» THEN Stoim = 1.5 * Stoim
IF Zajavka.Rab.KodK = «002» THEN Stoim = 1.25 * Stoim
REM Конец вычисления стоимости одной заявки
REM Формирование строки ведомости
SEEK #fv, 1
sum =0
FOR i = 1 TO KolZapV
GET #fv, i, Vedom
IF Zajavka.Rab.TabN = Vedom.TabN THEN
Vedom.Zrpl = Vedom.Zrpl + Stoim
PUT #fv, i, Vedom
END IF
NEXT i
IF sum = 0 THEN
Vedom.TabN = Zajavka.Rab.TabN
Vedom.Zrpl = Stoim
KolZapV = KolZapV + 1
PUT #fv, KolZapV, Vedom
END IF
WEND
CLOSE fz
CLOSE fv
PRINT «Конец подпрограммы. Нажмите <Enter>.»
Pause$ = INPUT$ (1)
RETURN
look3:
REM Подпрограмма просмотра ведомости по зарплате
PRINT «Работает подпрограмма просмотра ведомости по зарплате»
OPEN NameFV FOR RANDOM AS #fv
REM Вывод ведомости
PRINT «табельный заработная»
PRINT « номер плата»
WHILE NOT EOF (fv)
GET #fv, ,Vedom
PRINT Vedom.TabN, Vedom.Zrpl
WEND
REM конец вывода
CLOSE fv
PRINT «Конец подпрограммы. Нажмите<Enter>.»
Pause$ = INPUT (1)
RETURN
END
Литература
1. Барышева И.В., Городецкий С.Ю., Гергель В.П., Гришагин В.А., Кастосов И.В., Кулакова А.П. Информатика: от школы к вузу. По материалам конкурсных экзаменов в ННГУ. - Н.Новгород: ННГУ, 2000.
2. Барышева И.В., Городецкий С.Ю., Громницкий В.С., Малыженков В.И., Маркина М.В. Задачи по информатике. / По материалам выпускных экзаменов подготовительного факультета и вступительных экзаменов в ННГУ в 2004 году. - Н.Новгород: ННГУ, 2004.
3. Гришагин В.А., Карпенко С.Н. Контрольные задания по информатике для учащихся подготовительных курсов. - Н.Новгород: ННГУ, 2002.
4. Гуденко Д.А., Петроченко Д.В. Сборник задач по программированию. -СПб.: Питер, 2003.
5. Зеленяк О.П. Практикум программирования на Тuгbo Раsсаl. Задачи, алгоритмы и решения. - К.: ДиаСофт, 2001.
6. Иванова Г.С. Основы программирования: Учебник для вузов. - М.: МГТУ им. Н.Э. Баумана, 2002.
7. Информатика: Учебник / Под ред. проф. Н.В. Макаровой.- М.: Финансы и статистика, 1997.
8. Информатика. Базовый курс / Симонович С.В. и др. - СПб: Питер, 2000.
9. Информатика для юристов и экономистов. / Симонович С.В. и др. - СПб: Питер, 2002.
10. Касьянов В.Н., Сабельфельд В.К. Сборник заданий по практикуму на ЭВМ.-М.: Наука, 1986.
11. Кетков Ю.Л., Кетков А.Ю. Практика программирования: Бейсик, Си, Паскаль. Самоучитель. - СПб.: БХВ - Петербург, 2002.
12. Программирование на языке Паскаль: задачник / под ред. Усковой О.Ф.-СПб.: Питер, 2002.
13. Романовский И.В. Дискретный анализ. - СПб.: Невский Диалект; БХВ - Петербург, 2003.
14. Ставровский А.Б. Турбо Паскаль 7.0. Учебник. - К:ВНУ, 2000.
15. Фигурнов В.Э. IBM PC для пользователя. Изд. 7-е, перераб. И доп. - М.: ИНФРА - М, 1997.
16. Экономическая информатика./Под ред. Косарева В.П.-М.: Финансы и статистика, 2002.
17. Юркин А.Г. Задачник по программированию. - СПб.: Питер, 2002.