简易图书管理系统课程设计本科论文.docx
《简易图书管理系统课程设计本科论文.docx》由会员分享,可在线阅读,更多相关《简易图书管理系统课程设计本科论文.docx(17页珍藏版)》请在冰豆网上搜索。
简易图书管理系统课程设计本科论文
VB.NET面对对象程序设计课题
——基于VisualStudio.NET(2010)
院(系)
xx
专业班级
xx
学生姓名
xx
学号
xx
指导教师
xx
完成时间
xx
简易图书管理系统
一、功能描述
1、设计本系统的目的
(1)VisualBasic.NET是从VisualBasic6.0语言演变而来的,是一种为高效地生成类型安全和真正面向对象的应用程序而设计的语言。
它可以充分利用.NET提供的的一切,快速、方便地构建最新的.NET应用程序、组件或者服务。
通过此次程序设计,锻炼我们应用计算机的能力以及应用VB.NET编程解决实际问题的能力。
(2)通过此设计,熟练掌握VisualStudio2010集成开发环境(IDE)中的VisualBasic模块下windows窗体应用程序中各种控件的常用属性和事件、数组的各种操作以及数据库的相关操作(数据库的建立、编辑、查找、删除等),并能够做到灵活运用。
2、系统功能描述
(1)通过键盘输入某本图书的信息;
(2)给定图书编号,显示该本图书的信息;
(3)给定作者姓名,显示所有该作者编写的图书信息;
(4)给定出版社,显示该出版社的所有图书信息;
(5)给定图书编号,删除该本图书的信息;
(6)提供一些统计各类信息的功能。
(7)要求用InputBox函数,输出在图片框上,界面布局合理,实用性强。
3.设计思路
该管理系统主要由四部分组成:
系统用户的登录、图书信息管理、借阅或归还图书管理以及退出系统。
各模块的主要功能如下:
●系统用户的登录:
实现用户通过用户名和密码进行登录的功能。
●图书信息管理:
实现对图书的添加、查找、删除和修改的功能。
●借阅或归还图书管理:
实现对已经借出或归还的图书信息进行统计管理。
●退出系统:
结束图书管理系统。
二、概要设计
1、系统功能模块框图设计
查询
增添
编辑
删除
条件查询
退出
登录/退出
用户信息
退出
条件查询
2
2、数据库设计
创建一数据库为mydb.mdb,该数据库共包含3张表,分别为“书籍信息表”、“图书归还表”和“图书借出表”,表结构参考如下:
书籍信息表:
图书编号、图书名、作者、出版社、数量、出版日期、价格;
图书归还表:
图书编号、图书名、作者、出版社、数量、图书是否损坏、借出日期、归还日期;
图书借出表:
图书编号、图书名、作者、出版社、借出数量、借出时间、联系电话、借出期限、借出者姓名。
表1图书信息表
表2图书借阅表
表3图书归还表
三、详细设计
1、登录模块设计
登录模块的详细设计主要是用户登录的一个界面,判断登录的用户名或密码是否正确,进入后将面对的是主界面,从而进行相关的操作。
登录的界面主要由用户名和密码的信息,还有一些标题设置,登录和退出按钮组成。
通过标题可以知道此系统的大概内容,由此,登录界面的设计完成,如图所示。
其中,将PasswordChar设置为“*”,可将输入密码隐藏。
图1登录界面
代码如下:
PrivateSubCommand1_Click()
Constuser=123,password=123
IfText1.Text=userAndText2.Text=passwordThen
主窗体.Show
EndIf
EndSub
PrivateSubCommand2_Click()
退出系统.Show
EndSub
2、主窗体模块详细设计
在这个界面中创立的是一个Form窗体和如图所示的一些菜单选项。
图2主窗体操作界面
代码如下:
PrivateSubguihuan_Click()
归还管理.Show
主界面.Hide
EndSub
PrivateSubjieyue_Click()
借阅管理.Show
主界面.Hide
EndSub
PrivateSubtuichu_Click()
登录窗口.Show
主界面.Hide
EndSub
PrivateSubtushu_Click()
图书信息管理.Show
主界面.Hide
EndSub
3、各项子模块详细设计
(1)图书信息窗口的创建
运用Data控件,点击查询,输入图书编号,即可查到关于此类书籍的相关信息。
分别点击添加、删除、修改即可对图书信息进行相应的操作。
其中:
DatabaseName属性值得依据数据库的导入更改。
图3学生信息查询窗口
(2)借阅管理窗口的创建
利用DataGrid控件和Adodc1控件将已借出图书信息表直接显示出。
然后再用Select语句进行查找。
其中需要注意的是CommandType和Recordsource属性的设置。
程序运行效果如图:
图4借出图书信息
(3)归还管理窗口的创建
图5归还管理窗口
(4)系统退出窗口的创建
运用Label和Timer控件,创建出滚动字幕。
图6退出界面
代码如下:
PrivateSubForm_Load()
Timer1.Interval=100
Label1.Caption="谢谢使用长大图书管理系统!
"
Label1.FontSize=22
EndSub
PrivateSubTimer1_Timer()
Label1.MoveLabel1.Left-200
If(Label1.Left+Label1.Width)<0Then
Label1.Left=Me.ScaleWidth+10
EndIf
EndSub
四、调试中存在的问题及解决方法
1、重新打开工程时,弹出错误对话框显示与data控件绑定的数据库*.mdb数据库不是有效途径
图7错误对话框
解决办法:
右击ADO控件,打开ADO控件的属性窗口,弹出ADODC属性对话窗口,点击使用连接字符串的“生成”,出现“数据连接属性”对话框,重新定义其导入数据的路径。
如图
图8属性设置对话框
2、弹出错误对话框Form子语句错误或者运用Select语句在DataGrid和ADO控件所创建的窗口中查询未显示表格中的字符。
解决办法:
打开adodc1.adodc的属性编辑器,编辑Recordsource与Commandtype更改其记录源和表或存储过程名称。
如下图:
图9属性对话框
3、在单击菜单,弹出下一个窗体的过程当中,显示错误提示,如图;
图10错误对话框
解决办法:
查看代码,确定代码中的命名与窗体的命名一致即可。
五、心得体会
在这次VB课程设计过程中,我最大的收获就是深刻地认识到,做事情一定要有耐心,无论遇到什么困难,都不能心烦,否则就很难把事情好。
一开始,我以为三天就可以把课程设计搞好,谁知道我们搞了差不多一个星期。
界面的设计倒是没什么问题,最有问题的就是编程了,编程是非常耗时和精力的。
这一点我是深有体会的。
有一次我的代码有点错误,但我看了一遍又一遍,还是找不出问题所在,我又请教了老师,老师也看了很久,也没有找到出错的地方。
后来我才发现有一个数据与数据库的数据不同。
就是少了一个空格,就是一个空格花了我整整一个上午。
唉!
难怪我经常听到说,编程实在是太麻烦了,看到头都大了,看到就心烦了。
就是一个小小的问题就让你花去一个早上的时间。
所以我们无论做任何事情都要细心和耐心。
无论做什么事情,我认为最重要的是在做事过程中学到东西,吸取教训。
在后期调试阶段也是很废时的。
但我很有耐心,慢慢地调试,最终把这个系统软件开发出来了。
在这一刻我们是最高兴的。
因为我付出的汗水得到了回报!
在这次的VisualBasic设计中使我深深地体会到了,要想真正的学号一门课不是那么容易的,需要你的耐心,决心,信心,还有坚持不懈的努力。
六、参考文献
[1]VB程序设计(第四版),邵杰(主编)东南大学出版社
[2]VisualBasic实验与测试(第4版),邵杰(主编)东南大学出版社
[3]《VisualBasic6.0程序设计教程》,罗朝盛,人民邮电出版社
七、附录
图书信息查询窗口的代码如下:
PrivateSubCommand1_Click()
DimnAsString
n=InputBox("请输入图书编号:
","查找")
Data1.Recordset.Index="ID"
Data1.Recordset.Seek"=",n
EndSub
PrivateSubCommand2_Click()
DimbirthAsDate
IfCommand2.Caption="增添"Then
Data1.Recordset.AddNew
Text1.SetFocus
Command1.Enabled=False
Command4.Enabled=False
Command2.Caption="保存"
Command3.Caption="取消"
Else
OnErrorGoToerr:
Data1.Recordset.Fields("图书编号")=Trim(Text1.Text)
Data1.Recordset.Fields("图书名")=Trim(Text2.Text)
Data1.Recordset.Fields("作者")=Trim(Text3.Text)
Data1.Recordset.Fields("出版社")=Trim(Text4.Text)
Data1.Recordset.Fields("数量")=Val(Text6.Text)
Data1.Recordset.Fields("价格")=Val(Text7.Text)
Data1.Recordset.Fields("出版日期")=CDate(Trim(Text5.Text))
Data1.Recordset.Update
Command1.Enabled=True
Command4.Enabled=True
Command2.Caption="增添"
Command3.Caption="删除"
ExitSub
err:
MsgBox"添加数据到数据库时出错,注意检查各项数据是否正确。
",vbCritical+vbOKOnly,"提示"
EndIf
EndSub
PrivateSubCommand3_Click()
IfCommand3.Caption="取消"Then
Data1.Recordset.CancelUpdate
Text1.SetFocus
Command1.Enabled=True
Command4.Enabled=True
Command2.Caption="增加"
Command3.Caption="删除"
Else
Data1.Recordset.Delete
Data1.Refresh
EndIf
EndSub
PrivateSubCommand4_Click()
IfCommand4.Caption="修改"Then
Data1.Recordset.Edit
Text1.SetFocus
Command1.Enabled=False
Command4.Enabled=False
Command2.Caption="更新"
Command3.Caption="取消"
Else
OnErrorGoToerr:
Data1.Recordset.Fields("图书编号")=Trim(Text1.Text)
Data1.Recordset.Fields("图书名")=Trim(Text2.Text)
Data1.Recordset.Fields("作者")=Trim(Text3.Text)
Data1.Recordset.Fields("出版社")=Trim(Text4.Text)
Data1.Recordset.Fields("数量")=Val(Text6.Text)
Data1.Recordset.Fields("价格")=Val(Text7.Text)
Data1.Recordset.Fields("出版日期")=CDate(Trim(Text5.Text))
Data1.Recordset.Update
Command1.Enabled=True
Command4.Enabled=True
Command2.Caption="增添"
Command3.Caption="删除"
err:
MsgBox"添加数据到数据库时出错,注意检查各项数据是否正确。
",vbCritical+vbOKOnly,"提示"
EndIf
EndSub
借阅管理窗口代码如下:
PrivateSubCommand1_Click()
IfOption1.Value=TrueThen
Adodc1.RecordSource="select*from图书借出表where图书借出表.图书编号='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
ElseIfOption2.Value=TrueThen
Adodc1.RecordSource="select*from图书借出表where图书借出表.图书名='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
ElseIfOption3.Value=TrueThen
Adodc1.RecordSource="select*from图书借出表where图书借出表.借出时间='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
ElseIfOption4.Value=TrueThen
Adodc1.RecordSource="select*from图书借出表where图书借出表.借出者姓名='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
EndIf
EndSub
PrivateSubCommand2_Click()
主界面.Show
借阅管理.Hide
EndSub
归还管理窗口代码如下:
PrivateSubCommand1_Click()
IfOption1.Value=TrueThen
Adodc1.RecordSource="select*from图书归还表where图书归还表.图书编号='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
ElseIfOption2.Value=TrueThen
Adodc1.RecordSource="select*from图书归还表where图书归还表.出版社='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
ElseIfOption3.Value=TrueThen
Adodc1.RecordSource="select*from图书归还表where图书归还表.作者='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
ElseIfOption4.Value=TrueThen
Adodc1.RecordSource="select*from图书归还表where图书归还表.图书名='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
ElseIfOption5.Value=TrueThen
Adodc1.RecordSource="select*from图书归还表where图书归还表.图书是否损坏='"+Text1.Text+"'"
Adodc1.Refresh
DataGrid1.Refresh
Text1.Text=""
EndIf
EndSub
PrivateSubCommand2_Click()
主界面.Show
归还管理.Hide
EndSub