利用坐标法计算多边形面积程序源代码
PrivateSubForm1_Load()Label1.Caption="欢迎进入坐标法计算多边形面积程序设计!"Label2.Caption="指导老师:李瑞霞"Label3.Caption="设计者:高大芳"Command1.Caption="进入"Command2.Caption="退出"EndSubPrivateSubCommand1_Click()UnloadForm1Form2.ShowEndSubPrivateSubCommand2_Click()UnloadForm1Form3.ShowEndSub二、面积计算界面Command3为选择文件,Command1为计算,Command2为退出Label2为请输入边数,Label3为输出面积面积计算界面程序原代码如下:PrivateSubForm2_Load()Command3.Caption="选择文件"Command1.Caption="计算"Command2.Caption="退出"Label2.Caption="输入边数"Label3.Caption="输出面积"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)Text3.Text=Text3.Text+inputdataLoopClose#2Exit "放弃操作"ElseLabel1.Caption="其他错误!"EndIfEndSubPrivateSubCommand1_Click()DimssAsIntegerDimxx(100)AsDoubleDimyy(100)AsDoubleDimmm(100)AsDoubless=1DimpAsStringDimc()AsStringp=Replace(Text3,Chr(13),",")c=Split(p,",")Fori=1ToUBound(c)mm(ss)=Val(c(i))ss=ss+1Nexti'-----把点的X坐标从mm()中取出来存于数组xx()中DimtAsIntegert=1Fori=1TossStep1xx(t)=mm(i)t=t+1Nexti'-----把点的Y坐标从mm()中取出来存于数组yy()中DimuAsIntegeru=1Fori=2TossStep1yy(u)=mm(i)u=u+1Nexti'-----计算面积n=Val(Text1.Text)q=0p=0xx(n+1)=xx(1)yy(n+1)=yy(1)Fori=1Tonq=(xx(i+1)+xx(i))*(yy(i+1)-yy(i))/2p=p+qNextiText2.Text=pIfp<0ThenMsgBox"输出错误",vbRetryCancel,"输出面积"EndIfEndSubPrivateSubCommand2_Click()UnloadForm2Form3.ShowEndSub退出界面程序原代码如下:PrivateSubForm3_Load()Label1.Caption="谢谢使用!"Command1.Caption="退出"EndSubPrivateSubCommand1_Click()UnloadForm3EndSub问题补充:输出的面积和手算结果不一样,哪位好心人帮我看看啊,我急用了。问题补充:q=(xx(i+1)+xx(i))*(yy(i+1)-yy(i))/2Q表示面积I表示多边形边数比如说四边形计算公式就是(x1+x2)*(y2-y1)+(x2+x3)*(y3-y2)+(x3+x4)*(y4-y3)+(x4+x1)*(y1-y4)/2
只把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。
答:你的程序也有点问题,我已经修改为 Private Sub Command1_Click() Dim a As Integer a = InputBox("数字"...详情>>
答:线性链表分好几种,分为单链,双链等,它们的存储顺序也不一样. 线性表是顺序存储的,占顺序的存储空间详情>>
问:电脑安装了VB6.0,为什么打开方式里面没有VB程序选项,进安装好的VB里去关联...
答:打开方式最下面还有一个《选择程序》,点开后查VB的安装目录的EXE,找到后直接打开,下次就会在打开方式里查到了详情>>