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