图书馆小型管理系统.doc_第1页
图书馆小型管理系统.doc_第2页
图书馆小型管理系统.doc_第3页
图书馆小型管理系统.doc_第4页
图书馆小型管理系统.doc_第5页
免费预览已结束,剩余19页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

专专 科科 毕毕 业业 大大 作作 业业 毕业大作业 题目名称 图书管理系统设计 专业班级11 级计算机教育 学生姓名刘冬 学 号61102110004 指导教师刘娟 二 一四年五月六日 1 目录目录 第一章第一章 前前言言 3 3 1 1 数据库应用系统简介 3 1 2VISUAL STUDIO 2008 开发平台 3 1 3 图书管理系统 3 第二章第二章 数据库设计数据库设计 4 4 2 1 数据库分析 4 2 2 E R 模型设计 5 2 2 1 实体列表 5 2 2 2 系统的 E R 模型 5 2 3 设计数据库 6 2 3 1 创建数据库 6 2 3 2 创建数据表 6 第三章第三章 界面设计界面设计 7 7 3 1 主界面 7 3 2 用户登录界面 8 3 3 图书查询界面 8 3 4 图书入库界面 9 3 5 图书借阅界面 9 第四章第四章 通用类的生成通用类的生成 1010 4 1 连接数据库 10 4 2 操作数据库中的数据 10 4 3 用户登录代码 图书查询代码等的实现 12 第五章第五章 连接数据库连接数据库 1313 第六章第六章 系统测试系统测试 1313 6 1 开发与测试环境 13 6 2 程序调试情况 13 6 3 功能显示 13 6 3 1 运行主窗口 13 6 3 2 图书查询功能 14 6 3 3 图书入库功能 15 6 3 4 图书借阅功能 15 第七章第七章 问题分析与解决方法问题分析与解决方法 1616 7 1 定义连接数据库字符串的技巧 16 7 2 图书查询功能的友好交互性 16 第八章第八章 总结总结 1717 附录附录 1717 2 附录 A 主窗口实现代码 17 附录 B 图书查询实现代码 20 附录 C 图书借阅功能实现代码 21 参考文献参考文献 2323 3 第一章第一章 前言前言 1 11 1 数据库应用系统简介数据库应用系统简介 SQL Server 2005 数据库是微软公司精心打造的企业级数据库平台产品 该产品不仅包含了丰富的企业及数据管理功能 还集成了商业智能等特性 数 据库由 DBMS 数据库管理系统 处理 DBMS 则由开发人员和用户通过应用程序 直接或间接地使用 它主要包括四个要素 用户数据 元数据 索引和应用元 数据 1 2Visual1 2Visual StudioStudio 20082008 开发平台开发平台 Visual Studio 是一套完整的开发工具集 用于生成 ASP NET Web 应用程 序 XML Web Services 桌面应用程序和移动应用程序 Visual Basic Visual C Visual C 和 Visual J 全都使用相同的集成开发环境 IDE 利用此 IDE 可以共享工具且有助于创建混合语言解决方案 另外 这 些语言利用了 NET Framework 的功能 通过此框架可使用简化 ASP Web 应用 程序和 XML Web Services 开发的关键技术 1 31 3 图书管理系统图书管理系统 当今时代是飞速发展的信息时代 在各行各业中离不开信息处理 这正是 计算机被广泛应用于信息管理系统的环境 计算机的最大好处在于利用它能够 进行信息管理 使用计算机进行信息控制 不仅提高了工作效率 而且大大的 提高了其安全性 图书馆作为一种信息资源的集散地 图书和用户借阅资料繁多 包含很多 的信息数据的管理 现今 有很多的图书馆都是初步开始使用 甚至尚未使用 计算机进行信息管理 根据调查得知 他们以前对信息管理的主要方式是基于 文本 表格等纸介质的手工处理 对于图书借阅情况 如借书天数 超过限定 借书时间的天数 的统计和核实等往往采用对借书卡的人工检查进行 对借阅 者的借阅权限 以及借阅天数等用人工计算 手抄进行 数据信息处理工作量 大 容易出错 由于数据繁多 容易丢失 且不易查找 总的来说 缺乏系统 规范的信息管理手段 尽管有的图书馆有计算机 但是尚未用于信息管理 没 有发挥它的效力 资源闲置比较突出 这就是管理信息系统的开发的基本环境 数据处理手工操作 工作量大 出错率高 出错后不易更改 图书馆采取 手工方式对图书借阅情况进行人工管理 由于信息比较多 图书借阅信息的管 理工作混乱而又复杂 一般借阅情况是记录在借书证上 图书的数目和内容记 录在文件中 图书馆的工作人员和管理员也只是当时对它比较清楚 时间一长 4 如再要进行查询 就得在众多的资料中翻阅 查找了 造成查询费时 费力 如要对很长时间以前的图书进行更改就更加困难了 基于这此问题 我认为有必要建立一个图书管理系统 使图书管理工作规范化 系统化 程序化 避免图书管理的随意性 提高信息处理的速度和准确性 能 够及时 准确 有效的查询和修改图书情况 第二章第二章 数据库设计数据库设计 2 12 1 数据库分析数据库分析 本系统利用 Visual Studio 2008 处理数据库的功能 实现对图书馆信息的 管理 主要功能为管理有关用户 管理员 书籍和借阅的信息等 本系统的结构分为用户信息管理模块 书籍信息管理模块 借阅信息管理 模块 管理者管理信息模块和查询处理模块 图书馆管理系统框图如图 2 1 所示 图 2 1 图书馆管理系统框图 成功 进入图书馆管理系统 管理员用户 查询图书借阅图书 图书管理 查询图书增加图书修改图书删除图书 登录 失败 5 2 22 2 E RE R 模型设计模型设计 2 2 12 2 1 实体列表实体列表 实 体描 述 用 户所有借阅者 查阅者 以及系统管理员 由用户 ID 标识 图 书图书馆所有图书 由图书 ID 标识 借 阅图书 ID 借阅 ID 借书日期 借阅证号等属性 由借阅 ID 标 识 2 2 22 2 2 系统的系统的 E RE R 模型模型 该图书管理系统的 E R 模型 如图 2 2 所示 2 2 系统的 E R 模型 用户 图书 借阅 图书管理管理员 UID UName UPwd UBookID UState BookID BookName BookType BookAuthor BookPrice BookName BookPic BookContent BookIssue IssIDBookIDIssBookID IssDateTime m N m 6 2 32 3 设计数据库设计数据库 2 3 12 3 1 创建数据库创建数据库 1 在服务器资源管理器中的任一节点右击 2 执行快捷菜单中的 新建数据库 命令 并在打开的 创建数据库 对话框中输入数据库名 BookManage 其他可采用默认值 3 单击 确定 按钮 则新建的数据库就会出现在服务器上 2 3 22 3 2 创建数据表创建数据表 创建数据库后 为 BookManage 数据库添加数据表 步骤如下 1 在服务器资源管理器中右击数据库 BookManage 下的 表 文件夹 在弹出的快捷菜单中执行 新建表 命令 2 添加表的字段和其他详细资料 各表数据结构如下表所示 表 2 1 用户信息 userinfo 列 名含 义数据类型说明 UID 用户 ID int 自动 主键 UName 用户名 vchar 50 不为空 UPwd 密码 vchar 50 不为空 UState 用户权限 管理员 1 普通 用户 2 int 不为空 默认值 为 2 UBookID 借阅证号 bigint 可以为空 表 2 2 图书信息 bookinfo 列 名含 义数据类型主 键 BookID 图书 ID bigint 自动 主键 BookName 图书名称 Varchar 50 不为空 BookType 类别 Varchar 100 不为空 BookAuthor 作者 Varchar 100 不为空 BookPrice 价格 smallmoney 不为空 BookPic 封面 Varchar 200 允许为空 BookContent 内容简介 text 不为空 BookIssue 图书制定访问码 Varchar 50 不为空 表 2 3 借阅信息 issueinfo 列 名含 义数据类型说明 IssID 借阅 ID bigint 自动 主键 BookID 图书 ID bigint 外键 IssBookID 借阅证号 bigint 不为空 IssDateTime 借书日期 datetime 不为空 2 4 数据库中表的关系 7 在数据库中新建 BookManage 数据库的数据库关系图如图 2 4 所示 图 2 4 数据库关系图 第三章第三章 界面设计界面设计 3 13 1 主界面主界面 进入 Visual Studio 2008 创建一个新的 Windows 应用程序 类型的项目 名为 图书馆管理 将默认创建的窗体命名为 图书馆管理系统 把 图书 馆管理系统 作为本系统中的主界面 在窗体中添加一个菜单 MenuStrip 控件 一个工具栏 ToolStrip 控 件 MenuStrip 中的菜单项 子菜单项如图 3 1 所示 图 3 1 主界面 8 3 23 2 用户登录界面用户登录界面 本系统的用户非为普通用户和管理用户 管理用户具有系统提供的所有权 限 普通用户可以查询图书 借阅图书 在窗体中添加 3 个标签 Label 控件 2 个按钮 Button 控件 1 个组合 框 ComboBox 控件 2 个文本框 TextBox 控件 用户类型分为管理用户和普通用户 在组合窗口中添加这两项 3 33 3 图书查询界面图书查询界面 图书查询提供组合查询的方式 界面窗体名称为 frmSearchBook cs 图 书类别组合框中的项是从数据库中获取的 在设计时不需要添加内容 在条件 组合框中输入 or 和 and 来动态实现条件组合 在窗体中添加 2 个分组框 GroupBox 控件 搜索条件 搜索结果 各种 控件的添加如图 3 3 所示 图 3 3 图书查询界面 在右边的分组框中添加 DataGridView 控件 单击右上角的黑色三角 选择 在父容器中停靠 选项 9 3 43 4 图书入库界面图书入库界面 管理员有权限将图书添加到数据库中 图书入库界面的设计如图 3 4 所示 图 3 4 图书入库界面 在窗体的左边的分组框中添加标签和文本框 用来接收管理员输入的图书信息 以便 保存到数据库中 在右边的分组框中添加 DataGridView 控件 可以显示数据库中的图书信 息 新添加的图书信息也可以显示出来 管理员可以在 DataGridView 控件中直接修改数据 也可以通过右边的分组 框实现图书信息的修改 3 53 5 图书借阅界面图书借阅界面 根据图书馆中已有的图书信息 用户可以通过图书证号实现借阅 界面设 计如图 3 6 所示 图 3 6 图书借阅界面 10 第四章第四章 通用类的生成通用类的生成 本系统的主要操作都需要与数据库发生交互 为了提高代码的重用性和规范性 把与数据库交互的功能单独放在一个类中 在该类中实现数据库的增加 删除 修改 查询等通用功能 4 14 1 连接数据库连接数据库 1 定义数据库连接字符串 代码如下 Private static string ConnectString Data Source local sqlexpress DataBase BookManage mdf 2 创建 Connection 对象 代码如下 SqlConnection con new SqlConnection ConnectString 3 打开连接 代码如下 con Open 4 关闭连接 代码如下 con Close 4 24 2 操作数据库中的数据操作数据库中的数据 using System using System Collections Generic using System Linq using System Text using System Data using System Data SqlClient namespace BookManage class DataAccess private static string ConnectString Data Source A20 SQLEXPRESS AttachDbFilename F BookManage data BookManage mdf In tegrated Security False 数据库连接字符串 根据表名获取数据集的表 public static DataTable GetDataSetByTableName string table using SqlConnection con new SqlConnection ConnectString 创建数据库连接对象 string sql select from table 查询sql语 11 句 try SqlDataAdapter adapter new SqlDataAdapter sql con 创建适配器对象 DataSet ds new DataSet 创建数据集对象 adapter Fill ds table 填充数据集 return ds Tables 0 返回数据表 catch SqlException ex throw new Exception ex Message public static DataSet GetDataSetBySql string sql using SqlConnection con new SqlConnection ConnectString 创建数据库连接对象 SqlDataAdapter adapter new SqlDataAdapter sql con 创建适配器对象 DataSet ds new DataSet 创建数据集对象 try adapter Fill ds 填充数据集 return ds 返回数据集 catch SqlException ex throw new Exception ex Message public static SqlDataReader GetDataReaderByID int id using SqlConnection con new SqlConnection ConnectString string sql select from bookinfo where bookid id sql语句 try SqlCommand comm new SqlCommand sql con 创建 Command对象 con Open 打开连接 SqlDataReader reader comm ExecuteReader 创 建DataReader对象 reader Read 读取数据 return reader 返回DataReader catch SqlException ex throw new Exception ex Message public static bool UpdateDataTable string sql using SqlConnection con new SqlConnection ConnectString try con Open 打开连接 SqlCommand comm new SqlCommand sql con 创建 Command对象 if comm ExecuteNonQuery 0 执行更新 return true else 12 return false catch SqlException ex throw new Exception ex Message public static void UpdateDataSet DataSet ds string sql using SqlConnection con new SqlConnection ConnectString try SqlDataAdapter adapter new SqlDataAdapter sql con 创 建适配器 SqlCommandBuilder builder new SqlCommandBuilder adapter 根据适配器自动生成表单 adapter Update ds table 更新数据库 catch SqlException ex throw new Exception ex Message 4 34 3 用户登录代码 图书查询代码等的实现用户登录代码 图书查询代码等的实现 以上代码的实现都是C 语言和Sql语言的使用 此处由于代码篇幅较长 此处不 再说明 祥见附录 13 第五章第五章 连接数据库连接数据库 为数据库 BookManage 和本系统之间建立一个数据连接 1 在服务器资源管理器中右击 数据连接 节点 VS 2008 中操作 在弹 出的快捷菜单中执行 添加连接 命令 打开 Data Link Properties 对话框 切换到 Provider 选项卡 选中列表框中的 Microsoft OLE DB Provider for SQL Server 项 单击 下一步 切换到 Connection 选项卡 2 在其中的第一个下拉列表框中选择数据库所在服务器名称 输入登录服 务器信息后选择数据库 BookManage 然后单击测试按钮 如果测试成功 单击 确定 按钮 第六章第六章 系统测试系统测试 6 16 1 开发与测试环境开发与测试环境 本系统使用 C 3 0 语言进行开发 需要 Microsoft NET Framework 的支持 适用内存不低于 256M 配备有 Windows2000 Windows2003 WindowsXP 系统的计 算机 6 26 2 程序调试情况程序调试情况 在数据连接时一定要注意窗体和相应显示控件的绑定关系 在把系统从一 台计算机移植到另一台计算机时一定要把数据文件 BookManage mdf 和 BookManage log LDF 同时移植 并对相应的提供服务的 SQL Server 服务器进 行相应的修改 否则数据正确连接并显示 6 36 3 功能显示功能显示 6 3 16 3 1 运行主窗口运行主窗口 运行程序后首先显示主窗体 如图6 1所示 单击 登录 按钮 就会弹出登录窗体 管理用户具有系统提供的所有权 限 普通用户可以查询图书 借阅图书 14 图 6 1 主窗口 在登录对话框中输入用户姓名和密码 单击 确认 按钮 就会对用户身 份进行认证 如果认证通过 那么就会弹出如图6 2所示的图书馆管理系统的界 面 管理员和普通用户进入此窗体后 系统所提供的操作权限是不同的 6 3 26 3 2 图书查询功能图书查询功能 图书查询可以实现组合查询 将查询结果显示在DataGridView控件中 窗体载入时 对图书类别组合框中的项进行了初始化 通过查询语句 select distinct BookType from bookinfo 调用DataAccess类中的 GetDataSetBySql方法获取数据库Bookinfo表中的图书类别 使用distinct关键 字去掉重复项 使用查询功能示例如图6 2所示 15 图6 2 图书查询 6 3 36 3 3 图书入库功能图书入库功能 管理员登录系统后 可以为数据库添加新的图书信息 如图6 3所示 如图6 3 图书入库 6 3 46 3 4 图书借阅功能图书借阅功能 用户登录系统后 可以借阅不同的书籍 通过选择组合框中的书名 该书 的图书访问代码和作者将显示在文本框中 如图6 5所示 16 图6 5 图书借阅 第七章第七章 问题分析与解决方法问题分析与解决方法 7 17 1 定义连接数据库字符串的技巧定义连接数据库字符串的技巧 1 string conString provider sqloledb 1 data source initial catalog capucivar user id sa pwd 连接数据库的字符串 2 private static string ConnectString server local sqlexpress database Book Data user sa pwd 1234 数 据库连接字符串 3 Private static string ConnectString Data Source local sqlexpress DataBase BookManage mdf 7 27 2 图书查询功能的友好交互性图书查询功能的友好交互性 对于一个藏书量很大的图书馆 一本图书可能有好几种版本 即作者不同 出版社不同 价格不同 或者同一类型的书 如计算机类的书有很多本 这时 不同的用户就需要查询自己所需的书 在查询时就需要同时根据多项图书的信 息进行关联性的查找 所以在查询功能这一块要用相应的算法解决这一问题 如下面的代码所示 已经实现了图书的关联性查找 17 private void btnSerch Click object sender EventArgs e string cbo1 this cboOR Text string cbo2 this cboAnd Text string booktype cboType Text string bookname this txtName Text string bookcontent this txtContent Text 定义sql语句 string sql select from bookInfo where BookType booktype cbo1 BookName like bookname cbo2 BookContent like bookcontent 调用DataAccess GetDataSetBySql方法 DataSet Myds DataAccess GetDataSetBySql sql DataTable table Myds Tables 0 指定数据源 this dgvSearchBook DataSource table 图 7 1 关联查找 如图7 1所示 若要查询 爱情 情感 类中的 明晓溪 著作的 心之萌 这本书 就要同时对图书类别和图书名称这两个信息进行关联查找 在图书类别 下的组合框中选中 and 图书类别中输入 爱情 情感 图书名称中输入 心之 萌 第八章第八章 总结总结 通过近两周的课程设计 我有了很多的收获 首先这次课程设计使用到了 很多的C 和SQL编程语言 由于之前学的不好 在程序的代码实现中遇到了很多 的问题 使得设计的中期阶段显得很困难 但是经过组员们的共同努力均被一 18 一解决 其次是作为学习软件专业的我们 要有良好的学习心态和严谨的态度 因为编程这一块真的很不容易 一不小心就会出错 而且很是乏味 最后 我 还是很顺利的完成了这次课程设计 在这里我要特别感谢刘娟老师在软件使用 和数据库设计上对我们的指导 附录附录 附录附录 A A 主窗口实现代码主窗口实现代码 using System using System Collections Generic using System ComponentModel using System Data using System Drawing using System Linq using System Text using System Windows Forms namespace BookManage public partial class FrmMain Form public static DialogResult result public FrmMain InitializeComponent 查询子窗体是否存在 public bool checkchildfrm string childfrmname foreach Form childFrm in this MdiChildren if childFrm Name childfrmname if childFrm WindowState FormWindowState Minimized childFrm WindowState FormWindowState Normal childFrm Activate return true return false 用户登录菜单的事件处理 private void 用户登录ToolStripMenuItem Click object sender EventArgs e 检测该窗口是否处于打开状态 if this checkchildfrm frmLogin true return 窗口已经打开 返回 frmLogin user new frmLogin 实例化登录窗体 user ShowDialog 登录窗体以模式对话框的方式的打开 判断是否登录成功 登录成功则启用相应的菜单和按钮 if result DialogResult OK this tsbtnAddBook Enabled true 19 this mnuUpdateBook Enabled true this mnuAddBook Enabled true 登录按钮事件处理 private void tsbtnLogin Click object sender EventArgs e if this checkchildfrm frmLogin true return frmLogin user new frmLogin user ShowDialog if result DialogResult OK this tsbtnAddBook Enabled true this mnuUpdateBook Enabled true this mnuAddBook Enabled true 图书查询按钮Click事件处理 private void tsbtnSearch Click object sender EventArgs e if this checkchildfrm frmSearchBook true return frmSearchBook book new frmSearchBook book MdiParent this 设置为当前窗体的子窗体 book Show 图书检索菜单Click事件处理 private void 图书检索ToolStripMenuItem Click object sender EventArgs e if this checkchildfrm frmSearchBook true return frmSearchBook book new frmSearchBook book MdiParent this book Show 图书入库菜单Click事件处理 private void 图书入库ToolStripMenuItem1 Click object sender EventArgs e if this checkchildfrm frmAddBook true return frmAddBook objbook new frmAddBook objbook MdiParent this objbook Show 图书入库按钮Click事件处理 private void tsbtnAddBook Click object sender EventArgs e if this checkchildfrm frmUpdateBook true return 20 frmUpdateBook objbook new frmUpdateBook objbook MdiParent this objbook Show 图书更新菜单Click事件处理 private void 图书修改ToolStripMenuItem Click object sender EventArgs e if this checkchildfrm frmUpdateBook true return frmUpdateBook objbook new frmUpdateBook objbook MdiParent this objbook Show 图书借阅按钮事件处理 private void tsbtnIssue Click object sender EventArgs e if this checkchildfrm frmIssueBook true return frmIssueBook issuebook new frmIssueBook issuebook MdiParent this issuebook Show private void tsbtnExit Click object sender EventArgs e Application Exit private void 退出ToolStripMenuItem1 Click object sender EventArgs e Application Exit private void 退出ToolStripMenuItem Click object sender EventArgs e Application Exit 窗体载入时事件处理 private void FrmMain Load object sender EventArgs e this tsbtnAddBook Enabled false this mnuAddBook Enabled false this mnuUpdateBook Enabled false 附录附录 B B 图书查询实现代码图书查询实现代码 using System using System Collections Generic using System ComponentModel using System Data 21 using System Drawing using System Linq using System Text using System Windows Forms namespace BookManage public partial class frmSearchBook Form public frmSearchBook InitializeComponent private void btnSerch Click object sender EventArgs e string cbo1 this cboOR Text string cbo2 this cboAnd Text string booktype cboType Text string bookname this txtName Text string bookcontent this txtContent Text 定义sql语句 string sql select from bookInfo where BookType booktype cbo1 BookName like bookname cbo2 BookContent like bookcontent 调用DataAccess GetDataSetBySql方法 DataSet Myds DataAccess GetDataSetBySql sql DataTable table Myds Tables 0 指定数据源 this dgvSearchBook DataSource table private void frmSearchBook Load object sender EventArgs e 图书类别组合框初始化 DataSet Myds DataAccess GetDataSetBySql select distinct BookType from bookInfo DataTable table Myds Tables 0 for int i 0 i table Rows Count i this cboType Items Add table Rows i 0 ToString Trim cboType SelectedIndex 0 this cboOR SelectedIndex 0 this cboAnd SelectedIndex 0 private void btnClose Click object sender EventArgs e this Close 附录附录 C C 图书借阅功能实现代码图书借阅功能实现代码 using System 22 using System Collections Generic using System ComponentModel using System Data using System Drawing using System Linq using System Text using System Window

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论