Рефераты. Автоматическое рабочее место для работника склада

Автоматическое рабочее место для работника склада

ВВедение.

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

V Наименование;

V Количество;

V Цену;

V Дату поступления.
2. Осуществлять поиск товара по наименованию и выдавать его параметры.
3. Помечать выбывший товар, указывая дату выдачи.
4. Выводить список имеющегося товара с возможностью сортировки по любому параметру.
5. Выводить список выбывшего товара с возможностью сортировки по любому параметру.
6. Выдавать общую статистическую характеристику:

V Общая стоимость имеющегося товара;

V Количество имеющегося товара;

V Количество выбывшего товара.
7. Сохранять и восстанавливать всю информацию АРМ с диска.

I. описание переменных и алгоритма работы программы.
Описание переменных.
V basskl – основная запись с необходимыми переменными это:

> naim – наименование товара;

> kol – количество товара;

> price – цена товара;

> kol_p – количество пришедшего товара;

> kol_r – количество товара который ушел;

> date_p – дата прихода товара;

> date_r – дата расхода товара.
V f – file базы слада;
V list – массив данных базы;
V schet – cчетчик;
V curs – показатель позиции;
V stran – счетчик позиции курсора;
V i – переменная использования;
V mcurs – переменная начальной позиции меню;
V k –переменная определения клавиши;
V res –переменная выбора меню;
V da – переменная использования;
V er – переменная ошибки преобразования;
V tx – переменная текста при поиске;
V fil – переменная имени базы;
V key – флажок;
V 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 происходит запись файла базы, закрытие файла.

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

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)'); 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 cursList[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+20




2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.