vb课程设计报告.docx
- 文档编号:6398393
- 上传时间:2023-01-06
- 格式:DOCX
- 页数:34
- 大小:32.23KB
vb课程设计报告.docx
《vb课程设计报告.docx》由会员分享,可在线阅读,更多相关《vb课程设计报告.docx(34页珍藏版)》请在冰豆网上搜索。
vb课程设计报告
(此文档为word格式,下载后您可任意编辑修改!
)
单位分院(系)
专业
学号
学生姓名
指导教师
完成日期二零一零年七月五日
我们日常生活中会用到许多软件,有聊天、娱乐等等。
也会浏览许多网站,但我们经常使用的却不多,此外,我们每天要做的事也需要有备忘,以及我们的联系簿等。
此软件就是依旧人们的这些需求而编写的。
内容包括对常用的网站操作,联系簿和备忘录的操作。
本软件采用VisualBasic语言来编写,实现的需求功能。
VisualBasic语言简便易学,有许多优点,例如:
可编写标准模块,在多个窗体中调用相同的程序,也可自定义函数,在同一工程中自由调用,可以添加多个专用部件,为编程带来了方便,为编写使用方便、功能强大的生活小助手软件提供了良好的平台。
软件功能编写中使用了access数据库,通过对数据库的调用实现了数据的管理。
大量调用事件、过程、函数及窗体,实现了需求的功能。
论文首先介绍了生活小助手开发涉及的相关技术,主要围绕VisualBasic语言的相关对象和事件。
其次,介绍了生活小助手的总体分析与设计,包括需求分析、功能模块分析和程序设计。
最后,通过VisualBasic语言的开发界面检验了该程序的可用性,并以具体描述与展示代码相结合的方式详细地叙述了系统功能的实现。
关键词:
VisualBasic语言、生活小助手软件、数据库。
第一章
选题的意义
生活小助手是对日常生活使用的软件的管理的应用软件。
选择自己编写软件程序是因为能更深刻地了解VisualBasic软件的应用,并且能够学习到简易软件的编写、开发过程。
通过本次实习的程序制作,使学生进一步掌握了VisualBasic的基础知识、规范和高级语言程序设计的基本方法,理解事件驱动的特性,能够阅读由VisualBasic编写的程序。
了解并学会了对数据库的增删改查等基本的功能运用,通过数据库对一般数据的管理。
并掌握一般的程序设计方法,具有一定的程序调试能力,为后续的计算机课程打下坚实的基础。
本次实习我们学到的知识有:
熟悉VisualBasic集成开发环境,了解VisualBasic中对象的概念和事件驱动程序的基本特性,掌握基本的数据结构和常用算法,学会了数据库的方法使用,数据的管理,能够编写和调试VisualBasic程序。
我们设计该软件的主要目的是:
1.通过该题目的设计,掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;
2.掌握菜单的使用方法;
3.掌握多窗体的调用方法;
4.掌握数据库的应用;
5.数据库的调用,及对数据的管理。
第二章系统功能需求分析
2.1系统概述
我设计的软件,模仿了万能收藏窗体布局、其中部分功能与它相似。
窗体大致分为:
标题栏、菜单栏、工具栏、工作区、状态栏几个部分。
系统拥有网址的保存、修改、删除,和浏览网页;联系簿的保存、修改、删除;及备忘等功能。
2.2系统的构成
我们设计的软件,窗体布局简洁,方便实用。
软件主要有气个窗体构成,登陆、主窗口、添加网址、添加联系人,备忘录、数据查找窗体、标准模块。
登录窗口主要包括combo、text录入。
验证码的使用、数据库的链接等
主窗口主要包括viewtree、dgbrid显示数据,快捷键的使用、菜单栏、数据库的链接等
添加窗体主要包括combo输入及下拉菜单的使用、数据的显示、数据库的链接等
备忘录窗体主要包括栏、文本编辑、文字计数、数据库的链接等。
数据查找窗体主要包括combo输入及下拉菜单的使用、dbgrid数据显示数据库的链接等。
标准模块主要包括各种函数、全局变量的声明,文件初始化等功能。
2.3各模块的功能
登录窗体与数据库链接实现单对单(一个账户对应一个密码)登陆模式,实用随机数产生验证码限制登录。
主窗体使用viewtree与dbgrid显示数据库内容,同时是viewtree中节点与dbgrid相连,实现随时变化。
菜单栏中添加、修改按钮能实现对其他窗体的调用,同时改变显示窗体的标题栏属性;菜单栏中的删除按钮可以删除对应项在数据库的数据内容,并同时改变dbgrid格内容;菜单栏中的查看网址按钮可打开浏览器浏览相应网页;查找按钮可查找数据库中相应内容。
下方的状态栏可以显示操作人的信息,与系统详细时间等内容。
添加窗体与数据库相连,单击保存改变数据库中数据,取消关闭相应窗口。
修改窗体可读取显存数据库中的内容,并进行修改,取消关闭相应窗口。
当改变关系与类型与数据库中无相符内容时,则改变数据树内容。
编辑菜单项具有编辑文本文件的最基本、最常见的功能,复制菜单项可以复制已选定的文本,剪切菜单项可以剪切已选定的文本,粘贴菜单项可以可以再光标插入点处插入一已复制或已剪切的文本。
全选菜单项可以把当前文本全部选中。
同时字体菜单可改变字体属性。
在文本框中内容改变时,统计其中字数显示在下方,当字数超出一定限制是给出提示。
2.4系统的运行环境
系统的运行环境是win7、Vista、XP等常用系统软件。
2.5各模块的功能
软件具有储存修改网址、联系簿、备忘录的功能。
登录窗口有数据库连接,实现单对单(一个账号对应一个密码)登陆系统。
使用随机数产生验证码限制登录情况。
主窗口使用viewtree显示数据库中类型表的显示,使用dbgrid显示数据中的详细数据,菜单栏是文件功能的具体体现者,具有对其他窗体的显示的调用功能。
新建菜单调用添加网址、添加联系人或添加备忘窗体;修改菜单调用修改网址、修改联系人或修改备忘窗体;点击删除会在数据库中删除相应项;查找联系人会调用查找窗体,查看网址会启动浏览器查看相应网页。
当点击添加时,窗体的caption属性为添加,当点击确定时改变数据库内容;取消退出窗体。
当点击修改时,窗体的caption属性会变为修改,同时读取数据库文件显示相应数据,当内容数据发生改变时对数据库内容进行修改;点击取消突出窗体。
当窗体中的类型或关系框中内容与数据库中内容不符,则同时在类型数据表中进行修改。
备忘录菜单中菜单栏编辑菜单项具有编辑文本文件的最基本、最重要、也是最常见的功能,复制菜单项可以复制已选定的文本,剪切菜单项可以剪切已选定的文本,粘贴菜单项可以可以再光标插入点处插入一已复制或已剪切的文本。
全选菜单项可以把当前文本全部选中。
第三章系统代码
3.1主窗体代码
OptionExplicit
Consttreewide=2000'TREEVIEW的最小宽度
Constbiaowide=2000'DBGRID的最小宽度
PrivateSubForm_Load()
imgPointer.Left=ReadIni("chuangti","imgpointerleft","1200")'从ini文件中确定窗体大小
Me.MoveReadIni("chuangti","formleft","100"),ReadIni("chuangti","formtop","100"),ReadIni("chuangti","formwidth","2400"),ReadIni("chuangti","formheight","2400")
'Me关键字像是隐含声明的变量。
这个关键字适用于类模块中的每个过程。
当类有多个实例时,Me在代码正在执行的地方提供引用具体实例的方法。
要把当前执行类实例的有关信息传递到另一个模块的过程,Me非常有用
Data1.DatabaseName=dizhi&"shuju.mdb"
SetDatashuju=Workspaces(0).OpenDatabase(dizhi&"shuju.mdb",False,False)
ListTree
lianxibiao
EndSub
PrivateSubForm_Resize()'当一个对象第一次显示或当一个对象的窗口状态改变时该事件发生
OnErrorResumeNext'resume在错误处理程序结束后,恢复原先的运行。
如果错误和错误处理程序出现在同一个程序中,则从紧随产生错误的语句的下个语句恢复运行。
如果错误发生在被调用的过程中,则对最后一次调用包含错误处理程序的过程的语句(或OnErrorResumeNext语句),从紧随该语句之后的语句处恢复运行
IfMe.Width IfMe.WindowState<>1ThenchicunimgPointer.Left'windowstate返回或设置一个值,该值用来指定在运行时窗体窗口的可视状态。 0为正常,1最小化,2最大化 EndSub PrivateSubchicun(XAsLong) X=treewide TreeView1.Width=X imgPointer.Left=X+40 DBGrid1.Left=X+40 DBGrid1.Width=Me.Width-(TreeView1.Width+100) TreeView1.Top=Toolbar1.Height DBGrid1.Top=TreeView1.Top+2 imgPointer.Top=TreeView1.Top picMove.Top=TreeView1.Top TreeView1.Height=Me.ScaleHeight-TreeView1.Top-300'设置height DBGrid1.Height=TreeView1.Height imgPointer.Height=TreeView1.Height picMove.Height=TreeView1.Height StatusBar1.Top=Me.ScaleHeight-TreeView1.Height-TreeView1.Top-300 StatusBar1.Height=300 EndSub PublicSubListTree()'显示树形列表 DimaAsNode DimbAsLong '添加地址薄类型 TreeView1.Nodes.Clear Seta=TreeView1.Nodes.Add(,,"l","联系人")'object.Add(relative,relationship,key,text,image,selectedimage) WithDatashuju.OpenRecordset("select*fromlistwherebook='lianxiren'") WhileNot.EOF b=b+1 Seta=TreeView1.Nodes.Add("l",tvwChild,"l"&b,! Type)'TvwChild4(缺省)子节点。 该Node节点是relative命名节点的子节点 .MoveNext Wend EndWith a.EnsureVisible '添加网址薄类型 Seta=TreeView1.Nodes.Add(,,"W","网址薄") WithDatashuju.OpenRecordset("select*fromlistwherebook='wangzhi'") WhileNot.EOF b=b+1 Seta=TreeView1.Nodes.Add("W",tvwChild,"W"&b,! Type) .MoveNext Wend EndWith a.EnsureVisible '添加备忘列表 Seta=TreeView1.Nodes.Add(,,"b","备忘录") WithDatashuju.OpenRecordset("select*fromlistwherebook='beiwang'") WhileNot.EOF b=b+1 Seta=TreeView1.Nodes.Add("b",tvwChild,"b"&b,! Type) .MoveNext Wend EndWith a.EnsureVisible EndSub PublicSublianxibiao(OptionalstrRelationAsString) DimaAsString a="select姓名,关系,电话,地址,qq,Email,备注fromlianxiren" IfstrRelation<>""Thena=a&"where关系='"&strRelation&"'" Data1.RecordSource=a'ecordSource设置一个数据控件的底层表、sql语句或querydef Data1.Refresh shujudbg7,"lianxiren" IfstrRelation<>""ThenDBGrid1.Columns (1).Visible=True EndSub PublicSubwangzhibiao(OptionalstrTypeAsString) DimaAsString a="select名称,网址,类型,备注fromwangzhi" IfstrType<>""Thena=a&"where类型='"&strType&"'" Data1.RecordSource=a'ecordSource设置一个数据控件的底层表、sql语句或querydef Data1.Refresh shujudbg4,"wangzhi" EndSub PublicSubbeiwangbiao(OptionalstrTypeAsString) DimaAsString a="select文件名,内容frombeiwang" IfstrType<>""Thena=a&"where类型='"&strType&"'" Data1.RecordSource=a'ecordSource设置一个数据控件的底层表、sql语句或querydef Data1.Refresh shujudbg2,"beiwang" EndSub PrivateSubshujudbg(lieshuAsLong,shujukumingAsString) DimyuanlieshuAsLong,iAsInteger,bAsInteger yuanlieshu=DBGrid1.Columns.Count b=lieshu-yuanlieshu Fori=1Tob DBGrid1.Columns.Add (1) Next Forlieshu=0Tolieshu-1'设置字段、宽度 DBGrid1.Columns(lieshu).Width=ReadIni(shujukuming,"colwid"&lieshu,2000) Next EndSub PrivateSubtreeview1_NodeClick(ByValNodeAsComctlLib.Node) SelectCaseNode.Key Case"l" lianxibiao Case"l1"To"l9","l10"To"l99" lianxibiaoNode.Text Case"W" wangzhibiao Case"W1"To"W9","W10"To"W99" wangzhibiaoNode.Text Case"b" beiwangbiao Case"b1"To"b9","b10"To"b99" beiwangbiaoNode.Text EndSelect EndSub PrivateSubTreeView1_BeforeLabelEdit(CancelAsInteger) Cancel=True'取消标签编辑操作 EndSub PrivateSubmen_Click(IndexAsInteger)'点击菜单事件 SelectCaseIndex Case1 lianxiadd.liancaozuo=1 lianxiadd.ShowvbModal,Me Case2 shanlian Case3 lianxiadd.liancaozuo=2 lianxiadd.ShowvbModal,Me Case4 chazhao.Show EndSelect EndSub PrivateSubwang_Click(IndexAsInteger)'点击菜单事件 DimaAsLong SelectCaseIndex Case1 wangzhiadd.wangcaozuo=1 wangzhiadd.ShowvbModal,Me Case2 shanwang Case3 wangzhiadd.wangcaozuo=2 wangzhiadd.ShowvbModal,Me Case4 IfInStr(Data1.RecordSource,"wangzhi")>0Then WithData1.Recordset IfNot.EOFAndNot.BOFThen'指针处于中间位置 IfLeft(! 网址,7)=""Open",! 网址,"",App.Path,1) Else 'shellexecute(byvalhwandasLong,byvalipoperationasString,byvalipfileasString,byvalipparamelersasString,byvalipdirectoryasString,byvalnshowcmdasLong) 'shellexecute函数: 查找与制定相关程序的文件名 'hwnd制定一个窗口的句柄,有时候windows程序有必要在创建自己的主窗口前显示一个消息框 'ipoperation制定字符串"open"来打开ipfile文档,或指定"print"来打印它 'ipfile想用关联程序打印或打开一个程序名或文件名 'ippatameters如果ipszfile是可执行文件,则这个字符串包括传递给执行程序的参数 'ipkirectory使用的完整路径 'nshowsmd定义了如何显示启动程序的常数值 a=ShellExecute(Me.hwnd,"Open","1)' EndIf EndIf EndWith EndIf EndSelect EndSub PrivateSubbei_Click(IndexAsInteger)'点击菜单事件 SelectCaseIndex Case1 beiwanglu.beicaozuo=1 beiwanglu.ShowvbModal,Me Case2 shanbei Case3 beiwanglu.beicaozuo=2 beiwanglu.ShowvbModal,Me EndSelect EndSub PrivateSubshanwang() DimaAsString,bAsString WithData1.Recordset a=MsgBox("确定删除"&vbCrLf&! 网址&"? ",vbQuestion+vbYesNo) Ifa=vbYesThen Data1.Recordset.Delete Data1.Recordset.MoveNext IfData1.Recordset.EOFThenData1.Recordset.MoveLast EndIf EndWith ListTree EndSub PrivateSubshanlian() DimaAsString,bAsString WithData1.Recordset a=MsgBox("确定删除"&vbCrLf&! 姓名&"? ",vbQuestion+vbYesNo) Ifa=vbYesThen Data1.Recordset.Delete Data1.Recordset.MoveNext IfData1.Recordset.EOFThenData1.Recordset.MoveLast EndIf EndWith ListTree EndSub PrivateSubshanbei() DimaAsString,bAsString WithData1.Recordset a=MsgBox("确定删除"&vbCrLf&! 备忘&"? ",vbQuestion+vbYesNo) Ifa=vbYesThen Data1.Recordset.Delete Data1.Recordset.MoveNext IfData1.Recordset.EOFThenData1.Recordset.MoveLast EndIf EndWith ListTree EndSub PrivateSubToolbar1_ButtonClick(ByValButtonAsComctlLib.Button) IfButton.Index<5Then men_Click(Button.Index) ElseIfButton.Index>5Then wang_Click(Button.Index-5) EndIf EndSub 'PrivateSubStatusBar1_PanelClick(ByValPanelAsComctlLib.Panel) 'Ifdenglu.Combo1.Text=douThenStatusBar1.Panels.Item (1).Text="操作者: 窦军强" 'Ifdenglu.Combo1.Text=gaoThenStatusBar1.Panels.Item (1).Text="操作者: 高树青" 'StatusBar1.Panels.Item (2).Text=Format(Date,"yyyy年mm月dd日") 'n=Weekday(Data) 'Ifn=1ThenStatu
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vb 课程设计 报告