Рефераты. Создание справочника "Парфюмерный магазин" при помощи программы Turbo Pascal

          GoToXY(22,3);Textcolor(10);writeln('Kод товара ');

          GoToXY(33,3);Textcolor(11);writeln(Baza.FKod);

          GoToXY(43,3);Textcolor(10);writeln('Раздел ');

          GoToXY(50,3);Textcolor(11);writeln(Baza.FRazdel);

          GoToXY(60,3);Textcolor(10);writeln('Подраздел ');

          GoToXY(70,3);Textcolor(11);writeln(Baza.FPodRazdel);

          GoToXY(22,5);Textcolor(10);writeln('Название: ');

          opis1:=copy(Baza.FName,1,58);

          opis2:=copy(Baza.FName,59,117);

          opis3:=copy(Baza.FName,118,126);

          GoToXY(22,6);Textcolor(11);writeln(Opis1);

          GoToXY(22,7);Textcolor(11);writeln(Opis2);

          GoToXY(22,8);Textcolor(11);writeln(Opis3);

          GoToXY(22,10);Textcolor(10);writeln('Серия:');

          GoToXY(30,10);Textcolor(11);writeln(Baza.FSeria);

          GoToXY(22,12);Textcolor(10);writeln('Производитель:');

          GoToXY(22,13);Textcolor(11);writeln(Baza.FProizvod);

          opis1:=copy(Baza.FOpisan,1,58);

          opis2:=copy(Baza.FOpisan,59,117);

          opis3:=copy(Baza.FOpisan,118,126);

          GoToXY(22,15);Textcolor(10);writeln('Описание:');

          GoToXY(22,16);Textcolor(11);writeln(Opis1);

          GoToXY(22,17);Textcolor(11);writeln(Opis2);

          GoToXY(22,18);Textcolor(11);writeln(Opis3);

          GoToXY(22,20);Textcolor(10);writeln('Стоимость');

          GoToXY(35,20);Textcolor(11);writeln(Baza.FMany);

end;


procedure writeSpisok;  {Процедура вывода позиций товара чей код

                       последним записан в список}

var f:text;

begin

if  ScetRP<>0 then

begin

  tek:=nach;{Считать первый элемент списка и найти в файле товар с

                     таким кодом}

  assign(f,'e:\prog\bd.dat');

  reset(f);

    while not Eof(f) do   {Считываем из файла бд}

    begin

     readln(f,Baza.FKod);

     readln(f,Baza.FRazdel);

     readln(f,Baza.FPodRazdel);

     readln(f,Baza.FName);

     readln(f,Baza.FSeria);

     readln(f,Baza.FProizvod);

     readln(f,Baza.FOpisan);

     readln(f,Baza.FMany);

     readln(f,Baza.FSim);

     if Baza.FKod=tek^.nomer Then  {Если код товара из списка = коду товара

                             из файла значит вывести на экран позиции товара}

     begin

        clrscr;

          shapka; podRazdel;

          GoToXY(1,1); {write ('MRazdel=',MRazdel,'  Podrazd=',lom);}

          GoToXY(60,1); Write('Всего позиций: ',ScetRP);

          Tablo;

     end;

    end;

close(f);

end

else

 begin

      GoToXY(22,11);Textcolor(10);writeln('Товаров нет, для выхода из данной категории нажмите ESC');

      f1:=7;f2:=11;f3:=7;f4:=7;f8:=7;pu:=7;pd:=7;f10:=7; {Цвета нижних кнопок}

       Text1:='Двигайтесь кнопками';

       Text2:='PageDown,PageUp    ';       {Подсказки}

       Text3:='Для выхода нажмите ';

       Text4:='ESC                ';

      shapka;podrazdel;


      {writeln('Enter');

      readln;}

 end;

end;


procedure DelSpisok; {Удаляет последний элемент списка}

begin

  tek:=nach;   {Переходим в начало}

  nach:=tek^.next; {Связываем}

  dispose(tek);    {Удаляем}

  tek:=nach;

  kolvo:=kolvo-1;  {Уменьшаем количество элементов в списке на 1}

end;


procedure RP; {Считывает из файла первый товар соответствующий разделу

              и подразделу}

{var lon:boolean;

{    f:text;}

begin

{lon:=false;{}

assign (f,'e:\prog\bd.dat');

reset(f);

while (not Eof(f)) do

  begin

     readln(f,Baza.FKod);

     readln(f,Baza.FRazdel);

     readln(f,Baza.FPodRazdel);

     readln(f,Baza.FName);

     readln(f,Baza.FSeria);

     readln(f,Baza.FProizvod);

     readln(f,Baza.FOpisan);

     readln(f,Baza.FMany);

     readln(f,Baza.FSim);

     {Если раздел из файла = выбранному разделу и подраздел

     из файла=выбранному подразделу}

     If (Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd) then

     begin

         addspisok; {Добавляем в список}

         break;

     end;

  end;

end;


procedure PoiskFPR; {Поиск элемента соответствующей разделу и

                    подразделу в списке и в файле}

var {f:text;}

    Good,Nal:boolean;

    zed:integer;

begin

assign (f,'e:\prog\bd.dat');

reset(f);

nal:=false;

  while (not Eof(f)) or (nal=false) do {Считывает данные из файла бд}

  begin

     readln(f,Baza.FKod);

     readln(f,Baza.FRazdel);

     readln(f,Baza.FPodRazdel);

     readln(f,Baza.FName);

     readln(f,Baza.FSeria);

     readln(f,Baza.FProizvod);

     readln(f,Baza.FOpisan);

     readln(f,Baza.FMany);

     readln(f,Baza.FSim);

     If ((Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd)) then

     begin         {Если очередной товар в бд соответствует разделу и

                   подразделу тогда проверяется есть ли очередной код товара

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

                   нет то добавляет в список}

          zed:=0;

          Good:=false;

          d:=nil;

          tek:=nach;

          while (tek<>NIL) or (Good=false) do

          begin

               if tek^.nomer = Baza.FKod then Good:=true;

               d:=tek;

               tek:=tek^.next;

               zed:=zed+1;

               if zed=kolvo then break;

          end;

          if Good<>true  then

          begin

               nal:=true;

               break;

          end;

     end;

  end;

close(f);

end;


procedure schet; {Процедура выводит количество позиций в выбранном разделе

                 и подразделе}

{var f:text;{}

begin

ScetRP:=0;

  assign(f,'e:\prog\bd.dat');

  reset(f);

    while not Eof(f) do

    begin

          readln(f,Baza.FKod);

          readln(f,Baza.FRazdel);

          readln(f,Baza.FPodRazdel);

          readln(f,Baza.FName);

          readln(f,Baza.FSeria);

          readln(f,Baza.FProizvod);

          readln(f,Baza.FOpisan);

          readln(f,Baza.FMany);

          readln(f,Baza.FSim);

          if (Baza.FRazdel=MRazdel) and (Baza.FPodRazdel=Podrazd) then

          ScetRP:=ScetRP+1;

    end;

close(f);

end;


Procedure Del; {Процедура удаление товара}

var FDel:text;{Временный файл для не удаленных товаров}

begin

GoToXY(27,21);Textcolor(21);

writeln('Вы действительно хотите удалить файл Y/N');

ch:=readkey;

if (ord(ch)=121) or  (ord(ch)=173) then

begin

assign(f,'e:\prog\bd.dat');

assign(fDel,'e:\prog\bdvr.dat');

reset(f);

rewrite(fdel);


while not Eof(f) do {Считывается очередной товар из бд}

         begin

         readln(f,Baza.FKod);

         readln(f,Baza.FRazdel);

         readln(f,Baza.FPodRazdel);

         readln(f,Baza.FName);

         readln(f,Baza.FSeria);

         readln(f,Baza.FProizvod);

         readln(f,Baza.FOpisan);

         readln(f,Baza.FMany);

         readln(f,Baza.FSim);

            If Baza.FKod<>tek^.nomer then  {Если текущая позиция в списке не

            равно текущему коду товара то все позиции товара переносятся

            во временный файл bddvr}

            begin

                 writeln(fdel,Baza.FKod);

                 writeln(fdel,Baza.FRazdel);

                 writeln(fdel,Baza.FPodrazdel);

                 writeln(fdel,Baza.FName);

                 writeln(fdel,Baza.FSeria);

                 writeln(fdel,Baza.FProizvod);

                 writeln(fdel,Baza.FOpisan);

                 writeln(fdel,Baza.FMany);

                 writeln(fdel,Baza.FSim);

            end

         end;

close(f);

close(fDel);

reset(fDel);

rewrite(f);

while not Eof(fDel) do {После переноса во временный файл, но уже без

          удаленного элемента происходит перезапись файла бд из временного}

         begin

                 readln(fDel,Baza.FKod);        writeln(f,Baza.FKod);

                 readln(fDel,Baza.FRazdel);     writeln(f,Baza.FRazdel);

                 readln(fDel,Baza.FPodRazdel);  writeln(f,Baza.FPodrazdel);

                 readln(fDel,Baza.FName);       writeln(f,Baza.FName);

                 readln(fDel,Baza.FSeria);      writeln(f,Baza.FSeria);

                 readln(fDel,Baza.FProizvod);   writeln(f,Baza.FProizvod);

                 readln(fDel,Baza.FOpisan);     writeln(f,Baza.FOpisan);

                 readln(fDel,Baza.FMany);       writeln(f,Baza.FMany);

                 readln(fDel,Baza.FSim);        writeln(f,Baza.FSim);

         end;

close(fdel);

close(f);



GoToXY(27,21);Textcolor(21); writeln('Запись удалена для продолжения работы нажмите ESC');

end;

if ord(ch)=110 then begin

GoToXY(27,21);Textcolor(21); writeln('Удаление отменено для продолжения работы нажмите ESC');

end;

end;


Procedure PrintF; {Процедура Печать в файл}

var fname1,fname2,fname3:string;  {Переменные указывающие путь к файлу}

    fotchet:text; {переменная файла отчета}

begin

clrscr;

GoToXY(10,10); Textcolor(11);writeln('Для печати всех позиций текущего подраздела нажмите F3');

GoToXY(10,12);writeln('Для печати текущей позиций нажмите F5');

GoToXY(10,14);writeln('Для выхода нажмите Backspace');

repeat

ch:=readkey;

            if (ord(ch)=61) or (ord(ch)=63) then {Вводится имя будущего

                               файла и создается шапка в файле отчета}

            begin

              fname1:='e:\prog\';

              fname3:='.txt';

              GoToXY(10,16);writeln('Введите имя файла в который необходимо сохранить отчет');

              GoToXY(10,17);writeln('и нажмите ввод. Файл отчета находится в корневой папке');

Страницы: 1, 2, 3, 4, 5, 6, 7, 8



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