利用坐标法计算多边形面积程序源代码Pr
只把form2的有关程序(即面积计算界面程序原代码)调整一下就可以了。如下:'经调试发现,输入组成多边形的各个坐标值的顺序对计算结果有影响。比如计算出来是负数或0,都可能是因为输入的坐标顺序不正确。 PrivateSubForm_Load()Command3。Caption="选择文件"Command1。Caption="计算"Command2。Caption="退出"Label2。Caption="输入边数"Label3。 Caption="输出面积"Label1。Caption=""Text1。Text=""'新增本句及以下两句Text2。Text=""Text3。Text=""E...全部
只把form2的有关程序(即面积计算界面程序原代码)调整一下就可以了。如下:'经调试发现,输入组成多边形的各个坐标值的顺序对计算结果有影响。比如计算出来是负数或0,都可能是因为输入的坐标顺序不正确。
PrivateSubForm_Load()Command3。Caption="选择文件"Command1。Caption="计算"Command2。Caption="退出"Label2。Caption="输入边数"Label3。
Caption="输出面积"Label1。Caption=""Text1。Text=""'新增本句及以下两句Text2。Text=""Text3。Text=""EndSubPrivateSubCommand3_Click()CommonDialog1。
InitDir="C:\windows"CommonDialog1。Filter="文本文件|*。Txt"CommonDialog1。Action=1CommonDialog1。CancelError=TrueLabel1。
Caption=CommonDialog1。FileName'把文件中的数据存放于text3中DimstrFilenameAsStringstrFilename=CommonDialog1。FileNameOpenstrFilenameForInputAs#2DoWhileNotEOF(2)'inputdata=Input(1,#2)改成下句Input#2,inputdata'Text3。
Text=Text3。Text+Str(inputdata)改成下句Text3。Text=Text3。Text+Str(inputdata)+","LoopClose#2Exit "放弃操作"ElseLabel1。
Caption="其他错误!"EndIfEndSubPrivateSubCommand1_Click()DimssAsIntegerDimxx(100)AsDoubleDimyy(100)AsDoubleDimmm(100)AsDouble'ss=1子改成下句ss=0DimpAsStringDimc()AsString'p=Replace(Text3,vbCrLf,",")改成下句p=Text3。
Textc=Split(p,",")'Fori=1ToUBound(c)改成下句Fori=0ToUBound(c)-1'mm(ss)=Val(c(i))改成下句mm(i)=Val(c(i))ss=ss+1Nextiss=ss-1'增加这一句'-----把点的X坐标从mm()中取出来存于数组xx()中'DimtAsInteger取消变量t't=1Fori=0Toss\2Step1'此句有变动'xx(t)=mm(i)去掉xx(i)=mm(2*i)'此句有变动't=t+1去掉Nexti'-----把点的Y坐标从mm()中取出来存于数组yy()中'DimuAsInteger去掉变量u'u=1去掉Fori=0Toss\2Step1'此句有变动'yy(u)=mm(i)去掉yy(i)=mm(1+2*i)'此句有变动'u=u+1去掉Nexti'-----计算面积n=Val(Text1。
Text)q=0p=0'xx(n+1)=xx(1)改为下句xx(n)=xx(0)'yy(n+1)=yy(1)改为下句yy(n)=yy(0)'Fori=1Ton改为下句Fori=0Ton-1q=(xx(i+1)+xx(i))*(yy(i+1)-yy(i))/2p=p+qNextiText2。
Text=pIfp<0ThenMsgBox"输出错误",vbRetryCancel,"输出面积"EndIfEndSubPrivateSubCommand2_Click()UnloadForm2Form3。
ShowEndSub。收起