轻轻松松学VB第一期自己动手做称手工具软件.docx

上传人:b****4 文档编号:3453834 上传时间:2022-11-23 格式:DOCX 页数:10 大小:101.29KB
下载 相关 举报
轻轻松松学VB第一期自己动手做称手工具软件.docx_第1页
第1页 / 共10页
轻轻松松学VB第一期自己动手做称手工具软件.docx_第2页
第2页 / 共10页
轻轻松松学VB第一期自己动手做称手工具软件.docx_第3页
第3页 / 共10页
轻轻松松学VB第一期自己动手做称手工具软件.docx_第4页
第4页 / 共10页
轻轻松松学VB第一期自己动手做称手工具软件.docx_第5页
第5页 / 共10页
点击查看更多>>
下载资源
资源描述

轻轻松松学VB第一期自己动手做称手工具软件.docx

《轻轻松松学VB第一期自己动手做称手工具软件.docx》由会员分享,可在线阅读,更多相关《轻轻松松学VB第一期自己动手做称手工具软件.docx(10页珍藏版)》请在冰豆网上搜索。

轻轻松松学VB第一期自己动手做称手工具软件.docx

轻轻松松学VB第一期自己动手做称手工具软件

轻轻松松学VB,第一期:

自己动手做称手工具软件

大家有没有在电子制作的时候一个公式要反复用好几遍,参数改好几次,计算更是想吐,现成的软件又不好找,要不就是用着不顺手,其实,大家可以学一点VB知识,就完全可以打造自己的计算工具。

我在假期闲的无聊就练练手,自己动手做了几个小工具软件,在此我就抛砖引玉了,把制作过程及代码贴上来,欢迎大家拍砖。

首先是熟悉VB的编程环境,就是常用VB6.0.这个相关只是就先暂不补充了,感兴趣的看看书半个小时就能上手。

下面是其中的几个界面:

2011-10-314:

25:

46上传

下载附件(51.93KB)

2011-10-314:

25:

57上传

下载附件(31.66KB)

2011-10-314:

26:

10上传

下载附件(40.88KB)

在计算电阻分压这一块关键的是协调数据使用条件,比如用一些提示信息来提醒你哪些必须输入哪些可以输入,这里我用了几个if语句解决的,代码有点笨,见谅。

PrivateSubCommand1_Click()

Dima,b,c,d,eAsSingle

a=Val(Text2.Text)

b=Val(Text3.Text)

c=Val(Text1.Text)

d=Val(Text4.Text)

IfText1.Text<>""AndText2.Text<>""AndText3.Text<>""AndText4.Text<>""Then

MsgBox"请保证输入的数据只有三个已知量!

",vbYes,"注意"

Else

Ifd>cAndc<>0Then

MsgBox"请设置输入电压高于输出电压",vbYes,"注意"

Else

Ifc=d<>0Then

a=0

Text3.Text="∞"

Text2.Text=0

Else

IfText2.Text=""Then

e=b*(c-d)/d

Text2.Text=e

Else

IfText3.Text=""Then

e=a*d/(c-d)

Text3.Text=e

Else

IfText1.Text=""Then

e=d*(a+b)/b

Text1.Text=e

Else

IfText4.Text=""Then

e=b*c/(a+b)

Text4.Text=e

EndIf

EndIf

EndIf

EndIf

EndIf

EndIf

EndIf

EndSub

PrivateSubCommand2_Click()

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

EndSub

PrivateSubCommand3_Click()

MsgBox"本工具由小猛为结婚的电感制作,版权没有,翻版不究,本计算为知三求一形式,输入变量时请输入三个,再次计算请先清除或者保证一个变量为空,输入电压务必大于输出电压。

数值为单精度,正数范围在1.401298E-45到3.402823E38之间,不填写数值默认为0",vbYes+0,"工具说明"

EndSub

PrivateSubCommand4_Click()

End

EndSub

习惯不好,没加注释,大家忍着看吧,是不是感觉重复的语句很多,其实就这么简单,不用很牛B的句子,毕竟咱们是玩电的,不是专业程序员。

下面说一下解方程的。

这个一般的程序书上算法都有。

话不多说,直接上代码:

PrivateSubCommand1_Click()

Form1.Show

Form2.Hide

EndSub

PrivateSubCommand2_Click()

DimaAsSingle,bAsSingle,cAsSingle

          DimDAsSingle,X1AsSingle,X2AsSingle

          DimRAsSingle,PAsSingle

          a=Val(Text1.Text)  '取数据a

          b=Val(Text2.Text)  '取数据b

          c=Val(Text3.Text)  '取数据c

          Ifa=0Then        '当a=0

              Text4.Text="不是二次方程"

              Text5.Text="不是二次方程"

          Else              'a<>0

              D=b*b-4*a*c

              R=-b/(2*a)

IfD=0Then        'D=0

              Text4.Text=R

              Text5.Text=R

          ElseIfD>0Then    'D>0

X1=(-b+Sqr(D))/(2*a)

              X2=(-b-Sqr(D))/(2*a)

              Text4.Text=X1

              Text5.Text=X2

                Else                'D<0

P=Sqr(-D)/(2*a)

              Text4.Text=R&"+"&P&"i"

              Text5.Text=R&"-"&P&"i"

              EndIf

              EndIf

EndSub

PrivateSubCommand3_Click()

Text1.Text=""

Text2.Text=""

Text3.Text=""

Text4.Text=""

Text5.Text=""

EndSub

PrivateSubCommand4_Click()

Dima1,b1,c1,m1,n1,t1,x11,y11AsSingle

a1=Val(Text6.Text)

b1=Val(Text7.Text)

c1=Val(Text8.Text)

m1=Val(Text10.Text)

n1=Val(Text11.Text)

t1=Val(Text12.Text)

IfText6.Text<>""AndText7.Text<>""AndText8.Text<>""AndText10.Text<>""AndText11.Text<>""AndText12.Text<>""AndText6.Text<>Text10.TextAndText7.Text<>Text11.TextThen

y11=(m1*c1-a1*t1)/(a1*n1-b1*m1)

x11=(-c1-b1*y11)/a1

Text9.Text=x11

Text13.Text=y11

Else

IfText6.Text=Text10.TextOrText7.Text=Text11.TextThen

MsgBox"不为二元方程组!

",vbYes,"注意"

Else

IfText6.Text=""OrText7.Text=""OrText8.Text=""AndText10.Text=""OrText11.Text=""OrText12.Text=""Then

MsgBox"请保证输入数据的完整性!

",vbYes,"注意"

EndIf

EndIf

EndIf

EndSub

PrivateSubCommand5_Click()

Text6.Text=""

Text7.Text=""

Text8.Text=""

Text9.Text=""

Text10.Text=""

Text11.Text=""

Text12.Text=""

Text13.Text=""

EndSub

大家慢慢看吧……

下面就把波形绘制的贴出来,主要实现方法就是峰值叠加跟折线描图,大家都懂得,废话我就不多说了

OptionExplicit

ConstPiAsSingle=3.14159265358979

Dima()  AsSingle,b()AsSingle,c()AsSingle

DimYMaxAsSingle,AZeroAsBoolean

Dimw  AsInteger,h,aaAsInteger

SubDrawsin(aAsSingle,bAsSingle,cAsSingle)

  Dimi  AsInteger,xAsSingle,yAsSingle,jAsSingle

  DimoiAsSingle,ojAsSingle

  Fori=0TowStep1

      x=i/w*6*Pi

      y=a*Sin(b*x+c)

      j=-h*(y-YMax)/(2*YMax)

      Ifi=0Then

        Picture1.PSet(i,j),RGB(255,0,0)

      Else

        Picture1.Line(oi,oj)-(i,j),RGB(255,0,0)

      EndIf

      oi=i

      oj=j

  Next

EndSub

SubDrawaaddsin()

  Dimi  AsInteger,xAsSingle,yAsSingle,jAsSingle

  DimoiAsSingle,ojAsSingle

  Dimk  AsInteger

  Fori=0TowStep1

      x=i/w*6*Pi

      y=0

      Fork=1ToUBound(a)

        y=a(k)*Sin(b(k)*x+c(k))+y

      Next

      j=-h*(y-YMax)/(2*YMax)

      Ifi=0Then

        Picture2.PSet(i,j),RGB(0,0,255)

      Else

        Picture2.Line(oi,oj)-(i,j),RGB(0,0,255)

      EndIf

      oi=i

      oj=j

  Next

EndSub

SubDrawXY()

  WithPicture1

      Picture1.Line(0,h/2)-(w,h/2)

      Picture1.Line(0,0)-(0,h)

      .CurrentX=0

      .CurrentY=h/2

      Picture1.Print"0"

      .CurrentX=w/3

      .CurrentY=h/2

      Picture1.Print"2π"

      .CurrentX=2*w/3

      .CurrentY=h/2

      Picture1.Print"4π"

      .CurrentX=w-15

      .CurrentY=h/2

      Picture1.Print"6π"

  EndWith

WithPicture2

      Picture2.Line(0,h/2)-(w,h/2)

      Picture2.Line(0,0)-(0,h)

      .CurrentX=0

      .CurrentY=h/2

      Picture2.Print"0"

      .CurrentX=w/3

      .CurrentY=h/2

      Picture2.Print"2π"

      .CurrentX=2*w/3

      .CurrentY=h/2

      Picture2.Print"4π"

      .CurrentX=w-15

      .CurrentY=h/2

      Picture2.Print"6π"

  EndWith

EndSub

PrivateSubCommand1_Click()

  DimiAsInteger

  IfVal(Text1.Text)=0Then

      AZero=True

  Else

      ReDimPreservea(UBound(a)+1)

      ReDimPreserveb(UBound(b)+1)

      ReDimPreservec(UBound(c)+1)

      a(UBound(a))=Val(Text1.Text)

      b(UBound(b))=Val(Text2.Text)

      c(UBound(c))=Val(Text3.Text)

      YMax=YMax+Abs(a(UBound(a)))

      Picture1.Cls

      Picture2.Cls

      DrawXY

      Fori=1ToUBound(a)

        Drawsina(i),b(i),c(i)

      Next

      Drawaaddsin

  EndIf

    Text5.Text=YMax

    aa=aa+1

    Text4.Text=aa

  IfAZeroThenPicture1.Line(0,h/2)-(w,h/2),RGB(255,0,0)

            Picture2.Line(0,h/2)-(w,h/2),RGB(255,0,0)

            

            

EndSub

PrivateSubCommand2_Click()

  Picture1.Cls

Picture2.Cls

  Form_Load

  Text1.Text=""

  Text2.Text=""

  Text3.Text=""

  Text5.Text=""

EndSub

PrivateSubCommand3_Click()

Form1.Show

Form111.Hide

EndSub

PrivateSubForm_Load()

  ReDima(0),b(0),c(0)

  YMax=0

  aa=0

  AZero=False

  WithPicture1

      .AutoRedraw=True

      .ScaleMode=vbPixels

      w=.ScaleWidth

      h=.ScaleHeight

  EndWith

WithPicture2

      .AutoRedraw=True

      .ScaleMode=vbPixels

      w=.ScaleWidth

      h=.ScaleHeight

  EndWith

  DrawXY

  Text4.Text=0

EndSub

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 合同协议

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1