Міністерствовнутрішніх справ України
Харківськийнаціональний університет внутрішніх справ
Навчально-науковийінститут менеджменту, соціальних та інформаційних технологій
Кафедраінформаційних систем і технологій в діяльності ОВС
Курсоваробота
здисципліни «Основи програмування та алгоритмічні мови»
натему: «Автоматизоване нарахування заробітної плати»
Виконав:
Перевірив:
Харків,2009
Зміст
Вступ… 3
1. Основна частина… 4
1.1 Неформальна постановка задачі… 4
1.2 Формальна постановка задачі… 4
1.3 Структура зберігаючих даних… 5
2. Алгоритми… 6
2.1 Алгоритм основної програми… 6
3. Вихідний код програми… 7
Висновок… 14
Список використаної літератури… 15
Вступ
В кожній організації, кожен робітникполучає за свій труд певну заробітну плату. Чим більше працюєш тим більшеплатня, але весь процес нарахування досить важкий. Дуже велика кількістьфакторів яких потрібно враховувати і якщо це робити вручну, то помилки неуникнути. Таким чином задачею курсової роботи і полягає у створенні програмиавтоматизованого нарахування зарплатні.
Я вибрав мову програмування Turbo Pascal, зметою закріплення своїх навиків з програмування.
1. Основна частина
1.1 Неформальна постановка задачі
Розробити програму — «Автоматизованенарахування платні» для збереження та перегляду, а також аналізу введеноїінформації.
Введення і збереження інформації в файл:
ПІБ працівника
Дата народження
Вислуга працівника;
Можливість редагування даної бази
Організація аналізу та автоматичногонарахування
Можливість видалення всієї бази.
Зручний інтерфейс для користувача
Швидкість та простота роботи в данійпрограмі
Практичне застосування
1.2 Формальнапостановка задачі
Вихідні дані:
Маємо множину Р={P1, P2, …, Pi} робітників.Кожен робітник має свої відомості які впливають на формування платні.
V — вислуга
M — мінімум
S — стаж
R — премія
Результат:
Множина Dij, яка формуються з вхідних даниха саме множини Pi
Математична модель:
Dij =M+(S+V)*2+R+300
/>
1.3 Структура збережених даних
K – структурована перемінна для роботи зданими
Im – поле для введення ПІБ робітника
V – поле для введення віку
Vl – поле для ведення вислуги років
Loki –процедура для малювання рамочки
Menu – створення головного меню програми
Upravl – створює утпавляючий елемент дляменю
Fo – введення та збереження даних
Nas – на рахунок заробітної плати
Vit – видалення відомостей
2. Алгоритми
/>
2.1 Алгоритм основної програми
/>
/>3. Вихідний код програми
uses crt,dos;
type k=record
im:string[15];
v,vl,zp:integer;
end;
var f:file of k; rab:k;
procedure loki (x1,y1,x2,y2,a,b:byte);
var i:integer;
begin
textbackground(a);
textcolor(b);
window (x1,y1,x2,y2);
write('Й');
for i:=1 to (x2-x1)-1 do
begin
write('Н');
end;
write('»');
for i:=2 to (y2-y1)-1 do
begin
gotoxy(1,i);
write('є');
gotoxy(x2-x1+1,i);
write('є');
end;
write('И');
for i:=1 to (x2-x1)-1 do
begin
write('Н');
end;
write('ј');
end;
{------------------------}
procedure newreadkey (var a:char;varb:byte);
begin
b:=0;
a:=readkey;
if a=#0 then
b:=ord(readkey);
end;
{------------------}
proceduremenu(s1,s2,s3,s4:string;x,y:byte);
begin
window(1,1,40,25);
textbackground(7);
clrscr;
window(10,5,30,16);
textbackground(7);
textcolor(2);
clrscr;
gotoxy(x,y);
write(s1);
gotoxy(x,y+3);
write(s2);
gotoxy(x,y+6);
write(s3);
gotoxy(x,y+9);
write(s4);
end;
{------------------}
procedureupravl(x1,y1,x2,y2,a,b,x,y:byte;s:string);
begin
window(x1,y1,x2,y2);
textbackground(a);
textcolor(b);
clrscr;
gotoxy(x,y);
write(s);
end;
procedure fo;
var i,n:integer;
begin
window(1,1,40,25);
textbackground(3);
clrscr;
gotoxy(15,1); writeln('ZAPOLNENIE');
window(5,1,35,25);
textcolor(1);
write('Vvedi kol-vo rabotnikov-');readln(n);
assign(f,'rab');
rewrite(f);
for i:=1 to n do
begin
seek(f,filesize(f));
clrscr;
writeln('rabo4ii#',i);
write('Vvedi familiu rabo4ego-');readln(rab.im);
write('Vvedi vozrost rabo4ego-');readln(rab.v);
write('Vvei vislugu rabo4ego-');readln(rab.vl);
rab.zp:=rab.v+rab.vl+300;
write(f,rab);
end;
close(f);
end;
{.......................}
procedure nas;
var i:integer;
begin
window(1,1,40,25);
textbackground(3);
clrscr;
gotoxy(15,1); writeln('POISK');
window(5,2,35,25);
textcolor(1);
if fsearch('rab','rab')='' then
begin
textcolor(4);
write('FAIL NE NAIDEN!!!');
end
else
begin
assign(f,'rab');
reset(f);
for i:=0 to filesize(f)-1 do
begin
seek(f,i);
read(f,rab);
writeln('Rabo4iy "',rab.im,'": poluchaet-',rab.zp,'grn');
writeln;
end;
readln;
close(f);
end;
readln;
end;
{..........}
procedure vit;
begin
window(1,1,40,25);
textbackground(3);
clrscr;
gotoxy(15,1); writeln('POISK');
window(5,2,35,25);
textcolor(1);
if fsearch('rab','rab')='' then
begin
textcolor(4);
write('FAIL NE NAIDEN!!!');
end
else
begin
assign(f,'rab');erase(f);
writeln('FAIL UDALENO');
end;
readln;
end;
{::::::::::::::::::::}
var a:char;
b,j:byte;
begin
textmode(c40);
{ fo;
nas;
vit;
readln; }
repeat
window(1,1,40,25);
textbackground(7);
clrscr;
j:=1;
menu('Zapolnenie','Vivod','Steranie','vixod',7,2);
upravl(7,5,33,7,7,4,10,2,'Zapolnenie');
repeat
newreadkey(a,b);
case b of
72:j:=j-1;
80:j:=j+1;
end;
case j of
0:j:=1;
5:j:=4;
end;
case j of
1: begin
menu('Zapolnenie','Vivod','Steranie','vixod',7,2);
upravl(7,5,33,7,7,4,10,2,'Zapolnenie');
end;
2: begin
menu('Zapolnenie','Vivod','Steranie','vixod',7,2);
upravl(7,8,33,10,7,4,10,2,'Vivod');
end;
3: begin
menu('Zapolnenie','Vivod','Steranie','vixod',7,2);
upravl(7,11,33,13,7,4,10,2,'Steranie');
end;
4: begin
menu('Zapolnenie','Vivod','Steranie','vixod',7,2);
upravl(7,14,33,16,7,4,10,2,'vixod');
end;
end;
until a=#13;
case j of
1: fo;
2: nas;
3: vit;
end;
until j=4;
end.
Висновок
В даній курсовій роботі були виконані всівимоги. Була створена програма яка відповідає тим вимогам які ставилися напочатку створення курсової роботи. Були створені власні процедури, а такожзастосовані запозичені. Таким чином програма була написана на мовіпрограмування Паскаль, оскільки вона найбільш підходить для виконання тихзавдань які висувалися на початку.
Список використаноїлітератури
1. Струков В.М. Основи алгоритмизации ипрограмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-тавнутр.дел,2003. – 188 с.
2. Сердюченко В.Я. Розробка алгоритмів тапрограмування на мові Turbo Pascal. – X.,1995.
3. Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2002. –496 с.: ил.