vb课程设计报告.docx

上传人:b****2 文档编号:1950475 上传时间:2023-05-02 格式:DOCX 页数:40 大小:31.44KB
下载 相关 举报
vb课程设计报告.docx_第1页
第1页 / 共40页
vb课程设计报告.docx_第2页
第2页 / 共40页
vb课程设计报告.docx_第3页
第3页 / 共40页
vb课程设计报告.docx_第4页
第4页 / 共40页
vb课程设计报告.docx_第5页
第5页 / 共40页
vb课程设计报告.docx_第6页
第6页 / 共40页
vb课程设计报告.docx_第7页
第7页 / 共40页
vb课程设计报告.docx_第8页
第8页 / 共40页
vb课程设计报告.docx_第9页
第9页 / 共40页
vb课程设计报告.docx_第10页
第10页 / 共40页
vb课程设计报告.docx_第11页
第11页 / 共40页
vb课程设计报告.docx_第12页
第12页 / 共40页
vb课程设计报告.docx_第13页
第13页 / 共40页
vb课程设计报告.docx_第14页
第14页 / 共40页
vb课程设计报告.docx_第15页
第15页 / 共40页
vb课程设计报告.docx_第16页
第16页 / 共40页
vb课程设计报告.docx_第17页
第17页 / 共40页
vb课程设计报告.docx_第18页
第18页 / 共40页
vb课程设计报告.docx_第19页
第19页 / 共40页
vb课程设计报告.docx_第20页
第20页 / 共40页
亲,该文档总共40页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

vb课程设计报告.docx

《vb课程设计报告.docx》由会员分享,可在线阅读,更多相关《vb课程设计报告.docx(40页珍藏版)》请在冰点文库上搜索。

vb课程设计报告.docx

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'设置AsString)

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(byvalasString,byvalipfileasString,byvalipparamelersasString,byvalipdirectoryasString,byvalnshowcmdasLong)

'shellexecute函数:

查找与制定相关程序的文件名

'hwnd制定一个窗口的句柄,有时候windows程序有必要在创建自己的主窗口前显示一个消息框

'ipoperation制定字符串"open"来打开ipfile文档,或指定"print"来打印它

'ipfile想用关联程序打印或打开一个程序名或文件名

'ippatameters如果ipszfile是可执行文件,则这个字符串包括传递给执行程序的参数

'ipkirectory使用的完整路径

'nshowsmd定义了如何显示启动程序的常数值

a=ShellExecute(Me.","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)

'Ifdenglubo1.Text=douThenStatusBar1.Panels.Item

(1).Text="操作者:

窦军强"

'Ifdenglubo1.Text=gaoThenStatusBar1.Panels.Item

(1).Text="操作者:

高树青"

'StatusBar1.Panels.Item

(2).Text=Format(Date,"yyyy年mm月dd日")

'n=Weekday(Data)

'Ifn=1ThenStatusBar1.Panels.Item(3).Text="星期日"

'Ifn=2ThenStatusBar1.Panels.Item(3).Text="星期一"

'Ifn=3ThenStatusBar1.Panels.Item(3).Text="星期二"

'Ifn=4ThenStatusBar1.Panels.Item(3).Text="星期三"

'Ifn=5ThenStatusBar1.Panels.Item(3).Text="星期四"

'Ifn=6ThenStatusBar1.Panels.Item(3).Text="星期五"

'Ifn=7ThenStatusBar1.Panels.Item(3).Text="星期六"

'StatusBar1.Panels.Item(4).Text=Time

'EndSub

3.2登录窗体代码

PrivateSubForm_Load()

Randomize

Data1.DatabaseName=App.Path&"\shuju.mdb"

X=Int(Rnd*10)

Y=Int(Rnd*10)

z=Int(Rnd*10)

m=Int(Rnd*10)

Label3.Caption=X&Y&z&m

Label3.Font=宋体

'Combo1.AddItem="qing"

'Combo1.AddItem="dou"

EndSub

PrivateSubCommand1_Click()

DimaAsString,bAsString,cAsString

a=Trim(Combo1)

Data1.RecordSource="select*fromyonghuwhereyonghu='"&a&"'andmima='"&Text2.Text&"'"

Data1.Refresh

Ifa=""Then

MsgBox"用户名不能为空,请重新输入!

",vbOKOnly+vbExclamation,"错误"

Combo1.SetFocus

ExitSub

EndIf

IfText2.Text=""Then

MsgBox"请输入密码",vbOKOnly+vbExclamation,"错误"

Text2.SetFocus

ExitSub

EndIf

IfText1.Text<>Trim(Label3.Caption)Anda<>""AndText2.Text<>""Then

MsgBox"验证码错误,请重新输入!

",vbOKOnly+vbExclamation,"错误"

Text1.Text=""

Text1.SetFocus

ExitSub

EndIf

b=Da

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2