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

     

     

     

     

     

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

     

    Інформатика
    ВСТУП.
    Дана програма автоматизованого робочого місця розроблена для працівників складських приміщень, природно якщо у них є комп'ютер класом не нижче 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. Вводити новий товар, вказуючи наступні параметри
    * Найменування;
    * Кількість;
    * Ціну;
    * Дату надходження.
    2. Здійснювати пошук товару за найменуванням і видавати його параметри.
    3. Позначати вибулий товар, вказуючи дату видачі.
    4. Виводити список наявного товару з можливістю сортування по будь-якому параметру.
    5. Виводити список вибулого товару з можливістю сортування по будь-якому параметру.
    6. Видавати загальну статистичну характеристику:
    * Загальна вартість наявного товару;
    * Кількість наявного товару;
    * Кількість вибулого товару.
    7. Зберігати і відновлювати всю інформацію АРМ з диска.
    8.
    II.
    ОПИС ЗМІННИХ І алгоритм роботи програми.
    Опис змінних.
    * Basskl - основний запис з необхідними змінними це:
    > Naim - найменування товару;
    > Kol - кількість товару;
    > Price - ціна товару;
    > Kol_p - кількість прийшов товару;
    > Kol_r - кількість товару який пішов;
    > Date_p - дата приходу товару;
    > Date_r - дата витрати товару.
    * F - file бази сладу;
    * List - масив даних бази;
    * Schet - Cчетчики;
    * 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 відбувається запис файлу бази, закриття файлу.
    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] = (
    'Enter',
    'Прихід',
    'Витрати',
    'Знайти',
    'Сортування',
    'Вихід');

    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 :='';< br /> 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 :='';< br /> 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 ( 'Кількість ->');< br /> writeln ( 'Дата приходу дд.мм.гг->');< br /> 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 ( 'Кількість ->');< br /> writeln ( 'Дата витрати дд.мм.гг->');< br /> 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 ( 'Назва товару :');< br /> 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 ( 'Назва товару :');< br /> writeln ( 'Ціна :');< br /> 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
    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 :='';< br /> 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,' руб .');< br /> 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
    begin inc (stran); Ekran end;
    if ((curs = 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 IOResult0 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 ( 'Знайти найменування :');< br /> 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 seter1 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 ):');< br /> 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
    Rewrite (f);
    Sortirovka (1);
    for i: = 0 to Schet-1 do Write (f, List [i]);
    close (f);
    end.








         
     
         
    Реферат Банк
     
    Рефераты
     
    Бесплатные рефераты
     

     

     

     

     

     

     

     
     
     
      Все права защищены. Reff.net.ua - українські реферати ! DMCA.com Protection Status