?? unit1.cpp
字號:
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "math.h"
#include "Unit1.h"
#include "Unit2.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
Boolean start;
int a[20],b[20],p[20];
int i=0;
int length(int i,int j,int c,int d);
int sumlength(int j,int k);
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
start=true;
Canvas->TextOut(10,460,"* 代表超市");
Canvas->TextOut(10,480,"o 代表客戶點");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormMouseDown(TObject *Sender, TMouseButton Button,
TShiftState Shift, int X, int Y)
{
if(start)
{
Randomize();
p[i]=rand()%10+9;
Canvas->TextOut(X,Y,"o");
//Canvas->TextOut(X,Y,"客戶地");
Canvas->TextOut(X,Y+20,"頻度:");
Canvas->TextOut(X+30,Y+20,p[i]);
a[i]=X;
b[i]=Y;
i=i+1;
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
start=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
Form1->Refresh();
for(int f=0;f<20;f++)
a[f]=b[f]=p[f]=i=0;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
for(int ii=0;ii<20;ii++)
{ Canvas->TextOut(50,50+15*ii,a[ii]);
Canvas->TextOut(100,50+15*ii,b[ii]);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button5Click(TObject *Sender)
{
int x_bar,y_bar;
int sum=0,p1;
for(int j=0;j<=600;j++)
for(int k=0;k<=600;k++)
if(a[2]!=0||b[2]!=0)
{ if(sum==0)
sum=sumlength(j,k);
else
if(sumlength(j,k)<=sum)
{ for(p1=0;p1<20;p1++)
if(j!=a[p1]&&k!=b[p1])
continue;
else
break;
if(p1==20)
{ sum=sumlength(j,k);
x_bar=j;
y_bar=k;
}
}
}
else
{ if(a[0]>a[1])
x_bar=a[1]+p[0]*abs(a[0]-a[1])/(p[0]+p[1]);
else
x_bar=a[0]+p[1]*abs(a[0]-a[1])/(p[0]+p[1]);
if(b[0]>b[1])
y_bar=b[1]+p[0]*abs(b[0]-b[1])/(p[0]+p[1]);
else
y_bar=b[0]+p[1]*abs(b[0]-b[1])/(p[0]+p[1]);
}
Canvas->TextOut(x_bar,y_bar,"*");
//Canvas->TextOut(x_bar,y_bar,"超市:");
Canvas->TextOut(x_bar,y_bar+20,x_bar);
Canvas->TextOut(x_bar+20,y_bar+20,",");
Canvas->TextOut(x_bar+25,y_bar+20,y_bar);
for(i=0;i<20;i++)
{ if(a[i]>0||b[i]>0)
{ Canvas->MoveTo(x_bar,y_bar);
Canvas->LineTo(a[i],b[i]);
}
}
}
int length(int i,int j,int c,int d)
{
return sqrt((i-c)*(i-c)+(j-d)*(j-d));
}
int sumlength(int j,int k)
{int sum=0;
for(int jj=0;jj<20;jj++)
if(a[jj]>0||b[jj]>0)
sum=sum+p[jj]*length(j,k,a[jj],b[jj]);
return sum;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button6Click(TObject *Sender)
{
Form2->Show();
Form1->Hide();
}
//---------------------------------------------------------------------------
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -