Автоматизований облік надходження, зберігання і збуту продукції на товарній базі
Вступ
Обіг продукції – це дійова економіка. Для того щоб розвиватися економіка повинна рухатися, а як вона рухається завдяки обороту повару та грошей. Створити програму за допомогою якої можливо прослідкувати обіг на складі, за певний період
Я вибрав мову програмування 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,
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 с.: ил.