第4章工程框架设计 - 无标题页_第1页
第4章工程框架设计 - 无标题页_第2页
第4章工程框架设计 - 无标题页_第3页
第4章工程框架设计 - 无标题页_第4页
第4章工程框架设计 - 无标题页_第5页
已阅读5页,还剩121页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

实训工程VB试题库管理系统1VB试题库管理系统实训目的实训要求工程开发步骤2实训目的

〔1〕检验学生一门或几门相关课程的知识理解和掌握的程度;〔2〕锻炼和提高学生综合运用所学知识来进行分析问题、解决问题的实际动手能力;〔3〕使学生获得计算机应用专业技术人员所必须具备的根本职业技能训练;〔4〕养成积极向上、勇于探索、分工协作的工作作风,帮助学生树立正确的职业道德观。3实训要求〔1〕学生在教师的指导下学会调查研究的方式方法。〔2〕建立开发团队,分工明确。〔3〕工程开发文档完整,标准。〔4〕强调进度,完善进度记录。〔5〕强化开发过程,注重软件开发流程。4工程开发步骤一需求分析二系统设计三数据库设计与实现四各功能模块的设计与实现5一需求分析1、功能需求本系统主要完成?VisualBasic?课程的试题库管理与期末试卷的自动生成等功能,系统需要设计并实现的根本功能如下:〔1〕用户管理:实现添加操作用户、修改用户信息、删除用户等根本操作。〔2〕题库管理:实现分类别浏览、修改题库中题目,修改包括题目的添加、修改、删除。题库管理中还包含题库的导出功能,即实现分类别把题库中的题目导出到MicrosoftWord中,从而可以轻松实现排版和打印。〔3〕试卷管理:实现?VisualBasic?课程的期末考试试卷的生成与排版功能。6一需求分析2、环境需求本系统对软硬件的根本要求如下:〔1〕硬件环境:本系统至少在处理器为InterPentium166MX、内存32M、硬盘空间1GB、配有SVGA显示适配器或更高配置的硬件环境中运行。〔2〕软件环境:本系统要求的操作平台为Windows98/ME/2000/XP,采用的数据库系统为MicrosoftAccess2000,需要安装MicrosoftWord2000。7二系统设计1、系统功能模块根据需求分析,可以将本系统分解成5个功能模块:用户登录模块、用户管理模块、试题库管理模块、试卷管理模块和帮助模块,如图1-1所示。8二系统设计图1-19二系统设计2、功能模块功能设计〔1〕用户登录模块:选择用户名,填写正确的密码,就可以进入系统,系统会根据用户的类别,赋予用户不同的权限。当用户密码输入错误时,允许用户重新输入,但输入次数不能超过三次,否那么自动退出登陆模块。10二系统设计〔2〕用户管理模块:本模块为系统管理人员的专用功能,实现对操作人员信息的管理,主要包括添加新用户的信息,设定用户类别,修改用户信息和删除用户信息等具体功能。11二系统设计〔3〕题库管理模块:题库中按试题类型存储了大量的试题,本模块实现对题库试题的具体管理,主要包括题库中按类型进行试题的浏览,题库中试题的修改和题库题目的导出,本系统的导出功能实现题目内容导出到MicrosoftWord2000,以表格的形式显示,同时可以利用Word本身的打印功能实现题库的打印。12二系统设计〔4〕试卷管理模块:系统可以随机按要求自动生成VisualBasic课程的期末考试试卷和对应的试卷答案,试卷存储为扩展名为.doc的Word文档,可以利用Word对试卷进行排版,并可打印试卷。〔5〕帮助模块:显示系统的根本信息,版权声明等。13三数据库设计与实现1、数据库需求分析根据系统要求,可以列出以下记录题库相关信息的数据项和数据结构:〔1〕操作人员根本信息表〔操作人员表.mdb〕14表1-1操作人员根本信息表字段名称数据类型是否主键是否可空说明IDLongYesNo操作人员编号UserNameTextNoNo用户名UserPwdTextNoNo用户密码UserTypeTextNoNo用户类别,分admin和teacher两类。15三数据库设计与实现〔2〕填空题目信息表〔填空.mdb〕表1-2填空题根本信息表字段名称数据类型是否主键是否可空说明序号TextYesNo填空题编号内容MemoNoNo填空题目题干内容答案TextNoNo填空题答案分值byteNoNo该填空题题目分值16三数据库设计与实现〔3〕根本控件应用编程题根本信息表〔根本件.mdb〕表1-3根本控件应用编程题根本信息表字段名称数据类型是否主键是否可空说明序号ByteYesNo题目编号内容MemoNoNo题目题干内容附图TextNoNo题目附图文件的目录和文件名答案MemoNoNo代码参考答案分值byteNoNo该题目分值17三数据库设计与实现〔4〕图形与动画应用编程题目信息表〔图片与动画.mdb〕表1-4图片与动画编程题根本信息表字段名称数据类型是否主键是否可空说明序号ByteYesNo题目编号内容MemoNoNo题目题干内容附图TextNoNo题目附图文件的目录和文件名答案MemoNoNo代码参考答案分值byteNoNo该题目分值18三数据库设计与实现〔5〕菜单应用编程题目信息表〔菜单应用.mdb〕表15-5菜单应用编程题根本信息表字段名称数据类型是否主键是否可空说明序号ByteYesNo题目编号内容MemoNoNo题目题干内容附图TextNoNo题目附图文件的目录和文件名答案MemoNoNo代码参考答案分值byteNoNo该题目分值19三数据库设计与实现〔6〕综合应用编程题目信息表〔综合应用.mdb〕表1-6综合应用编程题根本信息表字段名称数据类型是否主键是否可空说明序号ByteYesNo题目编号内容MemoNoNo题目题干内容附图TextNoNo题目附图文件的目录和文件名答案MemoNoNo代码参考答案分值byteNoNo该题目分值20三数据库设计与实现〔7〕数据库应用编程题目信息表〔数据库应用.mdb〕表1-7数据库应用编程题根本信息表字段名称数据类型是否主键是否可空说明序号ByteYesNo题目编号内容MemoNoNo题目题干内容附图TextNoNo题目附图文件的目录和文件名答案MemoNoNo代码参考答案分值byteNoNo该题目分值21三数据库设计与实现〔8〕开设VisualBasic课程的专业信息表〔开设专业.mdb〕表1-8开课信息表字段名称数据类型是否主键是否可空说明序号ByteYesNo专业序号专业TextNoNo专业的全名称入学年份TextNoNo入学时间,如2001所在系别TextNoNo所在系别的全称人数byteNoNo该专业的总人数任课教师TextNoNo任课教师姓名22三数据库设计与实现本系统中数据库的各个表的结构均在MicrosoftAccess2000中实现。23四各功能模块的设计与实现〔1〕系统启动界面设计〔2〕登录对话框架设计〔3〕系统主窗体设计〔4〕菜单设计〔5〕工具栏设计〔6〕状态栏设计24四各功能模块的设计与实现〔7〕添加用户模块设计〔8〕修改用户信息模块设计〔9〕删除用户模块设计〔10〕题库浏览模块设计〔11〕题库修改模块设计〔12〕题库导出模块设计〔13〕生成试卷模块设计25四各功能模块的设计与实现

----系统启动界面设计1、系统启动界面设计启动VisualBasic,创立一个新的工程,保存为testpaper.vbp。将窗体Form1保存为Frmwelcom.frm,窗体设计见表1-9。26表1-9启动界面窗体及各控件属性设置对象属性属性设置值窗体(Frmwelcom)NamefrmwelcomeBorderStyle0-none标签1(Label1)CaptionVB试题库管理系统标签2(Label2)Caption-----辽阳职院穆红涛ForeColor&H8000000E&标签3(Label3)CaptionVB试题库管理系统ForeColor&H00FF8080&图片框(Picture1)AutoSizeTrueBackColor&H00FF0000&四各功能模块的设计与实现

----系统启动界面设计27四各功能模块的设计与实现

----系统启动界面设计其中Label1和Label3的字体设置除颜色外完全相同,目的想使文字具有阴影效果。窗体显示如图1-2所示。图1-228四各功能模块的设计与实现

----系统启动界面设计程序代码如下:OptionExplicit'单击窗体,显示登录对话框PrivateSubForm_Click()frmlogin.ShowUnloadMeEndSub'窗体加载时,调整标签位置,显示图片PrivateSubForm_Load()Label3.Left=Label1.Left+2Label3.Top=Label1.Top-2Picture1.Picture=LoadPicture(App.Path&"\usepic\boy7.gif")EndSub'使得窗体呈现上深下浅的蓝色效果29四各功能模块的设计与实现

----系统启动界面设计PrivateSubForm_Paint()DimiAsIntegerFori=0To100Frmwelcome.Line(0,i)-(Me.Width,i),RGB(0,0,255)NextiFori=100To500Frmwelcome.Line(0,i)-(Me.Width,i),RGB(i\2-50,i\2-50,255)NextEndSub'单击Label1,显示登录对话框PrivateSubLabel1_Click()frmlogin.ShowUnloadFrmwelcomeEndSub30四各功能模块的设计与实现

----系统启动界面设计'单击Label2,显示登录对话框PrivateSubLabel2_Click()frmlogin.ShowUnloadFrmwelcomeEndSub'单击Label3,显示登录对话框PrivateSubLabel3_Click()frmlogin.ShowUnloadFrmwelcomeEndSub'单击Picture1,显示登录对话框PrivateSubPicture1_Click()frmlogin.ShowUnloadFrmwelcomeEndSub31四各功能模块的设计与实现

----登录对话框设计2、登录对话框设计在工程中添加一新窗体,保存为文件Frmlogin.frm,该窗体用来实现用户合法身份验证,窗体设计见表1-10。32表1-10登录对话框及各控件属性设置对象属性属性设置值窗体(Frmlogin)NamefrmloginBorderStyle3-FixedDialog标签1(Label1)Caption请确认身份和密码:标签2(Label2)Caption用户名:标签3(Label3)Caption密码:组合框(Comobo1)Text空文本框(Text1)Text空PasswordChar*Data控件(Data1)DatabaseName……\mdb\testpaper.mdbRecordSource操作人员表图片框(Picture1)AutoSizeTrue命令按钮1(Command1)Caption确定命令按钮2(Command2)Caption取消33四各功能模块的设计与实现

----登录对话框设计程序代码如下:OptionExplicitDimstrsqlAsString,struserAsString,strpwdAsStringPrivateSubCommand1_Click()'验证密码的正确性,如果正确显示系统主窗体MDIFrmmainStaticrAsInteger,answerAsIntegerstruser=Trim(Combo1.Text)strpwd=Trim(Text1.Text)strsql="select*from操作人员表whereusername='"&struser&"'"&"anduserpwd='"&strpwd&"'"Data1.RecordSource=strsqlData1.Refresh34四各功能模块的设计与实现

----登录对话框设计IfData1.Recordset.RecordCount>0ThenMDIFrmmain.Show'根据用户的类别不同,使用权限也不同

IfTrim(Data1.Recordset.Fields("usertype"))="admin"ThenMDIFrmmain.mnumodify.Enabled=TrueMDIFrmmain.mnutestmanage.Enabled=TrueMDIFrmmain.mnuadduser.Enabled=TrueMDIFrmmain.mnudeluser.Enabled=TrueMDIFrmmain.mnumodiuser.Enabled=TrueElse35四各功能模块的设计与实现

----登录对话框设计MDIFrmmain.mnumodify.Enabled=FalseMDIFrmmain.mnutestmanage.Enabled=FalseMDIFrmmain.mnuadduser.Enabled=FalseMDIFrmmain.mnudeluser.Enabled=FalseMDIFrmmain.mnumodiuser.Enabled=FalseEndIfUnloadMe'错误次数限制

ElseIfr<3Thenr=r+1MsgBox("密码错,请重新输入")Combo1.Text=""Text1.Text=""Combo1.SetFocusElse36四各功能模块的设计与实现

----登录对话框设计answer=MsgBox("您是非法用户,请和管理员联系!")Ifanswer=1ThenEndEndIfEndSubPrivateSubCommand2_Click()'取消按钮,那么结束程序EndEndSub'窗体初始化时,把所有用户名都添加到组合框Comobo1的List列表中PrivateSubForm_Initialize()Combo1.Clear37四各功能模块的设计与实现

----登录对话框设计Combo1.AddItemData1.Recordset.Fields("username")LoopEndSubPrivateSubForm_Load()Picture1.Picture=LoadPicture(App.Path&"\usepic\boy15.gif")Data1.Visible=FalseEndSub'单击密码框,执行“确定〞按钮Click事件PrivateSubText1_KeyPress(KeyAsciiAsInteger)IfKeyAscii=13ThenCommand1_ClickEndSub38四各功能模块的设计与实现

----登录对话框设计窗体运行显示效果如图1-3所示。图1-339四各功能模块的设计与实现

----系统主窗体设计3、系统主窗体的设计在工程中添加一个MDI窗体,保存为MDIFrmmain.frm文件。本窗体为系统运行的主窗体,窗体设计见表1-11。40表1-11系统主窗体及各控件属性设置对象属性属性设置值窗体(MDIFrmmain)NameMDIFrmmainCaption《VisualBasic》试题库管理系统WindowState2-Maximized图像列表1(ImageList1)NameImageList1通用对话框(CommonDialog1)NameCommonDialog1工具栏(ToolBar1)NameToolBar1状态栏(StatusBar1)NameStatusBar141四各功能模块的设计与实现

----菜单设计〔1〕菜单设计翻开“菜单编辑器〞,按照表1-12所示建立主窗体上的菜单。设计结果如图1-4和图1-5所示。图1-4图1-542四各功能模块的设计与实现43四各功能模块的设计与实现

----工具栏设计〔2〕工具栏设计为了设计工具栏,首先要在MDI窗体上添加工具条ToolBar控件和图像列表ImageList控件。右键单击图像列表控件ImageList1,在其“属性页〞对话框中添加假设干个图片,结果如图1-6所示。图1-644四各功能模块的设计与实现在工具条ToolBar1的“属性页〞对话框中,插入5个按钮,并对每个Button对象设置关键字属性、工具提示文本和显示图像,5个按钮对应的提示工具提示文本分别是:“修改用户信息〞、“题库导出〞、“生成试卷〞、“试卷排版〞和“帮助〞,如图1-7所示。图1-745四各功能模块的设计与实现

----状态栏设计〔3〕状态栏设计设计状态栏时,右键单击状态栏StatusBar1,在其“属性页〞对话框中,插入3个窗格。分别对3个窗格的工具提示文本、样式等进行设置,3个窗格的样式分别设置为1-sbrCaps、2-sbrDate和3-sbrTime。设计好的主窗体如图1-8所示。图1-846四各功能模块的设计与实现

----状态栏设计接下来设计程序代码。本例中试卷的排版是利用API函数来翻开Word应用程序的,所以在本窗体模块声名局部需要参加ShellExecuteAPI函数声明。具体方法为:在Windows开始菜单中运行“API文本浏览器〞,接下来选择浏览器“文件〞菜单中的“加载文本文件〞,在弹出的对话框中选择“WIN32API.TXT〞,单击“翻开〞按钮。在“键入你要查找内容的开头几个字母〞文本框中输入“shelle〞单击“添加〞按钮,如图1-9所示。图1-947四各功能模块的设计与实现

----系统总窗体设计单击“复制〞按钮,把“选定项〞内容复制到剪贴板上,回到VisualBasic集成开发环境,在声明局部右键单击鼠标,粘贴函数声明。PrivateDeclareFunctionShellExecuteLib"shell32.dll"Alias"ShellExecuteA"(ByValhwndAsLong,ByVallpOperationAsString,ByVallpFileAsString,ByVallpParametersAsString,ByVallpDirectoryAsString,ByValnShowCmdAsLong)AsLong48四各功能模块的设计与实现

----系统总窗体设计ConstSW_SHOW=5'常量声明'题库导出菜单项PrivateSubfrmexport_Click()frmexport.Show'题库导出窗体EndSub'在窗体上右键单击弹出“试卷管理〞菜单PrivateSubMDIForm_MouseUp(ButtonAsInteger,ShiftAsInteger,XAsSingle,YAsSingle)IfButton=2ThenPopupMenumnutestmanageEndIfEndSub49四各功能模块的设计与实现

----系统总窗体设计'添加用户菜单项PrivateSubmnuadduser_Click()Frmadduser.ShowEndSub'浏览根本控件题目菜单项PrivateSubmnucontrol_Click()Frmcontrol_view.ShowEndSub'生成试卷菜单项PrivateSubmnucrepaper_Click()Frmobject.ShowEndSub'编辑根本控件题目菜单项PrivateSubmnuctrl_Click()frmcontrol_edit.ShowEndSub50四各功能模块的设计与实现

----系统总窗体设计'删除用户菜单项PrivateSubmnudeluser_Click()Frmdeluser.ShowEndSub'试卷排版菜单项PrivateSubmnuedit_Click()CommonDialog1.ShowOpenIfCommonDialog1.FileName<>""ThenShellExecuteMe.hwnd,"open",CommonDialog1.FileName,"","",SW_SHOW'方法二'Str1="start"&CommonDialog1.FileName'ShellStr1EndIfEndSub51四各功能模块的设计与实现

----系统总窗体设计'退出菜单项PrivateSubmnuexit_Click()EndEndSub'修改用户信息菜单项PrivateSubmnumodiuser_Click()Frmmodiuser.ShowEndSub52四各功能模块的设计与实现

----添加用户模块设计4、添加用户模块设计在工程中添加一个新的窗体,将它保存为Frmadduser.frm,其功能主要是实现添加新操作人员的信息。Frmadduser窗体上的主要控件及其属性见表1-13。53表1-13Frmadduser〔添加用户〕窗体及各控件属性设置对象属性属性设置值窗体(Frmadduser)NameFrmadduserCaption添加新用户BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource操作人员表文本框1(Text1)DataSourceData1DataFieldID文本框2(Text2)DataSourceData1DataFieldUserName文本框3(Text3)DataSourceData1DataFieldUserPwd组合框1(Combo1)DataSourceData1DataFieldUserStyle命令按钮1(Command1)Caption添加命令按钮2(Command2)Caption取消命令按钮3(Command3)Caption退出四各功能模块的设计与实现

----添加用户模块设计54四各功能模块的设计与实现

----添加用户模块设计编写代码如下:'“添加〞按钮单击事件PrivateSubCommand1_Click()OnErrorGoTohandlerIfTrim(Text1.Text)=""ThenMsgBox"请填写好用户编号!",,"警告"Text1.SetFocusElseIfTrim(Text2.Text)=""ThenMsgBox"请填写好用户名称!",,"警告"Text2.SetFocusElseIfTrim(Text3.Text)=""ThenMsgBox"请填写好用户密码!",,"警告"55四各功能模块的设计与实现

----添加用户模块设计Text3.SetFocusElseIfTrim(Combo1.Text)=""ThenMsgBox"请选择用户类型!",,"警告"Combo1.SetFocusElseMsgBox"添加用户操作成功!"EndIfExitSubhandler:MsgBox"添加用户操作失败!",,"警告"图15-10ExitSubEndSub56四各功能模块的设计与实现

----添加用户模块设计'“取消〞按钮单击事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按钮单击事件PrivateSubCommand3_Click()UnloadMeEndSub窗体运行如图1-10所示。图1-1057四各功能模块的设计与实现

----修改用户信息模块设计5、修改用户信息模块设计在工程中添加一个新的窗体,将它保存为Frmmodiuser.frm,其功能主要是实现修改操作人员的信息。Frmadduser窗体上的主要控件及其属性见表1-14。58表1-14Frmmodiuser〔修改用户信息〕窗体及各控件属性设置对象属性属性设置值窗体(Frmmodiuser)NameFrmmodiuserCaption修改用户信息BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource操作人员表MSFlexGrid1(MSFlexGrid1)DataSourceData1命令按钮1(Command1)Caption修改命令按钮2(Command2)Caption取消命令按钮3(Command3)Caption退出59四各功能模块的设计与实现

----修改用户信息模块设计MSFlexGrid1为ActiveX控件,添加方法为选择“工程〞菜单中“部件〞菜单项,在弹出的对话框中选择“MicrosoftMSFlexGridControl6.0〞,单击“确定〞按钮即可。窗体上的Text1、Text2、Text3和Combo1控件的属性设置和添加用户模块中对应的属性设置完全一致,此处不再赘述。编写代码如下:'“修改〞按钮单击事件PrivateSubCommand1_Click()OnErrorGoTohandlerText1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=True60四各功能模块的设计与实现

----修改用户信息模块设计MsgBox"修改数据成功!"Data1.RefreshExitSubhandler:MsgBox"修改数据失败!",,"警告"ExitSubEndSub'“取消〞按钮单击事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按钮单击事件PrivateSubCommand3_Click()UnloadMeEndSub61四各功能模块的设计与实现

----修改用户信息模块设计'设置MSFlexGrid1控件的第一行文字内容PrivateSubForm_Activate()MSFlexGrid1.Col=1MSFlexGrid1.Row=0MSFlexGrid1.ColSel=4MSFlexGrid1.Clip="用户编号"&Chr(9)&"用户名称"&Chr(9)&"用户密码"&Chr(9)&"用户类型"Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=TrueEndSub62四各功能模块的设计与实现

----修改用户信息模块设计'实现双击MSFlexGrid1的某一行,那么该行对应的记录显示在下面的各文本框中PrivateSubMSFlexGrid1_DblClick()DimstridAsIntegerMSFlexGrid1.Col=1strid=Val(MSFlexGrid1.Clip)Data1.Recordset.FindFirst"id="&stridText1.Locked=FalseText2.Locked=FalseText3.Locked=FalseCombo1.Locked=FalseEndSub63四各功能模块的设计与实现

----修改用户信息模块设计本模块窗体运行如图1-11所示。图1-1164四各功能模块的设计与实现

----删除用户模块设计6、删除用户模块设计在工程中再添加一个新的窗体,将它保存为Frmdeluser.frm,其功能主要是实现删除操作人员的信息。Frmadduser窗体上的主要控件及其属性和修改用户信息模块窗体设置根本相同。表1-15仅列出了与上一模块不同的控件设置。65表1-15Frmdeluser〔删除用户信息〕窗体及各控件属性设置对象属性属性设置值窗体(Frmdeluser)NameFrmdeluserCaption删除用户信息BorderStyle3-FixedDialogMDIChildTrue命令按钮1(Command1)Caption删除命令按钮2(Command2)Caption取消命令按钮3(Command3)Caption退出66四各功能模块的设计与实现

----删除用户模块设计编写代码如下:'“删除〞按钮单击事件PrivateSubCommand1_Click()DimansAsIntegerOnErrorGoTohandlerIfNotData1.Recordset.EOFThenans=MsgBox("确定要删除该用户吗?",vbOKCancel,"删除提示")Ifans=vbOKThenMsgBox"数据已删除!"Data1.RefreshElse67四各功能模块的设计与实现

----删除用户模块设计ExitSubEndIfEndIfExitSubhandler:MsgBox"数据无法删除!",,"警告"ExitSubEndSub'“取消〞按钮单击事件PrivateSubCommand2_Click()Data1.RefreshEndSub'“退出〞按钮单击事件PrivateSubCommand3_Click()UnloadMeEndSub68四各功能模块的设计与实现

----删除用户模块设计PrivateSubForm_Activate()MSFlexGrid1.Col=1MSFlexGrid1.Row=0MSFlexGrid1.ColSel=4MSFlexGrid1.Clip="用户编号"&Chr(9)&"用户名称"&Chr(9)&"用户密码"&Chr(9)&"用户类型"Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueCombo1.Locked=TrueEndSub69四各功能模块的设计与实现

----删除用户模块设计PrivateSubMSFlexGrid1_DblClick()DimstridAsIntegerMSFlexGrid1.Col=1strid=Val(MSFlexGrid1.Clip)Data1.Recordset.FindFirst"id="&stridEndSub本模块窗体运行如图1-12所示。图1-1270四各功能模块的设计与实现

----题库浏览模块设计7、题库浏览模块设计本系统的题库浏览模块的主要功能是按六种题目类型分别进行试题的浏览,下面以浏览“根本控件的应用编程题〞为例,说明实现的方法。在工程中添加一个新的窗体,将它保存为Frmcontrol_view.frm,其功能主要是实现“根本控件的应用编程题〞的浏览。Frmcontrol_view窗体上的主要控件及其属性见表15-16。71四各功能模块的设计与实现

----题库浏览模块设计编写代码如下:'第一题PrivateSubCommand1_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'下一题PrivateSubCommand2_Click()IfData1.Recordset.EOFThenMsgBox"已经到达最后一题!",,"提示"EndIf72四各功能模块的设计与实现

----题库浏览模块设计Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'上一题PrivateSubCommand3_Click()IfData1.Recordset.BOFThenMsgBox"已经到达第一题!",,"提示"EndIfImage1.Picture=LoadPicture(Trim(Text5.Text))EndSub'最后一题73四各功能模块的设计与实现

----题库浏览模块设计PrivateSubCommand4_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSubPrivateSubForm_Activate()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub本模块窗体运行如图1-13所示。图1-1374四各功能模块的设计与实现

----题库修改模块设计8、题库修改模块设计本系统的题库修改模块的主要功能是按六种题目类型分别进行试题的修改,下面以修改“根本控件的应用编程题〞为例,说明实现的方法。在工程中添加一个新的窗体,将它保存为Frmcontrol_edit.frm,其功能主要是实现“根本控件的应用编程题〞的修改。Frmcontrol_edit窗体上的主要控件及其属性见表1-17。75表15-17Frmcontrol_edit〔修改根本控件〕窗体及各控件属性设置对象属性属性设置值窗体(Frmcontrol_edit)NameFrmcontrol_editCaption基本控件编程题修改WindowState2-MaximizedMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource基本控件命令按钮5(Command5)Caption确定命令按钮6(Command6)Caption删除命令按钮7(Command7)Caption修改命令按钮8(Command8)Caption添加命令按钮9(Command9)Caption取消76四各功能模块的设计与实现

----题库修改模块设计Frmcontrol_edit窗体上的Text1、Text2、Text3、Text4、Text5、Command1、Command2、Command3和Command4的根本设置与Frmcontrol_view窗体上对应的控件设置根本相同。77四各功能模块的设计与实现

----题库修改模块设计代码编写如下:'“第一题〞按钮单击事件PrivateSubCommand1_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))'保持图片的同步EndSub'“下一题〞按钮单击事件PrivateSubCommand2_Click()IfData1.Recordset.EOFThenMsgBox"已经到达最后一题!",,"提示"EndIf78四各功能模块的设计与实现

----题库修改模块设计Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“上一题〞按钮单击事件PrivateSubCommand3_Click()IfData1.Recordset.BOFThenMsgBox"已经到达第一题!",,"提示"EndIfImage1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“最后一题〞按钮单击事件79四各功能模块的设计与实现

----题库修改模块设计PrivateSubCommand4_Click()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub'“确定〞按钮单击事件PrivateSubCommand5_Click()Text1.Locked=TrueText2.Locked=TrueText3.Locked=TrueText4.Locked=TrueText5.Locked=TrueEndSub80四各功能模块的设计与实现

----题库修改模块设计'“删除〞按钮单击事件PrivateSubCommand6_Click()DimansAsIntegerans=MsgBox("确定要删除此条记录吗?",vbOKCancel+vbQuestion,"删除提示")Ifans=vbOKThenIfData1.Recordset.EOFThenEndIfEndIfEndSub81四各功能模块的设计与实现

----题库修改模块设计'“修改〞按钮单击事件PrivateSubCommand7_Click()Text1.Locked=FalseText2.Locked=FalseText3.Locked=FalseText4.Locked=FalseText5.Locked=FalseEndSub82四各功能模块的设计与实现

----题库修改模块设计'“添加〞按钮单击事件PrivateSubCommand8_Click()Text1.Locked=FalseText2.Locked=FalseText3.Locked=FalseText4.Locked=FalseText5.Locked=FalseEndSub'“取消〞按钮单击事件PrivateSubCommand9_Click()Data1.RefreshText1.Locked=TrueText2.Locked=TrueText3.Locked=True83四各功能模块的设计与实现

----题库修改模块设计Text4.Locked=TrueText5.Locked=TrueEndSubPrivateSubForm_Activate()Image1.Picture=LoadPicture(Trim(Text5.Text))EndSub本模块窗体运行如图1-14所示。图1-1484四各功能模块的设计与实现

----题库导出模块设计9、题库导出模块设计本系统的题库导出功能主要实现针对每种题型,可以分别把该类型的所有题目传送到Word的文档的表格中,然后可以直接利用Word的排版与打印功能实现题目的排版与打印。在工程中继续添加新的窗体,保存为frmexport.frm。frmexport窗体上的主要控件及其属性见表1-18。85表15-18frmexport〔题库导出〕窗体及各控件属性设置对象属性属性设置值窗体(frmexport)NamefrmexportCaption题库导出与打印BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource基本控件命令按钮1(Command1)Caption导出生成Word文档命令按钮2(Command2)Caption退出MSFlexGrid1(MSFlexGrid1)DataSourceData1AllowUserResizing3-flexResizeBoth组合框1(Combo1)NameCombo1List填空、基本控件、图片动画、菜单应用、综合应用、数据库应用86四各功能模块的设计与实现

----题库修改模块设计编写代码如下:PrivatewordappAsWord.ApplicationPrivatedocAsWord.DocumentPrivatese1AsWord.SelectionPrivatedbAsDatabasePrivatersAsRecordset'“导出生成Word文档〞按钮单击事件PrivateSubCommand1_Click()Setdb=OpenDatabase(App.Path&“\mdb\vbtest2.mdb")SelectCaseCombo1.ListIndexCase0Setrs=db.OpenRecordset("select*from填空")Case187四各功能模块的设计与实现

----题库修改模块设计Setrs=db.OpenRecordset("select*from根本控件")Case2Setrs=db.OpenRecordset("select*from图片与动画")Case3Setrs=db.OpenRecordset("select*from菜单应用")Case4Setrs=db.OpenRecordset("select*from综合应用")Case5Setrs=db.OpenRecordset("select*from数据库应用")EndSelect'建立新的Word文档,设置表格格式Setwordapp=NewWord.ApplicationSetdoc=wordapp.ActiveDocumentSetse1=wordapp.Selection88四各功能模块的设计与实现

----题库修改模块设计doc.Tables.AddRange:=se1.Range,numrows:=1,numcolumns:=5se1.TypeTextText:="序号"se1.MoveRightunit:=12se1.TypeTextText:="题目"se1.MoveRightunit:=12se1.TypeTextText:="分值"se1.MoveRightunit:=12se1.TypeTextText:="附图"se1.MoveRightunit:=12se1.TypeTextText:="答案"se1.MoveRightunit:=12DoUntilrs.EOF'向Word表格中逐行添加记录内容89四各功能模块的设计与实现

----题库修改模块设计se1.TypeTextText:=rs!序号

se1.MoveRightunit:=12se1.TypeTextText:=rs!内容

se1.MoveRightunit:=12se1.TypeTextText:=rs!分值

se1.MoveRightunit:=12se1.TypeTextText:=rs!附图

se1.MoveRightunit:=12se1.TypeTextText:=rs!答案

se1.MoveRightunit:=12rs.MoveNextLoopwordapp.Visible=TrueSetwordapp=NothingEndSub'选择组合框中的不同列表项,Data1控件设置不同的数据源90四各功能模块的设计与实现

----题库修改模块设计PrivateSubCombo1_Click()SelectCaseCombo1.ListIndexCase0Data1.RecordSource="select*from填空"Case1Data1.RecordSource="select*from根本控件"Case2Data1.RecordSource="select*from图片与动画"Case3Data1.RecordSource="select*from菜单应用"Case4Data1.RecordSource="select*from综合应用"Case5Data1.RecordSource="select*from数据库应用"EndSelectData1.RefreshEndSub91四各功能模块的设计与实现

----题库修改模块设计'“退出〞按钮的单击事件PrivateSubCommand2_Click()UnloadMeEndSub本模块窗体运行后,先选择导出的题目类型,然后单击“导出生成Word文档〞按钮,窗体显示如图1-15所示。图1-1592四各功能模块的设计与实现

----生成试卷模块设计10、生成试卷模块设计试卷自动生成是本系统的一个非常重要而且关键的模块。本模块主要实现试卷的随机自动生成,并保证试题知识分布的合理性。本模块包含四个窗体,分别是Frmobjet.frm〔选择考试对象窗体〕、Frmcontent.frm〔选择题目内容分布窗体〕、Frmpaper.frm〔试卷显示窗体〕和Frmanswer.frm〔答案显示窗体〕。93四各功能模块的设计与实现

----生成试卷模块设计分别创立并保存四个窗体,四个窗体的主要控件及其属性分别见表1-19、表1-20、表1-21和表1-22。〔1〕Frmobjet.frm〔选择考试对象窗体〕的设计94表1-19Frmobjet〔选定考试对象〕窗体及各控件属性设置对象属性属性设置值窗体(Frmobjet)NameFrmobjetCaption选定年级和专业:BorderStyle3-FixedDialogMDIChildTrueData控件(Data1)DatabaseName…\mdb\testpaper.mdbRecordSource开课信息表VisibleFalse组合框1(Combo1)Text空组合框2(Combo2)Text空命令按钮1(Command1)Caption确定95四各功能模块的设计与实现

----生成试卷模块设计编写代码:'“确定〞按钮的单击事件PrivateSubCommand1_Click()Frmpaper.Text1.SelText=""+Combo1.Text+"级"+Combo2.Text+_"专业?VisualBasic?期末试题"+Chr(13)+Chr(10)Frmanswer.Text1.SelText=""+Combo1.Text+"级"+Combo2.Text+_"专业?VisualBasic?期末试题答案"+Chr(13)+Chr(10)Frmcontent.ShowFrmobject.HideEndSub'向Combo1和Combo2两个组合框中添加“开课信息表〞中所有的入学年级和专业名称96四各功能模块的设计与实现

----生成试卷模块设计PrivateSubForm_Activate()DimiAsInteger,flag1AsBoolean,flag2AsBooleanCombo1.ClearCombo2.Clearflag1=Falseflag2=FalseFori=0ToCombo1.ListCount-1IfTrim(Combo1.List(i))=Trim(Data1.Recordset.Fields("入学年份"))Thenflag1=TrueEndIf97四各功能模块的设计与实现

----生成试卷模块设计IfTrim(Combo2.List(i))=Trim(Data1.Recordset.Fields("专业"))Thenflag1=TrueEndIfNextiIfNotflag1ThenCombo1.AddItemData1.Recordset.Fields("入学年份")EndIfIfNotflag2ThenCombo2.AddItemData1.Recordset.Fields("专业")EndIfLoopEndSub98四各功能模块的设计与实现

----生成试卷模块设计窗体运行如图1-16所示。图1-1699四各功能模块的设计与实现

----生成试卷模块设计〔2〕Frmcontent.frm〔选择题目内容分布窗体〕的设计表1-20Frmcontent〔选择题目内容分布窗体〕窗体及属性设置对象属性属性设置值窗体(Frmcontent)NameFrmcontentCaption选定试题模式:BorderStyle3-FixedDialogMDIChildTrue100四各功能模块的设计与实现

----生成试卷模块设计窗体中还包含6个Data控件,它们的DatabaseName属性均设置为“…\mdb\testpaper.mdb〞,它们的RdocorSource属性那么分别为“填空〞、“根本控件〞、“图片动画〞、“菜单应用〞、“综合应用〞和“数据库应用〞。窗体中还包含7个文本框。101四各功能模块的设计与实现

----生成试卷模块设计代码设计如下:Frmcontent.frm窗体上的“确定〞按钮的单击事件。PrivateSubCommand1_Click()DimsumAsIntegerDima()AsByteDimi,j,k,resultAsIntegerDimrealsumAsIntegerDimmark,summarkAsInteger'以下是生成第一题Frmpaper.Text1.SelText="一、填空题〔20分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText="一、填空题"+Chr(13)+Chr(10)sum=Val(Text1.Text)102四各功能模块的设计与实现

----生成试卷模块设计WithData1.Recordset.MoveFirst.MoveLastj=.RecordCountReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0summark=0Whilesummark<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1103四各功能模块的设计与实现

----生成试卷模块设计.Movekmark=.Fields("分值")Debug.Printmarksummark=summark+markrealsum=realsum+1Clipboard.SetText.Fields("内容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIf104四各功能模块的设计与实现

----生成试卷模块设计Clipboard.SetText.Fields("答案")Frmanswer.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+""EndIfWendEndWithFrmpaper.Text1.SelText="〔注:以下各题请按要求编写程序实现。〕"+Chr(13)+Chr(10)'以下是生成第二题Frmpaper.Text1.SelText="二、编写程序〔16分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText=Chr(13)+Chr(10)+"二、编写程序〔16分〕"+Chr(13)+Chr(10)sum=Val(Text2.Text)105四各功能模块的设计与实现

----生成试卷模块设计WithData2.Recordsetj=.RecordCountIfsum>jThenresult=MsgBox("输入数据超过当前题库中题目总数!",48,"输入错误")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIfReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0106四各功能模块的设计与实现

----生成试卷模块设计Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1ealsum=realsum+1.MovekClipboard.SetText.Fields("内容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIf107四各功能模块的设计与实现

----生成试卷模块设计Clipboard.SetText.Fields("附图")Frmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)Clipboard.SetText.Fields("答案")Frmanswer.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)EndIfWendEndWith'以下是生成第三题Frmpaper.Text1.SelText="三、编程题〔16分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText="三、编程题〔16分〕"+Chr(13)+Chr(10)sum=Val(Text3.Text)WithData3.Recordsetj=.RecordCountIfsum>jThen108四各功能模块的设计与实现

----生成试卷模块设计result=MsgBox("输入数据超过当前题库中题目总数!",48,"输入错误")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIfReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Then109四各功能模块的设计与实现

----生成试卷模块设计a(k)=1realsum=realsum+1.MovekClipboard.SetText.Fields("内容")Ifsum>1ThenFrmpaper.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)ElseFrmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)EndIfClipboard.SetText.Fields("附图")Frmpaper.Text1.SelText=Clipboard.GetText+Chr(13)+Chr(10)Clipboard.SetText.Fields("答案")Frmanswer.Text1.SelText=Str$(realsum)+"、"+Clipboard.GetText+Chr(13)+Chr(10)EndIf110四各功能模块的设计与实现

----生成试卷模块设计WendEndWith'以下是生成第四题Frmpaper.Text1.SelText="四、编程题〔16分〕"+Chr(13)+Chr(10)Frmanswer.Text1.SelText="四、编程题〔16分〕"+Chr(13)+Chr(10)sum=Val(Text4.Text)WithData4.Recordsetj=.RecordCountIfsum>jThenresult=MsgBox("输入数据超过当前题库中题目总数!",48,"输入错误")Text1.SetFocusFrmpaper.Text1.SelText=""Frmanswer.Text1.SelText=""ExitSubEndIf111四各功能模块的设计与实现

----生成试卷模块设计ReDima(j)AsByteFori=0Toja(i)=0Nextirealsum=0Whilerealsum<sum.MoveFirstRandomizek=Int(Rnd*j)Ifa(k)=0Thena(k)=1realsum=realsum+1.MovekClipboard.SetText.Fields("内容")Ifsum>1Then112四各功能模块的设计与实现

----生成试卷模块设计Frmpaper.Text1.SelText=Str$(realsum)+"、"

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论