Проектування локальної комп’ютерної мережі типу Ethernet, страница 6

end;

(*Рисует контуры здания*)

Procedure Draw_build(z:mas_1;color_bk,color_zd:word);

var

 i:byte;

begin

 Draw_help;

 setbkcolor(color_bk);

 setcolor(color_zd);

 for i:=1 to 4 do

  rectangle(z[i,1], z[i,2], z[i,3], z[i,4]);

end;

(*Результат*)

Procedure Raschet(z:mas_1; c:mas_2);

var

 i:byte;

 f3:text;

 sum,sum_t:real;

begin

 setbkcolor(7);

 setcolor(5);

 tov[1].name:='Optovolokno';

 tov[1].kol:=(z[2,2]-z[1,4])+(z[3,1]-z[2,3])+round(sqrt(sqr(z[4,1]-z[2,3])+

             sqr(z[4,2]-z[2,2])));

 tov[2].name:='10 Base 2';

 tov[2].kol:=(c[8,3]-c[7,3])+(c[7,4]-c[6,4])+(c[6,4]-c[5,4])+(c[5,3]-c[6,3])+

             (c[17,3]-c[7,3])+(c[7,4]-c[17,4])+(c[8,3]-c[7,3])+2*etazh;

 tov[3].name:='100 Base 5';

 tov[3].kol:=(c[3,4]-c[2,4])+(c[3,4]-c[1,4])+(c[1,3]-c[2,3])+c[13,3]-c[14,3]+

          2*(c[12,4]-c[10,4])+(c[9,3]-c[10,3])+(c[9,3]-z[3,1])+(z[3,4]-17-

          c[12,4])+2*(c[11,4]-c[12,4])+(c[11,3]-c[10,3])+c[3,3]-c[2,3]+c[4,3]-

          c[2,3]+2*(c[15,4]-c[14,4])+c[15,3]-c[14,3]+c[16,3]-c[14,3]+c[12,3]-

          c[10,3]+c[11,4]-c[12,4]+8*etazh;

 tov[9].name:='NetsCart FastEthernet';

 tov[10].name:='NetsCart Ethernet';

 for i:=1 to 16 do

  if c[i,1]=c[17,1] then inc(tov[10].kol)

                    else inc(tov[9].kol);

 inc(tov[10].kol);

 tov[12].name:='Repeater'; tov[12].kol:=5;

 tov[11].name:='Transiver'; tov[11].kol:=6;

 tov[4].name:='RJ_45'; tov[4].kol:=12{1}+14{3}+12{4};

 tov[5].name:='BNC Terminator'; tov[5].kol:=1;

 tov[6].name:='BNC T-Connector'; tov[6].kol:=5;

 tov[7].name:='BNC Connector'; tov[7].kol:=10;

 tov[8].name:='Switch 8upt';tov[8].kol:=4;

 outtextxy(50, 10, 'Расчет количества необходимого оборудования:');

 for i:=1 to 12 do

 if i<=3 then outtextxy(50, 20+i*10,tov[i].name+' = '+IntToStr(tov[i].kol)+'м')

         else outtextxy(50, 20+i*10,tov[i].name+' = '+IntToStr(tov[i].kol)+'шт');

 assign(f3,'pice.txt');

 reset(f3);

 i:=1;

 while not eof(f3) do

  begin

   readln(f3,pice[i].name);

   readln(f3,pice[i].cena);

   inc(i);

  end;

 close(f3);

 assign(f3,'report.txt');

 rewrite(f3);

 writeln(f3,'Расчет стоимости и количества товара');

 sum:=0;

 for i:=1 to 12 do

  begin

   sum_t:=pice[i].cena*tov[i].kol;

   sum:=sum+sum_t;

   write(f3,tov[i].name); write(f3,': '); write(f3,pice[i].name);

   write(f3,'='); write(f3,tov[i].kol); write(f3,'*');

   write(f3,pice[i].cena:5:2); write(f3, '='); write(f3,sum_t:5:2);

   writeln(f3,' грн');

  end;

 write(f3,'Общая стоимость составляет '); write(f3,sum:7:2); writeln(f3,' грн');

 close(f3);

end;

procedure menu;

begin

  SetFillStyle(blue,4);

  bar(0,460,640,480);

  setcolor(5);

  outtextxy(10,470,'1- 1этаж 2- 2этаж 3- 3этаж 4-все здание 5-расчет (файл raport.txt) ESC-выход');

{  setbkcolor(white);}

end;

(*Главная программа*)

begin

 Init_graph(gm,gd);

 Init_koord(zd,comp);

 menu;

 repeat

  cc:=readkey;

  case cc of

  '1':begin cleardevice; Draw_build(zd,7,4);Draw_1_etazh(zd,comp);menu; end;

  '2':begin cleardevice; Draw_build(zd,7,4);Draw_2_etazh(zd,comp);menu; end;

  '3':begin cleardevice; Draw_build(zd,7,4);Draw_3_etazh(zd,comp);menu; end;

  '4':begin cleardevice; Draw_build(zd,7,4);Draw_1_etazh(zd,comp);

                         Draw_2_etazh(zd,comp);

                         Draw_3_etazh(zd,comp);menu; end;

  '5':begin cleardevice; Raschet(zd, comp);menu;; end;

  end;

 until cc=#27;

 closegraph;

end.

Файл pice.txt

Оптоволокно ММ

27

Кабель RG-58 С/О Taiwan коаксиальный

1.40

Кабель UTP 5 кат. AMP

1.20

RJ - 45 UTP

0.80

BNC терминатор (50 Ом)

4

BNC T-Connector

3

BNC Connector

6

Switch 8UPT 100Mbps Canyon, Surecom

143

Сетевая плата PCI FastEthernet 100Mbps

35

Сетевая плата BNC+UTP, NIC-C1, PCI

48

Трансивер EP-816X Surecom

387

Повторитель Complex RE10TX/WOL

116

Файл koord_zd.txt

100 0 180 100

0 140 100 280

290 80 360 160

230 220 270 290

Файл koord_pk.txt

1 3 140 2

1 3 102 50

1 2 140 98

1 2 178 98

2 3 50 142

2 3 2 210

2 1 2 278

2 3 98 278

3 3 358 82

3 2 292 82

3 1 325 158

3 2 358 120

4 3 268 222

4 2 232 222

4 2 250 288

4 2 268 288

2 1 98 142