МЕНЮ


Фестивали и конкурсы
Семинары
Издания
О МОДНТ
Приглашения
Поздравляем

НАУЧНЫЕ РАБОТЫ


  • Инновационный менеджмент
  • Инвестиции
  • ИГП
  • Земельное право
  • Журналистика
  • Жилищное право
  • Радиоэлектроника
  • Психология
  • Программирование и комп-ры
  • Предпринимательство
  • Право
  • Политология
  • Полиграфия
  • Педагогика
  • Оккультизм и уфология
  • Начертательная геометрия
  • Бухучет управленчучет
  • Биология
  • Бизнес-план
  • Безопасность жизнедеятельности
  • Банковское дело
  • АХД экпред финансы предприятий
  • Аудит
  • Ветеринария
  • Валютные отношения
  • Бухгалтерский учет и аудит
  • Ботаника и сельское хозяйство
  • Биржевое дело
  • Банковское дело
  • Астрономия
  • Архитектура
  • Арбитражный процесс
  • Безопасность жизнедеятельности
  • Административное право
  • Авиация и космонавтика
  • Кулинария
  • Наука и техника
  • Криминология
  • Криминалистика
  • Косметология
  • Коммуникации и связь
  • Кибернетика
  • Исторические личности
  • Информатика
  • Инвестиции
  • по Зоология
  • Журналистика
  • Карта сайта
  • Автоматическое рабочее место для работника склада

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

    ВВедение.

    Данная программа автоматизированного рабочего места разработана для

    работников складских помещений, естественно если у них имеется компьютер

    классом не ниже 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 curs=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=20))

    or ((Schet0 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-99

    Н.В. Позднякова

    Проверил:

    старший преподаватель

    А.И. Волков

    Ижевского Государственного Технического Университета

    Чайковский Технологический Институт

    Кафедра общественно образовательных предметов

    г. Чайковский, 2000 г.

    ТЕМА: Автоматическое рабочее место для работы со складом.

    Курсовая работа

    Министерство общего и профессионального образования РФ


    Приглашения

    09.12.2013 - 16.12.2013

    Международный конкурс хореографического искусства в рамках Международного фестиваля искусств «РОЖДЕСТВЕНСКАЯ АНДОРРА»

    09.12.2013 - 16.12.2013

    Международный конкурс хорового искусства в АНДОРРЕ «РОЖДЕСТВЕНСКАЯ АНДОРРА»




    Copyright © 2012 г.
    При использовании материалов - ссылка на сайт обязательна.