VB程序設(shè)計實課后習(xí)題代碼_第1頁
VB程序設(shè)計實課后習(xí)題代碼_第2頁
VB程序設(shè)計實課后習(xí)題代碼_第3頁
VB程序設(shè)計實課后習(xí)題代碼_第4頁
VB程序設(shè)計實課后習(xí)題代碼_第5頁
已閱讀5頁,還剩78頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

實驗AVB環(huán)境和可視化編程基礎(chǔ)

1

PrivateSubCommandl_Click()

Label3=Textl

EndSub

2.

PrivateSubForm_Load()

Timerl.Interval=0

EndSub

PrivateSubCommandl_Click()'手動

Timerl.Interval=0

CallMyMove

EndSub

PrivateSubCommand2_Click(),自動

Timerl.Interval=200

EndSub

PrivateSubTimerl_Timer()

CallMyMove

EndSub

SubMyMove()

Labell.MoveLabell.Left-50,Labell.Top

IfLabell.Left<0ThenLabell.Left=Forml.Width

EndSub

3

PrivateSubForm_CIick()

Textl=Val(Textl)+1

EndSub

PrivateSubForm_Load()

Textl=0

EndSub

5

SubCommandl_Click()

Textl.FontName=''隸書''

Textl.FontSize=25

EndSub

SubCommand2_Click()

Text2.Text=Textl.SelText

Textl.FontName=Textl.FontName

Text2.FontSize=Textl.FontSize

EndSub

實驗B:順序結(jié)構(gòu)

①目的

掌握常用函數(shù)的用法以及順序結(jié)構(gòu)程序的編制;

掌握關(guān)系表達式和邏輯表達式的用法;

掌握選擇結(jié)構(gòu)的基本用法。

②內(nèi)容

教材中P263實驗4、5、6、7、8

程序代碼:

實驗4

PrivateSubCommand1_C1ick()

Text2=UCase(Textl.Text)

Print"長度";Len(Textl.Text)

EndSub

PrivateSubForm_Load()

Textl.Text=〃〃

Text2.Text=〃〃

EndSub

實驗5

PrivateSubCommandl_Click()

Randomize

Textl=Int(Rnd*901+100)

EndSub

PrivateSubCommand2_Click()

Dimx%,xl%,x2%,x3%

x=Vai(Textl)

xl=xMod10

x2=(xMod100)\10

x3=x\100

Label1=xl*100+x2*10+x3

EndSub

實驗6

PrivateSubForm_Load()

Label1=Left(Textl,11)

Labe12=Mid(Textl,12,6)

Label3=Right(Textl,5)

EndSub

實驗7

PrivateSubCommand1_C1ick()

Print

Fori=1To5

PrintTab(15-i*2);String(2*——★〃);Spc(18-4*(i-1));

String(2

Nexti

EndSub

PrivateSubCommand2_Click()

Cis

EndSub

另一種

PrivateSubCommand1_C1ick()

Print

Fori=1To5

PrintTab(15-i*2);String(2*i-1,;String(ll-2*i,

;String(2*i-1,”★")

Nexti

EndSub

PrivateSubCommand2_C1ick()

Cis

EndSub

實驗8

PrivateSubForm_Click()

DimaAsSingle

a=InputBox("請輸入一個正實數(shù)”)

Print"a的平方是";Int(a*a*1000+0.5)/1000;

Print"a的平方根是";Int(Sqr(a)*1000+0.5)/1000;

Print"a的立方是“;Int(a*a*a*1000+0.5)/1000;

Print"a的立方根是“;Int(a-(1/3)*1000+0.5)/1000

EndSub

實驗三:選擇結(jié)構(gòu)

①目的

掌握常用函數(shù)的用法以及順序結(jié)構(gòu)程序的編制;

掌握關(guān)系表達式和邏輯表達式的用法;

掌握選擇結(jié)構(gòu)的基本用法。

②內(nèi)容

教材中P2651、3、5、6、7、8

程序代碼:

1、

DimxAsSingle

x=Vai(InputBox("請輸入價錢”))

Ifx<1000Then

y=x

Elselfx<2000Then

y=0.9*x

Elselfx<3000Then

y=0.8*x

Else

y=0.7*x

EndIf

Print〃你應(yīng)支付:〃;y

3、

PrivateSubCommand2_Click()

Dimx!,y!,z!

x=InputBox(〃inputx〃)

y=InputBox("inputy〃)

z=InputBox("inputz〃)

Print〃xyz〃

Print排序前〃;x;〃;y;〃z

Ifx<yThent=x:x=y:y=t

Ify<zThen

t=y:y=z:z=t

Ifx<yThen

t=x:x=y:y=t

EndIf

EndIf

Print排序后〃&x&〃〃&y&〃〃&z

EndSub

5、

Dimm%,n%,x%,y%

PrivateSubForm_Load()

Textl.Text=〃〃

Text2.Text=〃〃

EndSub

PrivateSubText2_LostFocus()

m=Textl.Text

n=Text2.Text

IfnMod200Then

MsgBox(〃腳數(shù)為奇數(shù),重新輸入〃)

Text2.Text=〃〃

Text2.SetFocus

EndIf

Ifn<2*m0rn>4*mThen

MsgBox(“腳數(shù)小于頭數(shù)的倍數(shù)或大于4倍,重新輸入")

Text2.Text=

Text2.SetFocus

EndIf

EndSub

PrivateSubText3_GotFocus0

y=n/2-m

x=m-y

Text3.Text=x

Text4.Text=y

EndSub

6、

PrivateSubCommand1_Click()

DimaAsSingle,bAsSingle,cAsSingle

DimxlAsSingle,x2AsSingle

a=Val(Textl.Text):b=Val(Text2.Text):c=Val(Text3.Text)

d=b*b-4*a*c

Ifa<>0Then

Ifd>OThen

MsgBox”兩實根”

xl=(-b+Sqr(d))/2/a

x2=(-b-Sqr(d))/2/a

Text4.Text=xl:Text5.Text=x2

Elselfd=0Then

MsgBox"兩重根”

xl=-b/2/a

x2=xl

Text4.Text=xl:Text5.Text=x2

Else

MsgBox"兩復(fù)根"

xl=-b/2/a

x2=Sqr(-d)/2/a

Text4.Text=xl&"+"&x2&"i"

Text5.Text=xl&"-"&x2&"i"

EndIf

Else

Ifb<>0Then

MsgBox"單根”

xl=-c/b:x2="c/b

Text4.Text=xl:Text5.Text=x2

Else

MsgBox”無意義”

EndIf

EndIf

EndSub

PrivateSubCommand2_Click()

end

EndSub

PrivateSubForm_Load()

Text1.Text="M

Text2.Text二"”

Text3.Text=""

Text4.Text二"”

Text5.Text="n

EndSub

7、

PrivateSubText3_LostFocus()

SelectCaseTrim(Text3)

Case

Text4=Val(Textl)+Val(Text2)

Case

Text4=Val(Textl)-Val(Text2)

Case

Text4=Val(Textl)*Val(Text2)

Case”/"

IfVal(Text2)=0Then

MsgBox"分母為零,重新輸入"

Text2=""

Text2.SetFocus

Else

Text4=Val(Textl)/Val(Text:2)

EndIf

EndSelect

EndSub

8、

方法一

ch=InputBox("請輸入一個數(shù)字1—一7")

t=Choose(ch,“星期一",“星期二","星期三","星期四",”星期五","星期六“,”星期

日")

MsgBox(t)

方法二

PrivateSubForm_Click()

ch=InputBox("請輸入一個數(shù)字1——7")

SelectCasech

Case"1"

MsgBox"星期一"

Case"2"

MsgBox"星期二"

Case"3"

MsgBox"星期三"

Case"4"

MsgBox"星期四"

Case"5"

MsgBox"星期五"

Case"6"

MsgBox"星期六"

Case"7"

MsgBox"星期日"

EndSelect

EndSub

實驗三:循環(huán)結(jié)構(gòu)

①目的

掌握循環(huán)結(jié)構(gòu)的功能;

掌握For-Next和Do-Loop循環(huán)控制語句的用法;

掌握多重循環(huán)結(jié)構(gòu)的用法。

②內(nèi)容

教材中P2681、2、3、4、6

1

PrivateSubForm_Click()

Fori=1To10

PrintTab(20-i);String(2*i-1,Right(Str(i),1))

Nexti

EndSub

2

PrivateSubForm_Click()

Fori=1To9

PrintTab(i+10);String(20-2*i,Chr(i+64))

Nexti

EndSub

3

PrivateSubCommandl_Click()

Dims!,t!,i&

s=1

1

i=1

DoWhile1/t>0.0001

t=t+i

s=s+1/1

i=i+1

Loop

PrintHDoWhile結(jié)構(gòu)”;s,i-1;“項“

EndSub

PrivateSubCommand2_Click()

Dims!,t!,i&

s=1

t=1

Fori=ITo100000

t=t+i

s=s+1/1

If1/1<0.0001ThenExitFor

Nexti

Print”For結(jié)構(gòu)”;s,i;“項”

EndSub

4

PrivateSubForm_Click()

DimpiAsDouble,nAsSingle

n=InputBox(nsdfdn)

pi=2

Fori=1Ton

pi二pi*2*i*2*i/(2*i-1)/(2*i+1)

Nexti

Printpi

EndSub

6

PrivateSubForm_Click()

Fori=100To999

x=Int(i/100)

y二Int((i-x*100)/10)

z=i-x*100-y*10

Ifi=x*x*x+y*y*y+z*z*zThen

Printi,

EndIf

Nexti

EndSub

另一種方法

PrivateSubForm_Click()

Fori=1To9

Forj=0To9

Forz=0To9

Ifi*i*i+j*j*j+z*z*z=i*100+j*10+zThen

Printi*100+j*10+z,

EndIf

Nextz

Nextj

Nexti

EndSub

實驗E:數(shù)組和自定義類型

①目的

掌握數(shù)組的概念;

體會數(shù)組在處理有序數(shù)據(jù)方面的優(yōu)越性;

掌握數(shù)組的常用解題算法。

②內(nèi)容

教材中實驗:1、2、3、4、5、6

1、

PrivateSubForm_Click()

Dima(lTo10)AsInteger,i%,maxa%,mina%,avera!

Fori=1To10

a(i)=Int(Rnd*100)

Nexti

mina=a(l)

maxa=a(l)

avera=a(l)

Fori=2To10

Ifa(i)>maxaThenmaxa=a(i)

Ifa(i)<minaThenmina=a(i)

avera=avera+a(i)

Nexti

Fori=1To10

Printa(i);

Nexti

Print

Print“max=";maxa,"min=";mina,“aver二";avera/10

EndSub

2、

PrivateSubForm_Click()

Dima

a=Array(56,78,98,88,76,78)

Fori=0To5

PrintString(a⑴\5,“?");a(i)

Print

Nexti

EndSub

3、統(tǒng)計各分數(shù)段的個數(shù)

Dima(lTo20)AsInteger

PrivateSubCommandl_Click()

Randomize

Fori=1To20

a(i)=Int(Rnd*101)

j=j+1

Picture1.PrintTab(6*j-5);a(i);

IfjMod4=0ThenPicture1.Print:j=0

Nexti

EndSub

PrivateSubCommand2_Click()

Dims(5To9)AsInteger

Fori=1To20

j=a(i)\10

Ifj<6Then

s(5)=s(5)+1

Elselfj<9Then

s(j)=s(j)+1

Else

s(9)=s(9)+1

EndIf

Nexti

Fori=5To9

Picture2.Print"s(";i;")的人數(shù)有";s(i)

Nexti

EndSub

4、

PrivateSubForm_Click()

Dima(lTo10)AsInteger

Randomize

Fori=1To10

a(i)=Int(Rnd*90+10)

Printa(i);

Nexti

Print

Fori=1To9

k二i

Forj=i+1To10

Ifa(k)<a(j)Thenk=j

Nextj

t=a(i):a(i)=a(k):a(k)=t

Nexti

Fori=1To10

Printa(i);

Nexti

EndSub

5、

Dima%(3,3),b%(3,3)

PrivateSubForm_Load()

Randomize

Fori=0To3

Forj=0To3

a(i,j)=Int(Rnd*36+35)

b(i,j)=Int(Rnd*41+100)

Nextj

Nexti

EndSub

PrivateSubCommandl_Click()

Picture1.Cis

Fori=0To3

Forj=OToi

Picture1.Printa(i,j);°

Nextj

Picture1.Print

Nexti

EndSub

PrivateSubCommand2_Click()

Picture2.Cls

Fori=0To3

Forj=iTo3

Picture2.PrintTab(j*6);b(i,j);

Nextj

Picture2.Print

Nexti

EndSub

PrivateSubCommand3_Click()

Picture3.Cis

sa=0

Fori=0To3

sa=sa+a(i,i)

Nexti

sb=0

Fori=0To3

sb=sb+b(i,3-i)

Nexti

Picture3.Print"A數(shù)組主對角線元素和為:sa

Picture3.Print"B數(shù)組副對角線元素和為:sb

EndSub

6、

PrivateSubPicturel_Click()

Dims(20,20)AsInteger

n=Vai(Text1.Text)

Picture1.Cis

Fori=1Ton

s(i,1)=1:s(i,i)=1

Nexti

Fori=3Ton

Forj=2Toi-1

s(i,j)=s(i-l,j-l)+s(i-l,j)

Nextj

Nexti

Fori=1Ton

Forj=1Toi

Picture1.PrintTab(1+4*j);s(i,j);

Nextj

Picture1.Print

Nexti

EndSub

楊輝三角形的第二種方法

PrivateSubPicturel_Click()

Dims(20,20)AsInteger

n=Val(Textl.Text)

Picture1.Cis

Fori=1Ton

s(i,1)=1:s(i,i)=1

Nexti

Fori=3Ton

Forj=2Toi-1

s(i,j)=s(i-l,j-l)+s(i-l,j)

Nextj

Nexti

Fori=1Ton

Forj=1Toi

Picture1.PrintTab(13-2*i+4*j);s(i,j);

Nextj

Picture1.Print

Nexti

EndSub

實驗六:過程

①目的

掌握過程的基本概念和編制方法;

掌握參數(shù)傳遞的不同方式;

用過程實現(xiàn)一些比較復(fù)雜的算法。

②內(nèi)容

教材中1、2、3、4、8

1、

PrivateSubForm_Click()

Dima(lTo10),amin,i%

Fori=1To10

a(i)=-Int(Rnd*101+300)

Printa(i);

Nexti

Calls(a(),amin)

Print

Print〃min=〃;amin

EndSub

Subs(b(),min)

Dimi%

min=b(l)

Fori=2To10

Ifb(i)<minThenmin=b(i)

Nexti

EndSub

2、

PrivateSubCommandl_Click()

DimaAsInteger,bAsInteger

a=Val(Textl.Text)

b=Val(Text2.Text)

Picture1.Printa;b;“最大公約數(shù)”;f(a,b)

EndSub

PrivateFunctionf(byvalmAsInteger,byvalnAsInteger)AsInteger

Ifm<nThent=m:m=n:n=t

r=mModn

DoWhile(r<>0)

m=n

n=r

r=mModn

Loop

f=n

EndFunction

PrivateSubForm_Load()

Text1.Text=””

Text2.Text="n

EndSub

3、

PrivateSubCommandl_Click()

Dimx!

X=val(textl.text)

PrintMySin(x),Sin(x)

EndSub

PublicFunctionMySin(ByValx!)

Dimn%,s!,t!

t=x

s=t

Forn=2To1000step2

t=-1*t*x*x/(n*(n+1))

s=s+t

IfAbs(t)<0,00001ThenExitFor

Nextn

MySin=s

EndFunction

4、

PrivateSubText1_KeyPress(KeyAsciiAsInteger)

IfKeyAscii=13Then

IfIsH(Textl)Then

Picture!.PrintTextl;n★”

Else

PictureJ.PrintTextl

EndIf

Textl”

EndIf

EndSub

FunctionIsH(ssAsString)AsBoolean

t=True

ss=Trim(ss)

Ls=Len(ss)

Fori=1ToLs\2

IfMid(ss,i,1)<>Mid(ss,Ls+1-i,1)Then

t=False

ExitFor

EndIf

Nexti

IsH=t

EndFunction

8、

用子過程

PrivateSubmaxlength(sAsString,maxsAsString,lengthAsInteger)

DimbAsString

maxs=

length=0

Fori=1ToLen(s)

x=Mid(s,i,1)

Ifx=nMThen

IfLen(b)>lengthThenlength=Len(b):maxs二b

b=,H,

Else

b=b+x

EndIf

Nexti

IfLen(b)>lengthThenlength=Len(b):maxs=b

EndSub

PrivateSubForm_Click()

DimaAsString,1AsInteger,cAsString

a=InputBox(nasadsH)

maxlengtha,c,1

Printc,1

EndSub

用函數(shù)過程

PrivateFunctionmaxlength(sAsString)AsString

DimbAsString

maxlength=

length=0

Fori=1ToLen(s)

x=Mid(s,i,1)

Ifx=nMThen

IfLen(b)>lengthThenlength=Len(b):maxlength=b

b"

Else

b=b+x

EndIf

Nexti

IfLen(b)>lengthThenlength=Len(b):maxlength=b

EndFunction

PrivateSubForm_Click()

DimaAsString

a=InputBox(nasadsn)

Printmaxlength(a),Len(maxlength(a))

EndSub

另一種方法

PrivateSubCommand1_Click()

Dimstr$

str=Textl

Text2=maxlength(str)

EndSub

PrivateFunctionmaxlength(str$)AsString

s=Split(str,nu)

1=Len(s(0)):maxlength=s(0)

Fori=1ToUBound(s)

IfLen(s(i))>lThen

maxlength=s(i)

1=Len(s(i))

EndIf

Nexti

EndFunction

實驗七:用戶界面設(shè)計

①目的

掌握窗口菜單、彈出菜單和實時菜單的設(shè)計方法;

學(xué)會通用對話框的使用;

掌握文件列表框、文件夾列表框和驅(qū)動器列表框的用法;

掌握數(shù)據(jù)文件的基本操作(打開、讀、寫、關(guān)閉)。

②內(nèi)容

教材中實驗1、2、3、6、P2737、8

本次試驗為綜合性。

1、

PrivateSubCommand1_C1ick()

Text2.Text=""

Text2.Text=Combol.Text

IfOptionl.ValueThen

Text2.Text=Text2.Text+vbCrLf+Optionl.Caption

Elself0ption2.ValueThen

Text2.Text=Text2.Text+vbCrLf+0ption2.Caption

Else

Text2.Text=Text2.Text+vbCrLf+0ption3.Caption

EndIf

Text2.Text=Text2.Text+vbCrLf+Textl.Text

IfCheckl.Value=1Then

Text2.Text=Text2.Text+vbCrLf+Checkl.Caption

EndIf

IfCheck2.Value=1Then

Text2.Text=Text2.Text+vbCrLf+Check2.Caption

EndIf

IfCheck3.Value=1Then

Text2.Text=Text2.Text+vbCrLf+Check3.Caption

EndIf

EndSub

PrivateSubForm_Load()

Combol.Additem〃聯(lián)想〃

Combol.Additem〃方正〃

Combol.Additem〃IBM〃

Combol.Additem"Compaq”

Combol.Additem〃兼容機〃

EndSub

PrivateSubTextl_LostFocus()

DimstrAsString

str=RTrim$(Textl.Text)

IfUCase$(Right$(str,2))<>〃MB〃Then

Textl.Text=〃〃

Textl.SetFocus

ExitSub

EndIf

IfNotIsNumeric(Left(str,Len(str)-2))Then

Textl.Text=〃〃

Textl.SetFocus

ExitSub

EndIf

EndSub

2、

PrivateSubCheckl_Click()

IfCheckl.Value=0Then

Textl.FontBold=False

ElselfCheckl.Value=1Then

Textl.FontBold=True

EndIf

EndSub

PrivateSubCheck2_Click()

IfCheck2.Value=0Then

Textl.Fontltalic=False

ElselfCheck2.Value=1Then

Textl.Fontltalic=True

EndIf

EndSub

PrivateSubCommand1_C1ick()

IfOptionl.Value=TrueThen

Label1.Caption=Sin(Vai(Textl.Text))

Elself0ption2.Value=TrueThen

Label1.Caption=Exp(Vai(Textl.Text))

Elself0ption3.Value=TrueThen

Label1.Caption=Sqr(Vai(Textl.Text))

EndIf

EndSub

PrivateSubForm_Load()

Textl.Text=〃〃

EndSub

3、

PrivateSubcalc()

DimSixAsSingle,SlxbjAsSingle

Slxbj=VScrol11.Value*(1+Vai(Text3.Text)/100*HScrol11.Value

/12)

Text5.Text=Slxbj

Text4.Text=Slxbj-VScrolll.Value

EndSub

PrivateSubHScrol1l_Change()

Text2.Text=HScrolll.Value

EndSub

PrivateSubHScrol12_Change()

Text3.Text=Format(HScrol12.Value,〃0.00〃)

EndSub

PrivateSubTextl_Change()

calc

EndSub

實驗八:圖形操作

①目的

學(xué)會建立坐標系;

掌握常用的圖形方法;

學(xué)會繪制常用的幾何圖形。

②內(nèi)容

教材中實驗1、2、3、4、5、6、P2831

1、

PrivateSubForm_Click()

Cis

Fori=1To20

XI二ScaleWidth*Rnd

Y1=ScaleHeight*Rnd

X2=ScaleWidth*Rnd

Y2=ScaleHeight*Rnd

r=Int(Rnd*16)

d=Int(Rnd*5+1)

DrawWidth=d

Line(XI,Y1)-(X2,Y2),QBColor(r)

Nexti

2、

PrivateSubForm_Click()

Cis

Fori=1To200

XI=ScaleWidth*Rnd

Y1=ScaleHeight*Rnd

r=Int(Rnd*16)

d=Int(Rnd*4+3)

DrawWidth=d

PSet(XI,Yl),QBColor(r)

Nexti

EndSub

3、

PrivateSubCommandl_Click()

Picture1.Cis

Picture1.Scale(-4,4)-(4,-4)

r=Picture!.ScaleWidth/2

ForS=0To2*3.14Step0.00001

x=r*Cos(4*S)*Cos⑸

y=r*Cos(4*S)*Sin(S)

Picture1.PSet(x,y)

NextS

EndSub

PrivateSubCommand2_Click()

End

EndSub

4、

PrivateSubCommand1_Click()

Scale(-4,4)-(4,-4)

ForS=0To2*3.14Step0.1

Line(0,0)-(S*Cos(S),S*Sin(S))

NextS

EndSub

5

PrivateSubForm_Click()

Dimr,xi,yi,xj,yj,xO,yO,aifAsSingle

Cis

r=Forml.ScaleHeight/2

xO=Forml.ScaleWidth/2

yO=Forml.ScaleHeight/2

n=Val(Textl)

aif=3.1415926*2/n

Fori=1Ton-1

xi=r*Cos(i*aif)+xO

yi=r*Sin(i*aif)+yO

Forj=i+1Ton

xj=r*Cos(j*aif)+xO

yj=r*Sin(j*aif)+yO

Line(xi,yi)-(xj,yj)

Nextj

Nexti

EndSub

6、

PrivateSubForm_Click()

Scale(-100,100)-(100,-100)

Fori=0To40Step2

Circle(i,0),i/2

Nexti

EndSub

P2831、

PrivateSubCommandl_Click()

DimaAsString,bAsString,cAsInteger

Open"f:\score.dat"ForOutputAs#1

Open"f:\scorel.dat"ForOutputAs#2

Fori=1To3

a=InputBox(〃學(xué)號〃)

b=InputBox(〃姓名〃)

c=Vai(InputBox(〃成績〃))

Write#1,a,b,c

Print#2,a,b,c

Nexti

Close

EndSub

PrivateSubCommand2_Click()

Open"f:\score.dat"ForInputAs#1

Open"f:\scorel.dat"ForInputAs#2

Textl.Text=〃〃

Text2.Text=〃〃

DoWhileNotEOF(l)

LineInput#1,x

Textl.Text=Textl.Text+x+vbCrLf

LineInput#2,y

Text2.Text=Text2.Text+y+vbCrLf

Loop

Close

EndSub

1.畫坐標系及正弦曲線。(要求其他曲線也會)

PrivateSubForm_Click()

Scale(-5,1)-(5,-1)

Line(-5,0)-(5,0),QBColor(12)

Line(0,-1)-(0,1),QBColor(9)

Forx=-3.14To3.14Step0.01

y=Sin(x)

PSet(x,y),QBColor(3)

Nextx

EndSub

窗體文件保存在f:\hxm\F8LFrm中,工程文件保存在f:\hxm\P8LVbp中,hxm

是文件夾。

2.畫圓和橢圓、矩形。

PrivateSubForm_Click()

Scale(-50,20)-(50,-20)

Line(-20,20)-(20,-20),,B

Circle(0,0),20

Circle(0,0),20,,,,2/1

Circle(0,0),20…,1/2

EndSub

窗體文件保存在f:\hxm\F82.Fnn中,工程文件保存在f:\hxm\P82.Vbp中,hxm

是文件夾。

3.畫矩形及填充顏色

PrivateSubForm_Click()

Scale(-50,50)-(50,-50)

FillStyle=0

FillColor=QBColor(12)

Line(-20,20)-(20,-20),QBColor(9),B

EndSub

窗體文件保存在f:\hxm\F83.Frm中,工程文件保存在f:\hxm\P83.Vbp中,hxm

是文件夾。

4.本程序含有如下菜單系統(tǒng):一級菜單有“文件”和“畫圖”,“文件”菜單下有

一二級菜單“退出”;“畫圖”菜單下有兩個二級菜單“畫曲線”、“畫矩形”,“文

件”名稱為:“退出”名稱為:mn_fl_end;“畫圖”名稱為:mn_dr;“畫

曲線”名稱為:mn_dr_yx3;“畫矩形"名稱為:mn_dr_re。

完成以下功能:

單擊畫曲線按鈕,以(-10,1000)和(10,-1000)為對角頂點建立坐標系;畫

出坐標軸和Y=X-3的曲線,X的取值區(qū)間為[T0,10];

單擊畫矩形按鈕,以(-100,100)和(100,-100)為對角頂點建立坐標系;以

(-70,50)和(70,-50)為對角頂點,顏色為12畫矩形框;

單擊“退出”停止程序的運行。

窗體文件保存在f:\hxm\F86.Frm中,工程文件保存在f:\hxm\P86.Vbp中,hxm

是文件夾。

PrivateSubmn_dr_re_Click()

Scale(-100,100)-(100,-100)

Line(-70,50)-(70,-50),QBColor(12),B

EndSub

PrivateSubmn_dr_yx3_Click()

Scale(-10,1000)-(10,-1000)

Forx=-10To10Step0.01

y二x八3

PSet(x,y)

Nextx

EndSub

PrivateSubmn_fl_end_Click()

End

EndSub

實驗一:VB開發(fā)環(huán)境和程序設(shè)計初步

①目的

掌握VisualBasic系統(tǒng)的進入、退出;

熟悉開發(fā)環(huán)境;

加深理解對象、屬性、事件以及事件過程等概念;

掌握工程的保存以及打開方法;

熟悉常用對象的常用屬性、事件和方法。

②內(nèi)容

教材中實驗L1(改為例2.1)、實驗1.3、實驗1.4、實驗

1.5、實驗1.6。

程序代碼

1.1換成例2.1

PrivateSubTextl_KeyPress(KeyAsciiAsInteger)

DimaaAsString*1

DimLengthAsInteger1Length存放文本框中字符

串的長度

Length=Len(Text2.Text)求Text2中字符串長度

aa=Chr$(KeyAscii)將ASCII碼轉(zhuǎn)換成字符

SelectCaseaa

CaseTo,大寫轉(zhuǎn)換成小寫

aa=Chr$(KeyAscii+32)

CasenanTonzn,小寫轉(zhuǎn)換成大寫

aa=Chr$(KeyAscii-32)

Case"

CaseElse

aa=*****

EndSelect

,將轉(zhuǎn)換文本框已有的內(nèi)容與剛輸入并轉(zhuǎn)換的字符連

Text2.Text=Text2.Text&aa

EndSub

PrivateSubCommandl_Click()

Textl.Text=""

Text2.Text=

EndSub

PrivateSubCommand2_Click()

End

EndSub

1.3

,Label控件通過位置和顏色結(jié)合產(chǎn)生浮雕效果

PrivateSubForm_Load()

Label2.Top=Label1.Top+50

Label2.Left=Labell.Left+50'Label和Label!

錯位

Label2.ForeColor=QBColor(O)1Label2字為默認

黑色

Labell.ForeColor=QBColor(15),Labell字為白色

EndSub,位置和顏色結(jié)合

產(chǎn)生浮雕效果

,控件移動可通過Move方法實現(xiàn),見左移

PrivateSubCommandl_Click()

Labell.MoveLabell.Left-50單擊一次同時

左移SOtwip單位

Label2.MoveLabell.Left-50

EndSub

,也可通過控件的位置屬性改變移動,見右移

PrivateSubCommand2_Click()

Labell.Left=Labell.Left+50'單擊一次同時右

移SOtwip單位

Labell.Left=Labell.Left+50

EndSub

1.4同上

僅在兩個命令按鈕的單擊事件中將Left改為top

1.5

PrivateSubCommandl_Click()

Cis

EndSub

PrivateSubForm_Click()

PrintTab(lO);

PrintTab(9);

Fori=1To5*輸出五行

PrintTab(9-i);”★?Spc(i-1);Spc(i-1);

Nexti

EndSub

1.6

PrivateSubCommandl_Click()

Cis

EndSub

PrivateSubForm_Click()

PrintTab(10);

PrintTab(9);

Fori=1To5*輸出五行

PrintTab(9-i);”★";Spc(i-1);”★?Spc(i-1);

Nexti

Fori=5To1Step-1輸出五行

PrintTab(9-i);Spc(i-1);Spc(i-1);

Nexti

PrintTab(9);

PrintTab(lO);

EndSub

實驗2:選擇結(jié)構(gòu)

①目的

掌握常用函數(shù)的用法以及順序結(jié)構(gòu)程

序的編制;

掌握關(guān)系表達式和邏輯表達式的用法;

掌握選擇結(jié)構(gòu)的基本用法。

②內(nèi)容

教材中P2651、3、5、6、7、8

程序代碼:

1、

DimxAsSingle

x=Vai(InputBox(〃請輸入價錢〃))

Ifx<1000Then

y二x

Elselfx<2000Then

y=0.9*x

Elselfx<3000Then

y=0.8*x

Else

y=0.7*x

EndIf

Print〃你應(yīng)支付:〃;y

3、

5、

Dimm%,n%,x%,y%

PrivateSubFormLoadO

Textl.Text=〃〃

Text2.Text=〃〃

EndSub

PrivateSubText2_LostFocus()

m=Textl.Text

n=Text2.Text

IfnMod200Then

MsgBox(〃腳數(shù)為奇數(shù),重新輸入〃)

Text2.Text二〃〃

Text2.SetFocus

EndIf

Ifn〈2*m0rn〉4*mThen

MsgBox(〃腳數(shù)小于頭數(shù)的倍數(shù)或大

于4倍,重新輸入〃)

Text2.Text=〃〃

Text2.SetFocus

EndIf

EndSub

PrivateSubText3_GotFocus()

y=n/2-m

x=m-y

Text3.Text=x

Text4.Text=y

EndSub

實驗2.6

PrivateSubForm_Click()

r=0.008

m=26

h=13

n=Log(m/h)/Log(l+r)

Printn

EndSub

實驗3.2

PrivateSubForm_Click()

s=Val(InputBox(”請輸入上網(wǎng)時間”))

Ifs<10Then

f=30

Elselfs<50Then

f=3*s

Else

f=2.5*s

Iff>150Thenf=150

EndIf

Printf

EndSub

實驗3.3

PrivateSubCommand1_Click()

DimblAsBoolean,b2AsBoolean,b3As

Boolean,b4AsBoolean

Dimml%,m2%,m3%

ml=Textl:m2=Text2:m3=Text3

bl=(ml+m2+m3)/3>=95

b2=(ml=100Andm2=100Andm3>=80)

b3=(m3=100Andm2=100Andml>=80)

b4=(ml=100Andm3=100Andm2>=80)

IfblOrb2Orb3Orb4Then

Text4二”一等獎”

Else

Text4二”無一等獎”

EndIf

EndSub

實驗3.4

PrivateSubForm_Click()

x=Val(InputBox("請輸入x的值”))

y二Val(InputBox("請輸入y的值”))

z二Val(InputBox("請輸入z的值"))

Printx,y,z

Ifx>yThen

t=x:x=y:y=z

EndIf

Ify>zThen

t=y:y=z:z=t

Ifx>yThen

t=x:x=y:y=t

EndIf

EndIf

Printx,y,z

EndSub

實驗三:循環(huán)結(jié)構(gòu)

①目的

掌握循環(huán)結(jié)構(gòu)的功能;

掌握For-Next和Do-Loop循環(huán)控制語

句的用法;

掌握多重循環(huán)結(jié)構(gòu)的用法。

②內(nèi)容

教材中實驗4.1、實驗4.2、實驗4.3、實驗

4.4、實驗4.6。

4.1

PrivateSubForm_Click()

Fori=1To10

PrintTab(20-i);String(2*i-1,Right(Str(i),

1))

Nexti

EndSub

4.2

PrivateSubForm_Click()

Fori=5To1St叩-1

PrintTab(18-3*i);”★";String(3*i-1,”☆

");“

Nexti

PrintTab(18);

Fori=1To5

PrintTab(18-3*i);"☆“;String(3*i-1,”★

Nexti

EndSub

4.3

PrivateSubCommand1_Click()

Dims!,t!,i&

s=1

t=1

i=1

DoWhile1/t>0.0001

t=t+i

s=s+1/1

i=i+1

Loop

PrintnDoWhile結(jié)構(gòu)”;s,i-1;“項“

EndSub

PrivateSubCommand2_Click()

Dims!,t!,i&

s=1

t=1

Fori=1To100000

t=t+i

s=s+1/1

If1/1<0.0001ThenExitFor

Nexti

Print"For結(jié)構(gòu)”;s,i;“項"

EndSub

4.4

PrivateSubForm_Click()

DimpiAsDouble,nAsSingle

n=InputBox(nsdfdn)

pi=2

Fori=1Ton

pi=pi*2*i*2*i/(2*i-1)/(2*i+1)

Nexti

Printpi

EndSub

4.6

PrivateSubForm_Click()

Fori=100To999

x=Int(i/100)

y=Int((i-x*100)/10)

z=i-x*100-y*10

Ifi=x*x*x+y*y*y+z*z*zThen

Printi,

EndIf

Nexti

EndSub

另一種方法

PrivateSubForm_Click()

Fori=1To9

Forj=0To9

Forz=0To9

Ifi*i*i+j*j*j+z*z*z=i*100+j*

10+zThen

Printi*100+j*10+z,

EndIf

Nextz

Nextj

Nexti

EndSub

4.8

PrivateSubCommand1_Click()

x=Textl.Text

IfLen(x)>7Then

MsgBox”大于7位,請重輸”

Textl.Text=nn

Textl.SetFocus

Else

Fori=1To7

a=a+Mid(x,i,1)*(8-i)

Nexti

a=aMod10

Label1.Caption=a&x

EndIf

EndSub

實驗四:數(shù)組

①目的

掌握數(shù)組的概念;

體會數(shù)組在處理有序數(shù)據(jù)方面的優(yōu)越性;

掌握數(shù)組的常用解題算法。

②內(nèi)容

教材中實驗5.1、實驗5.3、實驗5.4、實驗5.6、實

驗5.7。

5.1

PrivateSubForm_Click()

Dima(lTo10)AsInteger,i%,maxa%,mina%,avera!

Fori=1To10

a(i)=Int(Rnd*100)

Nexti

mina=a(l)

maxa=a(l)

avera=a(l)

Fori=2To10

Ifa(i)>maxaThenmaxa二a(i)

Ifa(i)<minaThenmina=a(i)

avera=avera+a(i)

Nexti

Fori=1To10

Printa(i);

Nexti

Print

Print"max=";maxa,"min=";mina,"aver=";avera/10

EndSub

5.2統(tǒng)計各分數(shù)段的個數(shù)

PrivateSubForm_Click()

Dims(5To9)AsInteger

Randomize

Fori=1To20

mark/Int(Rnd*101)

Printmark;

IfiMod10=0ThenPrint

j二mark\10

Ifj<6Then

s⑸=s(5)+1

Elselfj<9Then

s(j)=s(j)+1

Else

s(9)=s(9)+1

EndIf

Nexti

Fori=5To9

Prints(i)

Nexti

EndSub

5.3方法一

PrivateSubForm_Click()

Dims(lTo15)AsString*1,cAsString*1

s(l)=Chr(Int(Rnd*26+65))

Forn=2To15

re:c=Chr(Int(Rnd*26+65))

Forj=1Ton-1'找到有重復(fù)字母,重新產(chǎn)生

Ifs①二cThenGoTore

Nextj

s(n)二c

Nextn

Fori=1To15

Prints(i);

Nexti

EndSub

方法二

PrivateSubForm_Click()

Dims(lTo15)AsString*1,cAsString*1,FoundAs

Boolean

s(l)=Chr(Int(Rnd*26+65))

n=2

DoWhilen<=15

c=Chr(Int(Rnd*26+65))

Found=False

Forj=1Ton-1

Ifs(j)=cThenFound二True

Nextj

IfNotFoundThen

s(n)=c

n=n+1

EndIf

Loop

Fori=1To15

Prints(i);

Nexti

EndSub

5.4產(chǎn)生10個遞增的數(shù)

PrivateSubForm_Click()

Dims(lTo10)AsInteger,cAsInteger

Randomize

s(l)=Int(Rnd*301+100)

Fori=2To10

re:c二Int(Rnd*301+100)

Ifc<=s(i-1)ThenGoTore

s(i)=c:k=i

Ifc=400ThenExitFor

Nexti

Fori=1Tok

Prints(i);

Nexti

Print

EndSub

5.5

PrivateSubForm_Click()

Dimxf%(lTo5),mark%(lTo5),jd%,i%,sumxf%,

sumxfmark%

Fori=1To5

xf(i)=Val(InputBox("輸入學(xué)分"))

mark(i)=Val(InputBox("輸入成績"))

Nexti

sumxf=0

sumxfmark=0

Fori=1To5

sumxf=sumxf+xf(i)

Ifmark(i)>=90Then

jd=4

Elselfmark(i)>=80Then

jd=3

Elselfmark(i)>=70Then

jd=2

Elselfmark(i)>=60Then

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論