Автоматизований облік надходження, зберігання і збуту продукції на товарній базі
Автоматизований облік надходження, зберігання і збуту продукції на товарній базі
Вступ
Обіг продукції – це дійова економіка. Для того щоб розвиватися економіка повинна рухатися, а як вона рухається завдяки обороту повару та грошей. Створити програму за допомогою якої можливо прослідкувати обіг на складі, за певний період
Я вибрав мову програмування Turbo Pascal, з метою закріплення своїх навиків з програмування, а також вважаю що ця мова є найбільш доцільною за даних обставин.
1. Основна частина
1.1 Неформальна постановка задачі
Розробити програму – «товарна база» для збереження та перегляду, а також автоматизованої обробки інформації що надає користувач.
Введення і збереження інформації в файлі:
Назва товарної бази
ПІБ власника товарної бази
Надходження товару;
Продаж товару
Зберігання товару.
Автоматизований аналіз по всім видам товару
Сума по всім видам товару з надходження
Сума по всім видам товару з продажу
Сума по всім видам товару з зберігання
Можливість редагування даної бази
Можливість перегляду всіх існуючих документів
Перегляд скороченого варіанту бази
Перегляд повного варіанту даних, які занесені до бази
Можливість видалення всієї бази.
Зручний інтерфейс для користувача
Швидкість та простота роботи в даній програмі
1.2 Формальна постановка задачі
Вихідні дані:
Позначимо сукупність всіх даних, які будуть заноситись до бази даних через множину А, таким чином А={А>1,>А>2,>А>3>}, А>і >– множина всієї продукції що стосується складу, А>1> – Надходження продукції на склад, А>2> – продах продукції зі складу, А>3> – продукція яка зберігається на складі
Таким чином козле А>і> = {B>1>, B>2>, …, B>j>}, де B>j> – конкретний товар i=1..n
Результат:
Множина Р>i>, яка формуються з вхідних даних а саме множини А>i>
Математична модель:
Р>1> = ∑ B>1j> Р>2> = ∑ B>2j> Р>3> = ∑ B>3j>
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 с.: ил.