Курсовая работа: Разработка программы обработки экономической информации
begin
right^.nr:=newE;
newE^.nl:=right;
newE^.nr:=nil;
right:=newE;
kolvo:=kolvo+1;
end
else
if pop=verh then//добавление в начало
begin
pop^.nl:=newE;
newE^.nr:=pop;
newE^.nl:=nil;
kolvo:=kolvo+1;
verh:=newE;
left:=newE;
end
else
begin//добавление в сердину
pop^.nl^.nr:=newE;
newE^.nl:=pop^.nl;
pop^.nl:=newE;
newE^.nr:=pop;
kolvo:=kolvo+1;
end;
end;
end;
right^.nr:=nil; // правый указатель
на конкц
close(ft);exit// закрытие файла
end;
{------------------------------------------------------------------------}
{------------------prosmotr_2-----------------------------------------}
{------------------------------------------------------------------------}
procedure prosmotr_2(x:ukaz);
var
n:integer;
c:char;
begin
clrscr;
n:=0; //число выводимых строк
newE:=x;
//указатель
writeln('|------|---------------|----------|---------|-----------|--------|-------|');
writeln('|#grupp| Name | amount of|
validly | unvalidly | summa |percent|');
writeln('| | | | absence | | | |');
writeln('|------|---------------|----------|---------|-----------|--------|-------|');
while (newE<>right^.nr) and (n<=6) do//цикл пока не конец списка и число строк =6
begin
inc(n);
write('|', newE^.inf.nomergrupp:5,' '); //печать данных об элементах по полям
write('|',newE^.inf.fio:15);
write('|',newE^.inf.propusk:5,' ');
write('|', newE^.inf.opravdan:5,' |');
write(newE^.inf.neopravdan:7,' |');
write(newE^.inf.summa:6,' |');
writeln(newE^.inf.procent:5:2,' |');
write('| | | | | | | |');
writeln;
newE:=newE^.nr; //перевод указателя
end;
if otpech=0 then
otpech:=otpech+n;
writeln('|------|---------------|----------|---------|-----------|--------|-------|');
writeln('Push the -enter- to the ExiT');
//для выхода ентер
end;
{------------------------------------------------------------------------------}
{---------------DOBAVLENIE
ELEMENTA--------------------------------------------}
{------------------------------------------------------------------------------}
procedure dob;
var
pop:ukaz;
p,i:integer;
begin
gotoxy(25,25);
textcolor(red);
writeln('Push the -*- to the ExiT'); //для
выхода
textcolor(white);
gotoxy(25,27);
writeln('Input the name of a new
student'); //ввод имени студента
gotoxy(25,28);
readln(z.fio); //чтение имени
{Uslovie vihoda}
if z.fio='*'then//условие выхода
exit;
for i:=1 to 15-length(z.fio) do//достраиваем
имя до 15 знаков
z.fio:=z.fio+' ';
gotoxy(25,29); //чтение всех
данных о студенте с клавиатуры
writeln('Input tne nomber of grupp');
gotoxy(25,30);
readln(z.nomergrupp);
gotoxy(25,31);
writeln('Input the omount of absence');
gotoxy(25,32);
readln(z.propusk);
gotoxy(25,33);
writeln('Input the omount of validly
absence');
gotoxy(25,34);
readln(p);
while p>z.propusk do//если
число пропусков меньше числа пропусков по уваж причине
begin
textcolor(red);
writeln('Thi is impossible:');
textcolor(black);
writeln('The omount of validly absence
more then just omount of absence');
write('Push the -enter- and input
theomount of validly absence again');
readln; textcolor(white);
gotoxy(25,33);
writeln('Input the omount of validly
absence');
gotoxy(25,34); //очищение экрана
writeln(' ');
writeln(' ');
writeln(' ');
write(' ');
gotoxy(25,34);
readln(p);
//по новой вводим и читаем
end;
z.opravdan:=p;
{-------------------dobavlenie-------------------------}
//происходит так же как при организации
pop:=verh;
//указатель на начало
while pop<>nil do//пока не конец списка
if z.fio>= pop^.inf.fio//сравнение по фамилиям
then
pop:=pop^.nr//перевод указателя
else
break; //прервать цикл
new(newE);
//для нового элемента
newE^.inf.fio:=z.fio;
newE^.inf.propusk:=z.propusk;
newE^.inf.opravdan:=z.opravdan;
newE^.inf.nomergrupp:=z.nomergrupp;
newE^.inf.neopravdan:=
newE^.inf.propusk- newE^.inf.opravdan;
{----------------v konec------------------------------}
if pop=nil then
begin
right^.nr:=newE;
newE^.nl:=right;
newE^.nr:=nil;
right:=newE;
kolvo:=kolvo+1;
end
else
{----------------v na4alo------------------------------
if pop=verh then
begin
pop^.nl:=newE;
newE^.nr:=pop;
newE^.nl:=nil;
kolvo:=kolvo+1;
verh:=newE;
left:=newE;
end
else
{----------------v
seredinu------------------------------}
begin
pop^.nl^.nr:=newE;
newE^.nl:=pop^.nl;
pop^.nl:=newE;
newE^.nr:=pop;
kolvo:=kolvo+1;
end;
end;
{---------------------------------------------------------------------------------}
{---------------------------------------UDALENIE----------------------------------}
{---------------------------------------------------------------------------------}
procedure udal;
var
i:integer;
begin
gotoxy(20,25);
textcolor(black);
writeln('Input the name of a student
which could be delete ');
textcolor(white);
gotoxy(25,27);
readln(z.fio); //ввод и
чтение имени
for i:=1 to (15-length(z.fio)) do//достаиваем
фамилию до 15 знаков
z.fio:=z.fio+' ';
newE:=verh;
while newE<>right^.nr do//пока
не конец списка
begin
{------------------------Uslovie esli
posledniy---------------------}
if newE^.inf.fio=z.fio then
begin
if newE=right then
begin
temp:=newE;
newE:=newE^.nl;
newE^.nr:=nil;
right:=newE;
dispose(temp);
kolvo:=kolvo-1;
clrscr;
textcolor(green);
gotoxy(24,25);
writeln('The student has been deleted');
//удалили
readln;
exit;
end
else
{-----------------Uslovie esli 1-iy el-t
udalyayut--------------}
if newE =left then
begin
temp:=newE;
newE:=newE^.nr;
newE^.nl:=nil;
verh:=newE;
dispose(temp);
kolvo:=kolvo-1;
clrscr;
textcolor(green);
gotoxy(24,25);
writeln('The student has been deleted');
//удалили
readln;
exit;
end
{-------------------Esli lyuboy no ne
1-iy i ne posledniy-------------}
else
begin
temp:=newE;
newE^.nl^.nr:=temp^.nr;
newE^.nr^.nl:=newE^.nl;
dispose(temp);
kolvo:=kolvo-1;
clrscr;
textcolor(green);
gotoxy(24,25);
writeln('The student has been deleted');
//удалили
readln;
exit;
end;
end;
newE:=newE^.nr; //перевод указателя
end;
gotoxy(15,25);
clrscr;
textcolor(red);
gotoxy(15,25);
writeln('This student has not been
finded !!!'); //не удалили
gotoxy(15,27);
writeln('Input his name without mistakes
again'); //введите имя снова
textcolor(white);
readln;
exit;
end;
{------------------------------------------------------------------------------}
Страницы: 1, 2, 3, 4, 5, 6 |