




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
VB概§1VB特可視化的設(shè)計(jì)平 象的設(shè)計(jì)方(對(duì)象的性質(zhì)(對(duì)象的動(dòng)作(對(duì)象的響應(yīng)它構(gòu)成對(duì)象的三個(gè)要素。事件驅(qū)動(dòng)的編程機(jī)集成化的開發(fā)環(huán)結(jié)構(gòu)化的設(shè)計(jì)語§4VB序設(shè)VB應(yīng)用程序的開發(fā)有三個(gè)步驟設(shè)計(jì)應(yīng)用程序界面設(shè)置對(duì)象的屬編寫事件驅(qū)動(dòng)代執(zhí)行“文件/保存工程”命(第一次保存文件)系統(tǒng)先打開“文件另存為”框,保存窗體文件(或標(biāo)準(zhǔn)模塊文件,然后再打開“工程另存為”框,保存工程文件。保存修改后的工程文選擇“文件/(保存與工程有關(guān)的修改過的窗體文件或標(biāo)準(zhǔn)模塊文件。字符串“Iama"計(jì)算機(jī)數(shù)值常整型1234(十進(jìn)制12345678(十進(jìn)制單精度數(shù):有三種形式,12.34,123123.45E-&精度$符串型2.號(hào)常格式:Const功能:定義一個(gè)符號(hào)常量來表示表達(dá)式的值類型決定。ConstPI=變1.變量變量名不能是保留VB變量名不區(qū)分字母大小寫2.量的類用類型說明在變量的尾部加上類型說明&精度$符串型在時(shí),可以省略類型說明符。定義變量時(shí)其類型格式:Dim變量名As類型“類型”可為基本數(shù)據(jù)類型或用戶自定義的類型Boolean(布爾型)Long(長(zhǎng)整型)Single(單精度型)Double(雙精度型)String(字符串型)Variant(變體型)Dimstr1AsString,countryAsString*20DimiAsInteger,sumAsSingle定義變量后,數(shù)值型變量的初值為變長(zhǎng)字符串的初值是長(zhǎng)度為定長(zhǎng)字符串的初值的長(zhǎng)度等于定義值3.變體類型變量例如:DimsumAsVariantDimsum運(yùn)算符與表達(dá)1.術(shù)運(yùn)算符(8):取負(fù)(-乘法、浮點(diǎn)除法(*)取模加法、減法(整除:被除數(shù)和除數(shù)為整數(shù),結(jié)果為整31.7\32\6果取模(求余)運(yùn)算:結(jié)果為整數(shù)除法的余數(shù)31.77Mod5.88(四舍五入32Mod6數(shù)為3Mod6余數(shù)為字符串表達(dá)字符串運(yùn)算符&str1&2008&奧運(yùn)會(huì)2008運(yùn)"2008"奧運(yùn)2008Print123"567結(jié)果Printabc"567錯(cuò):類型不匹配常用函數(shù)數(shù)學(xué)函返回x的絕對(duì)求不大于x的最大整Int(7.8)結(jié)果為7,Int(-7.8)結(jié)果為-把x小數(shù)四舍五入,轉(zhuǎn)換為整數(shù)計(jì)算ex,e自然數(shù)x的自然對(duì)x的平方返回0~1的隨機(jī)數(shù)字符串函返回字符串長(zhǎng)取字符串左邊n個(gè)字取字符串右邊n個(gè)字從位置p開始,取n個(gè)字符,如n省略,取到最數(shù)值轉(zhuǎn)字符字符串轉(zhuǎn)數(shù)返回字符串首字母ASCIIASCII碼轉(zhuǎn)字反正切函數(shù)Atn(x)的返回值單位為弧度。度轉(zhuǎn)換為弧度:1°3.14159/180l生0~n間的隨機(jī)數(shù)(不含0n)l生0~n間的隨機(jī)整數(shù)(含0,不含n)l生a~b間的隨機(jī)整數(shù)(含a,不含b)Int(b-l生a~b間的隨機(jī)整數(shù)(含ab)Int(b-順序結(jié)結(jié)構(gòu)化程序三種基本結(jié)構(gòu)順序結(jié)構(gòu)、選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)1值語變量=表達(dá)式DimNumAsNum=8.899賦給Num,四舍五人3據(jù)輸方法1:用文本例:DimmAsIntegerm=Val(Text1.Text)方法2:用Inputbox()函例:m=Val(InputBox("enter4出數(shù)方法1:用文本框或Text1=n方法2:用例:Label1.Captionn方法3:用Print法例:Printn方法4:輸出到列表框例:List1.AddItemn方法5:輸出到文件例:Open"abc.dat"ForOutputAs1Write#1,n【例】交換變量a、b用中間變量t作暫存單元,必須與交換的變量同類型t=a:a=b:b=3.2Click事Load事Load是把窗體裝入工作區(qū)事Form_Load()啟動(dòng)程序時(shí)對(duì)屬性和變量進(jìn)行初始化。UnLoad事滿足條件為“真用“True”表示關(guān)系運(yùn)算符(6種優(yōu)先級(jí)相同,運(yùn)算從左到右關(guān)系表達(dá)apply按ASCII碼逐字符進(jìn)行比較“applyapple果為邏輯表達(dá)邏輯運(yùn)算符NotAnd優(yōu)先級(jí)(Not(Anda<=xAndx<=選擇結(jié)單行If語If件Then句組1Else語句組語句組:各語句間需用分隔塊結(jié)構(gòu)If語If條件EndIf例:計(jì)算分段函1+x(x≥0)1-2xIfx>=0ThenEndIf用單行IfIfx>=0Theny=1+xElsey=1-或Ifx>=0Theny=1+xIfx<0Theny=1-2*xIf條件1Then語句塊1ElseIf件2語句塊ElseIf件3語句塊EndIf注意:ElseIf間不能有空格【例】學(xué)生成績(jī)判定PrivateSubx=Val(InputBox("輸入學(xué)生成績(jī):"))Ifx>=90ThenPrint“優(yōu)”ElseIfx>=80ThenPrint“良”ElseIfx>=70ThenPrint“中”ElseIfx>60ThenPrint“及格”Print及格EndIfEnd2.4IIfIIf是單行If句的簡(jiǎn)單版變量IIf(條件,True分,F(xiàn)alse分)注意:IIf數(shù)中的三個(gè)參數(shù)都不能省略。1+x(x≥0)1-2xPrivateSubCommand1_Click()DimxAsSingle,yAsSinglex=Val(Text1.Text)Text2.Text=yEndSub4整除,但不能被100IfxMod4000Theny$="是閏年"ElseIfxMod40AndxMod1000Theny$="是閏年"y$是閏年End也xVal(InputBox("輸入年份IfxMod40andxMod1000orxMod4000Theny$="是閏年"y$是閏年"EndIf4.SelectCase句SelectCase試表達(dá)Case件語句塊Case件語句塊CaseElse語句塊n+1EndSelect則執(zhí)行CaseElse的語句塊。注意條件常量表測(cè)試范圍:10to20,“a”toz”比較范圍:Is<10(不能為邏輯表達(dá)式【例】學(xué)生成績(jī)PrivateSubxVal(InputBox("輸入考試SelectCase90y$80y$70y$60y$="及格"Case0To59y$及格Casey$入錯(cuò)誤"EndSelectForm1.Print成績(jī)x,等級(jí)y$EndSub循環(huán)結(jié)For-Next循常用于循環(huán)次數(shù)已知For環(huán)變量值To值Step長(zhǎng)][ExitFor]Next環(huán)【例】計(jì)算n!PrivateSubnVal(InputBox("輸入一個(gè)自然數(shù)"))Term=1Fori=1TonTerm=Term*iNextiPrintn;"!=";TermEndSub【例】計(jì)算246100值PrivateSubCommand1_Click()Sum=0Forx=2To100Step2Sum=Sum+xNextForm1.Print"Sum=";SumEndSub【例】計(jì)算12310!PrivateSubCommand1_Click()T=S=Fork=1To10T=T*kS=S+NextkPrintSEndWhile-Wend循適合處理循環(huán)次數(shù)未知的循While功能:當(dāng)條件為真時(shí)執(zhí)行循【例】計(jì)算1+2+3+……+100PrivateSubCommand1_Click()DimnAsInteger,sAsIntegernWhilen<=100Lable1.Caption=“1+2++3+……+100=”&EndDo-Loop循[ExitLoopWhile|Until件]Do[While|Until條件][ExitDoWhile當(dāng)“條件”為True行循環(huán)體。Until條件——“條件”為False行循環(huán)體。格式1先循環(huán),后判斷至少執(zhí)行一次循環(huán)格式2先判斷,后循環(huán)如條件不滿足,則一次循環(huán)也不執(zhí)行nDowhilen<=100nDoUntiln>100【例】將十進(jìn)制數(shù)轉(zhuǎn)換為二進(jìn)制PrivateSubDimmAsm=InputBox("enterm:")a$=""Whilem<>0r=mMod2a$=r&a$m=m\2Printa$EndSuba$a$&r列表框的方AddItem方法:用于在列表框中一個(gè)列表項(xiàng)。AddItem目字符串[,索引值如省略索引值,則在列表框的最后新列表項(xiàng)PrivateSubCommand1_Click()List1.AddItemText1.TextEndSub必須完整嵌套,不得交叉ExitFor句和ExitDo句只能退出當(dāng)前層循環(huán)。Forn=1toPrintn;”IfnMod10=0ThenPrintNextn顯示10數(shù)據(jù)換行不定方程求解PrivateSubCommand1_Click()DimxAsIntegerDimyAsInteger,zAsIntegerPrint"公雞","母雞","小雞"Forx=0To20Fory=0To33z=100-x-If5*x+3*y+z/3=100ThenPrintx,y,zEndIfNextyNextEnd求最大公約數(shù)和最小公輾轉(zhuǎn)相除法【例】計(jì)算最大公約數(shù)和最小公倍數(shù)PrivateSubCommand1_Click()DimmAsInteger,nAsIntegerDimuAsInteger,vAsm=n=Ifm>nThenu=m:v=nu=n:v=mEndIfr=uModvu=vv=LoopUntilr=Print最大公約數(shù)Print最小公倍數(shù)m*nuEndSub或r=uModvDoWhiler<>0u=vv=r=uModvPrint最大公約數(shù)v【例】判n是否為素?cái)?shù)PrivateSubCommand1_Click()DimnAsInteger,iAsIntegernVal(InputBox("輸入正整數(shù)"))Fori=2Ton-1IfnModi=0ThenExitForNextiIfin1ThenPrintn是質(zhì)數(shù)"Printn不是質(zhì)數(shù)"EndIfEnd例100~200之間素?cái)?shù),并寫入順序文件PrivateSubOpen“shusu.dat”ForOutputAsForn=101To200step2S=1‘是Fori=2ToInt(Sqr(n))IfnModi=0ThenS=0不是ExitForEndIfNextIIfs=1ThenWrite#1,nNextnclose#1EndSubList1.AddItemn數(shù)組6.1態(tài)數(shù)編譯時(shí)分配空間定義:Dimb(3,4)As例:Dimb(3,2to4,1to3AsInteger共分配4×3×3=36元素,共72ByteOption語句格式:OptionBase例OptionBaseDima(10)AsInteger,x(5,5)As過程中用ReDim語句定義帶下標(biāo)的數(shù)組時(shí)不指定數(shù)組的維DimTest()AsIntegerDimnAsIntegerSubvalue:ReDimTest(n)End數(shù)組元素的組名(下標(biāo))運(yùn)行前對(duì)數(shù)組進(jìn)行初始化格式:數(shù)組變量名=Array(值表說明:數(shù)組下標(biāo)下界缺省為0,只能對(duì)一維數(shù)組初始DimaAsAsVariant注意:下標(biāo)從0~6【例】一維數(shù)組元素賦初值OptionBasePrivateSubDimaAsa=Array(1,2,3,4,5,6,Fori=1To7Printa(i);NextiEnd運(yùn)行結(jié)果123456數(shù)組輸入/輸二維數(shù)組采重循環(huán)【例】一維數(shù)組的輸入和輸Fori=1Toa(i)=InputBox("Enterdata:")Nexti【例】二維數(shù)組的輸入和輸124578Fori1ToForj1Toa(i,=InputBox("enterNextNextFori1ToForj1ToPrinta(i,j);"";NextjNext【例】用Rnd產(chǎn)生100~100之間隨機(jī)Fori=1Toa(i)=Int(100*NextType自定義類型名元素名1As元素名2As元素名nAsEnd一般在標(biāo)準(zhǔn)模塊中定義,默認(rèn)為Public如在窗體模塊的“”段定義,則必須加上Private,自定義類型中的元素可以為數(shù)組PrivateTypestudentnumAsString*8nameAsString*8totalAsIntegeraverageAsIntegerEndType自定義類型變量的Dim量名As定義類型名DimstudAs形式:變量名.元素名自定義類型數(shù)組的和使用:Dimst(5)AsStudent記錄數(shù)組元素.成員【例】輸入5個(gè)學(xué)生的學(xué)號(hào)、、和3門課的成績(jī),利用自定義類型數(shù)組,PrivateTypestudentnoAsString*6nameAsString*6s1AsSingles2AsSingles3AstotalAsSingleaverAsSingleEndTypePrivateSubDima(1To5)Asstudent,tAsOpen“stud.dat”ForOutputAsOpenstud.datForRandomAs#2Len=Len(t)開隨機(jī)文n=Fori=1Tona(i).total=a(i).s1+a(i).s2+a(i).s3a(i).aver=a(i).total/3NextFori=1Ton-1Forj=i+1ToIfa(i).aver<a(j).averThent=a(i)a(i)=a(j)a(j)=tEndIfNextjNextPrint"學(xué)號(hào)語文數(shù)總分平均分"Fori=1TonPrintTab(2);a(i).no;Tab(10);a(i).name;Tab(18);a(i).s1;"Printa(i).s2;"";a(i).s3;"";a(i).total;""; Put#2,i,a(i)入隨機(jī)文NextiEnd入文件一行一個(gè)記錄交換兩個(gè)記錄數(shù)組元素的值,則該記錄數(shù)組元素的所有成員都將交換6.7用算法1.最大值和最小【例】找10個(gè)數(shù)中的最大值與最小值Fori=1ToIfa(i)>MaxThenMax=a(i)Ifa(i)<MinThenMin=a(i)Nexti6.7.2降序:從大到比較交換Fori=1Ton-1Forj=i+1TonIfa(i)>a(j)Thent=a(i)a(i)=a(j)a(j)=tEndIfNextjNext選擇法排Fori=1Ton-1p=iForj=i+1ToIfa(p)>a(j)Thenp=jNextjt=a(i)a(i)=a(p)a(p)=tNexti冒泡法排特點(diǎn):相鄰的兩個(gè)元素進(jìn)行Fori=1Ton-1Forj=1Ton-Ifa(j)>a(j+1)Thent=a(j)a(j)=a(j+1)a(j+1)=tEndIfNextjNexti順序查從一組數(shù)據(jù)中,按順序地查找指定的數(shù)【例】用順序查詢法在下列數(shù)據(jù)中查找關(guān)鍵字kVal(InputBox("輸入要查詢的數(shù)"))p=1Whilek<>a(p)Andp<np=p+1Ifk=a(p)Printk;"befound,on";p;"thposition."Printk;"hasnotbefound."EndIf2半查只能對(duì)有序數(shù)列進(jìn)行查詢【例】用折半查詢法查找關(guān)鍵字值66-123,-OptionBasePrivateSubDimaAsa=Array(-123,-10,5,8,30,56,59,66,90,n=Print數(shù)組a的10數(shù)為:"ForEachiiInaPrintii;"";NextiikVal(InputBox("輸入要查Print要查詢的數(shù)klow=1hig=nfind=-1Whilelow<=higAndfind=-1m=(low+hig)\2Ifk=a(m)find=Printk;"hasbefound,on";m;"thposition."Ifk<a(m)Thenhig=m-1low=m+1EndIfEndIfIffind=-1Printk;"hasnotbefound."EndIfEnd注意:若數(shù)據(jù)按降序排Ifk<a(m)Thenlow=m+1hig=m-1EndIfPrivateSubOpen“stud.dat”ForOutputAsDimno(1To16)AsStringDima(1To16)AsSingleFori=1To16no(i)=InputBox("輸入運(yùn)動(dòng)員:")a(i)Val(InputBox("輸入運(yùn)動(dòng)員成績(jī):"))NextiFori=1To15k=iForj=i+1ToIfa(k)>a(j)Thenk=jNextjt=no(i)no(i)=no(k)no(k)=tt=a(i)a(i)=a(k)a(k)=tEndIfNextPrint"名次運(yùn)動(dòng)員運(yùn)動(dòng)員成績(jī)"Fori=1To5Printi,no(i),NextiEnd函數(shù)過程的定Function過程名(形參表As型函數(shù)過程名=表達(dá)EndSub程序過程名EndCall程序過程名(實(shí)參表編寫函數(shù)過程計(jì)算PrivateSubCommand1_Click()n=Val(Text1.Text)Text2.Text=fact(n)EndFunctionfact(n)f=1Fori=1Tonf=f*iNextifact=fEnd【例】子程序過程計(jì)算n!PrivateSubCommand1_Click()n=Val(Text1.Text)Callfact(n,f)Text2.Text=fEndSubPrivateSubfact(n,f)f=1Fori=2Tonf=f*iNextiEndSub計(jì)算若干值,只能用Sub程。7.3數(shù)傳1傳值方參:變形參前加關(guān)鍵字ByVal例:Subfact(ByValn)2址方式或形參前加ByRef例:Subfact(ByRefn)VB認(rèn)方式為傳址方式從過程中,返回計(jì)算結(jié)果,必須采用傳址方式PrivateSubForm_Click()n=100m=Callabc(n,m)Printn,mEndPublicSubabc(ByValx,y)t=xx=y=tPrintx,yEndSub輸出:200100變量的作用作用域指變量能被某一過程識(shí)別的范圍1.全局變?cè)跇?biāo)準(zhǔn)模塊的通用段用Public變PublicxAsInteger,yAsSingle用Private或Dim變作用域:在它的整個(gè)模塊的所有過程有效。PrivatexAsInteger,yAs或DimxAsInteger,yAsSingle在過程中定義的作用域:為其所在的過程隨過程的調(diào)用而分配單元,過程執(zhí)行結(jié)束,所占用的單元被。靜態(tài)變量用Static的局部變量,在過程調(diào)用結(jié)束后保留值【例】動(dòng)態(tài)變量、靜態(tài)變量和模塊級(jí)變量的作用DimcAsPrivateSubForm_Click()a=1:b=2:c=3Print"a","b","c"Fori=1To3CalltestNextiPrint"A","B","Printa,b,cEndSubSubStatica=a+b=b+c=c+1Printa,b,cEndSub數(shù)據(jù)文1序文件的打格式:Open文件名For方式AsOutput—順序?qū)懭敕綄戫樞蛭募Z句(建立文件格式:Write#文件號(hào),輸出項(xiàng)PrivateSubForm_Click()DimnoAsLong,namAsStringDimscoreAsSingleOpend:\chengji1.dat"ForOutputAs2no=InputBox("輸入學(xué)號(hào):")Whileno<>nam=InputBox$("輸入學(xué)生:")scoreInputBox("輸入學(xué)生成績(jī):")Write#2,no,nam,scorenoInputB
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 急診護(hù)理科普大賽
- 電商平臺(tái)消費(fèi)者債權(quán)轉(zhuǎn)讓及清收服務(wù)協(xié)議
- 植物人離婚監(jiān)護(hù)權(quán)及子女撫養(yǎng)權(quán)共享協(xié)議
- 醫(yī)療資源整合遠(yuǎn)程會(huì)診項(xiàng)目合作協(xié)議
- 智能停車管理系統(tǒng)租賃與智能停車場(chǎng)運(yùn)營(yíng)管理及增值服務(wù)合同
- 醫(yī)院潔凈手術(shù)部BIM管線施工與運(yùn)維協(xié)議
- 草原牧場(chǎng)放牧權(quán)競(jìng)標(biāo)與草原生態(tài)修復(fù)協(xié)議
- 世界杯羽毛球賽贊助商協(xié)議
- 家居裝修工程設(shè)計(jì)與施工合同
- 影視拍攝場(chǎng)地消毒衛(wèi)生保障協(xié)議
- 農(nóng)學(xué)專業(yè)深度解析模板
- 儲(chǔ)罐內(nèi)噴鋁施工方案
- 2024年江西省高考地理真題(解析版)
- 紹興市糧食批發(fā)市場(chǎng)經(jīng)營(yíng)有限公司招聘筆試題庫(kù)2024
- 畢業(yè)研究生登記表(適用于江蘇省)
- 2024年光伏行業(yè)供應(yīng)鏈數(shù)字化建設(shè)白皮書
- 網(wǎng)絡(luò)傳播概論(第5版)課件 第七章 網(wǎng)絡(luò)傳播建構(gòu)的關(guān)系
- 公安機(jī)關(guān)拘留通知書(存根、附卷副本、正本)模板
- 【年產(chǎn)2000噸色氨酸發(fā)酵工廠的計(jì)算與設(shè)計(jì)(附布置圖流程圖)15000字(論文)】
- 2024-2030年中國(guó)動(dòng)畫產(chǎn)業(yè)發(fā)展趨勢(shì)及未來前景預(yù)測(cè)分析報(bào)告
- 2024年中級(jí)硫磺回收裝置操作工職業(yè)鑒定理論考試題庫(kù)(濃縮500題)
評(píng)論
0/150
提交評(píng)論