ERP课程设计图书馆信息管理系统_第1页
ERP课程设计图书馆信息管理系统_第2页
ERP课程设计图书馆信息管理系统_第3页
ERP课程设计图书馆信息管理系统_第4页
ERP课程设计图书馆信息管理系统_第5页
已阅读5页,还剩22页未读 继续免费阅读

下载本文档

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

文档简介

目录 1 引言 1 1 1 图书管理系统 1 1 2 数据库应用系统简介 1 1 3Visual Studio 2008 开发平台 2 2 总体设计 2 3 数据库设计 3 3 1E R 模型设计 3 3 1 1 实体列表 3 3 1 2 系统的 E R 模型 3 3 2 数据库设计 3 3 2 1 创建数据库 3 3 2 2 创建数据表 4 3 3 数据库中表的关系 4 4 读者借阅统计 5 4 1 总体结构 5 4 2 数据表建模设计 6 4 3 系统功能实现 7 5 通用类的生成与数据库连接 8 5 1 连接数据库 8 5 2 操作数据库中的数据 8 5 3 用户登录代码 图书查询代码等的实现 11 6 系统测试 11 6 1 开发与测试环境 11 6 2 程序调试情况 11 6 3 功能显示 11 6 3 1 主窗口 11 6 3 2 图书查询功能 12 6 3 3 图书编目功能 13 6 3 4 图书借阅功能 13 6 3 5 读者借阅统计 14 7 问题分析与解决方法 14 8 总结 15 9 参考文献 15 10 源代码 15 1 1 1引言引言 1 1 图书管理系统图书管理系统 当今时代是飞速发展的信息时代 在各行各业中离不开信息处理 这正是 计算机被广泛应用于信息管理系统的环境 计算机的最大好处在于利用它能够 进行信息管理 使用计算机进行信息控制 不仅提高了工作效率 而且大大的 提高了其安全性 图书馆作为一种信息资源的集散地 图书和用户借阅资料繁多 包含很多 的信息数据的管理 现今 有很多的图书馆都是初步开始使用 甚至尚未使用 计算机进行信息管理 根据调查得知 他们以前对信息管理的主要方式是基于 文本 表格等纸介质的手工处理 对于图书借阅情况 如借书天数 超过限定 借书时间的天数 的统计和核实等往往采用对借书卡的人工检查进行 对借阅 者的借阅权限 以及借阅天数等用人工计算 手抄进行 数据信息处理工作量 大 容易出错 由于数据繁多 容易丢失 且不易查找 总的来说 缺乏系统 规范的信息管理手段 尽管有的图书馆有计算机 但是尚未用于信息管理 没 有发挥它的效力 资源闲置比较突出 这就是管理信息系统的开发的基本环境 数据处理手工操作 工作量大 出错率高 出错后不易更改 图书馆采取 手工方式对图书借阅情况进行人工管理 由于信息比较多 图书借阅信息的管 理工作混乱而又复杂 一般借阅情况是记录在借书证上 图书的数目和内容记 录在文件中 图书馆的工作人员和管理员也只是当时对它比较清楚 时间一长 如再要进行查询 就得在众多的资料中翻阅 查找了 造成查询费时 费力 如要对很长时间以前的图书进行更改就更加困难了 基于这此问题 我认为有必要建立一个图书管理系统 使图书管理工作规 范化 系统化 程序化 避免图书管理的随意性 提高信息处理的速度和准确 性 能够及时 准确 有效的查询和修改图书情况 1 2 数据库应用系统简介数据库应用系统简介 SQL Server 2000 数据库是微软公司精心打造的企业级数据库平台产品 该产品不仅包含了丰富的企业及数据管理功能 还集成了商业智能等特性 数 2 据库由 DBMS 数据库管理系统 处理 DBMS 则由开发人员和用户通过应用程序 直接或间接地使用 它主要包括四个要素 用户数据 元数据 索引和应用元 数据 1 3Visual Studio 2008 开发平台开发平台 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 开发的关键技术 2 总体设计总体设计 本系统利用 Visual Studio 2008 处理数据库的功能 实现对图书馆信息的 管理 主要功能为管理有关用户 管理员 书籍和借阅的信息等 本系统的结构分为用户信息管理模块 书籍信息管理模块 借阅信息管理 模块 管理者管理信息模块和查询处理模块 统计信息模块 图书馆管理系统框架图如图 2 1 所示 成 功 进入图书馆管理系 统 管理员用户 查询图 书 借阅图 书 图书管 理 图书编 目 借还管 理 查询图 书 借阅统 计 登 录 失 败 3 图 2 1 图书馆管理系统框架图 3 数据库设计数据库设计 3 1E R 模型设计模型设计 3 1 1 实体列表实体列表 表 3 1 实 体描 述 用 户所有借阅者 查阅者 以及系统管理员 由用户 ID 标识 图 书图书馆所有图书 由图书 ID 标识 借 阅图书 ID 借阅 ID 借书日期 借阅证号等属性 由借阅 ID 标 识 3 1 2 系统的系统的 E R 模型模型 该图书管理系统的 E R 模型 如图 2 2 所示 图 3 1 系统的 E R 模型 用户 图书 借阅 图书管 理 管理员 UID UName UPwd UBookID UState BookID BookName BookType BookAuthor BookPrice BookName BookPic BookContent BookIssue IssIDBookIDIssBookID IssDateTime m N m 4 3 23 2数据库设计数据库设计 3 2 1 创建数据库创建数据库 1 在服务器资源管理器中的任一节点右击 2 执行快捷菜单中的 新建数据库 命令 并在打开的 创建数据库 对话框中输入数据库名 BookManage 其他可采用默认值 3 单击 确定 按钮 则新建的数据库就会出现在服务器上 3 2 2 创建数据表创建数据表 创建数据库后 为 BookManage 数据库添加数据表 步骤如下 1 在服务器资源管理器中右击数据库 BookManage 下的 表 文件夹 在弹出的快捷菜单中执行 新建表 命令 2 添加表的字段和其他详细资料 各表数据结构如下表所示 表 3 2 用户信息 userinfo 列 名含 义数据类型说明 UID 用户 ID int 自动 主键 UName 用户名 vchar 50 不为空 UPwd 密码 vchar 50 不为空 UState 用户权限 管理员 1 普通 用户 2 int 不为空 默认值 为 2 UBookID 借阅证号 bigint 可以为空 表 3 3 图书信息 bookinfo 列 名含 义数据类型主 键 BookID 图书 ID bigint 自动 主键 BookName 图书名称 Varchar 50 不为空 BookType 类别 Varchar 100 不为空 BookAuthor 作者 Varchar 100 不为空 BookPrice 价格 smallmoney 不为空 BookPic 封面 Varchar 200 允许为空 BookContent 内容简介 text 不为空 BookIssue 图书制定访问码 Varchar 50 不为空 表 3 4 借阅信息 issueinfo 列 名含 义数据类型说明 IssID 借阅 ID bigint 自动 主键 BookID 图书 ID bigint 外键 IssBookID 借阅证号 bigint 不为空 5 IssDateTime 借书日期 datetime 不为空 3 3 数据库中表的关系数据库中表的关系 在数据库中新建 BookManage 数据库的数据库关系图如图 2 4 所示 图 2 4 数据库关系图 4 读者借阅统计读者借阅统计 4 1 总体结构总体结构 读者借阅统计功能设计时 既要考虑用户与自动化集成管理系统使用身份的 一致性 又要考虑满足读者的查询需求 同时也要为日后系统功能拓展和数据的再 利用留下可扩展接口 系统总体上应具有认证 查询和结果输出三项功能 其实 现流程如图 4 1 所示 图 4 1 1 认证功能 认证功能是用户使用系统的登录环节 旨在识别是否是本校在职教师或在册 6 学生的用户身份 并确保其登录的合法性 2 查询功能查询功能是重要设计环节 鉴于用户某一时段对自己借阅历 史记录查询的需要 以及考虑便于日后系统管理员统计分析 要求系统用户界面设 计既简单又 明确 数据库查询设置既合理又快捷 3 结果输出功能 系统将提供当前浏览和打印输出两种最常用的结果输出方式 要求考虑查询 结果与书目检索功能的挂接问题 4 2 数据表建模设计数据表建模设计 系统功能将由数据表建模实现 主要体现在认证和数据查询两个模块中 并分 别由user数据表和book数据表来实现 考虑未来数据扩展的可能性 在数据表建 模设计中 引入了分表存储 调度查询等优化存储策略 解决了大数据量存储及高 效检索等问题 数据流程如图4 2所示 图 4 2 1 user数据表 根据功能要求 user数据表主要用于用户身份认证 以此来保证使用该系统 用户的合法性和其借阅历史记录的私密性 2 book数据表 用于保存和更新读者借阅书目信息 读者身份信息和关联关系的物理表 3 存储分区表 存储分区表是针对系统数据的不断积累 建立的一种有助于查询效率优化的 存储策略 由一组book表实现 如book子表1 book子表2 book子表3等 即所有 7 导入的读者借阅历史记录 根据一定的规则分别存储到一组同构的物理表中 存 储分区表主要用于建立到book子表名的索引 包括存储分区码和子表名两个字段 所有的查询都需要首先查询存储分区配置表 查询调度流程如图4 3所示 图4 3 4 3 系统功能实现系统功能实现 1 认证功能实现 由于注册用户的基本信息来自系统 即注册用户必定是人大正式在册的教师 和学生 因此 借阅历史记录查询系统的user数据表使用了U系统中的用户基本信 息 用户使用该系统时只要输入账号即可登录 完成身份识别认证 这样 既避 免了认证功能的重复开发 又减少了读者对多账号的记忆 2 查询功能实现 查询界面 系统在提供用户登录认证界面的同时 设计了某一日期或某一时段浏览两种 选择查询方式 即读者在进行身份登录的同时要设定查询借阅历史的范围 查询 范围以时间为界定 数据库查询处理 借阅历史查询系统使用PHP语言读取后台 数据库中的数据 选择出属于该用户的借阅数据进行处理 由于目前数据库 中数据量比较小 因此在系统实现中 仅建立了一个借阅历史数据的物理存储子 表book 但随着系统数据的日益增长 将会启用分表存储 3 查询结果输出实现 对于每一条查询结果 系统提供了三种方式充分满足读者对借阅历史查询的 不同需求 读者可以通过应用程序即时查看 也可以导出成为Excel文件形式保 存到本地硬盘 8 5 通用类的生成通用类的生成与数据库连接与数据库连接 本系统的主要操作都需要与数据库发生交互 为了提高代码的重用性和规范 性 把与数据库交互的功能单独放在一个类中 在该类中实现数据库的增加 删除 修改 查询等通用功能 5 1 连接数据库连接数据库 1 为数据库 BookManage 和本系统之间建立一个数据连接 1 在服务器资源管理器中右击 数据连接 节点 VS 2008 中操作 在弹 出的快捷菜单中执行 添加连接 命令 打开 Data Link Properties 对话框 切换到 Provider 选项卡 选中列表框中的 Microsoft OLE DB Provider for SQL Server 项 单击 下一步 切换到 Connection 选项卡 2 在其中的第一个下拉列表框中选择数据库所在服务器名称 输入登录服 务器信息后选择数据库 BookManage 然后单击测试按钮 如果测试成功 单击 确定 按钮 2 定义数据库连接字符串 代码如下 Private static string ConnectString Data Source local sqlexpress DataBase BookManage mdf 2 创建 Connection 对象 代码如下 SqlConnection con new SqlConnection ConnectString 3 打开连接 代码如下 con Open 4 关闭连接 代码如下 con Close 9 5 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 Int egrated Security False 数据库连接字符串 根据表名获取数据集的表 public static DataTable GetDataSetByTableName string table using SqlConnection con new SqlConnection ConnectString 创建数 据库连接对象 string sql select from table 查询sql语句 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 创建数 10 据库连接对象 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 11 else 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 5 3 用户登录代码 图书查询代码等的实现用户登录代码 图书查询代码等的实现 以上代码的实现都是C 语言和Sql语言的使用 此处由于代码篇幅较长 此 处不再说明 祥见附录 6 系统测试系统测试 6 1 开发与测试环境开发与测试环境 本系统使用 C 3 0 语言进行开发 需要 Microsoft NET Framework 的支 持 适用内存不低于 256M 配备有 Windows2000 Windows2003 WindowsXP 系统 的计算机 6 2 程序调试情况程序调试情况 在数据连接时一定要注意窗体和相应显示控件的绑定关系 在把系统从一 台计算机移植到另一台计算机时一定要把数据文件 BookManage mdf 和 BookManage log LDF 同时移植 并对相应的提供服务的 SQL Server 服务器进 行相应的修改 否则数据正确连接并显示 12 6 3 功能显示功能显示 6 3 1 主窗口主窗口 运行程序后首先显示主窗体 如图6 1所示 单击 登录 按钮 就会弹出登录窗体 管理用户具有系统提供的所有权 限 普通用户可以查询图书 借阅图书 图 6 1 主窗口 在登录对话框中输入用户姓名和密码 单击 确认 按钮 就会对用户身 份进行认证 如果认证通过 那么就会弹出如图6 2所示的图书馆管理系统的界 面 管理员和普通用户进入此窗体后 系统所提供的操作权限是不同的 6 3 2 图书查询功能图书查询功能 图书查询可以实现组合查询 将查询结果显示在DataGridView控件中 窗体载入时 对图书类别组合框中的项进行了初始化 通过查询语句 select distinct BookType from bookinfo 调用DataAccess类中的 GetDataSetBySql方法获取数据库Bookinfo表中的图书类别 使用distinct关键 字去掉重复项 使用查询功能示例如图6 2所示 13 图6 2 图书查询 6 3 3 图书图书编目功能编目功能 管理员登录系统后 可以为数据库添加新的图书信息 如图6 3所示 图 6 3 图书编目 6 3 4 图书借阅功能图书借阅功能 用户登录系统后 可以借阅不同的书籍 通过选择组合框中的书名 该书 的图书访问代码和作者将显示在文本框中 如图6 5所示 14 图6 5 6 3 5 读者借阅统计读者借阅统计 图书更新分为两种 第一种通过更改DataGridView控件中的数据直接更改 第二种可以通过修改各字段值进行更改 单击 保存修改 按钮 将 DataGridView控件中修改的数据保存到数据库中 如图6 4所示 图6 5 15 7 问题分析与解决方法问题分析与解决方法 1 string conString provider sqloledb 1 data source initial catalog capucivar use r 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 8 总结总结 通过近两周的课程设计 我有了很多的收获 首先这次课程设计使用到了 很多的C 和SQL编程语言 由于之前学的不好 在程序的代码实现中遇到了很多 的问题 使得设计的中期阶段显得很困难 但是经过组员们的共同努力均被一 一解决 其次是作为学习软件专业的我们 要有良好的学习心态和严谨的态度 因为编程这一块真的很不容易 一不小心就会出错 而且很是乏味 最后 我 还是很顺利的完成了这次课程设计 在这里我要特别感谢张老师在此次课程设 计上对我们的指导 9 参考文献参考文献 1 刘丽霞 等编著 零基础学 C 3 0 北京 机械工业出版社 2009 3 2 刘辉 等编著 零基础学 SQL Server 2000 北京 机械工业出版社 2008 1 10 源代码源代码 附录附录 A using System using System Collections Generic 16 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 17 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 18 图书入库菜单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 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 19 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 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 frmSearchBook Form 20 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 0 MessageBox Show 此书有借阅 不能删除 return else string sql delete from bookInfo where BookID this txtbID Text if DataAccess UpdateDataTable sql MessageBox Show 删除成功 提示 MessageBoxButtons OK else MessageBox Show 删除失败 提示 MessageBoxButtons OK this txtAuthor Text this txtbContent Text this txtbID Text this txtbName Text this txtbPic Text this txtbPrice Text this txtbType Text private void btnClose Click object sender EventArgs e this Close 附录附录 D using System using System Collections Generic using System ComponentModel 25 using System Data using System Drawing using System Li

温馨提示

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

评论

0/150

提交评论