d=Date
Prints2,TypeName(s2)&"类型"
Printb,TypeName(b)&"类型"
Printd,TypeName(d)&"类型"
EndSub
4.5实训五(if、selectcase选择语句)
4.5.1用selectcase编写程序如下:
PrivateSubCommand1_Click()
DimifeeAsSingle,mAsSingle,nAsSingle
n=Val(Text1.Text)
m=(n-50)*20
ifee=n/10
SelectCaseifee
Case0To3
Label2.Caption="您的行李重量为"&n&"公斤,您可以免费携带"
Case3To5
Label2.Caption="您的行李重量为"&n&"公斤,您需支付10元运费"
CaseElse
Label2.Caption="您的行李重量为"&n&"公斤,您需支付"&m&"元运费"
EndSelect
Text1.SetFocus
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
4.5.2用if...else编写程序如下:
PrivateSubCommand1_Click()
DimmAsSingle,nAsSingle
n=Val(Text1.Text)
m=(n-50)*20
Ifn<=30Then
Label2.Caption="您的行李重量为"&n&"公斤,您可以免费携带"
ElseIfn<=50Then
Label2.Caption="您的行李重量为"&n&"公斤,您需支付10元运费"
Else
Label2.Caption="您的行李重量为"&n&"公斤,您需支付"&m&"元运费"
EndIf
Text1.SetFocus:
Text1.SelStart=0
Text1.SelLength=Len(Text1.Text)
EndSub
PrivateSubCommand2_Click()
End
EndSub
4.6实训六(For…Next循环语句分别输出三角形、平行四边形、菱形)
PrivateSubCommand1_Click()
Picture1.Cls
DimiAsInteger,jAsInteger
Fori=1To9
Forj=9-iTo1Step-1
Picture1.Print"*";
Nextj
Picture1.Print"*"
Nexti
EndSub
PrivateSubCommand2_Click()
Picture1.Cls
DimiAsInteger,jAsInteger
Fori=1To9
Picture1.PrintTab(15-i);
Forj=1To9
Picture1.Print"*";
Nextj
Picture1.Print"*"
Nexti
EndSub
PrivateSubCommand3_Click()
Picture1.Cls
DimiAsInteger,jAsInteger
Fori=-4To4
Picture1.PrintTab(3*Abs(i)+15);
Forj=1To9-2*Abs(i)
Picture1.Print5-Abs(i);
Nextj
Picture1.Print
Nexti
EndSub
4.7实训七(数组的使用方法一——用插入法将一组数据按升序排列)
PrivateSubCommand1_Click()'假设有十个数
Dims(10)AsInteger,tAsInteger,iAsInteger,nAsInteger
Fori=0To9
t=Val(InputBox("请任意输入一个数据:
","输入"))
Forj=0Toi-1
Ift
Nextj
Fork=10Toj+1Step-1
s(k)=s(k-1)'一直向后移一位,直到把s(j)这个位置空下
Nextk
s(j)=t'将插入的这个数放在已空出来的s(j)位置上
Cls
Fork=0Toi
Prints(k);
Nextk
Nexti
EndSub
4.8实训八(数组的使用方法二——生成并输出杨辉三角形)
PrivateSubCommand1_Click()
Dimd(10,10)AsInteger
DimjAsInteger,iAsInteger,kAsInteger
Picture1.Print
Fori=1To10
Forj=1Toi
Ifj=1Orj=iThen
d(i,j)=1
Else
d(i,j)=d(i-1,j)+d(i-1,j-1)
EndIf
Picture1.PrintTab(5*j);d(i,j);
Nextj
Nexti
EndSub
4.9实训九(Timer控件——设计一个动态开奖器)
PrivateSubCommand1_Click()'开始
Timer1.Enabled=True
EndSub
PrivateSubCommand2_Click()
StaticiAsInteger
Timer1.Enabled=False
Label2(i)=Label1.Caption
i=i+1
Ifi=4ThenCommand1.Enabled=False
EndSub
PrivateSubTimer1_Timer()
j=Int(Rnd*99)+1
Label1.Caption=Format(j,"00")
EndSub
4.10实训十(菜单编辑器)
不需要用源代码,只对界面进行设计
4.11实训十一(文件系统控件)
PrivateSubFile1_DblClick()
DimFnameAsString,StrlineAsString
Fname="c:
\windows\"+File1.FileName
OpenFnameForInputAs#1
DoWhileNotEOF
(1)
LineInput#1,Strline
Debug.PrintStrline
Loop
Close#1
EndSub
PrivateSubForm_Load()
Drive1.Drive="c:
"
Dir1.Path="c:
\windows"
File1.Pattern="*.ini"
EndSub
PrivateSubDrive1_Change()
Dir1.Path=Drive1.Drive
File1.Path=Dir1.Path
EndSub
PrivateSubDir1_Change()
File1.Path=Dir1.Path
EndSub
4.12实训十二(可视化数据管理器)
建立students.mdb数据库管理,增加对班级代码库的管理。
4.13实训十三(可视化数据管理器二)
(1)在Students.MDB增加一个成绩表grade
(2)添加FrmGrade窗体,使用FlexGrid控件浏览选定同学的成绩表。
不用源代码,只需了解数据库、表的建立,某些控件的用法。
4.14实训十四(多文档界面)
创建一个“多文档编辑器”应用程序,可以进行文档录入、编辑等工作,并可以按“.RFT”文件格式保存文档。
界面设计如老师给定的界面一样,代码如下:
1、主窗体模块:
PrivateDeclareFunctionSendMessageLib"user32"Alias"SendMessageA"(ByValhwndAsLong,ByValwMsgAsLong,ByValwParamAsLong,ByVallParamAsAny)AsLong
ConstEM_UNDO=&HC7
PrivateDeclareFunctionOSWinHelp%Lib"user32"Alias"WinHelpA"(ByValhwnd&,ByValHelpFile$,ByValwCommand%,dwDataAsAny)
PrivateSubMDIForm_Load()
Me.Left=GetSetting(App.Title,"Settings","MainLeft",1000)
Me.Top=GetSetting(App.Title,"Settings","MainTop",1000)
Me.Width=GetSetting(App.Title,"Settings","MainWidth",6500)
Me.Height=GetSetting(App.Title,"Settings","MainHeight",6500)
LoadNewDoc
EndSub
PrivateSubLoadNewDoc()
StaticlDocumentCountAsLong
DimfrmDAsfrmDocument
lDocumentCount=lDocumentCount+1
SetfrmD=NewfrmDocument
frmD.Caption="Document"&lDocumentCount
frmD.Show
EndSub
PrivateSubtbToolBar_ButtonClick(ByValButtonAsMSComctlLib.Button)
OnErrorResumeNext
SelectCaseButton.Key
Case"新建"
LoadNewDoc
Case"打开"
mnuFileOpen_Click
Case"保存"
mnuFileSave_Click
Case"打印"
mnuFilePrint_Click
Case"剪切"
mnuEditCut_Click
Case"复制"
mnuEditCopy_Click
Case"粘贴"
mnuEditPaste_Click
Case"粗体"
ActiveForm.rtfText.SelBold=NotActiveForm.rtfText.SelBold
Button.Value=IIf(ActiveForm.rtfText.SelBold,tbrPressed,tbrUnpressed)
Case"斜体"
ActiveForm.rtfText.SelItalic=NotActiveForm.rtfText.SelItalic
Button.Value=IIf(ActiveForm.rtfText.SelItalic,tbrPressed,tbrUnpressed)
Case"下划线"
ActiveForm.rtfText.SelUnderline=NotActiveForm.rtfText.SelUnderline
Button.Value=IIf(ActiveForm.rtfText.SelUnderline,tbrPressed,tbrUnpressed)
Case"左对齐"
ActiveForm.rtfText.SelAlignment=rtfLeft
Case"居中"
ActiveForm.rtfText.SelAlignment=rtfCenter
Case"右对齐"
ActiveForm.rtfText.SelAlignment=rtfRight
EndSelect
EndSub
PrivateSubMnuHelpAbout_Click()'在主窗口内模式显示"关于……"对话框'
FrmAbout.ShowvbModal,Me
EndSub
PrivateSubMnuHelpSearch_Click()'在主窗口内模式显示"选择主题"对话框'
DimnRetAsInteger
'如果这个工程没有帮助文件,显示消息给用户
IfLen(App.HelpFile)=0Then
MsgBox"无法显示帮助目录,该工程没有相关联的帮助。
",vbInformation,Me.Caption
Else
OnErrorResumeNext
nRet=OSWinHelp(Me.hwnd,App.HelpFile,261,0)
IfErrThen
MsgBoxErr.Description
EndIf
EndIf
EndSub
PrivateSubMnuWindowArrangeIcons_Click()'按图标方式重排主窗口中的子窗口
Me.ArrangevbArrangeIcons
EndSub
PrivateSubmnuWindowTileVertical_Click()'按垂直平铺方工重排主窗口中的子窗口'
Me.ArrangevbTileVertical
EndSub
PrivateSubmnuWindowTileHorizontal_Click()'按水平方工重排主窗口中的子窗口'
Me.ArrangevbTileHorizontal
EndSub
PrivateSubmnuWindowCascade_Click()'按层叠方式重排主窗口中的子窗口'
Me.ArrangevbCascade
EndSub
PrivateSubmnuViewStatusBar_Click()'显示式隐藏状态栏'
mnuViewStatusBar.Checked=NotmnuViewStatusBar.Checked
tbToolBar.Visible=mnuViewStatusBar.Checked
EndSub
PrivateSubmnuViewToolbar_Click()'显示式隐藏工具栏'
MnuViewToolBar.Checked=NotMnuViewToolBar.Checked
tbToolBar.Visible=MnuViewToolBar.Checked
EndSub
PrivateSubmnuEditCopy_Click()'复制编辑框选择处的文本到剪贴板上
OnErrorResumeNext
Clipboard.SetTextActiveForm.rtfText.SelRTF
EndSub
PrivateSubmnuEditCut_Click()'剪切编辑框选择处的文本到剪贴板上
OnErrorResumeNext
Clipboard.SetTextActiveForm.rtfText.SelRTF
ActiveForm.rtfText.SelText=vbNullString
EndSub
PrivateSubmnuEditPaste_Click()'粘贴剪贴板上的文本到编辑框选择处
OnErrorResumeNext
ActiveForm.rtfText.SelRTF=Clipboard.GetText
EndSub
PrivateSubmnuEditSpecial_Click()'设置文档块
ActiveForm.rtfText.SelStart=0
ActiveForm.rtfText.SelLength=Len(ActiveForm.rtfText.Text)
EndSub
PrivateSubmnuFileExit_Click()'卸载窗体
UnloadMe
EndSub
PrivateSubmnuFilePrint_Click()'显示"打印"对话框'
OnErrorResumeNext
IfActiveFormIsNothingThenExitSub
WithdlgCommonDialog
.DialogTitle="Print"
.CancelError=True
.Flags=cdlPDReturnDC+cdlPDNoPageNums
IfActiveForm.rtfText.SelLength=0Then
.Flags=.Flags+cdlPDAllPages
Else
.Flags=.Flags+cdlPDSelection
EndIf
.ShowPrinter
IfErr<>MSComDlg.cdlCancelThen'打印当前子窗口编辑框中的内容'
ActiveForm.rtfText.SelPrint.hDC
EndIf
EndWith
EndSub
PrivateSubmnuFileSaveAs_Click()'显示"另存为"对话框'
DimsFileAsString
IfActiveFormIsNothingThenExitSub
WithdlgCommonDialog
.DialogTitle="另存为"
.CancelError=False'ToDo:
设置commondialog控件的标志和属性
.Filter="RTF文件(*.RTF)|*.rtf"
.ShowSave
IfLen(.FileName)=0Then
ExitSub
EndIf
sFile=.FileName
EndWith
ActiveForm.Caption=sFile'将当前子窗口编辑框中的内容保存到文件:
sFlie'
ActiveForm.rtfText.SaveFilesFile
ActiveForm.boolDirty=False
EndSub
PrivateSubmnuFileSave_Click()'显示"保存"对话框'
DimsFileAsString
IfLe