Смекни!
smekni.com

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

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


Вступ

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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. Дана мова проста ы в той же час дає можливість створювати досить багатофункціональні програми. Актуальність теми полягає в тому що дана програмо може застосовуватися в сфері економіки в практиці.

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

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

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

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

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