Автор работы: Пользователь скрыл имя, 03 Декабря 2013 в 00:36, курсовая работа
Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Фрагменты программы
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 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 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|
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
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(i);Inc(d)…
Процедуры и функции, используемые в программе и относящиеся к модулю CRT:
…gotoxy(1,d…
Текст программы представлен в приложении Б.
7 Отладка и тестирование программы
Отладка – процесс локализации ошибок, когда факт их существования установлен. В результате отладки программа должна соответствовать определенной фиксированной совокупности правил и показателей качества, принимаемой за эталонную для данной программы.
Одним из критериев профессионального мастерства программистов является их способность обнаруживать и исправлять их собственные ошибки. В общем времени разработки программы отладка занимает от 50% до 90%. Процесс отладки зависит от условий используемой ЭВМ, языка программирования, используемой ОС и спецификации самой задачи.
Все ошибки, которые могут возникнуть при разработке и отладке программ делятся на три вида:
Синтаксические ошибки – эти ошибки возникают в результате нарушения правил написания предложений на языке программирования. Появление этих ошибок в тексте программы обусловлено усталостью и снижением внимания программиста при вводе исходного текста программы, а также недостаточным знанием языка программирования. Такие ошибки выявляются компилятором языка, о чём компилятор выдаёт соответствующие сообщения на экран, с указанием места в исходном тексте программы, где он обнаружил ошибку.
Семантические ошибки – связаны с недопустимыми значениями параметров или недопустимыми действиями над ними.
Логические ошибки – это ошибки алгоритма выполнения программы. Такие ошибки обнаружить труднее всего, при допущении таких ошибок программа может нормально компилироваться и выполняться, и даже давать вполне правдоподобные результаты, но в определенный момент может вести себя странно.
При отладке программы данного курсового проекта используется смешанный метод отладки, который заключается в комплексном использовании ручного и машинного методов: сначала написанная часть программы проверяется вручную, визуально просматривается запись конструкций языка программирования, соответствие программы и алгоритма, таким образом была выявлена часть синтаксических ошибок; затем эта часть отлаживалась с помощью ЭВМ отладочным компилятором.
Чтобы отладить программу в среде Pascal необходимо ее откомпилировать. Чтобы откомпилировать программу, то есть создать исполняемый файл, необходимо нажать F9 или Alt+F9, что соответствует пунктам меню Compile/Make или Compile/Compile. Если были совершены ошибки при наборе, компиляция не завершается, а среда программирования показывает предположительный характер ошибки. При отладке программы данного курсового проекта были обнаружены следующие ошибки:
В программе данного
курсового проекта
После компиляции необходимо запустить программу на исполнение, для чего надо нажать комбинацию клавиш Ctrl+F9, что соответствует пункту меню Run/Run.
Для проверки логики была использована печать в Программа данного курсового проекта была отлажена в среде Turbo Pascal 7.1. Отладка производилась по шагам, в итоге ошибки, находящиеся в программе были выявлены и исправлены, поэтому программа является полностью отлаженной и готовой к работе.
Результаты выполнения
программы удовлетворяют постав
Список используемой литературы
ПРИЛОЖЕНИЕ А
«Разработка программы»
Схема основной программы kursovoi.pas
Схема процедуры write_data
Схема процедуры 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:
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);