Книжный магазин

Автор работы: Пользователь скрыл имя, 03 Декабря 2013 в 00:36, курсовая работа

Краткое описание

Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.

Вложенные файлы: 1 файл

готовый.doc

— 949.50 Кб (Скачать файл)

Фрагменты программы

if l=0 then

    begin

      rewrite(f);

      writeln('Fail dannih '+BD+' sozdan zanovo');

      writeln('--------------------------------');

    end

  else

    begin

      reset(F);

    end;

– Оператор присваивания - переменная:=значение

– Оператор ввода: readln (X1,X2…XN) реализует чтение из стандартного файла input последовательности N значений, пропуск остальных значений до начала следующей строки файла input, присваивание этих значений переменным X1,X2…XN; readln реализует пропуск строки в файле input  до начала следующей строки.

Фрагмент программы

…readln(raspr)…

– Операторы вывода write (X1,X2…XN) реализует вывод значений переменных X1,X2…XN в стандартный файл output в одну строку; writeln (X1,X2…XN) реализует вывод значений переменных X1,X2…XN в одну строку и переход к началу следующей строки файла output; writeln реализует пропуск строки в файле output и переход к началу следующей строки

Фрагмент программы

…writeln('Dlj vihoda nazhmite Esc, dlj prodolzhenij Enter')…

 

…write(‘Vvedite cenu na knigu:’)…

  • Оператор выбора Case <выражение> of <const>: <оператор> позволяет осуществить выбор одной из нескольких альтернатив.

Фрагмент программы

case readkey of

      #27: begin exit; stop:=true; end;{ESC}

      #0: case readkey of

           #60:begin write_data(0); menu; end;{F2}

           #62:begin write_data(1); menu; end;{F4}

            #63:begin OUTPUT(0); menu; end;{F5}

          end;

    end;

  • Оператор цикла с предусловием while <выражение> do <оператор> используется, когда количество повторений операторов тела цикла заранее неизвестно и определяется в процессе выполнения цикла. Операторы тела цикла выполняются только в том случае, если результат выражения истинный, если он ложный, то тело цикла не выполняется. Если результат выражения ложный до начала первого выполнения тела цикла, то тело цикла не выполняется ни разу.

Фрагмент программы

while not eof(f) do

    begin

      read(f,pl);

      if d>23 then

        begin

          clrscr;

          if sel=0 then

            writeln('')

          else

        writeln('====== Svedenij o knigah =====');

        writeln('------------------------------');

writeln('|#p/p|familij|imj|otchestvo|izdanie|cena|skidka|itogo|');

writeln('--------------------------------');

          d:=5;d1:=5;

        end;

       if sel=1 then

         begin

             gw(pl,d1,i1);

             Inc(i1);Inc(d1);

         end

       else

         gw(pl,d,i);

       Inc(i);Inc(d);

       if (d>23) or (d1>23) then

         begin

           writeln;

           writeln('Dlj prodolzhenij nazhmite lybuy klavishu...');

           readkey;

         end;

    end;

  • Оператор цикла с постусловием repeat <оператор> until <выражение> используется, когда количество повторений операторов тела цикла заранее неизвестно и определяется в процессе выполнения цикла. Тело цикла repeat выполняется хотя бы один раз. После каждого выполнения тела цикла анализируется значение результата выражения: если оно ложно, выполнение цикла повторяется, если истинно – цикл завершается.

Фрагмент программы

repeat

    case readkey of

     #27: begin exit; stop:=true; end;{ESC}

      #0: case readkey of

         #60:begin write_data(0); menu; end;{F2}

         #62:begin write_data(1); menu; end;{F4}

         #63:begin OUTPUT(0); menu; end;{F5}

          end;

    end;

  until stop;

В программе использовались следующие стандартные процедуры и функции:

  • Процедура Inc(var X [; DX: LongInt]) увеличивает значение переменной X на величину DX, а если параметр DX не задан – на 1

…Inc(i);Inc(d)…

Процедуры и функции, используемые в программе и относящиеся к модулю CRT:

  • gotoxy (X,Y)- процедура установления курсора в требуемое место экрана с координатами X (горизонтальная),Y (вертикальная)

…gotoxy(1,d…

  • Функция readkey:Char возвращает значение типа char – код нажатой клавиши. С ее помощью можно считать и опознать нажатие на любую клавишу, кроме клавиш-переключателей (Alt, Shift, Ctrl, Caps Lock). Эта функция приостанавливает работу программы до тех пор, пока не будет нажата клавиша. Считанный символ не отображается на экране, то есть функция readkey вводит символ без высвечивания его на экране
  • Процедура ClrScr очищает экран (окно) и помещает курсор в верхний левый угол.

Текст программы представлен  в приложении Б.

 

7 Отладка и тестирование  программы

Отладка – процесс  локализации ошибок, когда факт их существования установлен. В результате отладки программа должна соответствовать определенной фиксированной совокупности правил и показателей качества, принимаемой за эталонную для данной программы.

Одним из критериев профессионального  мастерства программистов является их способность обнаруживать и исправлять их собственные ошибки. В общем времени разработки программы отладка занимает от 50% до 90%. Процесс отладки зависит от условий используемой ЭВМ, языка программирования, используемой ОС и спецификации самой задачи.

Все ошибки, которые могут возникнуть при разработке и отладке программ делятся на три вида:

    • синтаксические;
    • семантические;
    • логические.

Синтаксические ошибки – эти ошибки возникают в результате нарушения правил написания предложений на языке программирования. Появление этих ошибок в тексте программы обусловлено усталостью и снижением внимания программиста при вводе исходного текста программы, а также недостаточным знанием языка программирования. Такие ошибки выявляются компилятором языка, о чём компилятор выдаёт соответствующие сообщения на экран, с указанием места в исходном тексте программы, где он обнаружил ошибку.

Семантические ошибки – связаны с недопустимыми значениями параметров или недопустимыми действиями над ними.

Логические ошибки –  это ошибки алгоритма выполнения программы. Такие ошибки обнаружить труднее всего, при допущении таких ошибок программа может нормально компилироваться и выполняться, и даже давать вполне правдоподобные результаты, но в определенный момент может вести себя странно.

При отладке программы данного курсового проекта используется смешанный метод отладки, который заключается в комплексном использовании ручного и машинного методов: сначала написанная часть программы проверяется вручную, визуально просматривается запись конструкций языка программирования, соответствие программы и алгоритма, таким образом была выявлена часть синтаксических ошибок; затем эта часть отлаживалась с помощью ЭВМ отладочным компилятором.

Чтобы отладить программу  в среде Pascal необходимо ее откомпилировать. Чтобы откомпилировать программу, то есть создать исполняемый файл, необходимо нажать F9 или Alt+F9, что соответствует пунктам меню Compile/Make или Compile/Compile. Если были совершены ошибки при наборе, компиляция не завершается, а среда программирования показывает предположительный характер ошибки. При отладке программы данного курсового проекта были обнаружены следующие ошибки:

  • 3 Unknown identifier – неизвестный идентификатор. Этот идентификатор не объявлен
  • 26 Type mismatch – несовместимость типов
  • 37 END expected – нужен END
  • 85 expected – нужна «;»
  • 15 File not found – файл не найден.

В программе данного  курсового проекта использовались два модуля пользователя, для их компиляции необходимо нажать F9 или Alt+F9, что соответствует пунктам меню Compile/Make или Compile/Compile, после чего создаются соответствующие TPU-файлы. Далее необходимо выбрать пункт меню File/Change Dir… и указать каталог, где располагаются рабочие файлы программы.

После компиляции необходимо запустить программу на исполнение, для чего надо нажать комбинацию клавиш Ctrl+F9, что соответствует пункту меню Run/Run.

Для проверки логики была использована печать в Программа данного курсового проекта была отлажена в среде Turbo Pascal 7.1. Отладка производилась по шагам, в итоге ошибки, находящиеся в программе были выявлены и исправлены, поэтому программа является полностью отлаженной и готовой к работе.

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

 

Список используемой литературы

  1. Данилина Н.П., Кутепова Л.А. Алгоритмические языки и программирование. Язык ПАСКАЛЬ: Методические указания к выполнению лабораторных работ – Пенза: Изд-во Пензенского технологического института, 2003. 84с.
  2. Епанешников А.М., Епанешников В. Программирование в среде Turbo Pascal 7.0. – М.: «ДИАЛОГ-МИФИ»
  3. Климова Л.М. Pascal 7.0. Практическое программирование Решение типовых задач. М.: «КУДИЦ-ОБРАЗ», 2000
  4. Колесников А., Гинзбург В. Турбо Паскаль – С.-Петербург: «BHV», 1996
  5. Кнут Д. Искусство программирования. Т.1 Основы программирования. М. ИНФРА - М,1976
  6. Фаронов Turbo Pascal 7.0. Начальный курс– М.: «ДИАЛОГ-МИФИ», 1996
  7. Фаронов Turbo Pascal 7.0. Практика программирования– М.: «ДИАЛОГ-МИФИ», 1996

 

ПРИЛОЖЕНИЕ А

«Разработка программы»

Схема основной программы kursovoi.pas

 

Схема процедуры write_data

 
Схема процедуры Output

 

 

Схема процедуры del

 

ПРИЛОЖЕНИЕ Б

«Разработка программы»


Текст программы

Program kursovoi;

Uses crt;

const bd='knigi.bd';

Type

   pole=record

      fam:string[10];

      name:string[10];

      otch:string[10];

      izd:string[10];

      cena:real;

      skidka:shortint;

      raspr:real;

    end;

  fil=file of Pole;

var

  stop:boolean;

{========================================}

Procedure gw(p:pole;d,i:integer);

begin

  gotoxy(1,d);write('і');

  gotoxy(2,d);write(i);

  gotoxy(7,d);write('і');

  gotoxy(8,d);write(p.fam);

  gotoxy(19,d);write('і');

  gotoxy(20,d);write(p.name);

  gotoxy(33,d);write('і');

  gotoxy(34,d);write(p.otch);

  gotoxy(45,d);write('і');

  gotoxy(46,d);write(p.izd);

  gotoxy(57,d);write('і');

  gotoxy(58,d);write(p.cena:6:2);

  gotoxy(64,d);write('і');

  gotoxy(65,d);write(p.skidka);

  gotoxy(71,d);write('і');

  gotoxy(72,d);write(p.raspr:6:2);

  gotoxy(79,d);write('і');

end;

{========================================}

procedure output(sel:integer);

var ok:boolean;

    f:fil;

    pl:pole;

    k,i,d,d1,i1:integer;

begin

  clrscr;

  assign(f,bd);

  reset(f);

  i:=1;i1:=i;

  d:=24;d1:=d;

  while not eof(f) do

    begin

      read(f,pl);

      if d>23 then

        begin

          clrscr;

          if sel=0 then

            writeln('')

          else

            writeln('  ========= Svedenij o knigah ==========');

          writeln('-------------------------------------------------------------------------------');

          writeln('|# p/p| familij   |     imj     | otchestvo |  izdanie  | cena |skidka| itogo |');

          writeln('-------------------------------------------------------------------------------');

          d:=5;d1:=5;

        end;

       if sel=1 then

         begin

             gw(pl,d1,i1);

             Inc(i1);Inc(d1);

Информация о работе Книжный магазин