Реферат

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

Работа добавлена на сайт bukvasha.net: 2013-11-21

Поможем написать учебную работу

Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

от 25%

Подписываем

договор

Выберите тип работы:

Скидка 25% при заказе до 27.12.2024


Автоматическое рабочее место для работы со складом
ВВедение.
Данная программа автоматизированного рабочего места разработана для работников складских помещений, естественно если у них имеется компьютер классом не ниже Pentium. Сейчас на рынке программного обеспечения появляются все больше и больше различных программ для работы не только со складом, но и различные другие программные средства автоматизированного рабочего места, но стоимость их лицензионных копий доходит порой до нескольких десятков тысяч, а моя программа может быть конечно маленько еще “сыровата”, но в процессе работы с нею её можно “довести ее до ума” и все это лишь за пятерку по программированию цена не велика за произведение программного искусства. Каковы её плюсы: ну это естественно простота и понятность (для русского человека) интерфейса программы, что не требует дополнительного обучения или прохождения специальных курсов, особенно для женщин, работающих на складах и не посвященных в азы компьютеров и программного обеспечения; не требовательность к системным ресурсам машины; легкость ввода и отслеживания; простота резервирования базы данных (всего 1 файл), что не маловажно для такой программы.
При написании и разработке курсового проекта я научился работать с Borland Pascal, Microsoft Windows 95OSR2, Microsoft Word 97 SR-2 которые использовались для работы над курсовым проектом, научился использовать справку и другие функции Borland Pascal при этом даже разобрался с английским языком и использованием электронных словарей переводчиков таких как Promt, Stylus, Magic Gooddy 98. Огромное спасибо Волкову А.И. – за отличное преподавание предметов, Billу Gaits – за то что он умеет зарабатывать деньги собственным умом, Мерзлякову Д.С. – за поддержку в трудную минуту, Барышеву А.А. – за техническую поддержку, Русских А.И. – за программную поддержку, Казакову В.С. – за разрешение работать на компьютере, Sting, Queen, и другим за хорошую музыку во время работы над курсовым.
 Задание.
Составить программу автоматического рабочего места для работы со складом.
Программа должна предоставлять пользователю возможность:
ü  Вводить новый товар, указывая следующие параметры
ü  Наименование;
ü  Количество;
ü  Цену;
ü  Дату поступления.
ü  Осуществлять поиск товара по наименованию и выдавать его параметры.
ü  Помечать выбывший товар, указывая дату выдачи.
ü  Выводить список имеющегося товара с возможностью сортировки по любому параметру.
ü  Выводить список выбывшего товара с возможностью сортировки по любому параметру.
ü  Выдавать общую статистическую характеристику:
ü  Общая стоимость имеющегося товара;
ü  Количество имеющегося товара;
ü  Количество выбывшего товара.
ü  Сохранять и восстанавливать всю информацию АРМ с диска.
Описание переменных.
ü  basskl – основная запись с необходимыми переменными это:
ü  naim – наименование товара;
ü  kol – количество товара;
ü  price – цена товара;
ü  kol_p – количество пришедшего товара;
ü  kol_r – количество товара который ушел;
ü  date_p – дата прихода товара;
ü  date_r – дата расхода товара.
ü  f – file базы слада;
ü  list – массив данных базы;
ü  schet – счетчик;
ü  curs – показатель позиции;
ü  stran – счетчик позиции курсора;
ü  i – переменная использования;
ü  mcurs – переменная начальной позиции меню;
ü  k –переменная определения клавиши;
ü  res –переменная выбора меню;
ü  da – переменная использования;
ü  er – переменная ошибки преобразования;
ü  tx – переменная текста при поиске;
ü  fil – переменная имени базы;
ü  key – флажок;
ü  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 происходит запись файла базы, закрытие файла.
Алгоритм программы.

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)<Len do Text:=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<Schet) and (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+20<Schet) then
 begin inc(stran); Ekran end;
 if ((curs<20) and (Schet>=20))
 or ((Schet<20) and (curs<Schet)) then inc(curs);
 end;
 #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.

1. Диплом Розвиток творчого мислення старшокласників на уроках математики з використанням інформаційних
2. Курсовая Задачи контроля таможенных органов. Правовое и организационное обеспечение контроля
3. Статья на тему Компании мирового класса
4. Реферат на тему Старообрядцы конца 18 и начала 19 века
5. Реферат на тему Cultural Literacy Essay Research Paper Cultural LiteracyAccording
6. Реферат на тему Secondary Education Essay Research Paper For many
7. Диплом на тему Речевой имидж как средство создания благоприятного образа политика
8. Реферат на тему Отражение реального мира в культуре и религии
9. Краткое содержание Человек в футляре Антон Павлович Чехов
10. Реферат на тему Местное самоуправление и политическая власть