VB实验报告教案(47)_vb实验报告含答案
VB实验报告教案(47)由刀豆文库小编整理,希望给你工作、学习、生活带来方便,猜你可能喜欢“vb实验报告含答案”。
实验四:
题目:Visual Basic常用控件
目的:
1、掌握命令按钮、单选钮、检查框、框架常用属性与事件
2、掌握滚动条、列表框、组合框、时钟的常用属性与事件 日期:1班为10月18日,2班为10月14日,3班为10月16日 内容:要求界面用铅笔画出来。
Private Sub Command1_Click()
List1.AddItem Text1
If Option1 Then
List1.AddItem “男”
Else
List1.AddItem “女”
End If
List1.AddItem Text2
List1.AddItem Combo1
List1.AddItem Combo2
List1.AddItem “爱好:”
If Check1 Then
List1.AddItem “上网”
End If
If Check2 Then
List1.AddItem “篮球”
End If
If Check3 Then
List1.AddItem “音乐”
End If
If Check4 Then
List1.AddItem “交友”
End If End Sub Private Sub Command2_Click()
List1.Clear End Sub
Private Sub Command3_Click()
End End Sub
Private Sub Text1_KeyPre(KeyAscii As Integer)
If KeyAscii = 13 Then
Text2.SetFocus
End If End Sub
Private Sub Form_Load()
Form1.Caption = “电子钟”
Form1.BorderStyle = 3
Timer1.Enabled = True
Timer2.Enabled = False
Timer1.Interval = 1000
Timer2.Interval = 1000
Label1.Caption = Time()
'显示系统时间
Label1.Alignment = 2
Label1.BorderStyle = 1
Label2.Caption = “闹钟时间:”
Text1.Text = “” End Sub
Private Sub Text1_KeyPre(KeyAscii As Integer)
'按下回车开始闹钟
If KeyAscii = 13 Then
Timer2.Enabled = True
Text1.Enabled = False
End If End Sub
Private Sub Timer1_Timer()
Label1.Caption = Time()
'显示系统时间 End Sub
Private Sub Timer2_Timer()
Static i As Int ger
If Label1.Caption >= Text1.Text Then
'利用静态变量产生背景交替效果
If i = 0 Then
Label1.BackColor = vbRed
i = 1
Else
Label1.BackColor = vbWhite
i = 0
End If
End If End Sub 实验五:
题目:对话框、菜单、工具栏和图形程序设计
目的:
1、掌握菜单的设计方法;学会应用通用对话框控件
2、掌握在Visual Basic环境中的绘图方法,显示图片
3、对话框、菜单、工具栏和图形程序设计的综合应用 日期:1班为11月3日,2班为11月4日,2班为11月6日 内容:要求界面用铅笔画出来。
' 打开菜单项的单击事件过程 Private Sub mnuOpen_Click()
' 激活对话框前初始化设置相关属性,激活对话框后将无法在代码中设置其属性
CommonDialog1.FileName = “*.txt”
' 初始化文件名
CommonDialog1.InitDir = “C:”
' 初始化路径
' 设置文件类型列表框内容
CommonDialog1.Filter = “Word文档|*.doc|文本文件|*.txt|所有文件|*.*”
CommonDialog1.FilterIndex = 2
' 设置默认文件类型
CommonDialog1.Action = 1
' 激活“打开”对话框
txtNotepad.Text = “”
' 清除文本框中原有内容
If CommonDialog1.FileTitle “” Then
' 选定文件后执行下列操作
Dim InputData As String
' 保存文件中每行内容
Open CommonDialog1.FileName For Input As #1
' 打开文件,准备读文件
Do While Not EOF(1)
Line Input #1, InputData
' 每次读一行
' 将读出内容连接在文本框已有文本之后并回车换行
txtNotepad.Text = txtNotepad.Text + InputData + vbCrLf
Loop
Close #1
End If End Sub ' “另存为”菜单项的单击事件过程 Private Sub mnuSaveAs_Click()
CommonDialog1.FileName = “文本1.txt”
' 设置缺省文件名
CommonDialog1.DefaultExt = “txt”
' 设置缺省扩展名
CommonDialog1.InitDir = “C:”
CommonDialog1.Filter = “Word文档|*.doc|文本文件|*.txt|所有文件|*.*”
CommonDialog1.FilterIndex = 2
CommonDialog1.CancelError = True
' 选取“取消”按钮时出错
On Error GoTo errCancel
' 出错跳转至行标签errCancel
CommonDialog1.ShowSave
' 激活“另存为”对话框
Open CommonDialog1.FileName For Output As #1
' 打开文件,准备写入
Print #1, txtNotepad.Text
Close #1 errCancel:
' 行标签 End Sub ' 退出菜单项的单击事件过程 Private Sub mnuExit_Click()
End End Sub ' 以下过程用于判断是否已经选中文本
Private Sub txtNotepad_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
If Button = 1 And txtNotepad.SelText “” Then
' 松开左键并选中文本
mnuCopy.Enabled = True
' 使“复制”菜单项有效
mnuCut.Enabled = True
' 使“剪切”菜单项有效
Else
' 未选中文本
mnuCopy.Enabled = False
mnuCut.Enabled = False
End If End Sub Private Sub mnuCopy_Click()
' “复制”菜单项的单击事件过程
Clipboard.Clear
' 清除剪贴板中的内容
Clipboard.SetText txtNotepad.SelText
' 将选中的文本放到剪贴板中
mnuCopy.Enabled = False
mnuCut.Enabled = False
mnuPaste.Enabled = True End Sub Private Sub mnuCut_Click()
' “剪切”菜单项的单击事件过程
Clipboard.Clear
Clipboard.SetText txtNotepad.SelText
txtNotepad.SelText = “”
' 删除选中的文本
mnuCopy.Enabled = False
mnuCut.Enabled = False
mnuPaste.Enabled = True End Sub Private Sub mnuPaste_Click()' 将剪贴板中的文本插入到文本框焦点处,txtNotepad.SelText = Clipboard.GetText End Sub
' 或替换选中的文本
'设置对齐方式
Private Sub Alm_Click(Index As Integer)
txtNotepad.Alignment = Index End Sub
Private Sub font_Click()
CommonDialog1.FontName = “宋体”
'Flags为256+1,使用屏幕字体;出现颜色、效果等选项
CommonDialog1.Flags = 257
CommonDialog1.ShowFont
'打开“字体”对话框
txtNotepad.FontName = CommonDialog1.FontName
txtNotepad.FontSize = CommonDialog1.FontSize
txtNotepad.FontBold = CommonDialog1.FontBold
txtNotepad.FontItalic = CommonDialog1.FontItalic
txtNotepad.FontUnderline = CommonDialog1.FontUnderline
txtNotepad.FontStrikethru = CommonDialog1.FontStrikethru
txtNotepad.ForeColor = CommonDialog1.Color End Sub Private Sub Exxxt_Click()
End End Sub 实验六:
题目:文件处理
目的:
1、掌握顺序文件、随机文件的操作与访问
2、掌握文件系统控件的属性与常用操作
日期:1班为11月17日,2班为11月18日,3班为11月20日 内容:要求界面用铅笔画出来。
标准模块代码: Type Student Id As String * 8 Name As String * 10 Cla As String * 10 Subject As String * 20 Mark(1 To 3)As Integer End Type Public Stu As Student Public Filename As String Public Rec_no As Integer Public Rec_total As Integer Public Rec_long As Integer 窗体代码: Option Explicit Option Base 1 Private Sub Form_Load()
' Load事件过程
Filename = App.Path & “student.dat”
' 给定文件名便于操作
Rec_long = Len(Stu)
' 给定随机文件记录长度
Call FileOpen End Sub
Private Sub FileOpen()'打开学生信息数据文件
Dim I As Integer
Open Filename For Random As 1 Len = Rec_long
Rec_long = Len(Stu)
' 给定随机文件记录长度
Rec_total = LOF(1)/ Rec_long
'初始找开的为全部记录
'如为空记录,则清除各文本框的内容
If Rec_total = 0 Then
Call TxtClear
Exit Sub
Else
'如果有学生信息数据,则显示第一条记录
Rec_no = 1
Call Display
End If End Sub
Private Sub CmdAdd_Click()
' 添加记录事件过程
Dim I As Integer, nmsg As Integer
'以下循环是查找文件中是否有输入的学生记录
For I = 1 To Rec_total
Get #1, I, Stu
If Trim(Stu.Id)= Trim(TxtId.Text)Then
nmsg = MsgBox(“文件中已有该同学的记录,要显示修改此记录吗?”, vbYesNo)
If nmsg = vbYes Then
Rec_no = I
Call Display
End If
Exit Sub
End If
Next I
Call GetData
Rec_total = Rec_total + 1
Rec_no = Rec_total
' 在文件的末尾添加记录
Put #1, Rec_no, Stu End Sub
Private Sub CmdChange_Click()
' 修改当前记录事件过程
Call GetData
' 将修改的数据保存到记录变量中
Put #1, Rec_no, Stu
' 修改原记录
Call Display End Sub
Private Sub cmdDelete_Click()
' 删除当前记录事件过程
Dim I As Integer
Dim tempno As Integer
tempno = Rec_no
Open Filename & “.temp” For Random As #2 Len = Rec_long
'删除选定的记录
For I = 1 To Rec_total
If I tempno Then
Get #1, I, Stu
Put #2, , Stu
End If
Next I
Close
Kill Filename
Name Filename & “.temp” As Filename
Call FileOpen End Sub
Private Sub cmdBefore_Click()' 显示上一条记录事件过程
If Rec_no > 1 Then
Rec_no = Rec_no-1
Else
MsgBox “现已是首记录!”
Exit Sub
End If
Get #1, Rec_no, Stu
Call Display End Sub
Private Sub cmdNext_Click()
' 显示下一记录事件过程
Dim nmsg As Integer
If Rec_no
' 未到打开记录尾时执行该程序
Rec_no = Rec_no + 1
Call Display
' 显示当前记录
Else
nmsg = MsgBox(“已到最后一记录了!要回到首记录吗?”, vbYesNo)
If nmsg = vbYes Then
Rec_no = 1
'回到首记录
Call Display
End If
End If End Sub
Private Sub TxtClear()
'清除各文本框中内容子过程 Dim I As Integer With Stu
TxtId = “”:
TxtName = “”
TxtCla = “”:
TxtSubject = “”
For I = 1 To 3
TxtMark(I)= “”
Next I
TxtTotal = “” End With End Sub Private Sub Display()
'显示当前记录子过程 Dim I As Integer Get #1, Rec_no, Stu With Stu
TxtId =.Id
TxtName =.Name
TxtCla =.Cla
TxtSubject =.Subject
For I = 1 To 3
TxtMark(I)=.Mark(I)
Next I
TxtTotal =.Mark(1)+.Mark(2)+.Mark(3)End With End Sub
Private Sub GetData()
'将在文本框输入的数据存入到记录变量中
Dim I As Integer
Stu.Id = TxtId.Text
Stu.Name = TxtName.Text
Stu.Cla = TxtCla.Text
Stu.Subject = TxtSubject.Text
For I = 1 To 3
Stu.Mark(I)= Val(TxtMark(I).Text)
Next I End Sub Private Sub TxtMark_LostFocus(Index As Integer)
If Index = 3 Then '当输入完最后一门课程,则计算并显示意成绩
TxtTotal = Val(TxtMark(1))+ Val(TxtMark(2))+ Val(TxtMark(3))
End If End Sub 实验七:
题目:数据库程序设计及综合实例
目的:
1、掌握数据库的创建;掌握数据控件的一般属性、事件、方法
2、学会使用DATA控件和ADO控件对数据库进行访问 日期:1班为12月1日,2班为12月2日,3班为12月4日 内容:要求界面用铅笔画出来。
'“取消” 按钮的单击事件过程 Private Sub cmdCancel_Click()
txtID(0).Text = “”
txtID(1).Text = “” End Sub '“确定” 按钮的单击事件过程 Private Sub cmdOK_Click()
Dim sql As String, fld As String, condition As String
'显示的字段列表
fld = “学生.学号,学生.姓名,课程.课程名,成绩.成绩”
'查询条件
condition = “学生.学号=成绩.学号 and 课程.课程号=成绩.课程号 ”
If optChoice(0).Value Then
condition = condition + “and 学生.学号='” + txtID(0).Text + “'”
Else
condition = condition + “and 课程.课程号='” + txtID(1).Text + “'”
End If
sql = “select ” + fld + “ from 学生,课程,成绩 where ” + condition
'改变记录源
Adodc1.RecordSource = sql
Adodc1.Refresh End Sub '初始化查询窗体
Private Sub Form_Load()
Adodc1.Visible = False
Set DataGrid1.DataSource = Adodc1
'绑定操作
DataGrid1.AllowUpdate = False
'禁止更新 End Sub
'处理单选按钮的焦点切换
Private Sub optChoice_Click(Index As Integer)
txtID(Index).SetFocus End Sub '处理文本框的焦点切换
Private Sub txtID_GotFocus(Index As Integer)
optChoice(Index).Value = True End Sub
'“添加”按钮的单击事件过程 Private Sub cmdAdd_Click()
'根据当前按钮的标题进行不同的操作
Select Case cmdAdd.Caption
Case “添加”
'向当前选项卡所对应表中添加记录
Select Case SSTab1.Tab
Case 0
datStudent.Recordset.AddNew
Case 1
datCourse.Recordset.AddNew
Case 2
datScore.Recordset.AddNew
End Select
'在添加操作完成前禁止进行其他操作
SSTab1.TabEnabled(0)= False
SSTab1.TabEnabled(1)= False
SSTab1.TabEnabled(2)= False
cmdAdd.Caption = “确定”
cmdEdit.Enabled = False
cmdDel.Enabled = False
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
Case “确定”
Select Case SSTab1.Tab
Case 0
datStudent.UpdateRecord
Case 1
datCourse.UpdateRecord
Case 2
datScore.UpdateRecord
End Select
SSTab1.TabEnabled(0)= True
SSTab1.TabEnabled(1)= True
SSTab1.TabEnabled(2)= True
cmdAdd.Caption = “添加”
cmdEdit.Enabled = True
cmdDel.Enabled = True
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
End Select End Sub '“删除”按钮的单击事件过程 Private Sub cmdDel_Click()
Dim i As Integer
i = MsgBox(“确定要删除此记录?”, vbYesNo + vbExclamation + vbDefaultButton1, “编辑”)
If i = vbYes Then
'删除当前选项卡所对应表中的记录
Select Case SSTab1.Tab
Case 0
datStudent.Recordset.Delete
datStudent.Refresh
Case 1
datCourse.Recordset.Delete
datCourse.Refresh
Case 2
datScore.Recordset.Delete
datScore.Refresh
End Select
End If End Sub '“修改”按钮的单击事件过程 Private Sub cmdEdit_Click()
'根据当前按钮的标题进行不同的操作
Select Case cmdEdit.Caption
Case “修改”
'修改当前选项卡所对应表中的记录
Select Case SSTab1.Tab
Case 0
datStudent.Recordset.Edit
Case 1
datCourse.Recordset.Edit
Case 2
datScore.Recordset.Edit
End Select
'在修改操作完成前禁止进行其他操作
SSTab1.TabEnabled(0)= False
SSTab1.TabEnabled(1)= False
SSTab1.TabEnabled(2)= False
cmdEdit.Caption = “确定”
cmdAdd.Enabled = False
cmdDel.Enabled = False
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = False
cmdLast.Enabled = False
Case “确定”
Select Case SSTab1.Tab
Case 0
datStudent.UpdateRecord
Case 1
datCourse.UpdateRecord
Case 2
datScore.UpdateRecord
End Select
SSTab1.TabEnabled(0)= True
SSTab1.TabEnabled(1)= True
SSTab1.TabEnabled(2)= True
cmdEdit.Caption = “修改”
cmdAdd.Enabled = True
cmdDel.Enabled = True
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = True
cmdLast.Enabled = True
End Select End Sub '“首记录”按钮的单击事件过程 Private Sub cmdFirst_Click()
Select Case SSTab1.Tab
Case 0
datStudent.Recordset.MoveFirst
Case 1
datCourse.Recordset.MoveFirst
Case 2
datScore.Recordset.MoveFirst
End Select
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True End Sub '“尾记录”按钮的单击事件过程 Private Sub cmdLast_Click()
Select Case SSTab1.Tab
Case 0
datStudent.Recordset.MoveLast
Case 1
datCourse.Recordset.MoveLast
Case 2
datScore.Recordset.MoveLast
End Select
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False End Sub '“下一条”按钮的单击事件过程 Private Sub cmdNext_Click()
Select Case SSTab1.Tab
Case 0
datStudent.Recordset.MoveNext
If datStudent.Recordset.EOF Then
datStudent.Recordset.MoveLast
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False
End If
Case 1
datCourse.Recordset.MoveNext
If datCourse.Recordset.EOF Then
datCourse.Recordset.MoveLast
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False
End If
Case 2
datScore.Recordset.MoveNext
If datScore.Recordset.EOF Then
datScore.Recordset.MoveLast
cmdFirst.Enabled = True
cmdPrev.Enabled = True
cmdNext.Enabled = False
cmdLast.Enabled = False
End If
End Select End Sub '“上一条”按钮的单击事件过程 Private Sub cmdPrev_Click()
Select Case SSTab1.Tab
Case 0
datStudent.Recordset.MovePrevious
If datStudent.Recordset.BOF Then
datStudent.Recordset.MoveFirst
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
Case 1
datCourse.Recordset.MovePrevious
If datCourse.Recordset.BOF Then
datCourse.Recordset.MoveFirst
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
Case 2
datScore.Recordset.MovePrevious
If datScore.Recordset.BOF Then
datScore.Recordset.MoveFirst
cmdFirst.Enabled = False
cmdPrev.Enabled = False
cmdNext.Enabled = True
cmdLast.Enabled = True
End If
End Select End Sub '初始化编辑窗体
Private Sub Form_Load()
datStudent.Visible = False
'连接数据库
If Right(App.Path, 1)= “” Then
datStudent.DatabaseName = App.Path + “mydb.mdb”
Else
datStudent.DatabaseName = App.Path + “mydb.mdb”
End If
'设置记录源
datStudent.RecordSource = “学生”
datStudent.Refresh
'绑定控件
txtSID.DataField = “学号”
txtSName.DataField = “姓名”
optMale.Value = datStudent.Recordset.Fields(“性别”).Value
datCourse.Visible = False
datCourse.DatabaseName = datStudent.DatabaseName
datCourse.RecordSource = “课程”
datCourse.Refresh
txtCID.DataField = “课程号”
txtCName.DataField = “课程名”
txtPeriod.DataField = “学时”
txtCredit.DataField = “学分”
datScore.Visible = False
datScore.DatabaseName = datStudent.DatabaseName
datScore.RecordSource = “成绩”
datScore.Refresh
txtSSID.DataField = “学号”
txtSCID.DataField = “课程号”
txtScore.DataField = “成绩”
SSTab1.Tab = 0 '设置当前选项卡为“学生”选项卡 End Sub