Автор работы: Пользователь скрыл имя, 09 Октября 2013 в 14:26, курсовая работа
Целью данной работы является разработка программного обеспечения для более быстрого и удобного учета удержаний из заработной платы.
Для достижения поставленной цели в курсовой работе ставятся следующие задачи:
1) Рассмотреть теоретические основы учета удержаний из заработной платы;
2) Разработать необходимые базы данных на основании первичных документов;
Введение…………………………………………………………………...…..….......3
1. Описание предметной области..…………………………………….………..4
2. Требования, предъявляемые к системе.……………………………….……16
3. Проектирование ИС...………………………………………………....……..18
3.1. Модели процесса проектирования……………………...…….18
3.2. Формирование требований…………….………………...…….21
3.3. Техническое задание.………………..……………………........22
3.4. Проект ИС……………...……………………………….…........26
4. Расчет экономической эффективности.…...………………….…………….38
Заключение………………………………………………………………………….41
Список использованной литературы…………………………………………........
Выходные данные:
Требования к выходным данным:
Надежность системы:
Надежность системы в целом зависит от надежности используемой операционной системы:
a) система не должна содержать ошибок, искажающих внешние спецификации, обнаруживаемые тестированием;
б) система не должна переходить в неопределенное состояние при неправильных действиях пользователя за пультом;
в) система не
должна переходить в неопределенное
состояние при недопустимых форматах,
значениях или сочетании
г) ЭВМ не должна зависать или выдавать несоответствующие сообщения при обращении к неподключенным внешним устройствам;
Условия эксплуатации:
а) система должна быть рассчитана на пользователя, не знакомого с программированием ЭВМ и управлением операционной системой;
б) дополнительные знания, необходимые для работы с системой, должны быть ограничены ознакомлением с клавиатурой;
в) количество манипуляций за пультом должно быть минимальным, в связи, с чем интерфейс следует строить на основе выбора действий с использованием функциональных клавиш;
г) количество информации, которое необходимо воспринять и переработать пользователю для принятия решений по управлению системой, должно быть минимальным;
д) система должна реагировать на недопустимые действия пользователя за пультом или на неразрешенные сочетания данных, либо игнорируя их, либо выдавая звуковое предупреждение;
е) изображения доступных функциональных клавиш должно постоянно присутствовать на экране;
з) время реакции системы:
- при операциях типа редактирования время реакции не более 0.3 сек;
- время перехода на другую функцию не более 0.3 сек;
- время печати документов определяется параметрами принтера,
но принтер не должен работать в графическом режиме;
к) эстетическое оформление должно вызывать положительную реакцию пользователя, в связи, с чем следует соблюдать такие принципы:
- цветовая гамма должна быть сдержанной;
- цвета должны нести функциональную нагрузку и не менять ее на протяжении всего диалога;
- изображения меню следует окантовывать рамкой;
- сигнальные сообщения системы, связанные с невозможностью или опасностью выполнения действия, окрашивать в красный цвет;
- для заполнения общего экранного фона избегать цветов GREEN и MAGENTA;
- текст должен легко читаться на фоне меню, избегать печатать синим или коричневым по черному, зеленым по розовому и т.п.
Для нормальной работы клиентской части необходимо:
Модель системы должна работать под управлением ОС Windows 95/98/NT/2000/XP, поэтому требуется совместимость исполняемого модуля и библиотек динамического подключения стандартам, используемым этими ОС на платформе IBM PC.
Для хранения информации требуется использование баз данных формата DBF (Visual FoxPro).
Для доступа к базам данных Visual FoxPro требуется наличие установленного ядра работы с БД Visual FoxPro.
В качестве средства разработки требуется использовать интегрированную среду разработки Visual FoxPro, включающую редактор исходных текстов, компилятор, компоновщик и отладчик.
3.4. Проект ИС.
Рис. 3.4.1. Главное окно программы.
Рис. 3.4.2. База данных data1.dbc.
Таблица Сотрудники (sotr.dbf, информация о сотрудниках):
Рис. 3.4.3. Структура таблицы sotr.dbf.
tabn – табельный номер сотрудника;
fio – ФИО сотрудника;
prof_dolzh – должность (профессия) сотрудника;
raszenka – расценка;
virabotka – выработка;
vicheti – вычеты.
Таблица Начисления (n.dbf, информация о начислениях):
tabn – табельный номер сотрудника;
po_bol – начислено по больничному листу;
premia – премия;
prochie – прочие начисления;
mes – месяц; god – год.
Рис. 3.4.4. Структура таблицы n.dbf.
Таблица Удержания (ud.dbf, информация об удержаниях):
tabn – табельный номер сотрудника;
po_isp_list – удержано по исполнительным листам;
kol – количество бракованных деталей;
summa – удержано по авансовому отчету;
mes – месяц;
god – год.
Рис. 3.4.5. Структура таблицы ud.dbf.
Ввод информации о сотрудниках осуществляется с помощью программы:
Рис. 3.4.6. Программа «Ввод сотрудников».
Код программы:
CLEAR
close ALL
set talk off
set bell off
set console off
set date german
set safety off
USE sotr.dbf
declare p(6)
store ' ' TO p(1)
store ' ' TO p(2)
STORE ' ' TO p(3)
store ' ' TO p(4)
STORE ' ' TO p(5)
STORE ' ' TO p(6)
STORE ' ' TO k
DO while k!='*'
APPEND BLANK
@ 5,1 say 'табельный номер' get p(1)
@ 6,1 say 'Ф.И.О.' get p(2)
@ 7,1 say 'профессия/должность' get p(3)
@ 8,1 say 'расценка' get p(4)
@ 9,1 say 'выработка' get p(5)
@ 10,1 say 'вычеты' get p(6)
@ 11,1 say 'конец ввода *' get k
READ
gather from p
enddo
CLEAR
browse
Ввод информации о начислениях осуществляется с помощью программы:
Рис. 3.4.7. Программа «Ввод начислений».
Код программы:
CLEAR
close ALL
set talk off
set bell off
set console off
set date german
set safety off
USE n.dbf
declare p(4)
store ' ' TO p(1)
store ' ' TO p(2)
STORE ' ' TO p(3)
STORE ' ' TO p(4)
STORE ' ' TO k
DO while k!='*'
APPEND BLANK
@ 5,1 say 'табельный номер' get p(1)
@ 6,1 say 'премия' get p(2)
@ 7,1 say 'больничный лист' get p(3)
@ 8,1 say 'прочие' get p(4)
@ 9,1 say 'конец ввода *' get k
READ
gather from p
enddo
CLEAR
Browse
Ввод информации об удержаниях осуществляется с помощью программы:
Рис. 3.4.8. Программа «Ввод удержаний».
Код программы:
CLEAR
close ALL
set talk off
set bell off
set console off
set date german
set safety off
USE ud.dbf
declare p(4)
store ' ' TO p(1)
store ' ' TO p(2)
STORE ' ' TO p(3)
STORE ' ' TO p(4)
STORE ' ' TO k
DO while k!='*'
APPEND BLANK
@ 5,1 say 'табельный номер' get p(1)
@ 6,1 say 'по исполнительным листам' get p(2)
@ 7,1 say 'по авансовому отчету' get p(3)
@ 8,1 say 'за брак' get p(4)
@ 9,1 say 'конец ввода *' get k
READ
gather from p
enddo
CLEAR
Browse
Программа по формированию акта о браке:
CLEAR
CLOSE ALL
SET TALK OFF
SET BELL off
SET CONSOLE OFF
SET DATE GERMAN
SET SAFETY OFF
DELETE FILE akt.txt
SET ALTERNATE TO akt.txt
SET ALTERNATE on
SELECT a
USE sotr.dbf
SELECT b
USE vidi_ud.dbf
r='|'
? '
? 'Г=========Т==================
? '|табельный| фамилия имя отчество | профессия | Цех | вид оплаты | тарифная | количество | причина |'
? '| номер
|
|
|
|
| ставка | бракованных |
? '| | | | | |(расценка)| деталей | |'
? '|=========|==================
LOCATE FOR kol>0
? r+PADC(a.tabn,9)+r+PADC(a.fio,
SKIP
? '|============================
? '
? ' Начальник
цеха ___________ _________________________
? '
(подпись) (расшифровка
подписи)
CLOSE ALTERNATE akt.txt
MODIFY COMMAND akt.txt
CLOSE DATABASE
Clear
Программа по формированию ведомости:
CLEAR
CLOSE ALL
SET TALK OFF
SET BELL off
SET CONSOLE OFF
SET DATE GERMAN
SET SAFETY OFF
DELETE FILE rasch_vedomost.txt
SET ALTERNATE TO rasch_vedomost.txt
SET ALTERNATE on
STORE 0 TO n,vsego,ndfl,al,n1,n2,n3,br,
SELECT a
USE sotr.dbf
INDEX on tabn TO sotr.idx
SELECT c
USE vidi_n.dbf
INDEX on tabn to vidi_n.idx
SELECT d
USE vidi_ud.dbf
INDEX on tabn TO vidi_ud.idx
r='|'
? '
? 'Г=========Т==================
? '|табельный| фамилия имя отчество | Должность | вид оплаты | тарифная | отработано | Начисление | | Удержанo |к выплате|'
? '| номер
|
| (специальность,профессия) |
| ставка | часов |начислено|премия|б/лист|
? '| | | | |(расценка)|(выработка) | | | | | | | | тельным | | отчету | уд. | |'
? '| | | | | | | | | | | | | | листам | | | | |'
? '|=========|==================
GO TOP
DO while.not.eof()
tabn1=tabn
DO WHILE tabn1=tabn
SELECT a
IF SEEK(tabn1)
fio1=fio
ENDIF
SELECT c
IF SEEK(tabn1)
premia1=premia
ENDIF
SELECT d
n=a.tarif_st_rascenka*a.otr_
vsego=n+c.premia+c.b_list+c.
n1=vsego-a.vicheti
ndfl=n1*0.13
n2=vsego-ndfl
al=n2*d.isp
n3=n2-al
br=d.kol*a.tarif_st_rascenka
vsego_ud=ndfl+al+br+d.summa
viplata=vsego-vsego_ud
? r+PADC(a.tabn,9)+r+PADC(a.fio,
itog=itog+viplata
viplata=0
SKIP
ENDDO
ENDDO
? '|=========|==================
? '|Итого
? '|============================
? ''
? '
? '
CLOSE ALTERNATE rasch_vedomost.txt
MODIFY COMMAND rasch_vedomost.txt
CLOSE INDEXES
CLOSE DATABASE
clear
Запросы:
*осуществить выборку работников, которые сделали бракованные детали
select sotr.tabn,sotr.fio, ud.kol from sotr;
inner join ud on (sotr.tabn=ud.tabn);
where (ud.kol>0)
Рис. 3.4.9. Запрос.
*осуществить выборку работников, которые в марте получили премию
select sotr.tabn,sotr.fio,n.premia,n.
inner join n on (sotr.tabn=n.tabn);
where (n.premia>0) and (n.mes=3)
Рис. 3.4.10. Запрос2.
Программа меню:
clear
close all
set talk off
set bell off
set date GERMAN
set safety off
SET SYSMENU TO