АРМ для работы со складом

Данная программа автоматизированного рабочего
места разработана для работников складских помещений, естественно если у них
имеется компьютер классом не ниже Pentium. Сейчас на рынке программного
обеспечения появляются все больше и больше различных программ для работы не
только со складом, но и различные другие программные средства
автоматизированного рабочего места, но стоимость их лицензионных копий доходит
порой до нескольких десятков тысяч, а моя программа может быть конечно маленько
еще "сыровата", но в процессе работы с нею её можно "довести ее до ума" и все
это лишь за пятерку по программированию цена не велика за произведение
программного искусства. Каковы её плюсы: ну это естественно простота и
понятность (для русского человека) интерфейса программы, что не требует
дополнительного обучения или прохождения специальных курсов, особенно для
женщин, работающих на складах и не посвященных в азы компьютеров и программного
обеспечения; не требовательность к системным ресурсам машины; легкость ввода и
отслеживания; простота резервирования базы данных (всего 1 файл), что не
маловажно для такой программы. При написании и разработке курсового проекта я
научился работать с Borland Pascal, Microsoft Windows 95OSR2, Microsoft Word 97
SR-2 которые использовались для работы над курсовым проектом, научился
использовать справку и другие функции Borland Pascal при этом даже разобрался с
английским языком и использованием электронных словарей переводчиков таких как
Promt, Stylus, Magic Gooddy 98. Огромное спасибо Волкову А.И. – за отличное
преподавание предметов, Billу Gaits – за то что он умеет зарабатывать деньги
собственным умом, Мерзлякову Д.С. – за поддержку в трудную минуту, Барышеву А.А.
– за техническую поддержку, Русских А.И. – за программную поддержку, Казакову
В.С. – за разрешение работать на компьютере, Sting, Queen, и другим за хорошую
музыку во время работы над курсовым. Программа должна
предоставлять пользователю возможность: Осуществлять поиск товара по наименованию и выдавать
его параметры. Выводить список имеющегося товара с возможностью сортировки
по любому параметру. Выдавать общую статистическую
характеристику: Количество выбывшего
товара. basskl – основная
запись с необходимыми переменными это: date_p – дата прихода
товара; i – переменная использования; res –переменная выбора меню; tx –
переменная текста при поиске; Функция
probel; Выход: Текст требуемой
длины. Используется для вывода на экран в нужную
позицию текста и его последующего редактирования Зацикливается до тех пор пока не будет нажатия Enter или Esc. В это
время выводит на экран текст в нужную позицию, обновляется , ожидает нажатия
клавиш или delete. Функция
Cifri; Процедура Prishlo; Описание
работы: Работает со строкой массива базы. Выводит на экран меню "Приход",
преобразует текстовые переменные после ввода в строки меню. Процедура
обеспечивающая вывод на экран меню "Новый товар", ввод новой строки в
базу. Работает: Ограничивается строкой, для работы с переменными записи,
выводит на экран меню, пользователем редактируются строки меню, преобразуются,
увеличивается счетчик числа строк базы на 1. Используется для редактирования записи в текущей позиции курсора
листинга перечня товаров. Отображает на экране заголовок
таблицы базы и заполняет таблицу, рассчитывает и отображает на экране нижнюю
строку состояния базы общую сумму, общий приход, общий расход, общее количество
товаров. Описание: Формирует окно для работы, отображает заголовок таблицы,
цикл для вывода первых двадцати строк базы в окно, обнуление счетчиков сумм,
цикл на все позиции базы, расчет сумм в этом цикле вывод результата на экран в
виде строки состояния. Обнуляется. Работает со строкой в массиве базы. Производит
преобразование в стринговые переменные числовых значений базы (количества цены,
приход, расход), сумма формируется путем вычисления. Добавление нужными
пробелами функцией , вывод поясняющей строки.
Подкрашивание строки в позиции курсора, опрос клавиш курсора и служебных (для
ввода новой, корректировки, удаления). Работает следующим образом: Выполняет
процедуру прорисовывает строку пояснения, цикл пока не нажата
клавиша "влево", "вправо", "Enter", "Esc" – опрашивает клавиатуру с помощью
функции "Readkey" если нажата "Вниз" или "Вверх" уменьшаетя или увеличивается
соответственно текущий счетчик позиций меню Устанавливает параметры цвета, выводит на экран массив с переменными меню
т.е. названиями меню. Опрашивает клавиатуру на нажатие клавиши "Влево",
"Вправо", "Enter" выполняет соответствующие этим клавишам команды. Затем если
было нажато "Esc" функция принимает значение меньшее 1 и затем в головной
программе происходит выход. Организуется цикл на все позиции массива базы.
База переносит данные в стороннюю базу. Выбирает столбец сортировки сравнивает
со сторонней базой если больше то переносит в стороннюю базу запоминает позицию.
В конце цикла переставляет позиции основной базы. Очищается экран выводится меню для указания
месторасположения и названия файла базы по умолчанию это "С:\base.dat" затем
проверяется создан ли файл если нет то создается. Организуется цикл до конца
файла переписываются данные в массив базы. Обнуляются переменные. организуется
меню по данным функции затем происходи выбор с помощью оператора
Case по которому осуществляются переходы. В случае "1" прихода функции
выводится листинг данных базы и заголовков, организация движения
курсора по строкам базы при помощи процедуры Prishlo "3"
формируется окно "Расход", заполняется с помощью процедуры . сравнивается с наименованиями базы если находит устанавливает
курсор на это место. Если не находит выводит сообщение и устанавливает на
конечную позицию. "5" Окно сортировки. Выполняется процедура Алгоритм программы. Program
kursovoi; date_p:string[8]; Schet:Integer; mnu:array[1..6] of string[13]=( function Probel(Text:String;Len:Integer):String; function Edtext(x,y:Integer;
Text:String;Len:Integer;var key:boolean):String;
write(Probel('',len)); if c in ['A'..'z','
','.','0'..'9','А'..'я','-'] then Text:=Text+c; key:=true; c:=Readkey;
Text:=copy(Text,1,len); procedure
Prishlo(posiz:integer); writeln('
Приход'); val(Cifri(25,2,'',6,key),kl,er); if NOT key then exit; procedure Ushlo(posiz:integer); writeln(' Расход'); val(Cifri(25,2,'',6,key),kl,er); if
NOT key then exit; procedure Vvodnov; writeln(' Новый
товар'); writeln(' Дата прихода ДД.ММ.ГГ:'); {readln(date_p);} kol_p:=kol;
Date_p:=Cifri(25,5,'',8,key); if NOT key then exit; key:Boolean; writeln(' Наименование товара :'); tx:=Cifri(25,3,tx,10,key); if key then
val(tx,price,er); Textbackground(15); gotoxy(i*13+1,1); write(mnu[i+1]);
k:=readkey; case k of Textbackground(0); until (k=#27)
or (k=#13);
Pkol,Rkol:String[10];
str(price:9:2,sprice);
VIVSTR:=Probel(naim,20)+Probel(skol,6)+Probel(sprice,11)+Probel(summ,11)+ var i:integer; gotoxy(1,1); Probel('Сумма',7)+Probel('Приход ',7)+Probel('Дата
пост',10)+Probel('Расход',6)
gotoxy(1,2+i); Write(Vivstr(i+stran)); Summ_:=0;
Sum_p:=0; Sum_r:=0;
Sum_p:=Sum_p+(List[i].price*List[i].kol_p); gotoxy(1,23); write(Probel('',80)); gotoxy(15,24); write ('Общее количество наименований товара:
',schet,' шт'); for i:=0 to Schet-1 do 1: if
Bas.Naim>List[j].naim then begin Bas:=List[j]; k:=j end; 3: if
Bas.price>List[j].price 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; 8: if
Bas.date_r>List[j].date_r then begin Bas:=List[j]; k:=j end; procedure
Vivlist(var seek,curs:integer); gotoxy(1,24); write(Probel(' <- -> - меню
Ins - Добавить Ctrl+F8 - Удалить Ctrl+Enter - Изменить',79)); Textbackground(5); #72: begin {Вверх курсор} #80: begin {Вниз курсор} if ((curs<20) and
(Schet>=20)) if Schet>0 then Ekran;
Window(10,11,70,16); end; Window(10,11,70,16);
Window(1,1,80,25); until (k=#27) or (k=#13) or
(k=#75)or (k=#77); clrscr;
if files='' then files:='c:\base.dat';
While not eof(f) do curs:=1; stran:=0; mcurs:=1; seter:=15; Vivlist(stran,curs); Window(14,11,64,14); 3:begin {Запуск новой записи}
Textbackground(7);
Tx:=Edtext(25,2,'',20,key); if i>20 then begin curs:=1; stran:=i end Textbackground(7); Gotoxy(2,2); Write('Наименование ненайдено');
readln; stran:=1; curs:=1;
Textbackground(0); Gotoxy(2,2); Write('Введите поле для сортировки (1..8):'); end;
close(f);