Воспользуйтесь поиском к примеру Реферат        Грубый поиск Точный поиск
Вхід в абонемент


Интернет реклама УБС






Содержание

Постановка задачи

Разработать базу данных (БД) по учебной теме "Зарплата", предусмотрев в ней несколько таблиц, связаны между собой отношением "один ко многим", формы для ввода данных, отчеты для вывода данных и запрос по зарплате женщин. Открытие форм, отчетов и запроса оформить через кнопочные формы. Расчетные поля обеспечить макросами или процедурами. Отчет построить группировкой по одному из полей и сортировкой по другим полем.

Структура базы данных

Среди справочных таблиц остановимся на двух: "Должности" и "Работники". Предположим еще таблицу учетного характера "Зарплата". Пусть эти таблицы содержат поля и связаны между собой так, как показано на следующей схеме, где символом обозначено ключевое поле:

ДОЛЖНОСТИ

Должность

Название

ТарифЗаГодину | СОТРУДНИКИ

ТабНомер

Фамилия

Имя

Отчество

Пол

ДатаНародження

Должность

ЗАРПЛАТА

ТабНомер

КилькистьГодин

СумаНарахована

Налог

ВнесокПФ

ВнесокФССбр

ВнесокФССл

СумаНаРукы

Рис. - Структура БД "Зарплата"

Пусть типы полей и их размер (максимальное количество символов для данных поля) будут такими:

Табл. - Основные параметры структуры таблиц

Таблица | Поле | Тип | Размер

ДОЛЖНОСТЬ | Должность | текстовый | 3

Название | текстовый | 40

ТарифЗаГодину | денежный

РАБОТНИКИ | ТабНомер | текстовый | 4

Фамилия | текстовый | 16

Имя | текстовый | 12

Отчество | текстовый | 16

Пол | текстовый, "Ч" или "Ж" | 1

ДатаНародження | дата

Должность | текстовый | 3

ЗАРПЛАТА | ТабНомер | текстовый | 4

КилькистьГодин | числовой, целый

СумаНарахована | денежный

Налог | денежный

ВнесокПФ | денежный

ВнесокФССбр | денежный

ВнесокФССл | денежный

СумаНаРукы | денежный

В некоторых строках не указан размер, потому что в MS Access он определяется автоматически. Например, размер поля типа дата равно 8.

Предположим такие правила исчисления расчетных полей, указывая перед ними название соответствующей таблицы:

ЗАРПЛАТА.СумаНарахована - общая сумма начисленной зарплаты. Вычисляется произведением количества отработанных часов и тарифа оплаты труда в час.

ЗАРПЛАТА.Податок - подоходный налог. Вычисляется по суммирующий шкале в зависимости от суммы начисленной зарплаты, далее обозначим ее через S (грн.), а именно, сначала отбрасываем дробную часть S (т.е. копейки), обозначаем результат через S, далее налог накапливается вычислением процентов с учетом интервала, к которому принадлежит S:

Табл. - Шкала начисления подоходного налога

Интервал, к которому принадлежит S |%

[0, 17] | 0

(17; 85] | 10

(85; 170] | 15

(170; 1020] | 20

(1020; 1700] | 30

(1700 ;) | 40

ЗАРПЛАТА.ВнесокПФ - вклад в песийний фонд. Вычисляется по шкале в зависимости от суммы начисленной зарплаты S (грн.):

Табл. - Шкала начисления взносов в пенсионный фонд

Интервал, к которому принадлежит S | Вклад, грн.

[0; 150] | S * 1%

(150; 1600] | S * 2%

(1600;) | 32

ЗАРПЛАТА.ВнесокФССбр - взнос в фонд социального страхования по безработице - вычисляется по шкале в зависимости от суммы начисленной зарплаты S (грн.):

Табл. - Шкала начисления взносов в фонд социального страхования по безработице

Интервал, к которому принадлежит S | Вклад, грн.

[0; 1600] | S * 0.5%

(1600;) | 8

ЗАРПЛАТА.ВнесокФССл - взнос в фонд социального страхования по нетрудоспособности - исчисляется по шкале в зависимости от суммы начисленной зарплаты S (грн.):

Табл. - Шкала начисления взносов в фонд социального страхования по нетрудоспособности

Интервал, к которому принадлежит S | Вклад, грн.

[0; 150] | S * 0.25%

(150; 1600] | S * 0.5%

(1600;) | 8

ЗАРПЛАТА.СумаНаРукы - заработная плата, которую работник получает через кассу. Исчисляется как разница между общей начисленной зарплатой S и суммой налогов и взносов.

Построение отчета осуществляется группировкой по полю Должность и сортировкой по полю Фамилия.

решением задачи

Построение алгоритмов

Общая сумма начисленной зарплаты исчисляется произведением, то есть

ЗАРПЛАТА.СумаНарахована = ЗАРПЛАТА.КилькистьГодин * ПОСАДИ.ТарифЗаГодину

Если обозначить функцию, отделяющей целую часть, через int, функцию, которая находит максимум среди двух чисел, через max, функцию, которая находит минимум среди двух чисел, через min, то алгоритм нахождения налога P будет таким:

S = int (S) |

(1)

P = min (85-17, max (S-17, 0)) * 10/100 +

min (170-85, max (S-85, 0)) * 15/100 +

min (1020-170, max (S-170, 0)) * 20/100 +

min (1700-1020, max (S-1020, 0)) * 30/100 +

max (S-1700, 0) * 40/100 |

(2)

Алгоритм нахождения взносов в пенсионный фонд и фонд социального страхования - соответственно ОПФ, Вфссбр, Вфссл - будет таким:

Если S <= 150

то ОПФ = S * 1/100

иначе ОПФ = min (S * 2/100, 32)

КинецьЯкщо

Вфссбр = min (S * 0.5/100, 8)

Если S <= 150

то Вфссл = S * 0.25/100

иначе Вфссл = min (S * 0.5/100, 8)

КинецьЯкщо

Если обозначить через iif функцию, которая находит значение в зависимости от значений условия (истина или ложь), то алгоритмы для нахождения взносов НПФ, Вфссл перепишуться более компактно:

ОПФ = iif (S <= 150, S * 1/100, min (S * 2/100, 32)) |

(3)

Вфссл = iif (S <= 150, S * 0.25/100, min (S * 0.5/100, 8)) | (4)

Что касается реализации алгоритма в среде MS Access, то необходимо отметить отсутствие там функций нахождения максимума и минимума нескольких чисел. Это означает, что данные функции необходимо самостоятельно построить. Их вид в языке VBA такой:

Private Function max (a, b)

max = iif (a> = b, a, b)

End Function |

(5)

Private Function min (a, b)

min = iif (a> = b, b, a)

End Function |

(6)

Замечание определенные выше функции max и min по своему названию (но не по своему содержанию!) в этой среде MS Access - это функции нахождения максимального (минимального) значения выражения, который


Страницы: 1 2 3 4 5