Реферат: Обработка экономической информации средствами языка Pascal

Иначе выполняется алгоритм добавления новой записи

else

begin

очистка экрана

clrscr;

Ввод количества добовляемых записей -mm

writeln('Введите количество добовляемых записей:');

read(mm);

очистка экрана

clrscr;

Подготовка файла к чтению, определения конца файла и установка указателя в конец файла

reset(f); n:=filesize(f); seek(f,n);

установка номера добовляемой записи

pp:=n+1;

Цикл добавления записи. Завершится тогда, когда номер последней добавляемой записи qq будет равен mm

repeat

writeln('введи текущий номер продукции...');readln(qq); a.n:=pp;

writeln('введи переходящий остаток продукции на начало года...');

readln(a.e1);

writeln('введи приход продукции...'); readln(a.e2);

writeln('введи расход...');readln(a.e3);

writeln('введи цену за 1 шт...');readln(a.e4);

write(f,a);

pp:=pp+1;

until (qq=mm);

Очистка экрана и вывод сообщения

clrscr;

writeln('ВСЁ OK.');

Задержка программы

delay(1000);

Возврат в главное меню и переход к метки menu2

menu; goto menu2;

Завершение составного оператора begin…end

end;

Завершение составного оператора begin…end

end

else

Если l не равно 1, не 2 и не 3, а равно 4, то выполняется алгоритм удаления записей

if l=4 then

begin

Очистка экрана

clrscr;

Установка текстового экрана для вывода таблицы с помощью процедуры view

window(1,1,68,22);

view(17);

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

window(64,1,80,22);

Установка цвета символов и вывод сообщения

textcolor(15);

writeln('Продолжить? (y/n)');

Считывание клавиши с клавиатуры

c:=readkey;

Если нажата любая клавиша, кроме , то выполняется возврат к стандартному текстовому режиму, к главному меню и переход к метки menu2

if c<>#121 then begin textmode(Co80); menu; goto menu2; end

Иначе происходит ввод удаляемой записи - nn

else

begin

write('Введи номер:');

readln(nn);

Если вводимого номера записи не существует – выполняется процедура вывода сообщения об ошибке – error, и переход к метки menu2

if nn>filesize(f) then begin error; goto menu2; end;

Удаление записи: запись в новый файл:

Подготовка файла к чтению

reset(f);

Установка связь с новым файлом

assign (f2,'k2');

Подготовка нового файла к записи

rewrite(f2);

Обнуление переменных, необходимых для удаления записи

l:=0;q:=0;

Определение количества записей в первоначальном файле

n:=filesize(f);

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

repeat

l:=l+1;

if l<>nn then

begin

q:=q+1;

seek(f,l-1);

read(f,a);

b.n:=q; b.e1:=a.e1; b.e2:=a.e2; b.e3:=a.e3; b.e4:=a.e4;

write(f2,b);

end;

until l=n;

Подготовка только что созданного файла к чтению.

reset(f2);

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

rewrite(f);

Цикл перезаписи из только что созданного файла записей в первоначальный, но уже без требуемой записи. Перезапись будет производиться, пока не конец второго файла

repeat

read(f2,b);

a.n:=b.n; a.e1:=b.e1; a.e2:=b.e2; a.e3:=b.e3; a.e4:=b.e4;

write(f,a);

until eof(f2);

Вывод сообщения и задержка программы

writeln;

writeln('Всё Ok!');

delay(1000);

Вывод сообщения о возможности продолжения удаления новых записей или возврата к главному меню

writeln('Reload-');

write('Exit-');

Считывание клавиши с клавиатуры

c:=readkey;

Если нажата клавиши , то происходит возврат к главному меню и переход к метки menu2

if c=#27 then begin menu; goto menu2; end

иначе устанавливается стандартный текстовой режим, l присваивается 4 и осуществляется переход к метке menu2, т.е. происходит опять алгоритм удаления записи

else begin textmode(Co80); l:=4; goto menu2; end;

Завершение составных операторов begin…end

end;

end


Если l не равно 1, не 2 и не 3, и не 4, а равно 5, то выполняется алгоритм редактирования записей

else

if l=5 then

begin

Выполняется процедура вывода таблицы

view(27);

Установка цвета символов и вывод сообщения

textcolor(15);

writeln('Продолжить? (y/n)');

Считывание клавиши с клавиатуры

c:=readkey;

Если нажата любая клавиша, кроме , то выполняется возврат к стандартному текстовому режиму, к главному меню и переход к метки menu2

if c<>#121 then begin textmode(Co80); menu;goto menu2; end

Иначе происходит ввод номера записи для редактирования - nn

else

begin

write('Введите номер для редактирования:'); read(nn);

Если вводимого номера записи не существует – выполняется процедура вывода сообщения об ошибке – error, и переход к метки menu2

if nn>filesize(f) then begin error; goto menu2; end;

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

clrscr;

i:=27;

Подготовка файла к чтению и записи и установка указателя на нужной редактируемой записи

reset(f); seek(f,nn-1);


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

read(f,a);

st:=((a.e1+a.e2)-a.e3)*a.e4;

gotoXY(i-15,1);write(a.n);

gotoXY(i-5,1);write(a.e1);

gotoxy(i+11,1);write(a.e2);

gotoxy(i+20,1);write(a.e3);

gotoxy(i+29,1);write(a.e4:4:2);

gotoxy(i+37,1);write(st:4:2);

gotoxy(7,2);

Установка указателя на необходимой записи, т.к. после вывода на экран указатель сдвинулся

seek(f,nn-1);

Вывод сообщений о подтверждении редактирования каждого компонента редактируемой записи.

Если при этом будет нажата , то выполняется перезапись компонента записи, путем ввода новой (nn) и присваивание ее –старой (a.e1…a.e4).

Если при выводе сообщения будет нажата любая клавиши, кроме , то выполняется переход к редактированию следующего компонента данной записи.

writeln('Изменить переходящий остаток продукции на начало года?

(y/n)');

c:=readkey;

if c=#121 then begin write('Вводим новое:');read(nn); a.e1:=nn; end;

writeln;

writeln('Изменить приход продукции? (y/n)');c:=readkey;

if c=#121 then begin write('Вводим новое:'); read(nn);a.e2:=nn; end;

writeln;

writeln('Изменить расход? (y/n)');c:=readkey;

if c=#121 then begin write('Вводим новое:'); read(nn);a.e3:=nn; end;

writeln;

writeln('Изменить цену за 1 шт? (y/n)');c:=readkey;

if c=#121 then begin write('Вводим новое:'); read(o);a.e4:=o; end;

write(f,a);

Вывод сообщение и задержка программы

writeln; write('Все Ok'); delay(1000);

Очистка экрана, возврат к главному меню и переход к метке menu2

clrscr; menu;

goto menu2;

Завершение составных операторов begin…end

end;

end

else

Если l не равно 1, не 2 и не 3, и не 4, и не 5, а равно 6, то выполняется процедура вывода заставки - zast, после завершения которой происходит переход к главному меню и метке menu2

if l=6 then begin zast; menu; goto menu2; end;

Если l не равно 1, не 2 и не 3, и не 4, не 5, и даже не 6, а - 7, то выполняется процедура выхода из программы –exitt

if l=7 then exitt

Если l не равно 1, не 2 и не 3, и не 4, не 5, и даже не 6, и уж точно не 7, то выполняется процедура вывода сообщения об ошибке. После завершения этой процедуры происходит переход к метке menu2

else

begin error; goto menu2; end;

{========================END_Proga========================}

ЗАВЕРШЕНИЕ ПРОГРАММЫ

END.


6 Список литературы


1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. Учебное пособие.-М.: «Нолидж», 1998.-616 с.

2. Вычислительная техника и программирование. Под редакцией А. В. Петрова М, Высшая школа, 1990

3. Марченко А.И., Марченко Л.И. Программирование в среде Turbo-Pascal 7.0-М., Бином Универсал, К.:Юниор,1997

4. http://www.rusdoc.ru

5. http://www.borland.ru

6. http://www.infocity.kiev.ua


Приложение А

Реализация продукции за год.

#121 then begin textmode(Co80); menu;goto menu2; end

else

begin

clrscr;

writeln('Введите количество добовляемых записей:');

read(mm);

clrscr;

reset(f); n:=filesize(f); seek(f,n);

pp:=n+1;

repeat

writeln('введи текущий номер продукции...');readln(qq); a.n:=pp;

writeln('введи переходящий остаток продукции на начало года...'); readln(a.e1);

writeln('введи приход продукции...'); readln(a.e2);

writeln('введи расход...');readln(a.e3);

writeln('введи цену за 1 шт...');readln(a.e4);

write(f,a);

pp:=pp+1;

until (qq=mm);

clrscr;

writeln('ВСЁ OK.');

delay(1000);

menu; goto menu2;

end;

end

else

{-----------------------------------------удаление записи------------------------------------}

if l=4 then

begin

clrscr;

window(1,1,68,22);

view(17);

window(64,1,80,22);

textcolor(15);

writeln('Продолжить? (y/n)');

c:=readkey;

if c<>#121 then begin textmode(Co80); menu;goto menu2; end

else

begin

write('Введи номер:');

readln(nn);

if nn>filesize(f) then begin error; goto menu2; end;

{удаление записи:запись в новый файл}

reset(f);

assign (f2,'k2');

rewrite(f2);

l:=0;q:=0;n:=filesize(f);

repeat

l:=l+1;

if l<>nn then

begin

q:=q+1;

seek(f,l-1);

read(f,a);

b.n:=q; b.e1:=a.e1; b.e2:=a.e2; b.e3:=a.e3; b.e4:=a.e4;

write(f2,b);

end;

until l=n;

{удаление записи: перезапись}

reset(f2); rewrite(f);

repeat

read(f2,b);

a.n:=b.n; a.e1:=b.e1; a.e2:=b.e2; a.e3:=b.e3; a.e4:=b.e4;

write(f,a);

until eof(f2);

writeln;

writeln('Всё Ok!');

delay(1000);

writeln('Reload-');

write('Exit-');

c:=readkey;

if c=#27 then begin menu; goto menu2; end

else begin textmode(Co80); l:=4; goto menu2; end;

end;

end

else

{---------------------------------------редактирование--------------------------------------}

if l=5 then

begin

view(27);

textcolor(15);

writeln('Продолжить? (y/n)');

c:=readkey;

if c<>#121 then begin textmode(Co80); menu;goto menu2; end

else

begin

write('Введите номер для редактирования:'); read(nn);

if nn>filesize(f) then begin error; goto menu2; end;

clrscr;

i:=27;

reset(f); seek(f,nn-1);

read(f,a);

st:=((a.e1+a.e2)-a.e3)*a.e4;

gotoXY(i-15,1);write(a.n);

gotoXY(i-5,1);write(a.e1);

gotoxy(i+11,1);write(a.e2);

gotoxy(i+20,1);write(a.e3);

gotoxy(i+29,1);write(a.e4:4:2);

gotoxy(i+37,1);write(st:4:2);

gotoxy(7,2);

seek(f,nn-1);

writeln('Изменить переходящий остаток продукции на начало года? (y/n)');

c:=readkey;

if c=#121 then begin write('Вводим новое:');read(nn); a.e1:=nn; end;

writeln;

writeln('Изменить приход продукции? (y/n)');c:=readkey;

if c=#121 then begin write('Вводим новое:'); read(nn);a.e2:=nn; end;

writeln;

writeln('Изменить расход? (y/n)');c:=readkey;

if c=#121 then begin write('Вводим новое:'); read(nn);a.e3:=nn; end;

writeln;

writeln('Изменить цену за 1 шт? (y/n)');c:=readkey;

if c=#121 then begin write('Вводим новое:'); read(o);a.e4:=o; end;

write(f,a); writeln; write('Все Ok'); delay(1000);

clrscr; menu;

goto menu2;

end;

end

else

{--------------------------------------вывод заставки------------------------------------}

if l=6 then begin zast; menu; goto menu2; end;

{---------------------------------------выход----------------------------------------------}

if l=7 then exitt

else

begin error; goto menu2; end;

{========================END_Proga========================}

END.


Writed by Sergei Kovbasyuk

(c)2000."Sorge pro". Rights don't reserved.

e-mail:office@sorgepro.agava.ru

http://sorgepro.agava.ru


Редактирование и отладка программ с помощью Pascal
АКТЮБИНСКИЙ ПОЛИТЕХНИЧЕСКИЙ КОЛЛЕДЖ ОТЧЕТ ПО УЧЕБНОЙ ПРАКТИКЕ Выполнил: Журмухамедов Марат Проверила: Гайсагалеева Б.М. АКТОБЕ 2010 г. ДНЕВНИК ДАТА ...
end; begin WriteLn(' ВВЕДИ TN,TK,N')
if p>0 then begin t:=round(3*t/4);n:=t div h end;
Раздел: Рефераты по информатике, программированию
Тип: отчет по практике
Структурная надежность радиотехнических систем
Содержание Введение 1. Классификация структур радиотехнических систем 2. Методы исследования структурной надежности радиотехнических систем 2.1 Точный ...
if mh [w] >1 then mh [w]: =1;
if z=s then writeln ('связна') else writeln ('несвязна')
Раздел: Рефераты по коммуникации и связи
Тип: дипломная работа
Поиск в ширину на графах
Реферат В данной работе: 7 рисунков, 1 программа, 1 приложение, 35 листов. Ключевые словjaGl2ZQ==retrieved">Скачать
Разработка компьютерной игры "Змейка"
Введение Ни для кого не секрет, что видео игры прочно заняли свою позицию в современной индустрии развлечений. Существуют попытки выделить ...
If Kno=#80 then Begin if k2<2 then kk:=1 else kk:=0; end else
Begin W:=-1; H:=0; end;
Раздел: Рефераты по информатике, программированию
Тип: курсовая работа
Проектирование и разработка сетевых броузеров на основе теоретико ...
МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ УКРАИНЫ ТАВРИЧЕСКИЙ НАЦИОНАЛЬНЫЙ УНИВЕРСИТЕТ им. В.И.Вернандского МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ КАФЕДРА ИНФОРМАТИКИ ...
if second then begin
GetTime(h,m,s,hund);TextColor(Green);GotoXY(x,y);Write(LeadingZero(h),
Раздел: Рефераты по информатике, программированию
Тип: дипломная работа