版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 Visual Basic程序设计项目化教程 单元一 考试系统功能概述教学目标通过本单元的学习,使学生了解考试系统的基本功能并掌握Visual Basic程序设计的基础知识。熟悉Visual Basic集成开发环境。教学重点考试系统功能介绍。考试系统组成。Visual Basic集成开发环境。1.1 考试系统功能介绍1.2 考试系统组成1.3 数据表与各字段含义1.4 Visual Basic集成开发环境1.5 面向对象程序设计的相关概念1.6 实例:字母大小写转换授课内容1.1 考试系统功能介绍 “Visual Basic程序设计”课程以考试系统客户端项目的开发为主线,由十个基本功能组成,分
2、别是登录功能的设计与实现、目录树功能的设计与实现、单选题功能的设计与实现、多选题功能的设计与实现、判断题功能的设计与实现、填空题功能的设计与实现、简答题功能的设计与实现、交卷和评分功能的设计与实现、查看答案功能的设计与实现和计时功能的设计与实现。采用过程性考核方式进行考核,每个过程各占10分。过程性考核占70%,平时成绩占30%。1登录功能演示2目录树功能演示3单选题功能演示4多选题功能演示5判断题功能演示6填空题功能演示7简答题功能演示8交卷和评分功能演示9查看答案功能演示10计时功能演示1.1 考试系统功能介绍1. 登录界面演示 登录界面如下图所示,由4个标签、3个文本框和2个命令按钮组成
3、。当输入正确的“准考证号”和“身份证号”后按【Enter】键,在“考生姓名”文本框中显示当前考生的姓名,否则系统提示“请确认准考证号或身份证号是否正确!”信息。正确输入准考证号和身份证号后,单击“登录”按钮进入考试系统主界面。1. 登录界面演示2. 目录树功能演示 目录树界面如下图所示,由一个TreeView控件组成,目录树可以根据窗口的大小自动缩放。当主界面装载时自动生成当前考生的目录树。该目录树有5个一级目录,分别是单选题、多选题、判断题、填空题和简答题。在每个一级目录下,自动根据当前考生的准考证号对应的单选题、多选题、判断题、填空题和简答题的数量,生成相应数量的二级目录。2. 目录树功能
4、演示3. 单选题功能演示 单选题界面如下图所示,由1个标签和4个单选按钮控件组成,为4选1题目。当单击目录树单选题下的结点时,根据目录树控件选中的结点显示该题的题目内容、答案选项和考生答案。当单击答案选项时,将对应的答案保存到数据库中。3. 单选题功能演示4. 多选题功能演示 多选题界面如下图所示,由1个标签和4个多选按钮控件组成,为4选多题目。当单击目录树多选题下的结点时,根据目录树控件选中的结点显示该题的题目内容、答案选项和考生答案。当单击答案选项时,将对应的答案保存到数据库中。4. 多选题功能演示5. 判断题功能演示 判断题界面如下图所示,由1个标签和2个单选按钮控件组成,为2选1题目。
5、当单击目录树判断题下的结点时,根据目录树控件选中的结点显示该题的题目内容、答案选项和考生答案。当单击答案选项时,将对应的答案保存到数据库中。5. 判断题功能演示6. 填空题功能演示 填空题界面如下图所示,由1个标签和1个文本框控件组成。当单击目录树填空题下的结点时,根据目录树控件选中的结点显示该题的题目内容和考生答案。当考生答案失去输入焦点时,将对应的答案保存到数据库中。6. 填空题功能演示7. 简答题功能演示 简答题界面如下图所示,由1个标签和1个文本框控件组成。当单击目录树简答题下的结点时,根据目录树控件选中的结点显示该题的题目内容和考生答案。当考生答案失去输入焦点时,将对应的答案保存到数
6、据库中。7. 简答题功能演示8. 交卷和评分功能演示 交卷和评分界面由一个Menu控件组成。共有4个菜单项,分别是交卷、评分、查看答案和退出。当单击交卷时,修改考试状态、菜单状态和试题状态为“已考”,并启动评分功能。当单击“评分”时,系统自动计算单选题、多选题、判断题、填空题和简答题的成绩,显示考生的总成绩,如图1-8所示,并修改考试状态为“完成”。当单击“查看答案”时,系统自动显示用户选中的题目的正确答案。当单击“退出”时,系统退出考试系统。8. 交卷和评分功能演示9. 查看答案功能演示 查看答案界面如下图所示,由5个文本框和1个通用对话框控件组成。5个文本框分别对应单选题、多选题、判断题、
7、填空题和简答题的正确答案。一个通用对话框可以设置正确答案的颜色。当单击“查看答案”时,系统自动显示用户选中的题目的正确答案。9. 查看答案功能演示10. 计时功能演示 计时界面如下图所示,由1个定时控件、1个状态栏控件和1个ADO控件组成。考生进入考试系统主界面后,开始计时,并在状态栏上实时显示考生姓名、准考证号、身份证号、考生状态、当前时间和剩余时间;当考生交卷后停止计时;当考生剩余时间还有5分钟时,提示考生掌握考试时间;当考生剩余时间为0时,系统自动交卷。10. 计时功能演示1.2 考试系统组成 “Visual Basic程序设计项目教程”课程以考试系统项目的开发为主线,整个考试系统由10
8、个基本功能组成,分别是登录功能的设计与实现、目录树功能的设计与实现、单选题功能的设计与实现、多选题功能的设计与实现、判断题功能的设计与实现、填空题功能的设计与实现、简答题功能的设计与实现、交卷和评分功能的设计与实现、查看答案功能的设计与实现和计时功能的设计与实现,如下图所示。1.2 考试系统组成1. 登录功能 登录界面设计。 根据准考证号和身份证号显示考生姓名。 根据考生状态不同显示两次登录界面或考试主界面。 两次登录界面和考试主界面设计。 根据考生状态不同修改考生状态。2. 目录树功能 单选题目录生成。 多选题目录生成。 判断题目录生成。 填空题目录生成。 简答题目录生成。3. 单选题功能
9、单选题界面设计; 根据考生的登录信息在TreeView控件中添加相应结点。 根据TreeView控件选中的结点显示该题的题目内容和答案选项。 根据TreeView控件选中的结点显示该题的考生答案。 保存考生选择的答案。4. 多选题功能 多选题界面设计。 根据考生的登录信息在TreeView控件中添加相应结点。 根据TreeView控件选中的结点显示该题的题目内容和答案选项。 根据TreeView控件选中的结点显示该题的考生答案。 保存考生选择的答案。5. 判断题功能判断题界面设计;根据TreeView控件选中的节点显示该题的题目内容;根据TreeView控件选中的节点显示该题的答案选项;根据T
10、reeView控件选中的节点显示该题的考生答案;保存考生选择的答案;6. 填空题功能填空题界面设计;根据TreeView控件选中的节点显示该题的题目内容;根据TreeView控件选中的节点显示该题的答案选项;根据TreeView控件选中的节点显示该题的考生答案;保存考生的答案;7. 简答题功能简答题界面设计;根据TreeView控件选中的节点显示该题的题目内容;根据TreeView控件选中的节点显示该题的答案选项;根据TreeView控件选中的节点显示该题的考生答案;保存考生的答案;8. 交卷和评分功能单项选择题评分;多项选择题评分;判断题评分;填空题评分;简答题评分;9. 查看答案功能查看单
11、项选择题答案;查看多项选择题答案;查看判断题答案;查看填空题答案;查看简答题答案;10. 计时功能登录时根据考生状态开始计时、继续计时或不计时;考试进行中自动计时(获取服务器时间);剩余时间为5分钟时提示考生注意掌握时间;剩余时间为0时自动交卷;交卷时停止计时;1.3 数据表与各字段含义 整个考试系统共用到6个表,各个表与试题类型对照如下表所示。序号表名试题类型1choose单项选择题2MultiSelect多项选择题3judge判断题4cloze填空题5shortAnswer简答题6Student考生信息1. 单选题表(choose)列 名数据类型长 度说 明备 注IDbigint8试题编号
12、主键Topicntext2 048试题内容Key1ntext2 048答案AKey2ntext2 048答案BKey3ntext2 048答案CKey4ntext2 048答案DKey5ntext2 048答案EKey6ntext2 048答案FKeyCounttinyint1答案数量RightKeynvarchar20正确答案StudentCodenvarchar50考生考号StuKeynvarchar20考生答案Scoredecimal9分数2. 多选题(MultiSelect)列 名数据类型长 度说 明备 注IDbigint8试题编号主键Topicntext2 048试题内容Key1nt
13、ext2 048答案AKey2ntext2 048答案BKey3ntext2 048答案CKey4ntext2 048答案DKey5ntext2 048答案EKey6ntext2 048答案FKeyCounttinyint1答案数量RightKeynvarchar20正确答案StudentCodenvarchar50考生考号StuKeynvarchar20考生答案Scoredecimal9分数3. 判断题(judge)列名数据类型长度说明备注IDbigint8试题编号主键Topicntext2048试题内容RightKeynvarchar20正确答案StudentCodenvarchar50考
14、生考号StuKeynvarchar20考生答案Scoredecimal9分数4. 填空题(cloze)列 名数据类型长 度说 明备 注Answer3nvarchar2048正确答案3StuKeynvarchar2048考生答案Scoredecimal9分数列 名数据类型长 度说 明备 注IDbigint8试题编号主键Topicntext2048试题内容StudentCodenvarchar50考生考号Answer1nvarchar2048正确答案1Answer2nvarchar2048正确答案25. 简答题(shortAnswer)列 名数据类型长 度说 明备 注IDbigint8试题编号主键
15、Topicntext2048试题内容StudentCodenvarchar50考生考号Answernvarchar2048正确答案StuKeynvarchar2048考生答案Scoredecimal9分数6. 考生信息(StudentData)列 名数据类型长 度说 明备 注IDbigint8考生编号主键StudentNamevarchar50考生姓名IDCardvarchar50身份证号码Unitvarchar50单位StudentCodevarchar255考生考号KSAddressvarchar50考试地点KSTimesmalldatetime4考试时间ComputerNamevarch
16、ar50机器名称IP_Netvarchar50IP地址Start_timedatetime8开始时间Close_timedatetime8结束时间RemainTimesmallint2剩余时间Scoredecimal9得分StudentStatusvarchar50考生状态1.4 VB集成开发环境 1.5 面向对象程序设计的相关概念1、类类是创建对象实例的模板, 包含了创建对象的属性描述和行为特征的定义。2、对象是类的一个实例,继承了类的属性、方法。VB中常用的对象有:窗体、控件等。1.5 面向对象程序设计的相关概念3、对象的三要素(1)属性 对象的性质,即用来描述和反映对象特征的参数。(2)
17、方法 对象的行为,即将一些通用的过程编写好并封装起来,作为方法供用户直接调用。(3)事件 响应对象的动作称为事件,它发生在用户与应用程序交互时。如单击控件、鼠标移动、键盘按下等。1.5 面向对象程序设计的相关概念4、事件过程 指附在该对象上的用户编写的程序代码,是事件的处理程序。5、事件驱动过程 是图形用户界面的本质,由用户控制而代码作出响应。6、VB程序的执行步骤启动应用程序,装载和显示窗体;窗体(或窗体上的控件)等待事件的发生;事件发生时,执行对应的事件过程;重复执行步骤(2)和(3) ;直到遇到END结束语句结束程序的运行;或按“结束”强行停止程序的运行。1.5 面向对象程序设计的相关概
18、念7、建立简单应用程序的一般步骤建立用户界面的对象;对象属性的设置;对象事件过程及编程;程序运行和调试;保存文件。1.6.1 任务描述1.6.2 任务分析1.6.3 任务设计1.6.4 任务实现1.6 实例:字母大小写转换每输入一个字符,马上就进行判断和转换。转换规则如下: 大写字母转换成小写字母; 小写字母转换成大写字母; 空格不转换; 其余转换成“*”。1.6.1 任务描述运行情况如下所示: 1.6.1 任务描述图1-20 字母大小写转换运行结果要完成任务描述的功能,应该实现以下功能: 结束功能。 清屏功能。 字符转换功能。1.6.2 任务分析1界面设计 字母大小写转换由两个标签控件、两个
19、文本框控件和两个命令按钮控件组成,分别双击工具箱中的标签控件、文本框控件和命令按钮控件,在窗体设计窗口添加控件,并调整控件位置和大小,界面如图1-21所示。 在设计窗口或属性窗口分别选中表1-8所示的控件,然后在属性窗口中修改对应的属性,控件名称和控件属性如表1-8所示,修改完成后如图1-22所示。1.6.3 任务设计1.6.3 任务设计图1-22 字母大小写转换属性设计图1-21 字母大小写转换界面设计1.6.3 任务设计控件类型控件名称控件属性FormForm1Caption=”字母大小写转换”LabelLabel1Caption=”输入字符串”LabelLabel2Caption=”转换
20、字符串”TextBoxtxtInText=”MultiLine=TrueScrollBars=”Both”TextBoxtxtOutText=”MultiLine=TrueScrollBars=”Both”CommandButtoncmdClearCaption=”清屏”CommandButtoncmdEndCaption=”结束”2属性设计1.6.4 任务实现1在代码窗口添加清屏按钮功能代码Private Sub cmdClear_Click() txtIn.Text= txtOut.Text=End Sub2在代码窗口添加结束按钮功能代码Private Sub cmdEnd_Click()
21、 EndEnd Sub3在代码窗口添加字符转换功能代码Private Sub txtIn_KeyPress(KeyAscii As Integer) Select Case KeyAscii Case 65 To 90 txtOut.Text=txtOut.Text+Chr$(KeyAscii+32) Case 97 To 122 txtOut.Text=txtOut.Text+Chr$(KeyAscii-32) Case 32 txtOut.Text=txtOut.Text+ Case Else txtOut.Text=txtOut.Text+* End SelectEnd Sub1.6.4
22、 任务实现第二课堂 服务器端功能概述 请查阅资料,整理出服务器端应该由哪些基本功能组成,要完成这些基本功能需要由哪些表来存储数据?在数据库中创建这些表,并设计它们的字段类型和长度。 Visual Basic程序设计项目化教程 单元二 登录功能的设计与实现教学目标通过本课题的学习,使学生熟练掌握考试系统登录功能的设计与实现方法。教学重点Data和ADO控件使用。登录功能的设计方法。登录功能的实现方法。键盘和鼠标事件。2.1 任务描述2.2 相关知识点2.3 任务分析2.4 任务设计和实现2.5 任务拓展授课内容2.1 任务描述 登录界面由4个标签、3个文本框和4个命令按钮组成。当输入正确的“准考
23、证号”和“身份证号”后按【Enter】键,在“考生姓名”文本框中显示当前考生的姓名,否则系统提示“请确认准考证号或身份证号是否正确!”信息。单击“登录”按钮进入考试系统主界面。2.2 相关知识点2.2.1 字符串连接运算符和+ 2.2.2 数据库的备份与恢复基本操作2.2.3 Data数据控件2.2.4 ADO数据控件2.2.5 与用户交互函数和过程2.2.6 基本控件和窗体2.2.7 鼠标和键盘2.2.1 字符串连接运算符和+ 字符串运算符有两个:“”和“+”,它们的功能都是将两个字符串拼接起来。 123 + 456 结果 123456 123 & 456 结果 123456 区别:+ 两边
24、必须是字符串,&两边不一定是字符串。2.2.2 数据库的备份与恢复基本操作1数据库的备份2数据库的恢复3数据的导入与导出4基本SQL语句2.2.3 Data数据控件 工具箱内数据控件图标形状如图2-11所示。 画在窗体上的外观,如图2-12所示。 图2-11 数据控件图标 图2-12 数据控件画在窗体上的外观2.2.4 ADO数据控件在使用ADO数据控件前,必须先通过“工程”“部件”菜单命令选择“Microsoft ADO Data Control 6.0(OLE DB)”选项,将ADO数据控件添加到工具箱。ADO数据控件与Visual Basic的内部数据控件很相似,它允许使用ADO数据控件
25、的基本属性快速地创建与数据库的连接。1InputBox函数InputBox(提示,标题,缺省,x 坐标位置,y坐标位置)其中:“提示”为提示信息;“标题”为对话框标题;“缺省”为输入区缺省值。函数返回字符类型。例:要在屏幕上显示图2-18所示的对话框:图2-18 与用户交互函数实例2.2.5 与用户交互函数和过程2MsgBox函数和MsgBox过程函数形式:变量% = MsgBox(提示,按钮,标题)过程形式:MsgBox 提示,按钮,标题2.2.5 与用户交互函数和过程2.2.6 基本控件和窗体1常用属性 Name名称属性。创建的对象名称,有默认的名。在程序中,控件名是作为对象的标识而引用,
26、不会显示在窗体上。 Caption标题属性。该属性决定了控件上显示的内容。 Height、width、top和left属性。如图2-19所示。图2-19 Height、width、top和left属性2常用方法方法是面向对象的,故使用的形式为:对象.方法(1)Print方法(2)Cls方法(3)Move方法2.2.6 基本控件和窗体3窗体控件(1)属性(2)事件(3)方法4标签(Label)5文本框(TextBox)6命令按钮(CommandButton)2.2.6 基本控件和窗体2.2.7 鼠标和键盘1鼠标事件2键盘事件2.3 任务分析要完成任务描述的功能,应该实现以下功能: 连接数据库。
27、验证准考证号和身份证号。 读取考生姓名。 验证通过显示主界面。 验证失败提示错误信息。2.4.1 固定数据验证的登录功能的任务设计和实现2.4.2 数据库数据验证的登录功能的任务设计与实现2.4.3 考试系统登录功能的任务设计与实现2.4 任务设计和实现1功能描述 输入正确的用户名和密码(用户名为“guest”,密码为“123456”)进入主界面,否则提示请确认用户名或密码是否正确!。 运行后在用户名处输入“guest”,在密码处输入“123456”,运行界面如图2-21所示。 图2-21 固定用户名和密码运行界面2.4.1 固定数据验证的登录功能的任务设计和实现2界面设计 登录界面由两个标签
28、控件、两个文本框控件和两个命令按钮控件组成,界面如图2-22所示。图2-22 固定用户名和密码登录界面2.4.1 固定数据验证的登录功能的任务设计和实现2.4.1 固定数据验证的登录功能的任务设计和实现3属性设计4任务实现Private Sub cmdExit_Click()EndEnd SubPrivate Sub cmdOK_Click()If txtUserName.Text=guest And txtPassWord.Text=123456 ThenMe.HidefrmMain.ShowElseMsgBox 请确认用户名或密码是否正确!, vbInformationation, 系统提
29、示End IfEnd Sub2.4.2 数据库数据验证的登录功能的任务设计与实现1功能描述 输入正确的准考证号和身份证号(来自数据库)进入主界面,否则提示请确认准考证号或身份证号是否正确!。 运行后,输入准考证号为“370501010001”, 身份证号为“1”,运行界面如图2-24所示。图2-24 数据库准考证号和身份证号运行界面2界面设计 界面由两个标签控件、两个文本框控件、两个命令按钮控件和一个ADO控件组成,界面如图2-25所示。图2-25 数据库准考证号和身份证号设计界面2.4.2 数据库数据验证的登录功能的任务设计与实现3属性设计2.4.2 数据库数据验证的登录功能的任务设计与实现
30、控件类型控件名称控件属性FormfrmLoginCaption=用户登录LabellblStudentCodeCaption=准考证号:LabellblIDCardCaption=身份证号:TextBoxtxtStudentCodeText=TextBoxtxtIDCardText=CommandButtonCmdOkCaption=”登录”CommandButtonCmdExitCaption=”退出”Cancel=TrueAdodcAdodc1ConnectionString=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Secu
31、rity Info=False;Initial Catalog=exam;Data Source=IBMR60EWXGCommandType=1-adCmdTextRecordSource=select * from student4任务实现Private Sub cmdExit_Click() EndEnd SubPrivate Sub cmdOK_Click() Adodc1.RecordSource=select*from student where studentcode=+ txtStudentCode.Text+ and idcard=+txtIDCard.Text+ Adodc1
32、.Refresh If Adodc1.Recordset.RecordCount0 Then Me.Hide frmMain.Show Else MsgBox 请确认准考证号或身份证号用户名或密码是否正确!, vbInformationation, 系统提示 End IfEnd Sub2.4.2 数据库数据验证的登录功能的任务设计与实现2.4.3 考试系统登录功能的任务设计与实现1功能描述 输入正确的准考证号和身份证号(来自数据库)按【Enter】键显示考生姓名,同时设置登录按钮为可用,单击登录按钮进入主界面,否则提示请确认准考证号或身份证号是否正确!,显示考生姓名为“未知”,同时设置登录按钮
33、为不可用。 在运行后,输入准考证号为“370501010001”, 身份证号为“1”,按【Enter】键显示考生姓名,运行界面如图所示。2界面设计 界面由4个标签控件、3个文本框控件、2个命令按钮控件和1个ADO控件组成。2.4.3 考试系统登录功能的任务设计与实现3属性设计2.4.3 考试系统登录功能的任务设计与实现控件类型控件名称控件属性FormfrmLoginCaption=用户登录LabelLblProptCaption=考生注意事项:输入“准考证号”和“身份证号”,按“回车”键显示考生姓名,再单击“登录”按扭。LabellblStudentCodeCaption=准考证号:Label
34、lblIDCardCaption=身份证号:LabellblNameCaption=考生姓名:TextBoxtxtStudentCodeText=TextBoxtxtIDCardText=TextBoxtxtNameText=未知CommandButtonCmdOkCaption=登录Enable=FalseCommandButtonCmdExitCaption=退出Cancel=TrueAdodcAdodc1ConnectionString= Provider=SQLOLEDB.1;Integrated Security=SSPI; Persist Security Info=False;I
35、nitial Catalog=exam;Data Source=IBMR60EWXGCommandType=1-adCmdTextRecordSource= select * from student4任务实现Private Sub cmdExit_Click() EndEnd SubPrivate Sub cmdOK_Click() Me.Hide frmMain.ShowEnd SubPrivate Sub txtIDCard_KeyPress(KeyAscii As Integer) CheckStudentCodeAndIDCard (KeyAscii)End SubPrivate S
36、ub txtStudentCode_KeyPress(KeyAscii As Integer) CheckStudentCodeAndIDCard (KeyAscii)End Sub2.4.3 考试系统登录功能的任务设计与实现Private Sub CheckStudentCodeAndIDCard(KeyAscii As Integer) If KeyAscii=13 Then Adodc1.RecordSource=select*from student where studentcode=+txt StudentCode.Text+and idcard=+txtIDCard.Text+
37、Adodc1.Refresh If Adodc1.Recordset.RecordCount0 Then txtStudentName.Text = Adodc1.Recordset.Fields.Item(studentname).Value cmdOK.Enabled=True Else txtStudentName.Text=未知 cmdOK.Enabled=False MsgBox 请确认准考证号或身份证号是否正确!, vbInformationation, 系统提示 End If End IfEnd Sub2.4.3 考试系统登录功能的任务设计与实现2.5 任务拓展 我们已经实现了登
38、录功能,但是实际使用过程中,还可能遇到很多的问题: 打开登录界面后,实现不关闭考试系统,不能打开任何其他程序的功能,如何实现? 登录时,如何实现输入随机验证码的功能? 登录时,如何实现加密狗验证功能? 登录时,如何实现单点登录功能? 登录时,如何避免用户多次重复登录问题?第二课堂服务器端考生信息管理功能的设计与实现 设计并实现服务器端考生信息管理实现考生基本信息的增加、修改、删除和查询功能。 Visual Basic程序设计项目教程 单元三 目录树功能的设计与实现教学目标通过本课题的学习,使学生掌握目录树控件的基本设置和使用方法。教学重点TreeView控件的基本属性、方法和事件。字符串函数M
39、id()、Left()和Right ()。全局变量的使用。3.1 任务描述3.2 相关知识点3.3 任务分析3.4 任务设计和实现3.5 任务拓展授课内容3.1 任务描述 目录树界面由一个TreeView控件组成。当主界面装载时自动生成当前考生的目录树。该目录树有5个一级目录,分别是单选题、多选题、判断题、填空题和简答题。在每个一级目录下,自动根据当前考生的准考证号对应的单选题、多选题、判断题、填空题和简答题的数量,生成相应数量的二级目录。3.2 相关知识点3.2.1 TreeView控件3.2.2 字符串函数3.2.3 变量、过程的作用域3.2.4 选择结构3.2.5 循环结构3.2.1 T
40、reeView控件1TreeView控件的属性(1)Nodes属性(2)Style属性(3)Sorted属性2TreeView控件的方法(1)Add 方法(2)GetVisibleCount方法3TreeView控件的事件4TreeView控件实例 要生成如图所示的目录树,首先新建一个“标准EXE”工程;然后通过“工程”菜单选择“部件”菜单项,在打开的“部件”对话框中选中“Microsoft Windows Common Controls 6.0(SP6)”项;再在工具箱中双击新添加的TreeView控件,将TreeView控件添加到设计窗口上,适当调整窗口大小和位置。3.2.1 TreeVi
41、ew控件最后切换到代码窗口,添加如下代码:Private Sub Form_Load()TreeView1.Nodes.Add , , 山西省, 山西省TreeView1.Nodes.Add 山西省, tvwChild, 潞城市, 潞城市TreeView1.Nodes.Add 潞城市, tvwChild, 史回乡, 史回乡TreeView1.Nodes.Add 史回乡, tvwChild, 白家沟村, 白家沟村TreeView1.Nodes.Add 史回乡, tvwChild, 王里堡村, 王里堡村TreeView1.Nodes.Add 史回乡, tvwChild, 杨家庄村, 杨家庄村Tre
42、eView1.Nodes.Add 潞城市, tvwChild, 黄牛蹄乡, 黄牛蹄乡TreeView1.Nodes.Add 黄牛蹄乡, tvwChild, 李庄村, 李庄村TreeView1.Nodes.Add 山西省, tvwChild, 晋城市, 晋城市TreeView1.Nodes.Add 晋城市, tvwChild, 阳城市, 阳城市TreeView1.Nodes.Add 阳城市, tvwChild, 阳城县, 阳城县以下三行运行时自动展开指定的结点TreeView1.Nodes(山西省).Expanded=TrueTreeView1.Nodes(潞城市).Expanded=TrueT
43、reeView1.Nodes(史回乡).Expanded=True运行时指定选中的结点TreeView1.Nodes(白家沟村).Selected=TrueEnd Sub3.2.1 TreeView控件3.2.2 字符串函数1Mid 函数返回 Variant (String),其中包含字符串中指定数量的字符。语法格式如下:Mid(string, start, length) 3.2.2 字符串函数2Left 函数返回Variant (String),其中包含字符串中从左边算起指定数量的字符。语法格式如下:Left(string, length)3.2.2 字符串函数3Right 函数示例 返回
44、 Variant (String),其中包含从字符串右边取出的指定数量的字符。 语法格式如下:Right(string, length) 3.2.3 变量、过程的作用域变量、过程随所处的位置不同,可被访问的范围。1过程的作用域模块级:加Private关键字的过程,只能被定义的窗体或模块中的过程调用。全局级:加Public关键字(默认)的过程,可供该应用程序的所有窗体和所有标准模块中的过程调用。2变量的作用域局部变量:在过程内用声明的变量,只能在本过程中使用。窗体/模块级变量:在“通用声明”段中用Dim语句或用Private语句声明的变量,可被本窗体/模块的任何过程访问。全局变量:在“通用声明”
45、段中用Public语句声明的变量,可被本应用程序的任何过程或函数访问。3.2.3 变量、过程的作用域3.2.4 选择结构1IfThen语句(单分支结构) If Then 语句块 End If或 If Then 3.2.4 选择结构2IfThenElse语句(双分支结构) If Then Else End If或 If Then Else 3.2.4 选择结构3IfThenElseIf语句(多分支结构) If Then ElseIf Then Else 语句块 n+1 End If3.2.4 选择结构4If语句的嵌套If语句的嵌套是指If或Else后面的语句块中又包含If语句。 If Then
46、If Then End If End If 3.2.4 选择结构5Select Case语句(情况语句)Select Case 变量或表达式Case 表达式列表1 语句块1Case 表达式列表2 语句块2Case Else 语句块n+1End Select3.2.4 选择结构6条件函数 Iif函数形式是:Iif(表达式,当表达式为True时的值,当表达式为False时的值)例如,求x,y中大的数,放入Tmax变量中,语句如下:Tmax=Iif(x y,x,y)3.2.4 选择结构 Choose函数形式是:Choose(数字类型变量,值为1的返回值,值为2的返回值)例如,Nop是14的值,转换成
47、 + 、-、运算符的语句如下:Op= Choose(Nop,”+”,”-“,”,”)当值为1,返回字符串“+”,然后放入Op变量中,值为2,返回字符串“-”,依此类推;当Nop是14的非整数,系统自动取Nop的整数再判断;若Nop不在14之间,函数返回Null值。3.2.4 选择结构 函数形式是:Switch(条件表达式1,条件表达式1为True时的值,条件表达式2,条件表达式2为True时的值)3.2.5 循环结构1For循环语句(一般用于循环次数已知)For 循环变量初值 to 终值 Step 步长 语句块 Exit For 语句块Next 循环变量3.2.5 循环结构2DoLoop循环语
48、句(用于控制循环次数未知)Do While|Until 语句块 Exit Do 语句块Loop3.2.5 循环结构3循环的嵌套一个循环体内又包含了一个完整的循环结构称为循环的嵌套。打印九九乘法表:For i=1 To 9 For j=1 To 9 se=i & & j & = & i * j Picture1.Print Tab(j-1)*9+1); se; Next j Picture1.PrintNext i3.3 任务分析要完成任务描述的功能,应该实现以下功能: 增加5个一级目录。 从数据库获取当前考生对应的单选题、多选题、判断题、填空题和简答题的数量,生成相应的数量的二级目录。 单击目
49、录树结点时,判断出是单击的哪种题型的第几题。3.4 任务设计3.4.1 功能描述3.4.2 界面设计3.4.3 属性设计3.4.1 功能描述 当主界面装载时自动生成当前考生的目录树。该目录树有5个一级目录,分别是单选题、多选题、判断题、填空题和简答题。在每个一级目录下,自动根据当前考生的准考证号对应的单选题、多选题、判断、填空题和简答题的数量,生成相应数量的二级目录。当单击单选题、多选题、判断题、填空题和简答题下的不同题目时,根据当前单击的二级目录不同,显示“你单击的是题第题。”。3.4.2 界面设计目录树界面由一个TreeView控件和一个ADO控件组成,界面如下图所示。3.4.3 属性设计
50、控件类型控件名称控件属性FormfrmMainScaleMode=pixelTreeViewtvwTopicFontSize=小四Style=7AdodcAdodc1ConnectionString=Provider=SQLOLEDB.1;Integrated Security=SSPI;Persist Security Info=False;Initial Catalog=exam;Data Source=IBMR60EWXGCommandType=1-adCmdText3.5 任务实现 在工程窗口中单击鼠标右键,在弹出的右键菜单中选择“添加”菜单中的“添加模块”项,增加Module1模块,
51、在Module1模块中新建全局变量,代码如下。Public StudentCode As String 修改frmLogin窗体的代码,为新建的全局变量赋值。Private Sub CheckStudentCodeAndIDCard(KeyAscii As Integer) (略) If Adodc1.Recordset.RecordCount 0 Then StudentCode = txtStudentCode.Text (略) Else (略) End If End Sub3.5 任务实现 修改frmMain窗体的代码,在目录树控件中添加单选题、多选题、判断题、填空题和简答题五个一级目录
52、结点,并在每个一级目录下,自动根据当前考生的准考证号对应的单选题、多选题、判断、填空题和简答题的数量,生成相应数量的二级目录。3.5 任务实现Private Sub Form_Load() 单选题结点添加 tvwTopic.Nodes.Add , , Choose, 单选题 Adodc1.RecordSource=select * from Choose where studentcode= + StudentCode+ Adodc1.Refresh For i=1 To Adodc1.Recordset.RecordCount tvwTopic.Nodes.Add Choose, tvwCh
53、ild, Choose + CStr(i), 第 + CStr(i) + 题 Next i tvwTopic.Nodes(Choose).Expanded = True3.5 任务实现 多选题结点添加 tvwTopic.Nodes.Add , , MultiSelect, 多选题 Adodc1.RecordSource=select * from MultiSelect where studentcode= + StudentCode+ Adodc1.Refresh For i=1 To Adodc1.Recordset.RecordCount tvwTopic.Nodes.Add Multi
54、Select, tvwChild, MultiSelect + CStr(i), 第+CStr(i)+题 Next i tvwTopic.Nodes(MultiSelect).Expanded = True3.5 任务实现 判断题结点添加 tvwTopic.Nodes.Add , , Judge, 判断题 Adodc1.RecordSource=select * from Judge where studentcode= + StudentCode+ Adodc1.Refresh For i=1 To Adodc1.Recordset.RecordCount tvwTopic.Nodes.Ad
55、d Judge, tvwChild, Judge+CStr(i), 第+ CStr(i) + 题 Next i tvwTopic.Nodes(Judge).Expanded=True3.5 任务实现 填空题结点添加 tvwTopic.Nodes.Add , , Cloze, 填空题 Adodc1.RecordSource=select * from Cloze where studentcode=+ StudentCode+ Adodc1.Refresh For i = 1 To Adodc1.Recordset.RecordCount tvwTopic.Nodes.Add Cloze, tv
56、wChild, Cloze + CStr(i), 第+ CStr(i)+题 Next i tvwTopic.Nodes(Cloze).Expanded=True3.5 任务实现 简答题结点添加 tvwTopic.Nodes.Add , , ShortAnswer, 简答题 Adodc1.RecordSource=select * from ShortAnswer where studentcode= + StudentCode+ Adodc1.Refresh For i=1 To Adodc1.Recordset.RecordCount tvwTopic.Nodes.Add ShortAnsw
57、er, tvwChild, ShortAnswer + CStr(i), 第+ CStr(i)+ 题 Next i tvwTopic.Nodes(ShortAnswer).Expanded=True tvwTopic.Nodes(Choose).Selected=TrueEnd Sub3.5 任务实现 修改frmMain窗体代码,增加事件过程Form_Resize,当窗体大小改变时,根据窗体大小自动设置目录树控件的宽度和高度。Private Sub Form_Resize() tvwTopic.Width=160 tvwTopic.Height=Me.ScaleHeightEnd Sub3.5
58、 任务实现修改frmMain窗体代码,增加事件过程tvwTopic_Click,单击目录树控件结点时提示单击的是哪种题型的第几题。Private Sub tvwTopic_Click() If Not (tvwTopic.SelectedItem.Parent Is Nothing) Then If tvwTopic.SelectedItem.Parent.Text = 单选题 Then MsgBox 你单击的是单选题第+ Mid(tvwTopic.SelectedItem.Key, 7)+题。 End If If tvwTopic.SelectedItem.Parent.Text = 多选题
59、 Then MsgBox 你单击的是多选题第 + Mid(tvwTopic.SelectedItem.Key, 12)+题。 End If3.5 任务实现If tvwTopic.SelectedItem.Parent.Text = 判断题 Then MsgBox 你单击的是判断题第 + Mid(tvwTopic.SelectedItem.Key, 6)+题。 End If If tvwTopic.SelectedItem.Parent.Text = 填空题 Then MsgBox 你单击的是填空题第 + Mid(tvwTopic.SelectedItem.Key, 6)+题。 End If I
60、f tvwTopic.SelectedItem.Parent.Text = 简答题 Then MsgBox 你单击的是简答题第 + Mid(tvwTopic.SelectedItem.Key, 12)+题。 End If End IfEnd Sub3.6 任务拓展 我们已经实现了目录树功能,但是实际使用过程中,还可能遇到很多的问题:1主观题和客观题分到不同的选项卡中单独显示如何处理?2目录树控件的宽度要求用户能自己拖动改变,或者实现隐藏功能,这该如何实现?第二课堂 服务器端试题管理功能的设计与实现 设计并实现服务器端单选题、多选题、判断题、填空题和简答题等各种类型试题维护管理功能,包括试题增加
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 汽车经销商营销风险管理:基于A企业的深度剖析与策略构建
- 汽车后市场消费信托在互联网汽车服务中的创新金融方案
- 2025年高中化学新教材课后练习第8章 作业40 章末专题突破练
- 商品房产权年限告知补充协议
- 低筋蛋糕粉生产工艺工程师考试试卷及答案
- 大马力轮式拖拉机研发工程师考试试卷及答案
- 宠物影像诊断工程师考试试卷及答案
- 五莲教育局学校教育信息化设备采购货物清单及实施方案要求
- 2025年装配式建筑工程考试真题及参考答案
- 2025年烟花爆竹安全管理考试真题及答案
- T-CCTAS 208-2025 拼宽桥梁纵向缝伸缩装置
- QC/T 222-2025自卸汽车
- 水泵效率课件
- 气质性格课件
- DBJT15-190-2020 广东省建筑物移动通信基础设施技术规范
- 统编版八年级下学期历史期末专题复习课件
- 高二下学期期中考试数学试卷含答案
- (标准)仓管员责任协议书
- 云南项目库管理办法
- 废水废气噪音管理办法
- 横店演员考试试题及答案
评论
0/150
提交评论