VB实验报告教案(47)_vb实验报告含答案

2020-02-27 教案模板 下载本文

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

《VB实验报告教案(47).docx》
将本文的Word文档下载,方便收藏和打印
推荐度:
VB实验报告教案(47)
点击下载文档
相关专题 vb实验报告含答案 实验报告 教案 vb vb实验报告含答案 实验报告 教案 vb
[教案模板]相关推荐
    [教案模板]热门文章
      下载全文