4: outtextxy(390,92+50*i,'неполное среднее ('+txty+'%)');
5: outtextxy(390,92+50*i,'начальное ('+txty+'%)');
end; {case i}
end; {for i:=1 to 5}
outtextxy(110,450,'Нажмите любую клавишу для возврата к выбору отчетов');
readkey;
closegraph; {выход из графического режима}
end; {if graphresult=grok}
end; {else}
reports; {вызов меню отчетов}
end; {report5}
{раздел инициализации модуля}
begin
end.
{Модуль, реализующий выполнение отчёта номер 6 – построение столбиковой диаграммы, отражающей распределение соискателей по возрастам в следующих возрастных группах: 18-25, 26-35, 36-45, 45-55, старше 55.}
unit agrep6;
{интерфейсная часть модуля}
interface
uses crt, graph, agsub, agthird;
procedure report6;
{раздел реализации модуля}
implementation
procedure report6;
var
gd, gm: integer;
agec, s, i, j, x, max, my: integer;
age: array[1..5] of integer;
txty: string[10];
begin
assign(fildata, filename);
reset(fildata);
s:=filesize(fildata); {определение количества записей в файле базы данных}
for j:=1 to 5 do age[j]:=0;
for i:=0 to s-1 do {расчет числа соискателей по каждой возрастной группе}
begin
seek(fildata, i);
read(fildata, buf);
agec:=curyear-buf.byear; {расчет возраста}
if (agec>=18) and (agec<=25) then age[1]:=age[1]+1;
if (agec>=26) and (agec<=35) then age[2]:=age[2]+1;
if (agec>=36) and (agec<=45) then age[3]:=age[3]+1;
if (agec>45) and (agec<=55) then age[4]:=age[4]+1;
if agec>55 then age[5]:=age[5]+1;
end; {for i:=0 to s-1}
close(fildata);
max:=age[1];
{определение возрастной группы с максимальным числом соискателей}
for j:=1 to 5 do if age[j]>max then max:=age[j];
windows(9, 3, 71, 22, 1);
textbackground(12);
for x:=9 to 71 do
begin
gotoxy(x, 4); write(' ');
end; {for x:=9 to 71}
gotoxy(33, 4); textcolor(15); write('ОТЧЕТ НОМЕР 6');
textbackground(1);
gotoxy(11, 6); write('Распределение соискателей по возрастным группам');
gotoxy(18, 10);
write('┌───────────────────┬───────────────────────┐');
gotoxy(18, 11); write('│ Возрастная группа │ Количество соискателей │');
gotoxy(18, 12);
write('├───────────────────┼───────────────────────┤');
for j:=1 to 5 do
begin
gotoxy(18, 12+j); write('│ ');
case j of
1: write('18-25 лет');
2: write('26-35 лет');
3: write('36-45 лет');
4: write('45-55 лет');
5: write('старше 55 лет');
end; {case j}
gotoxy(38, 12+j); write('│');
gotoxy(50, 12+j); write(age[j]); gotoxy(63, 12+j); write('│');
end; {for j:=1 to 5}
gotoxy(18, 13+j);
write('└───────────────────┴───────────────────────┘');
bottom(61); {вывод строки состояния}
readkey;
gd:=VGA;
gm:=VGAhi;
initgraph(gd,gm,''); {инициализация графического режима}
if graphresult=grok then
begin
setcolor(15);
outtextxy(90,2,'Диаграмма распределения соискателей по возрастным группам');
line(50,400,590,400); line(50,40,50,400);
outtextxy(580,410,'группы'); outtextxy(2,20,'кол-во');
for j:=1 to 5 do
begin
setcolor(15); setlinestyle(0,0,1); line(50+90*j,400,50+90*j,405);
settextstyle(0,0,1);
case j of
1: outtextxy(30+90*j,410,'18-25');
2: outtextxy(30+90*j,410,'26-35');
3: outtextxy(30+90*j,410,'36-45');
4: outtextxy(30+90*j,410,'45-55');
5: outtextxy(30+90*j,410,'старше 55');
end; {case j}
end; {for j:=1 to 5}
my:=350 div max; {расчет единичного шага в пикселях по вертикали}
for j:=max downto 0 do
begin
setcolor(8); setlinestyle(3,0,1);
if j>0 then line(55,400-my*j,570,400-my*j);
setcolor(15); setlinestyle(0,0,1); line(45,400-my*j,55,400-my*j);
settextstyle(0,0,1); settextjustify(2,2);
str(max-j,txty); outtextxy(40,57+my*j,txty);
end; {for j:=max downto 0}
for i:=1 to 5 do
begin
setcolor(i); setfillstyle(1,i); bar(30+90*i,400-my*age[i],70+90*i,400);
end; {for i:=1 to 5}
settextjustify(0,0); setcolor(15);
outtextxy(110,450,'Нажмите любую клавишу для возврата к выбору отчетов');
readkey;
closegraph; {выход из графического режима}
end; {if graphresult=grok}
reports; {вызов меню отчетов}
end; {report6}
{раздел инициализации модуля}
begin
end.
Уважаемый посетитель!
Чтобы распечатать файл, скачайте его (в формате Word).
Ссылка на скачивание - внизу страницы.