трусики женские украина

На головну

 Автоматичне робоче місце для працівника складу - Інформатика

 Кафедра суспільно освітніх предметів

 Виконала: студентка гр. ВМ1-99 Н.В. Позднякова

 Перевірив:

 старший викладач А.І. Волков

 м Чайковський, 2000

ВВедение.

Дана програма автоматизованого робочого місця розроблена для працівників складських приміщень, природно якщо у них є комп'ютер класом не нижче Pentium. Зараз на ринку програмного забезпечення з'являються все більше і більше різних програм для роботи не тільки зі складом, але і різні інші програмні засоби автоматизованого робочого місця, але вартість їх ліцензійних копій доходить часом до кількох десятків тисяч, а моя програма може бути звичайно маленько ще « вогкувата », але в процесі роботи з нею її можна« довести її до пуття »і все це лише за п'ятірку з програмування ціна не велика за твір програмного мистецтва. Які її плюси: ну це природно простота і зрозумілість (для російської людини) інтерфейсу програми, що не вимагає додаткового навчання або проходження спеціальних курсів, особливо для жінок, які працюють на складах і не посвячених у ази комп'ютерів і програмного забезпечення; не вимоглива до системних ресурсів машини; легкість введення і відстеження; простота резервування бази даних (всього 1 файл), що не маловажно для такої програми. При написанні і розробці курсового проекту я навчився працювати з Borland Pascal, Microsoft Windows 95OSR2, Microsoft Word 97 SR-2 які використовувалися для роботи над курсовим проектом, навчився використовувати довідку та інші функції Borland Pascal при цьому навіть розібрався з англійською мовою і використанням електронних словників перекладачів таких як Promt, Stylus, Magic Gooddy 98. Величезне спасибі Волкову А.І. - За відмінне викладання предметів, Billу Gaits - за те що він вміє заробляти гроші власним розумом, Мерзлякову Д.С. - За підтримку у важку хвилину, Баришеву А.А. - За технічну підтримку, Російських А.І. - За програмну підтримку, Казакову В.С. - За дозвіл працювати на комп'ютері, Sting, Queen, і іншим за хорошу музику під час роботи над курсовим.

I. Завдання.

Скласти програму автоматичного робочого місця для роботи зі складом.

Програма повинна надавати користувачеві можливість:

1. Вводити новий товар, вказуючи наступні параметри

u Найменування;

u Кількість;

u Ціну;

u Дату надходження.

2. Здійснювати пошук товару по найменуванню і видавати його параметри.

3. Позначати вибулий товар, вказуючи дату видачі.

4. Виводити список наявного товару з можливістю сортування по будь-якому параметру.

5. Виводити список вибулого товару з можливістю сортування по будь-якому параметру.

6. Видавати загальну статистичну характеристику:

u Загальна вартість наявного товару;

u Кількість наявного товару;

u Кількість вибулого товару.

7. Зберігати і відновлювати всю інформацію АРМ з диска.

II. опис змінних і алгоритму роботи програми.

Опис змінних.

u basskl - основна запис з необхідними змінними це:

O naim - найменування товару;

O kol - кількість товару;

O price - ціна товару;

O kol_p - кількість прийшов товару;

O kol_r - кількість товару який пішов;

O date_p - дата приходу товару;

O date_r - дата витрати товару.

u f - file бази слад;

u list - масив даних бази;

u schet - лічильник;

u curs - показник позиції;

u stran - лічильник позиції курсору;

u i - мінлива використання;

u mcurs - мінлива початковій позиції меню;

u k -змінного визначення клавіші;

u res -змінного вибору меню;

u da - мінлива використання;

u er - мінлива помилки перетворення;

u tx - мінлива тексту при пошуку;

u fil - змінна імені бази;

u key - прапорець;

u seter - мінлива використання.

Крім змінних в програмі використовуються процедури і функції опис яких наведено нижче;

Функція probel;

Використовується для доповнення тексту необхідними кількостями пробілів.

Вхід: Текст, необхідна довжина.

Вихід: Текст необхідної довжини.

Функція Edtext;

Використовується для виводу на екран в потрібну позицію тексту і його подальшого редагування

Функція працює наступним чином:

Зациклюється до тих пір поки не буде натискання Enter або Esc. У цей час виводить на екран текст в потрібну позицію, оновлюється, очікує натискання клавіш або delete.

Вхід: Координати, текст, довжина тексту, прапорець.

Вихід: Виведення на екран тексту, відредагований текст.

Функція Cifri;

Подібна функції Edtext тільки введення тексту обмежений цифрами.

Працює також.

Процедура Prishlo;

Застосовується для виводу на екран меню «Прихід» і занесення даних в позицію бази.

Опис роботи: Працює з рядком масиву бази. Виводить на екран меню «Прихід», перетворює текстові змінні після введення в рядки меню.

Процедура Ushlo;

Аналогічна процедурі Prishlo .Заменена тільки формула обчислення кількості.

Процедура Vvodnov;

Процедура забезпечує виведення на екран меню «Новий товар», введення нового рядка в базу.

Працює: Обмежується рядком, для роботи зі змінними записи, виводить на екран меню, користувачем редагуються рядка меню, перетворюються, збільшується лічильник числа рядків бази на 1.

Процедура Edzapic;

Використовується для редагування запису в поточній позиції курсору лістингу переліку товарів.

Вхід: Позиція

Вихід: відредагований текст в даній позиції.

Процедура Ekran;

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

Опис: Формує вікно для роботи, відображає заголовок таблиці, цикл для виведення перших двадцяти рядків бази у вікно, обнулення лічильників сум, цикл на всі позиції бази, розрахунок сум в цьому циклі висновок результату на екран у вигляді рядка стану.

Функція Vivstr;

Формує рядок по позиції в базі.

Обнуляється. Працює з рядком в масиві бази. Виробляє перетворення в стрінговие змінні числових значень бази (кількості ціни, прихід, витрата), сума формується шляхом обчислення. Додавання потрібними пробілами функцією Probel.

Процедура Vivlist;

Забезпечує формування екрана за допомогою процедури Ekran, висновок пояснювальним рядка. Підфарбовування рядки в позиції курсору, опитування клавіш курсору та службових (для введення нової, коректування, видалення). Працює таким чином: Виконує процедуру Ekran, промальовує рядок пояснення, цикл поки не натиснута клавіша «вліво», «вправо», «Enter», «Esc» - опитує клавіатуру за допомогою функції «Readkey» якщо натиснута «Вниз» або «Вгору» уменьшаеться або збільшується відповідно поточний лічильник позицій меню

Функція Vstroca;

Функція організовує головне меню у верхньому рядку екрана.

Встановлює параметри кольору, виводить на екран масив з перемінними меню тобто назвами меню. Опитує клавіатуру на натискання клавіші «Ліворуч», «Вправо», «Enter» виконує відповідні цим клавішам команди. Потім якщо було натиснуто «Esc» функція приймає значення менше 1 і потім в головний програмі відбувається вихід.

Процедура Sortirovka;

Сортує дані по заданій колонці.

Організовується цикл на всі позиції масиву бази. База переносить дані в сторонню базу. Вибирає стовпець сортування порівнює зі сторонньої базою якщо більше то переносить в сторонню базу запам'ятовує позицію. В кінці циклу переставляє позиції основної бази.

Опис алгоритму роботи програми.

Очищається екран виводиться меню для зазначення місця розташування і назви файлу бази за умовчанням це «С: \ base.dat» потім перевіряється створений чи файл якщо ні то створюється. Організовується цикл до кінця файлу переписуються дані в масив бази. Обнуляються змінні. організовується меню за даними функції Vstroka потім станься вибір за допомогою оператора Case за яким здійснюються переходи. У випадку «1» приходу функції Vstroka виводиться лістинг даних бази і заголовків, організація руху курсору по рядках бази за допомогою процедури Vivlist. У разі результату «2» формується вікно з тінню «Прийшов», заповнюється вікно за допомогою процедури Prishlo по поточній позиції курсору екрану і лістингу. «3» формується вікно «Витрата», заповнюється за допомогою процедури Ushlo. «4» організується вікно «Знайти найменування» вводиться текст за допомогою функції Edtext. порівнюється з найменуваннями бази якщо знаходить встановлює курсор на це місце. Якщо не знаходить виводить повідомлення і встановлює на кінцеву позицію. «5» Вікно сортування. Виконується процедура Sortirovka. При інших значеннях функції Vstroca відбувається запис файлу бази, закриття файлу.

III.

Алгоритм програми.

IV. Текст програми.

Program kursovoi;

uses crt;

type basskl = record

naim: string [40];

kol: integer;

price: single;

kol_p: integer;

date_p: string [8];

kol_r: integer;

date_r: string [8];

end;

var f: file of basskl;

List: array [0..255] of basskl;

Schet: Integer;

curs, stran, i, mcurs: integer;

k: char;

Res, da, er, seter: Integer;

Tx, files: String;

key: boolean;

const

mnu: array [1..6] of string [13] = (

'Введення',

'Прихід',

'Витрата',

'Знайти',

'Сортування',

'Вихід');

function Probel (Text: String; Len: Integer): String;

begin

While length (Text)Probel: = copy (Text, 1, len)

end;

function Edtext (x, y: Integer; Text: String; Len: Integer; var key: boolean): String;

var c: char;

begin

key: = true;

Edtext: = '';

repeat

gotoxy (x, y);

write (Text);

write (Probel ('', len));

gotoxy (x, y);

write (Text);

c: = Readkey;

if c = # 8 then delete (Text, length (Text), 1);

if c in ['A' .. 'z', '', '.', '0' .. '9', 'А' .. 'я', '-'] then Text: = Text + c;

Text: = copy (Text, 1, len);

until (c = # 27) or (c = # 13);

if c = # 13 then Edtext: = Text else key: = false;

end;

function Cifri (x, y: Integer; Text: String; Len: Integer; var key: boolean): String;

var c: char;

begin

key: = true;

Cifri: = '';

repeat

gotoxy (x, y);

write (Text);

write (Probel ('', len));

gotoxy (x, y);

write (Text);

c: = Readkey;

if c = # 8 then delete (Text, length (Text), 1);

if c in ['.', '0' .. '9', '-'] then Text: = Text + c;

Text: = copy (Text, 1, len);

until (c = # 27) or (c = # 13);

if c = # 13 then Cifri: = Text else key: = false;

end;

procedure Prishlo (posiz: integer);

var Tx: String;

er: integer;

key: Boolean;

kl: integer;

begin

clrscr;

With List [Posiz] do begin

writeln ('Прихід');

writeln ('Кількість ->');

writeln ('Дата приходу ДД.ММ.ГГ->');

val (Cifri (25,2, '', 6, key), kl, er); if NOT key then exit;

kol_p: = kol_p + kl; kol: = kol + kl;

Date_p: = Cifri (25,3, '', 8, key); if NOT key then exit;

end;

end;

procedure Ushlo (posiz: integer);

var er: integer;

key: Boolean;

kl: integer;

begin

clrscr;

With List [Posiz] do begin

writeln ('Витрата');

writeln ('Кількість ->');

writeln ('Дата витрати ДД.ММ.ГГ->');

val (Cifri (25,2, '', 6, key), kl, er); if NOT key then exit;

kol_r: = kol_r + kl; kol: = kol-kl;

Date_r: = Cifri (25,3, '', 8, key); if NOT key then exit;

end;

end;

procedure Vvodnov;

var Tx: String;

er: integer;

key: Boolean;

begin

clrscr;

With List [Schet] do begin

writeln ('Новий товар');

writeln ('Найменування товару:');

writeln ('Кількість:');

writeln ('Ціна:');

writeln ('Дата приходу ДД.ММ.ГГ:'); {Readln (date_p);}

Naim: = Edtext (25,2, '', 20, key); if NOT key then exit;

val (Cifri (25,3, '', 6, key), kol, er); if NOT key then exit;

kol_p: = kol;

val (Cifri (25,4, '', 10, key), price, er); if NOT key then exit;

Date_p: = Cifri (25,5, '', 8, key); if NOT key then exit;

inc (Schet);

end;

end;

procedure Edzapic (posiz: integer);

var Tx: String;

er: integer;

key: Boolean;

begin

clrscr;

With List [posiz] do begin

writeln ('Редагування товару');

writeln ('Найменування товару:');

writeln ('Ціна:');

Tx: = Edtext (25,2, Naim, 20, key); if key then Naim: = tx;

str (price: 0: 2, tx);

tx: = Cifri (25,3, tx, 10, key); if key then val (tx, price, er);

end;

end;

function vstroca (var curs: integer): integer;

var i: integer;

begin

Textbackground (15);

TextColor (0);

gotoxy (1,1); write (Probel ('', 80));

for i: = 0 to 5 do

begin

gotoxy (i * 13 + 1,1); write (mnu [i + 1]);

end;

Textbackground (0);

TextColor (14);

gotoxy ((curs-1) * 13 + 1,1); write (mnu [curs]);

repeat

k: = readkey;

Textbackground (15);

TextColor (0);

gotoxy ((curs-1) * 13 + 1,1); write (mnu [curs]);

if k = # 0 then k: = readkey;

case k of

# 75: if curs> 1 then dec (curs) else curs: = 6;

# 77: if curs <6 then inc (curs) else curs: = 1;

end;

Textbackground (0);

TextColor (14);

gotoxy ((curs-1) * 13 + 1,1); write (mnu [curs]);

if k = # 13 then vstroca: = curs;

until (k = # 27) or (k = # 13);

if k = # 27 then vstroca: = - 1;

end;

function VIVSTR (nstr: integer): String;

var Skol, sprice, summ,

Pkol, Rkol: String [10];

begin

VIVSTR: = '';

if (nstr= 0) then

With List [nstr] do

begin

str (kol, skol);

str (price: 9: 2, sprice);

str (price * kol: 9: 2, summ);

str (kol_p, pkol);

str (kol_r, rkol);

VIVSTR: = Probel (naim, 20) + Probel (skol, 6) + Probel (sprice, 11) + Probel (summ, 11) +

Probel (Pkol, 6) + Probel (Date_p, 10) + Probel (Rkol, 6) + Probel (Date_r, 9);

end;

end;

procedure Ekran;

var i: integer;

Summ_, Sum_p, Sum_r: Double;

begin

Window (1,2,80,25);

Textbackground (5);

TextColor (10);

Clrscr;

gotoxy (1,1);

Textbackground (3);

write (Probel ('Найменування', 20) + Probel ('Кількість', 9) + Probel ('Ціна', 10) +

Probel ('Сума', 7) + Probel ('Прихід', 7) + Probel ('Дата пост', 10) + Probel ('Витрата', 6)

+ Probel ('Дата вид', 9));

Textbackground (5);

TextColor (14);

for i: = 0 to 20 do

begin

gotoxy (1,2 + i); Write (Vivstr (i + stran));

end;

Textbackground (15);

TextColor (0);

gotoxy (1,1 + curs); write (VIVSTR (curs + stran-1));

Summ _: = 0; Sum_p: = 0; Sum_r: = 0;

for i: = 0 to Schet-1 do

begin

Summ _: = Summ _ + (List [i] .price * List [i] .kol);

Sum_p: = Sum_p + (List [i] .price * List [i] .kol_p);

Sum_r: = Sum_r + (List [i] .price * List [i] .kol_r);

end;

Textbackground (4);

TextColor (15);

gotoxy (1,23); write (Probel ('', 80));

gotoxy (1,23); write ('Разом:',

Summ_: 12: 2, 'руб. Прихід: ', Sum_p: 0: 2,' руб. Витрата: ', Sum_r: 0: 2,' руб. ');

gotoxy (15,24); write ('Загальна кількість найменувань товару:', schet, 'шт');

end;

procedure Sortirovka (num: Integer);

var i, j, k: Integer;

Bas: Basskl;

begin

for i: = 0 to Schet-1 do

begin

Bas: = List [i];

for j: = i + 1 to Schet-1 do

begin

case Num of

1: if Bas.Naim> List [j] .naim then begin Bas: = List [j]; k: = j end;

2: if Bas.kol> List [j] .kol then begin Bas: = List [j]; k: = j end;

3: if Bas.price> List [j] .price then begin Bas: = List [j]; k: = j end;

5: if Bas.kol_p> List [j] .kol_p then begin Bas: = List [j]; k: = j end;

6: if Bas.date_p> List [j] .date_p then begin Bas: = List [j]; k: = j end;

7: if Bas.kol_r> List [j] .kol_r then begin Bas: = List [j]; k: = j end;

8: if Bas.date_r> List [j] .date_r then begin Bas: = List [j]; k: = j end;

end;

end;

List [k]: = List [i]; List [i]: = Bas;

end;

end;

procedure Vivlist (var seek, curs: integer);

var c, k: char;

i: integer;

begin

Ekran;

Textbackground (3);

gotoxy (1,24); write (Probel ('<- -> - меню | Ins - Додати | Ctrl + F8 - Видалити | Ctrl + Enter - Змінити', 79));

Textbackground (15);

TextColor (1);

gotoxy (1,1 + curs); write (VIVSTR (curs + stran-1));

repeat

c: = readkey;

Textbackground (5);

TextColor (14);

gotoxy (1,1 + curs); write (VIVSTR (curs + stran-1));

if c = # 0 then k: = readkey;

case k of

# 72: begin {Вгору курсор}

if (curs = 1) and (stran> 0) then begin dec (stran); Ekran end;

if (curs> 1) then dec (curs);

end;

# 80: begin {Вниз курсор}

if (curs = 20) and (stran + 20begin inc (stran); Ekran end;

if ((curs <20) and (Schet> = 20))

or ((Schet <20) and (cursend;

# 101: begin {Видалити} {Ctrl + F8}

if Schet> 0 then

for i: = curs + stran-1 to Schet-1 do

begin

List [i]: = List [i + 1];

end;

dec (Schet);

dec (curs);

Ekran;

end;

# 82: begin {Ins - нова запис}

Window (12,12,72,17);

Textbackground (0);

clrscr;

Window (10,11,70,16);

Textbackground (7);

clrscr;

{Новоя запис}

Vvodnov;

Sortirovka (1);

Window (1,1,80,25);

Ekran;

end;

end;

if c = # 10 then {Ctrl + Enter}

begin

Window (12,12,72,17);

Textbackground (0);

clrscr;

Window (10,11,70,16);

Textbackground (7);

clrscr;

{Новоя запис}

Edzapic (Curs + stran-1);

Sortirovka (1);

Window (1,1,80,25);

Ekran;

end;

Textbackground (15);

TextColor (1);

gotoxy (1,1 + curs); write (VIVSTR (curs + stran-1));

until (k = # 27) or (k = # 13) or (k = # 75) or (k = # 77);

Window (1,1,80,25);

end;

begin

clrscr;

Window (16,12,66,15);

Textbackground (9);

textcolor (3);

clrscr;

write ('Введіть назву і повний шлях бази');

gotoxy (3,3);

readln (files);

if files = '' then files: = 'c: \ base.dat';

assign (f, files);

{$ I-}

reset (f);

{$ I +}

if IOResult 0 then rewrite (f);

Schet: = 0;

While not eof (f) do

begin

inc (Schet);

read (f, List [Schet-1]);

end;

Textbackground (0);

clrscr;

curs: = 1; stran: = 0; mcurs: = 1; seter: = 15;

repeat

Ekran;

Window (1,1,80,25);

res: = vstroca (mcurs);

case res of

1: begin

Vivlist (stran, curs);

Window (1,1,80,25);

end;

2: begin

Window (16,12,66,15);

Textbackground (0);

clrscr;

Window (14,11,64,14);

Textbackground (7);

clrscr;

{Запуск нового запису}

Prishlo (Curs + stran-1);

Window (1,1,80,25);

end;

3: begin

Window (16,12,66,15);

Textbackground (0);

clrscr;

Window (14,11,64,14);

Textbackground (7);

clrscr;

{Запуск нового запису}

Ushlo (Curs + stran-1);

Window (1,1,80,25);

end;

4: begin {Пошук}

Window (16,12,66,14);

Textbackground (7);

clrscr;

Window (14,11,64,13);

Textbackground (8);

clrscr;

Gotoxy (2,2); Write ('Знайти найменування:');

Tx: = Edtext (25,2, '', 20, key);

for i: = 0 to Schet-1 do

if List [i] .naim = tx then begin seter: = 1; break; end;

if i> 20 then begin curs: = 1; stran: = i end

else begin curs: = i + 1; stran: = 0; end;

if seter 1 then

begin

Window (16,12,66,14);

Textbackground (7);

clrscr;

Window (14,11,64,13);

Textbackground (8);

clrscr;

Gotoxy (2,2); Write ('Найменування ненайдено'); readln; stran: = 1; curs: = 1;

end;

Vivlist (stran, curs);

Window (1,1,80,25);

end;

5: begin {Сортування}

Window (16,12,66,14);

Textbackground (0);

clrscr;

Window (14,11,64,13);

Textbackground (7);

clrscr;

Gotoxy (2,2); Write ('Введіть поле для сортування (1..8):');

val (Cifri (38,2, '', 1, key), da, er);

if da in [1..8] then Sortirovka (da);

Window (1,1,80,25);

end;

end;

until (res <1) or (res = 6);

Rewrite (f);

Sortirovka (1);

for i: = 0 to Schet-1 do Write (f, List [i]);

close (f);

end.

Авіація і космонавтика
Автоматизація та управління
Архітектура
Астрологія
Астрономія
Банківська справа
Безпека життєдіяльності
Біографії
Біологія
Біологія і хімія
Біржова справа
Ботаніка та сільське господарство
Валютні відносини
Ветеринарія
Військова кафедра
Географія
Геодезія
Геологія
Діловодство
Гроші та кредит
Природознавство
Журналістика
Зарубіжна література
Зоологія
Видавнича справа та поліграфія
Інвестиції
Інформатика
Історія
Історія техніки
Комунікації і зв'язок
Косметологія
Короткий зміст творів
Криміналістика
Кримінологія
Криптологія
Кулінарія
Культура і мистецтво
Культурологія
Логіка
Логістика
Маркетинг
Математика
Медицина, здоров'я
Медичні науки
Менеджмент
Металургія
Музика
Наука і техніка
Нарисна геометрія
Фільми онлайн
Педагогіка
Підприємництво
Промисловість, виробництво
Психологія
Психологія, педагогіка
Радіоелектроніка
Реклама
Релігія і міфологія
Риторика
Різне
Сексологія
Соціологія
Статистика
Страхування
Будівельні науки
Будівництво
Схемотехніка
Теорія організації
Теплотехніка
Технологія
Товарознавство
Транспорт
Туризм
Управління
Керуючі науки
Фізика
Фізкультура і спорт
Філософія
Фінансові науки
Фінанси
Фотографія
Хімія
Цифрові пристрої
Екологія
Економіка
Економіко-математичне моделювання
Економічна географія
Економічна теорія
Етика

8ref.com

© 8ref.com - українські реферати


енциклопедія  бефстроганов  рагу  оселедець  солянка