VB图书管理系统课程设计报告.docx

上传人:b****5 文档编号:11687191 上传时间:2023-03-30 格式:DOCX 页数:17 大小:817.31KB
下载 相关 举报
VB图书管理系统课程设计报告.docx_第1页
第1页 / 共17页
VB图书管理系统课程设计报告.docx_第2页
第2页 / 共17页
VB图书管理系统课程设计报告.docx_第3页
第3页 / 共17页
VB图书管理系统课程设计报告.docx_第4页
第4页 / 共17页
VB图书管理系统课程设计报告.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

VB图书管理系统课程设计报告.docx

《VB图书管理系统课程设计报告.docx》由会员分享,可在线阅读,更多相关《VB图书管理系统课程设计报告.docx(17页珍藏版)》请在冰豆网上搜索。

VB图书管理系统课程设计报告.docx

VB图书管理系统课程设计报告

VB语言程序设计课程设计报告

 

系(部)

专业班级

学生姓名

学号/序号

指导教师

完成时间

图书管理系统

一、功能描述

使用VB6.0中各种控件的常用属性和事件、数组的各种操作以及数据库的相关操作(数据库的建立、编辑、查找、删除等),建立了这个简易的图书管理系统,方便图书管理人员对图书的管理。

用户可以通过此系统的添加、删除,还回,借出等功能对书籍信息、书籍流通进行编辑同时也可以通过直接输入想要查询的书籍信息来获得书籍的流通及库存等相关信息。

二、概要设计

1、系统功能模块框图设计

首先程序运行,出现一个MDI主窗体,里面分别有登录,书籍信息管理系统,退出三个菜单选项,登录前,管理按钮不可用,当正确输入用户名以及密码以后,点管理按钮,图书管理窗体显示,用户可对图书信息进行管理。

程序流程框图如图所示:

 

 

2、数据库设计

创建一个数据库为mydb.mdb,该数据库共包含3表,分别为“书籍信息表”、“图书归还表”和“图书借出表”,表结构如下:

书籍信息表:

图书编号、图书名、作者、出版社、数量、出版日期、价格

图1.书籍信息表

图书归还表:

图书编号、图书名、作者、出版社、数量、图书是否损坏、借出日期、归还日期;

 

图2.图书归还表

图书借出表:

图书编号、图书名、作者、出版社、借出数量、借出时间、联系、借出期限、借出者姓名。

 

图3.图书借出表

 

三、详细设计

1、MDI主界面

用户登录模块中登录与取消两按钮,单击登录会进入系统进行下一步的操作,用户名文本框与数据库相连接,当在用户名文本框输入用户名后点击登录按钮后,会在数据库中进行查询看数据库中是否会有该用户名,且该用户名的密码是否与密码框中输入的相同,如果相同会进入系统,如果不存在该用户名或密码与用户名不相匹配,则会提示“密码错误”,用户名文本框会得到焦点,让重新输入。

(1)窗体截图(如图5.1)

图1MDI主界面

图2登录窗体

1.功能实现

用户登录

PrivateSubCommand1_Click()

Dimmsg,style,title,response

IfText2.Text=123Then

MDIForm1.bj.Enabled=True

Form3.Hide

Else

msg="密码错误,请重新输入。

"

style=4+16+356

title="提示"

response=MsgBox(msg,style,title)

Ifresponse=6Then

Form3.Show

Else

EndIf

EndIf

EndSub

2、图书管理窗体

图3图书管理窗体

2.功能实现

对图书信息添加

PrivateSubCommand1_Click()

SelectCaseCommand1.Caption

Case"添加"

SelectCaseSSTab1.Tab

Case0

Data1.Recordset.AddNew

Case1

Data2.Recordset.AddNew

Case2

Data3.Recordset.AddNew

EndSelect

 

SSTab1.TabEnabled(0)=False

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=False

Command1.Caption="确定"

Command2.Enabled=False

Command3.Enabled=False

Command4.Enabled=False

Command5.Enabled=False

Command6.Enabled=False

Command7.Enabled=False

Command8.Enabled=False

Case"确定"

SelectCaseSSTab1.Tab

Case0

Data1.UpdateRecord

Case1

Data2.UpdateRecord

Case2

Data3.UpdateRecord

EndSelect

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=True

SSTab1.TabEnabled

(2)=True

Command1.Caption="添加"

Command2.Enabled=True

Command3.Enabled=True

Command4.Enabled=True

Command5.Enabled=True

Command6.Enabled=True

Command7.Enabled=True

Command8.Enabled=True

EndSelect

EndSub

 

四、调试中存在的问题及解决方法

1、程序运行顺序出现的错误

程序运行时没有按照预想的窗体顺序运行,导致程序无法顺利进行下去。

解决方法:

在工程属性窗口中,将启动对象改为指定窗体即可。

2、无确查询指定书籍信息的错误

点击查询按钮,出现错误提示,程序中的索引不是指定表格中的索引。

解决方法:

将表格中的索引信息删除后重新设定,使其与程序中的一致。

3、无法成功添加书籍信息

添加程序运行到保存信息时,跳过了中间部分,直接运行“添加数据到数据库时出错,注意检查图书编号是否重复,及其他各项数据是否正确。

”语句,导致无法成功添加书籍信息。

五、心得体会

在本次VB课程设计中,我进一步熟悉VB6.0开发环境,了解了用VB6.0实现一个完整应用程序的设计过程,有关代码编写、调试和整合程序的方法和技巧。

进一步掌握了VB6.0中各种控件的常用属性和事件、数组的各种操作以及数据库的相关操作(数据库的建立、编辑、查找、删除等)。

在我所设计图书管理系统的过程中,并不是一帆风顺的,我遇到了这样或那样的问题,首先在数据库的时候,我按照书上的步骤将属性改好,但当我第二天再次访问数据库的时候,提示文件找不到,由于第一次我数据库的地址在桌面,没有将数据库放在我的工程文件夹里,所以导致了文件找不到。

然后,当我在设置DATA控件的属性时,又不小心在窗体加载中用代码写入了DATA的属性,导致数据不上,后面也出现了几次由于我的疏忽,导致程序出错。

这让我意识到,在软件开发的过程中,一点小小的错误,都不能完成,可谓是“失之毫厘谬以千里”。

因此,我们需要很细心才能完成这个过程。

虽然,我所制作的简易图书管理系统可以进行对书籍信息的添加,删除,修改等功能,但是也存在很多不足。

在登录设计中,我没有建立用户数据库,用代码只编写了一个用户。

在查询的时候,由于我用DATA控件数据库,虽然添加了两个索引,但还是只能用图书编号一个索引进行查询,我没能找到解决的方法。

还有在图书归还以及借出的环节,考虑的不太完善。

最后,我很感谢在程序设计的过程中,老师细心地讲解与建议,给了我很大的帮助,在此次课程设计中,我受益匪浅。

六、参考文献

【1】罗朝盛.VisualBasic6.0程序设计教程(第3版)[M].人民邮电出版社,2009.02

【2】邵洁.VisualBasic6.0程序设计教程(第4版)[M].东南大学出版社,2008.02

【3】邵洁.VisualBasic6.0实验与测试(第4版)[M].东南大学出版社,2008.02

七、附录

MDI主界面

PrivateSubdl_Click()

Form3.Show

EndSub

PrivateSubgl_Click()

Form2.Show

EndSub

PrivateSubMDIForm_Load()

gl.Enabled=False'在登录之前,管理按钮不可用

EndSub

PrivateSubtc_Click()

End

EndSub

登录窗体

PrivateSubCommand1_Click()

Dimmsg,style,title,response

IfText2.Text=123Then'密码为123时,管理可用

MDIForm1.gl.Enabled=True

Form3.Hide

Else

msg="密码错误,请重新输入。

"'密码输入错误时,提示重新输入

style=4+16+356

title="提示"

response=MsgBox(msg,style,title)

Ifresponse=6Then

Form3.Show

gl.Enabled=False

Else

EndIf

EndIf

EndSub

PrivateSubCommand2_Click()

End

EndSub

PrivateSubTimer1_Timer()'时间控件,控制字体的移动

IfLabel3.Left+Label3.Width>=0Then

Label3.Left=Label3.Left-10

Else

Label3.Left=Form3.Width

EndIf

EndSub

管理窗体

PrivateSubCommand1_Click()

'根据当前按钮的标题进行不同的操作

SelectCaseCommand1.Caption

Case"添加"

'向当前选项卡所对应表中添加记录

SelectCaseSSTab1.Tab

Case0

Data1.Recordset.AddNew

Case1

Data2.Recordset.AddNew

Case2

Data3.Recordset.AddNew

EndSelect

'在添加操作完成前禁止进行其他操作

SSTab1.TabEnabled(0)=False

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=False

Command1.Caption="确定"

Command2.Enabled=False

Command3.Enabled=False

Command4.Enabled=False

Command5.Enabled=False

Command6.Enabled=False

Command7.Enabled=False

Command8.Enabled=False

Case"确定"

SelectCaseSSTab1.Tab

Case0

Data1.UpdateRecord

Case1

Data2.UpdateRecord

Case2

Data3.UpdateRecord

EndSelect

'在添加操作完成后允许进行其他操作

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=True

SSTab1.TabEnabled

(2)=True

Command1.Caption="添加"

Command2.Enabled=True

Command3.Enabled=True

Command4.Enabled=True

Command5.Enabled=True

Command6.Enabled=True

Command7.Enabled=True

Command8.Enabled=True

EndSelect

EndSub

PrivateSubCommand10_Click()

IfText16.Text=Text1.TextThen

Text7.Text=Int(Text7.Text)-Int(Text20.Text)

EndIf

EndSub

PrivateSubCommand2_Click()'修改按钮的单机过程

'根据当前按钮的标题进行不同的操作

SelectCaseCommand2.Caption

Case"修改"

SelectCaseSSTab1.Tab

Case0

Data1.Recordset.Edit

Case1

Data2.Recordset.Edit

Case2

Data3.Recordset.Edit

EndSelect

'在修改操作完成前禁止进行其他操作

SSTab1.TabEnabled(0)=False

SSTab1.TabEnabled

(1)=False

SSTab1.TabEnabled

(2)=False

Command2.Caption="确定"

Command1.Enabled=False

Command3.Enabled=False

Command4.Enabled=False

Command5.Enabled=False

Command6.Enabled=False

Command7.Enabled=False

Command8.Enabled=False

Case"确定"

SelectCaseSSTab1.Tab

Case0

Data1.UpdateRecord

Case1

Data2.UpdateRecord

Case2

Data3.UpdateRecord

EndSelect

'在修改操作完成后允许进行其他操作

SSTab1.TabEnabled(0)=True

SSTab1.TabEnabled

(1)=True

SSTab1.TabEnabled

(2)=True

Command2.Caption="修改"

Command1.Enabled=True

Command3.Enabled=True

Command4.Enabled=True

Command5.Enabled=True

Command6.Enabled=True

Command7.Enabled=True

Command8.Enabled=True

EndSelect

EndSub

PrivateSubCommand3_Click()'“删除”按钮的单击事件过程

DimiAsInteger

i=MsgBox("确定要删除此记录?

",vbYesNo+vbExclamation+vbDefaultButton1,"编辑")

Ifi+vbYesThen

SelectCaseSSTab1.Tab'删除后数据更新

Case0

Data1.Recordset.Delete

Data1.Refresh

Case1

Data2.Recordset.Delete

Data2.Refresh

Case2

Data3.Recordset.Delete

Data3.Refresh

EndSelect

EndIf

EndSub

PrivateSubCommand4_Click()'“首记录”按钮的单击事件过程

SelectCaseSSTab1.Tab

Case0

Data1.Recordset.MoveFirst

Case1

Data2.Recordset.MoveFirst

Case2

Data3.Recordset.MoveFirst

EndSelect

Command4.Enabled=False

Command5.Enabled=False

Command6.Enabled=True

Command7.Enabled=True

EndSub

PrivateSubCommand5_Click()'“上一条”按钮的单击事件过程

SelectCaseSSTab1.Tab

Case0

Data1.Recordset.MoveNext

IfData1.Recordset.EOFThen

Data1.Recordset.MoveFirst

Command4.Enabled=False

Command5.Enabled=False

Command6.Enabled=True

Command7.Enabled=True

EndIf

Case1

Data2.Recordset.MoveNext

IfData2.Recordset.EOFThen

Data2.Recordset.MoveFirst

Command4.Enabled=False

Command5.Enabled=False

Command6.Enabled=True

Command7.Enabled=True

EndIf

Case2

Data3.Recordset.MoveNext

IfData3.Recordset.EOFThen

Data3.Recordset.MoveFirst

Command4.Enabled=False

Command5.Enabled=False

Command6.Enabled=True

Command7.Enabled=True

EndIf

EndSelect

EndSub

PrivateSubCommand6_Click()'“下一条”按钮的单击事件过程

SelectCaseSSTab1.Tab

Case0

Data1.Recordset.MoveNext

IfData1.Recordset.EOFThen

Data1.Recordset.MoveLast

Command4.Enabled=True

Command5.Enabled=True

Command6.Enabled=False

Command7.Enabled=False

EndIf

Case1

Data2.Recordset.MoveNext

IfData2.Recordset.EOFThen

Data2.Recordset.MoveLast

Command4.Enabled=True

Command5.Enabled=True

Command6.Enabled=False

Command7.Enabled=False

EndIf

Case2

Data3.Recordset.MoveNext

IfData3.Recordset.EOFThen

Data3.Recordset.MoveLast

Command4.Enabled=True

Command5.Enabled=True

Command6.Enabled=False

Command7.Enabled=False

EndIf

EndSelect

EndSub

PrivateSubCommand7_Click()'“尾记录”按钮的单击事件过程

SelectCaseSSTab1.Tab

Case0

Data1.Recordset.MoveLast

Case1

Data2.Recordset.MoveLast

Case2

Data3.Recordset.MoveLast

EndSelect

Command4.Enabled=True

Command5.Enabled=True

Command6.Enabled=False

Command7.Enabled=False

EndSub

PrivateSubCommand8_Click()'“查询”按钮的单击事件过程

DimnAsString

n=InputBox("请输入待查图编号:

","查找")

Data1.Recordset.Index="idx_图书"

Data1.Recordset.Seek"=",n

EndSub

PrivateSubCommand9_Click()'“还回”按钮的单击事件过程

IfText8.Text=Text1.TextThen

Text7.Text=Int(Text7.Text)+Int(Text12.Text)

EndIf

EndSub

PrivateSubForm_Load()'窗体加载过程,书籍信息表首先显示

SSTab1.Tab=0

EndSub

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

当前位置:首页 > 总结汇报 > 学习总结

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1