Книжный магазин
Курсовая работа, 03 Декабря 2013, автор: пользователь скрыл имя
Краткое описание
Запись – это структура данных, состоящая из фиксированного числа компонентов, называемых полями записи. В отличие от массива, компоненты (поля) записи могут быть различного типа. Чтобы можно было ссылаться на тот или иной компонент записи, поля именуются.
Вложенные файлы: 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|
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 – файл не найден.
В программе данного
курсового проекта
После компиляции необходимо запустить программу на исполнение, для чего надо нажать комбинацию клавиш Ctrl+F9, что соответствует пункту меню Run/Run.
Для проверки логики была использована печать в Программа данного курсового проекта была отлажена в среде Turbo Pascal 7.1. Отладка производилась по шагам, в итоге ошибки, находящиеся в программе были выявлены и исправлены, поэтому программа является полностью отлаженной и готовой к работе.
Результаты выполнения
программы удовлетворяют постав
Список используемой литературы
- Данилина Н.П., Кутепова Л.А. Алгоритмические языки и программирование. Язык ПАСКАЛЬ: Методические указания к выполнению лабораторных работ – Пенза: Изд-во Пензенского технологического института, 2003. 84с.
- Епанешников А.М., Епанешников В. Программирование в среде Turbo Pascal 7.0. – М.: «ДИАЛОГ-МИФИ»
- Климова Л.М. Pascal 7.0. Практическое программирование Решение типовых задач. М.: «КУДИЦ-ОБРАЗ», 2000
- Колесников А., Гинзбург В. Турбо Паскаль – С.-Петербург: «BHV», 1996
- Кнут Д. Искусство программирования. Т.1 Основы программирования. М. ИНФРА - М,1976
- Фаронов Turbo Pascal 7.0. Начальный курс– М.: «ДИАЛОГ-МИФИ», 1996
- Фаронов 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:
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);