Структурная диаграмма и спецификация программного комплекса. Данные для тестирования программного комплекса, страница 15

if maxm>maxf then max:=maxm;

if maxm<maxf then max:=maxf;

if maxm=maxf then max:=maxm;

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('ОТЧЕТ НОМЕР 4');

textbackground(1); gotoxy(10, 6); write('Число мужчин и женщин,',

' вставших на учет в текущем (',curyear,') году');

gotoxy(24, 7); write('┌───────────┬─────────┬─────────┐');

gotoxy(24, 8); write('│   Месяц   │ Мужчины │ Женщины │');

gotoxy(24, 9); write('├───────────┼─────────┼─────────┤');

for j:=1 to 12 do

begin

gotoxy(24, 9+j); write('│ ');

case j of

1: write('Январь');

2: write('Февраль');

3: write('Март');

4: write('Апрель');

5: write('Май');

6: write('Июнь');

7: write('Июль');

8: write('Август');

9: write('Сентябрь');

10: write('Октябрь');

11: write('Ноябрь');

12: write('Декабрь');

end; {case j}

gotoxy(36, 9+j); write('│'); gotoxy(42, 9+j); write(male[j]);

gotoxy(46, 9+j); write('│'); gotoxy(52, 9+j); write(female[j]);

gotoxy(56, 9+j); write('│');

end; {for j:=1 to 12}

gotoxy(24, 10+j);

write('└───────────┴─────────┴─────────┘');

bottom(51); {вывод строки состояния}

readkey;

gd:=VGA;

gm:=VGAhi;

initgraph(gd,gm,''); {инициализаия графического режима}

if graphresult=grok then

begin

setcolor(15);

outtextxy(30,2,'Графики числа вставших на учет женщин и мужчин по месяцам текущего года');

setlinestyle(0,0,3);

setcolor(1); line(270,17,290,17); setcolor(4); line(270,27,290,27);

setlinestyle(0,0,1); setcolor(15);

outtextxy(300,14,'мужчины'); outtextxy(300,24,'женщины');

line(50,400,590,400); line(50,40,50,400);

outtextxy(580,410,'месяцы');

outtextxy(2,20,'кол-во');

for j:=0 to 11 do

begin

setcolor(8); setlinestyle(3,0,1);

if j>0 then line(50+45*j,395,50+45*j,40);

setcolor(15); setlinestyle(0,0,1); line(50+45*j,395,50+45*j,405);

settextstyle(0,1,1);

case j of

0: outtextxy(54+45*j,406,'январь');

1: outtextxy(54+45*j,406,'февраль');

2: outtextxy(54+45*j,406,'март');

3: outtextxy(54+45*j,406,'апрель');

4: outtextxy(54+45*j,406,'май');

5: outtextxy(54+45*j,406,'июнь');

6: outtextxy(54+45*j,406,'июль');

7: outtextxy(54+45*j,406,'август');

8: outtextxy(54+45*j,406,'сентябрь');

9: outtextxy(54+45*j,406,'октябрь');

10: outtextxy(54+45*j,406,'ноябрь');

11: outtextxy(54+45*j,406,'декабрь');

end; {case j}

end; {for j:=0 to 11}

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,49+my*j,txty);

end; {for j:=max downto 0}

setcolor(1);

for j:=1 to 11 do line(50+45*(j-1),400-my*male[j],50+45*j,400-my*male[j+1]);

setcolor(4);

for j:=1 to 11 do line(50+45*(j-1),400-my*female[j],50+45*j,400-my*female[j+1]);

setcolor(15); settextjustify(0,2); outtextxy(110,470,'Нажмите любую клавишу для возврата к выбору отчетов');

readkey;

closegraph; {выход из графического режима}

end; {if graphresult=grok}

reports; {вызов меню отчетов}

end; {report4}

{раздел инициализации модуля}

begin

end.


{Модуль, реализующий выполнение отчёта номер 5 – построение круговой диаграммы, отражающей долю вставших на учёт людей с высшим, средним специальным, средним, неполным средним, начальным образованием за указанный пользователем месяц.}

unit agrep5;

{интерфейсная часть модуля}

interface

uses crt, graph, agsub, agthird;

procedure report5; {процедура формирования отчета номер 5}

{раздел реализации модуля}

implementation

procedure report5;

var

gd, gm: integer;

mm, gggg, comp, s, i, j, x, stang, endang, perc, code: integer;

educ, ang: array[1..5] of integer;

educp: array[1..5] of real;

txty: string[10];

flag: boolean;

test: string;

begin

bottom(2); {вывод строки состояния}

repeat {ввод месяца с проверкой правильности}

flag:=true;

repeat

top(51); {вывод заголовка окна}