1、VB.NET面对对象程序设计课题基于Visual Studio.NET(2010)院 (系)xx专业班级xx学生姓名xx学 号xx指导教师xx完成时间xx简易图书管理系统一、功能描述1、设计本系统的目的(1)Visual Basic.NET是从Visual Basic 6.0语言演变而来的,是一种为高效地生成类型安全和真正面向对象的应用程序而设计的语言。它可以充分利用.NET提供的的一切,快速、方便地构建最新的.NET应用程序、组件或者服务。通过此次程序设计,锻炼我们应用计算机的能力以及应用VB.NET编程解决实际问题的能力。(2)通过此设计,熟练掌握Visual Studio 2010集成开
2、发环境(IDE)中的Visual Basic模块下windows窗体应用程序中各种控件的常用属性和事件、数组的各种操作以及数据库的相关操作(数据库的建立、编辑、查找、删除等),并能够做到灵活运用。2、系统功能描述(1) 通过键盘输入某本图书的信息;(2) 给定图书编号,显示该本图书的信息;(3) 给定作者姓名,显示所有该作者编写的图书信息;(4) 给定出版社,显示该出版社的所有图书信息;(5) 给定图书编号,删除该本图书的信息;(6) 提供一些统计各类信息的功能。(7) 要求用InputBox函数,输出在图片框上,界面布局合理,实用性强。3.设计思路该管理系统主要由四部分组成:系统用户的登录、
3、图书信息管理、借阅或归还图书管理以及退出系统。 各模块的主要功能如下:系统用户的登录:实现用户通过用户名和密码进行登录的功能。图书信息管理:实现对图书的添加、查找、删除和修改的功能。借阅或归还图书管理:实现对已经借出或归还的图书信息进行统计管理。退出系统:结束图书管理系统。二、概要设计1、系统功能模块框图设计登录窗口主窗体图书管理窗口归还管理窗口借阅管理窗口系统管理窗口查询增添编辑删除条件查询退出登录/退出用户信息退出条件查询 22、数据库设计创建一数据库为mydb.mdb,该数据库共包含3张表,分别为“书籍信息表”、“图书归还表”和“图书借出表”,表结构参考如下:书籍信息表:图书编号、图书名
4、、作者、出版社、数量、出版日期、价格;图书归还表:图书编号、图书名、作者、出版社、数量、图书是否损坏、借出日期、归还日期;图书借出表:图书编号、图书名、作者、出版社、借出数量、借出时间、联系电话、借出期限、借出者姓名。表1 图书信息表表2 图书借阅表表3 图书归还表三、详细设计1、登录模块设计登录模块的详细设计主要是用户登录的一个界面,判断登录的用户名或密码是否正确,进入后将面对的是主界面,从而进行相关的操作。登录的界面主要由用户名和密码的信息,还有一些标题设置,登录和退出按钮组成。通过标题可以知道此系统的大概内容,由此,登录界面的设计完成,如图所示。其中,将PasswordChar设置为“*
5、”,可将输入密码隐藏。图1 登录界面代码如下:Private Sub Command1_Click()Const user = 123, password = 123If Text1.Text = user And Text2.Text = password Then主窗体.ShowEnd IfEnd SubPrivate Sub Command2_Click()退出系统.ShowEnd Sub2、主窗体模块详细设计在这个界面中创立的是一个Form窗体和如图所示的一些菜单选项。 图2 主窗体操作界面代码如下:Private Sub guihuan_Click()归还管理.Show主界面.Hid
6、eEnd SubPrivate Sub jieyue_Click()借阅管理.Show主界面.HideEnd SubPrivate Sub tuichu_Click()登录窗口.Show主界面.HideEnd SubPrivate Sub tushu_Click()图书信息管理.Show主界面.HideEnd Sub3、各项子模块详细设计(1)图书信息窗口的创建运用Data控件,点击查询,输入图书编号,即可查到关于此类书籍的相关信息。分别点击添加、删除、修改即可对图书信息进行相应的操作。其中:DatabaseName属性值得依据数据库的导入更改。图3 学生信息查询窗口(2)借阅管理窗口的创建利
7、用DataGrid控件和Adodc1控件将已借出图书信息表直接显示出。然后再用Select语句进行查找。其中需要注意的是CommandType和Recordsource属性的设置。程序运行效果如图:图4 借出图书信息(3)归还管理窗口的创建图5 归还管理窗口(4)系统退出窗口的创建运用Label和Timer控件,创建出滚动字幕。图6 退出界面代码如下:Private Sub Form_Load()Timer1.Interval = 100Label1.Caption = 谢谢使用长大图书管理系统!Label1.FontSize = 22End SubPrivate Sub Timer1_Tim
8、er()Label1.Move Label1.Left - 200If (Label1.Left + Label1.Width) 0 Then Label1.Left = Me.ScaleWidth + 10End IfEnd Sub四、调试中存在的问题及解决方法1、重新打开工程时,弹出错误对话框显示与data控件绑定的数据库*.mdb数据库不是有效途径图7 错误对话框解决办法:右击ADO控件,打开ADO控件的属性窗口,弹出ADODC属性对话窗口,点击使用连接字符串的“生成”,出现“数据连接属性”对话框,重新定义其导入数据的路径。如图图8 属性设置对话框2、弹出错误对话框Form子语句错误或者
9、运用Select语句在DataGrid和ADO控件所创建的窗口中查询未显示表格中的字符。解决办法:打开adodc1.adodc的属性编辑器,编辑Recordsource与Commandtype更改其记录源和表或存储过程名称。如下图:图9 属性对话框3、在单击菜单,弹出下一个窗体的过程当中,显示错误提示,如图;图10 错误对话框解决办法:查看代码,确定代码中的命名与窗体的命名一致即可。五、心得体会在这次VB课程设计过程中,我最大的收获就是深刻地认识到,做事情一定要有耐心,无论遇到什么困难,都不能心烦,否则就很难把事情好。 一开始,我以为三天就可以把课程设计搞好,谁知道我们搞了差不多一个星期。界面
10、的设计倒是没什么问题,最有问题的就是编程了,编程是非常耗时和精力的。这一点我是深有体会的。有一次我的代码有点错误,但我看了一遍又一遍,还是找不出问题所在,我又请教了老师,老师也看了很久,也没有找到出错的地方。后来我才发现有一个数据与数据库的数据不同。就是少了一个空格,就是一个空格花了我整整一个上午。唉!难怪我经常听到说,编程实在是太麻烦了,看到头都大了,看到就心烦了。就是一个小小的问题就让你花去一个早上的时间。所以我们无论做任何事情都要细心和耐心。无论做什么事情,我认为最重要的是在做事过程中学到东西,吸取教训。 在后期调试阶段也是很废时的。但我很有耐心,慢慢地调试,最终把这个系统软件开发出来了
11、。在这一刻我们是最高兴的。因为我付出的汗水得到了回报!在这次的Visual Basic设计中使我深深地体会到了,要想真正的学号一门课不是那么容易的,需要你的耐心,决心,信心,还有坚持不懈的努力。六、参考文献1 VB程序设计(第四版), 邵杰(主编) 东南大学出版社2 Visual Basic 实验与测试(第4版),邵杰(主编) 东南大学出版社3 Visual Basic 6.0程序设计教程,罗朝盛,人民邮电出版社七、附录图书信息查询窗口的代码如下:Private Sub Command1_Click()Dim n As Stringn = InputBox(请输入图书编号:, 查找)Data1
12、.Recordset.Index = IDData1.Recordset.Seek =, nEnd SubPrivate Sub Command2_Click()Dim birth As DateIf Command2.Caption = 增添 ThenData1.Recordset.AddNewText1.SetFocusCommand1.Enabled = FalseCommand4.Enabled = FalseCommand2.Caption = 保存Command3.Caption = 取消ElseOn Error GoTo err:Data1.Recordset.Fields(图书
13、编号) = 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)
14、Data1.Recordset.UpdateCommand1.Enabled = TrueCommand4.Enabled = TrueCommand2.Caption = 增添Command3.Caption = 删除Exit Suberr:MsgBox 添加数据到数据库时出错,注意检查各项数据是否正确。, vbCritical + vbOKOnly, 提示End IfEnd SubPrivate Sub Command3_Click()If Command3.Caption = 取消 ThenData1.Recordset.CancelUpdateText1.SetFocusCommand
15、1.Enabled = TrueCommand4.Enabled = TrueCommand2.Caption = 增加Command3.Caption = 删除ElseData1.Recordset.DeleteData1.RefreshEnd IfEnd SubPrivate Sub Command4_Click()If Command4.Caption = 修改 ThenData1.Recordset.EditText1.SetFocusCommand1.Enabled = FalseCommand4.Enabled = FalseCommand2.Caption = 更新Command
16、3.Caption = 取消ElseOn Error GoTo err: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(Tex
17、t7.Text)Data1.Recordset.Fields(出版日期) = CDate(Trim(Text5.Text)Data1.Recordset.UpdateCommand1.Enabled = TrueCommand4.Enabled = TrueCommand2.Caption = 增添Command3.Caption = 删除err:MsgBox 添加数据到数据库时出错,注意检查各项数据是否正确。, vbCritical + vbOKOnly, 提示End IfEnd Sub借阅管理窗口代码如下:Private Sub Command1_Click()If Option1.Val
18、ue = True ThenAdodc1.RecordSource = select * from 图书借出表 where 图书借出表.图书编号= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = ElseIf Option2.Value = True ThenAdodc1.RecordSource = select * from 图书借出表 where 图书借出表.图书名= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = ElseIf Option3.Va
19、lue = True ThenAdodc1.RecordSource = select * from 图书借出表 where 图书借出表.借出时间= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = ElseIf Option4.Value = True ThenAdodc1.RecordSource = select * from 图书借出表 where 图书借出表.借出者姓名= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = End IfEnd SubP
20、rivate Sub Command2_Click()主界面.Show借阅管理.HideEnd Sub归还管理窗口代码如下:Private Sub Command1_Click()If Option1.Value = True ThenAdodc1.RecordSource = select * from 图书归还表 where 图书归还表.图书编号= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = ElseIf Option2.Value = True ThenAdodc1.RecordSource = select *
21、from 图书归还表 where 图书归还表.出版社= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = ElseIf Option3.Value = True ThenAdodc1.RecordSource = select * from 图书归还表 where 图书归还表.作者= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = ElseIf Option4.Value = True ThenAdodc1.RecordSource = select * f
22、rom 图书归还表 where 图书归还表.图书名= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = ElseIf Option5.Value = True ThenAdodc1.RecordSource = select * from 图书归还表 where 图书归还表.图书是否损坏= + Text1.Text + Adodc1.RefreshDataGrid1.RefreshText1.Text = End IfEnd SubPrivate Sub Command2_Click()主界面.Show归还管理.HideEnd
23、 Sub目 录第一章 总论51.1项目概要51.2可行性研究报告编制依据81.3综合评价8第二章 项目背景及必要性112.1项目建设背景112.2项目建设的必要性13第三章 建设条件163.1项目区概况163.2项目建设条件优劣势分析21第四章 市场分析与销售方案264.1市场分析264.2销售策略、营销方案和模式294.3风险分析30第五章 项目建设方案325.1建设任务和规模325.2建设规划和布局325.3工艺(技术)方案325.4建设内容355.5实施进度安排36第六章 环境影响评价386.1环境影响386.2环境保护与治理措施38第七章 项目组织与管理407.1组织机构与职能划分407.2劳动定员407.3经营管理模式417.4经营管理措施417.5技术培训427.6劳动保护、安全卫生与消防42第八章 投资概算与资金来源448.1投资概算依据448.2投资概算448.3资金来源46第九章 财务评价479.1财务评价依据479.2销售收入、销售税金和附加估算479.3总成本及经营成本估算489.4财务效益分析499.5不确定性分析509.6财务评价结论51第十章 社会效益评价5210.1社会评价基本结论5210.2农业产业化经营5210.3农民增收、农业增效评价5410.4其它社会影响55第十一章可行性研究结论与建议5611.1可行性研究结论5611.2问题与建议56