1、Visual Basic 程序设计基础教材习题参考答案第 1 章 Visual Basic 6.0 程序 设计概述一、判断题1 23 说 明 : 同 类 控 件 ( 如 两 个 标 签 ) 相 互 重 叠 , 设 计 时 可 以 设 置 “置 前 ”、 “置 后 ”属 性 。4 5 6 7 8 9 10 11 1213 14 15 16 17 18 19 20二、选择题1. C 2. B 3D 4C 5B 6A 7D 8 A 9B 10A 11C 12D三、填空题1对象、事件 2属性、方法、事件 3控件、屏幕(Screen)4对象 5Left、Top 6属性、.=7网格 8F orm19Loa
2、d 或 Initialize 或 Resize 或 Activate(自动执行的先后顺序也按此排列)10Activate、Deactivate四、程序设计题程序 1界面设计参看图 10-1、10-2 以及表 10-1。表 10-1 实例 2 各控件的主要属性设置控件 属性(属性值) 属性(属性值)标签控件 1 Name(Label1) Caption(“我的第一个 VB 程序“)Name(Label2) Caption(“请输入你的姓名“)标签控件 2FontUnderLine(True) FontItalic(True)命令按钮 1 Name(Command1) Caption(“确定( i
3、 * j;Next jPrintNext iEnd Sub程序 4界面设计略,过程设计如下:Private Sub Form_Click()Dim x As Single, s As Single, t As SingleDim i As Integer, n As Integerx = InputBox(“请输入 x 的值:“)n = InputBox(“请输入 n 的值:“)t = x / 2: s = tFor i = 3 To nt = t * x / is = s + tNext iPrint sEnd Sub程序 5界面设计略,过程设计如下:Private Sub Form_Cli
4、ck()Dim e As Single, t As Single, i As Integere = 2: t = 1: i = 1While t = 0.0001i = i + 1: t = t / i: e = e + tWendPrint eEnd Sub程序 6界面设计略,过程设计如下:Option Base 1Private Sub Form_Click()Dim n As Integer, a(9, 9) As Integer, i As Integer, j As IntegerOn Error GoTo k 下列代码中若出现错误,转到标号为 K 的语句执行。n = InputBo
5、x(“请输入 n,0 Abs(xmax) Then xmax = x(i, j): ki = i: kj = jNext j, iEnd Sub第 5 章 常用控件一、判断题1 2 3 4 5 6 7 8 910 11 12 13 14 15 16 17 1819 20 21 22 23 24 25二、选择题1C 2D 3B 4B 5B 6C 7B 8B 9B 10A11D 12C 13B 14B 15A 16D 17B 18B 19B 20A三、填空题1上、下、左、左 2缇、无关 3 _Data Source = E:GYHVB学籍 1b.mdb; Persist Security Info
6、 = False“)CommandType(“1-adCmdText“)、RecordSource(“select * from 成绩“)DataGrid1:DataSource(“Adodc1“)(2)主要事件过程代码Option ExplicitPrivate Sub Form_Load()Caption = “学籍信息编辑浏览“Label1.Caption = “学号:“ : Label2.Caption = “姓名:“Label3.Caption = “出生年月:“ : Label4.Caption = “奖学金:“Label5.Caption = “简历:“ : Label6.Cap
7、tion = “照片:“Check1.Caption = “性别( 选中表示男,否则为女)“Label7.Caption = “成绩信息查询显示“: Adodc1.Visible = FalseEnd SubPrivate Sub Data1_Reposition()Adodc1.RecordSource = “select 成 绩 .课 程 号 ,课 程 名 ,成 绩 from 学 生 ,课 程 ,成 绩 “ _Data Source = E:GYHVB学籍 1b.mdb; Persist Security Info = False“CommandType(“1-adCmdText“)、Re
8、cordSource(“select * from 学生)DataGrid1:DataSource(“Adodc1“)(2)主要事件过程代码Option ExplicitPrivate Sub Form_Load()Dim i As IntegerCaption = “学籍信息查询浏览“: Adodc1.Visible = FalseLabel1.Caption = “选择查询方式:“: Combo1.Text = “全部都显示“Label2.Caption = “全部表文件数据浏览表格:“ : Label3.Visible = FalseText1.Visible = False: Text
9、1.Text = “For i = 0 To 2Combo1.AddItem Mid(“全部都显示按学号查询按姓名查询 “, 5 * i + 1, 5)Next iEnd SubPrivate Sub Combo1_Click()Select Case Combo1.ListIndexCase 0Text1.Visible = False: Label3.Visible = FalseAdodc1.RecordSource = “select * from 学生“Label2.Caption = “全部表文件数据浏览表格:“: Adodc1.RefreshCase 1Label3.Captio
10、n = “输入查询条件( 学号):“ : Text1.Visible = TrueLabel3.Visible = True: Text1.SetFocusCase 2Label3.Caption = “输入查询条件( 姓名):“ : Text1.Visible = TrueLabel3.Visible = True: Text1.SetFocusEnd SelectEnd SubPrivate Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)If KeyCode = vbKeyReturn ThenIf Combo1.ListIn
11、dex = 1 ThenAdodc1.Recordset.MoveFirstAdodc1.Recordset.Find “学号=“ _Data Source = E:GYHVB学籍 1b.mdb; Persist Security Info=False“)CommandType(“2-adCmdTable“)、RecordSource(“学生“)Adodc2(kc): ConnectionString(“Provider=Microsoft.Jet.OLEDB.4.0; _Data Source = E:GYHVB学籍 1b.mdb; Persist Security Info=False“)
12、CommandType(“2-adCmdTable“)、RecordSource(“课程“)Adodc3(cjcx):ConnectionString(“Provider=Microsoft.Jet.OLEDB.4.0; _Data Source = E:GYHVB学籍 1b.mdb; Persist Security Info=False“)CommandType(“1-adCmdText“)RecordSource(“ select 成绩. 学号,学生. 姓名,成绩.课程号,课程.课程名, _成绩.成绩 from 学生,课程,成绩 where 成绩.课程号 = 课程.课程号 _and 成绩
13、. 学号 = 学生.学号 “DataGrid1:DataSource(“cjcx“)DataList1:RowSource(“xs“)、ListField (“姓名“ )、BoundColumn(“学号“)DataList2: RowSource(“kc“)、 ListField(“课 程 名 “)、 BoundColumn(“课 程 号 “)(2)主要事件过程代码Option ExplicitDim p As BytePrivate Sub Form_Load()Dim i As IntegerFor i = 0 To 4Label1(i).Caption = Mid(“优秀良好中等及格差等
14、“, 2 * i + 1, 2)Text1(i).Text = “: Text1(i).BackColor = RGB(205, 205, 192)Text1(i).Locked = TrueNext icjcx.RecordSource = “select 成 绩 .学 号 ,学 生 .姓 名 ,成 绩 .课 程 号 ,课 程 .课 程 名 , “ _Data Source = E:GYHVB学籍 1b.mdb; Persist Security Info = False“)CommandType(“2-adCmdTable“)、RecordSource(“学生“)LockType(“4-a
15、dBatchOptimistic)Adodc2:ConnectionString(“Provider = Microsoft.Jet.OLEDB.4.0; _Data Source = E:GYHVB学籍 1b.mdb; Persist Security Info=False“)CommandType(“2-adCmdTable“)、RecordSource(“课程“)LockType(“4-adBatchOptimistic“)Adodc3:ConnectionString(“Provider = Microsoft.Jet.OLEDB.4.0; _Data Source = E:GYHVB
16、学籍 1b.mdb; Persist Security Info = False“)CommandType(“2-adCmdTable“)、RecordSource(“成绩“)LockType(“4-adBatchOptimistic“)Text1:用于显示编辑“学号“,但是本字段不设置数据绑定属性,输入或修改后的 “学号“数据通过代码方式写入数据源中。Text2: DataSource(“Adodc1“)、DataField(“姓名“)Check1:DataSource(“Adodc1“)、DataField(“性别“)Text3: DataSource(“Adodc1“)、DataFiel
17、d(“出生日期“)Text4: DataSource(“Adodc1“)、DataField(“奖学金“)Text5:用于显示编辑“课程号“,但是本字段不设置数据绑定属性,输入或修改后的 “课程号“ 数据通过代码方式写入数据源中。Text6: DataSource(“Adodc2“)、DataField(“课程名“)Text7: DataSource(“Adodc2“)、DataField(“学时数“)Text8: DataSource(“Adodc2“)、DataField(“学分数“)Text9: DataSource(“Adodc2“)、DataField(“开课学期“)Text10:D
18、ataSource(“Adodc2“)、DataField(“考试考查标志“)Text11:用于显示编辑成绩表中的“学号“ ,但是本字段不设置数据绑定属性,输入或修改后的“学号“数据通过代码方式写入数据源中。Text12:用于显示编辑成绩表中的“课程号“ ,但是本字段不设置数据绑定属性,输入或修改后的“课程号“数据通过代码方式写入数据源中。Text12:DataSource(“Adodc3“)、DataField(“成绩“)(2)主要事件过程代码Option ExplicitDim vlt As Boolean, rn As VariantPrivate Sub Form_Load()Dim
19、i As IntegerFor i = 0 To 7Command1(i).Caption = Mid(“追 加 更 新 删 除 表 首 前 翻 后 翻 表 尾 返 回 “, 2 * i + 1, 2)Next iCommand1(3).Enabled = False: Command1(4).Enabled = FalseLabel1.Caption = “学号:“ : Label2.Caption = “姓名:“Label3.Caption = “出生年月:“ : Label4.Caption = “奖学金:“Check1.Caption = “性别(选中为男,否则为女)“Label5.C
20、aption = “课程号:“ : Label6.Caption = “课程名:“Label7.Caption = “学时数:“ : Label8.Caption = “学分数:“Label9.Caption = “开课学期:“: Label10.Caption = “考试考查标志:“Label11.Caption = “学号:“ : Label12.Caption = “课程号:“Label13.Caption = “成绩“Label14.Caption = “追 加 ”、 “删 除 ”或 是 修 改 操 作 完 成 之 后 必 须 按 “更 新 ”按 钮“Caption = “学籍信息浏览
21、编辑“Text1.Text=Adodc1.Recordset(“学 号 “): Text5.Text=Adodc2.Recordset(“课 程 号 “)Text11.Text=Adodc3.Recordset(“学 号 “): Text12.Text=Adodc3.Recordset(“课 程 号 “)vlt = TrueEnd SubPrivate Sub Command1_Click(Index As Integer)Dim xh As String, kch As String, answer As ByteOn Error GoTo errshowSelect Case IndexC
22、ase 0Select Case SSTab1.TabCase 0Adodc1.Recordset.AddNew: Adodc1.Recordset (“学 号 “) = “000000“Case 1Adodc2.Recordset.AddNew: Adodc2.Recordset (“课程号“) = “0000“Case 2Adodc3.Recordset.AddNew: Adodc3.Recordset (“学 号 “) = “000000“Adodc3.Recordset (“课程号“) = “0000“End SelectCase 1Select Case SSTab1.TabCase
23、 0: Adodc1.Recordset.UpdateBatchCase 1: Adodc2.Recordset.UpdateBatchCase 2: Adodc3.Recordset.UpdateBatchEnd SelectCase 2answer = MsgBox(“真的确定要删除当前记录吗?“, 1 + 32, “删除确认“)If answer = 1 ThenSelect Case SSTab1.TabCase 0xh = Adodc1.Recordset(“学号“): Adodc3.Recordset.MoveFirstDoAdodc3.Recordset.Find “学号=“ &
24、 xh & “If Not Adodc3.Recordset.EOF ThenAdodc3.Recordset.Delete: Adodc3.Recordset.MoveNextElseExit DoEnd IfLoopAdodc3.Recordset.MoveFirst: Adodc1.Recordset.DeleteAdodc1.Recordset.MoveNextCase 1kch = Adodc2.Recordset(“课 程 号 “): Adodc3.Recordset.MoveFirstDoAdodc3.Recordset.Find “课程号=“ & kch & “If Not Adodc3.Recordset.EOF ThenAdodc3.Recordset.Delete: Adodc3.Recordset.MoveNextElseExit DoEnd IfLoopAdodc3.Recordset.MoveFirst: Adodc2.Recordset.DeleteAdodc2.Recordset.MoveNext