Автоматизований облік надходження, зберігання і збуту продукції на товарній базі

Автоматизований облік надходження, зберігання і збуту продукції на товарній базі






Вступ



Обіг продукції – це дійова економіка. Для того щоб розвиватися економіка повинна рухатися, а як вона рухається завдяки обороту повару та грошей. Створити програму за допомогою якої можливо прослідкувати обіг на складі, за певний період

Я вибрав мову програмування Turbo Pascal, з метою закріплення своїх навиків з програмування, а також вважаю що ця мова є найбільш доцільною за даних обставин.






1. Основна частина



1.1 Неформальна постановка задачі



Розробити програму – «товарна база» для збереження та перегляду, а також автоматизованої обробки інформації що надає користувач.

Введення і збереження інформації в файлі:

Назва товарної бази

ПІБ власника товарної бази

Надходження товару;

Продаж товару

Зберігання товару.

Автоматизований аналіз по всім видам товару

Сума по всім видам товару з надходження

Сума по всім видам товару з продажу

Сума по всім видам товару з зберігання

Можливість редагування даної бази

Можливість перегляду всіх існуючих документів

Перегляд скороченого варіанту бази

Перегляд повного варіанту даних, які занесені до бази

Можливість видалення всієї бази.

Зручний інтерфейс для користувача

Швидкість та простота роботи в даній програмі



1.2 Формальна постановка задачі



Вихідні дані:

Позначимо сукупність всіх даних, які будуть заноситись до бази даних через множину А, таким чином А={А1,А2,А3}, Аі – множина всієї продукції що стосується складу, А1 – Надходження продукції на склад, А2 – продах продукції зі складу, А3 – продукція яка зберігається на складі

Таким чином козле Аі = {B1, B2, …, Bj}, де Bj – конкретний товар i=1..n

Результат:

Множина Рi, яка формуються з вхідних даних а саме множини Аi

Математична модель:



Р1 = ∑ B1j		Р2 = ∑ B2j 		Р3 = ∑ B3j



1.3 Структура зберігаючих даних:



Rec – запис для введення та зберігання даних

		FIO – ПІБ власника складу

		Name – Назва складу

		Import – масив для вводу кількості продукції яка ввозиться на склад

		export – масив для вводу кількості продукції яка продається зі складу

		sohr – масив для вводу кількості продукції яка зберігається на складі

sa – введення та збереження даних в файл

n4 – управляюча частина меню

tie – статична частина меню

a_z – процедура яка проводить аналіз всіх даних та сумує по кожному продукту за певний період.






2. Вихідний код програми



uses CRT, dos;

type rec=record

FIO:string[80];

name:string[40];

import:array [1.. 5,1..10] of integer;

end;

var a:char; b, i:byte;

s, s1, s2, s3, s4, s5, s6, s7, s8, s9:string;

flag:boolean;

{s1, s2, s3, s4:string;}

l:byte;

h:char;

{–}

procedure analiz;

var qw, as, zx:rec;

f1: file of rec;

f2: file of rec;

f3: file of rec;

i:integer;

mas: array [1.. 3,1..10] of integer;

begin

assign (f1,'c:\imp.zoo');

assign (f2,'c:\eks.zoo');

assign (f3,'c:\sra.zoo');

if (FSearch ('imp.zoo', 'c:\')='') or (FSearch ('eks.zoo', 'c:\')='') or (FSearch('sra.zoo', 'c:\')='') then

begin

window (1,1,40,25);

textbackground(1);

clrscr;

gotoxy (2,10);

textcolor(4);

write ('Ne pravelnaya operaciya, ne vse dannie');

end

else

begin

reset(f1);

reset(f2);

reset(f3);

seek (f1,0);

seek (f2,0);

seek (f3,0);

read (f1, qw);

read (f2, as);

read (f3, zx);

window (1,1,40,25);

textbackground(1);

clrscr;

{gotoxy (5,2);}

write ('Import Eksport Sohraneno');

for i:=1 to 10 do

begin

mas [1, i]:=qw.import [1, i]+qw.import [2, i]+qw.import [3, i];

mas [2, i]:=as.import [1, i]+as.import [2, i]+as.import [3, i];

mas [3, i]:=zx.import [1, i]+zx.import [2, i]+zx.import [3, i];

end;

window (1,3,8,12);

for i:=1 to 10 do

writeln (mas[1, i]);

window (16,3,25,12);

for i:=1 to 10 do

writeln (mas[2, i]);

window (32,3,40,12);

for i:=1 to 10 do

writeln (mas[3, i]);

end;

close(f1); close(f2); close(f3);

end;

{================}

{–}

procedure Rama (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 save (x1, y1, x2, y2, a:byte; s1:string);

var qwerty:rec;

f1: file of rec;

xn, yn, i:byte;

begin

Window (x1, y1, x2, y2);

textbackground(a);

clrscr;

xn:=3; yn:=2;

rama (1,1,39,15,0,14);

rama (1,1,15,15,0,14);

window (2,4,15,23);

writeln (' Sahar');

writeln (' Muka');

writeln (' Sol');

writeln (' Gre4ka');

writeln (' Myaso');

writeln (' Kurici');

writeln (' Droji');

writeln (' Maslo');

writeln (' Sir');

writeln (' Hleb');

rama (1,1,39,4,0,14);

gotoxy (17,2);

write (' 2006 2007 2008');

gotoxy (1,3); write(#195);

gotoxy (39,3); write(#180);

gotoxy (15,3); write(#197);

gotoxy (15,1); write(#194);

window (1,1,40,25);

gotoxy (15,14); write(#193);

gotoxy (2,2);

write(s1);

window (16,3,39,24);

for i:=1 to 10 do

begin

gotoxy (xn, yn);

readln (qwerty.import [1, i]);

gotoxy (xn+8, yn);

readln (qwerty.import [2, i]);

gotoxy (xn+16, yn);

readln (qwerty.import [3, i]);

yn:=yn+1;

end;

window (1,17,39,24);

gotoxy (5,2);

writeln ('Vvedite FIO – ');

gotoxy (21,2);

readln (qwerty.fio);

gotoxy (5,4);

writeln ('Vvedite nazvanie – ');

gotoxy (26,4);

readln (qwerty.name);

assign (f1,'c:\'+s1 [1]+s1 [2]+s1 [3]+'.zoo');

rewrite(f1);

write (f1, qwerty);

close(f1);

end;

{–}

procedure newreadkey (var a:char; var b:byte);

begin

b:=0;

a:=readkey;

if a=#0 then

b:=ord(readkey);

end;

{–}

procedure na4 (st:string; l, p:byte);

begin

rama (15,11,35,14,0,14);

gotoxy (2,2);

textbackground(p);

textcolor(l);

write(st);

end;

{–}

procedure title (s1, s2, s3, s4, s5, s6, s7, s8, s9:string);

begin

na4 (s5,4,0);

textbackground(1);

textcolor(14);

window (15,3,35,10);

clrscr;

writeln(s1); writeln;

writeln(s2); writeln;

writeln(s3); writeln;

write(s4); writeln;

window (15,15,35,23);

clrscr;

writeln(s6); writeln;

writeln(s7); writeln;

writeln(s8); writeln;

write(s9); writeln;

end;

{–}

procedure ramo4ka (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 menu_1 (s1, s2, s3, s4:string);

begin

textcolor(15);

gotoxy (8,10);

write (s1);

gotoxy (8,13);

write (s2);

gotoxy (8,16);

write (s3);

gotoxy (8,19);

write (s4);

end;

procedure menu_2 (i:byte; s:string);

var a, b:byte;

begin

case i of

1: begin

window (4,9,18,11);

textbackground(2);

textcolor(0);

clrscr;

gotoxy (4,2);

write(s)

end;

2: begin

window (4,12,18,14);

textbackground(2);

textcolor(0);

clrscr;

gotoxy (4,2);

write(s);

end;

3: begin

window (4,15,18,17);

textbackground(2);

textcolor(0);

clrscr;

gotoxy (4,2);

write(s);

end;

4: begin

window (4,18,18,20);

textbackground(2);

textcolor(0);

clrscr;

gotoxy (4,2);

write(s);

end;

end;

end;

{==================}

begin

textmode(co40);

window (1,1,40,25);

clrscr;

s1:='Postavka';

s2:='Vigruzka';

s3:='Na sohran';

s4:='Zakon4it';

menu_1 (s1, s2, s3, s4);

i:=1;

menu_2 (i, s1);

repeat

newreadkey (h, l);

case l of

80:i:=i+1;

72:i:=i-1;

end;

case i of

0:i:=4;

5:i:=1;

end;

case i of

1:begin

If h=#13 then

save (1,1,40,25,0,'import');

window (1,1,40,25);

textbackground(0);

clrscr;

menu_1 (s1, s2, s3, s4);

menu_2 (i, s1);

end;

2:begin

If h=#13 then

save (1,1,40,25,0,'eksport');

window (1,1,40,25);

textbackground(0);

clrscr;

menu_1 (s1, s2, s3, s4);

menu_2 (i, s2);

end;

3:begin

If h=#13 then

save (1,1,40,25,0,'Sohran');

window (1,1,40,25);

textbackground(0);

clrscr;

menu_1 (s1, s2, s3, s4);

menu_2 (i, s3);

end;

4:begin

If h=#13 then

halt;

window (1,1,40,25);

textbackground(0);

clrscr;

menu_1 (s1, s2, s3, s4);

menu_2 (i, s4);

end;

end;

until h=#27;

end.






Висновок



Даною курсовою роботою я показав свої практичні знання з програмування в середовищі Turbo Pascal. Дана мова проста ы в той же час дає можливість створювати досить багатофункціональні програми. Актуальність теми полягає в тому що дана програмо може застосовуватися в сфері економіки в практиці.

На початку були поставлені певні задачі, даною роботою я виконав всі вимоги. Мною були застосовані як вже готові процедури так і створені власні.






Список використаної літератури



		Струков В.М. Основи алгоритмизации и програмирования. Часть 2. Учебное пособие. – Харьков: Изд. Нац. ун-та внутр. дел, 2003. – 188 с.

		Сердюченко В.Я. Розробка алгоритмів та програмування на мові Turbo Pascal. – X., 1995.

		Немнюгин С.А. Turbo Pascal. – СПб.: Питер, 2002. – 496 с.: ил.