最新ERP课程设计图书馆信息管理系统.doc

上传人:1595****071 文档编号:34716436 上传时间:2022-08-18 格式:DOC 页数:93 大小:571.50KB
返回 下载 相关 举报
最新ERP课程设计图书馆信息管理系统.doc_第1页
第1页 / 共93页
最新ERP课程设计图书馆信息管理系统.doc_第2页
第2页 / 共93页
点击查看更多>>
资源描述

《最新ERP课程设计图书馆信息管理系统.doc》由会员分享,可在线阅读,更多相关《最新ERP课程设计图书馆信息管理系统.doc(93页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、Four short words sum up what has lifted most successful individuals above the crowd: a little bit more.-author-dateERP课程设计图书馆信息管理系统1引言目录1引言11.1图书管理系统11.2数据库应用系统简介11.3Visual Studio 2008 开发平台22总体设计23数据库设计33.1E-R模型设计33.1.1 实体列表33.1.2系统的E-R模型33.2数据库设计33.2.1创建数据库33.2.2创建数据表43.3 数据库中表的关系44读者借阅统计54.1总体结构54

2、.2数据表建模设计64.3系统功能实现75通用类的生成与数据库连接85.1 连接数据库85.2 操作数据库中的数据85.3 用户登录代码、图书查询代码等的实现116系统测试116.1开发与测试环境116.2程序调试情况116.3 功能显示116.3.1 主窗口116.3.2 图书查询功能126.3.3 图书编目功能136.3.4 图书借阅功能136.3.5 读者借阅统计147问题分析与解决方法148总结159参考文献1510源代码151引言1.1图书管理系统当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信

3、息管理。使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是

4、尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。如要对很长时间以前的图书进行更改就更加困难了。 基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速

5、度和准确性,能够及时、准确、有效的查询和修改图书情况。1.2数据库应用系统简介SQL Server 2000数据库是微软公司精心打造的企业级数据库平台产品,该产品不仅包含了丰富的企业及数据管理功能,还集成了商业智能等特性。数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。它主要包括四个要素:用户数据、元数据、索引和应用元数据。1.3Visual Studio 2008 开发平台Visual Studio 是一套完整的开发工具集,用于生成 ASP.NET Web 应用程序、XML Web Services、桌面应用程序和移动应用程序。Visual B

6、asic、Visual C+、Visual C# 和 Visual J# 全都使用相同的集成开发环境 (IDE),利用此 IDE 可以共享工具且有助于创建混合语言解决方案。另外,这些语言利用了 .NET Framework 的功能,通过此框架可使用简化 ASP Web 应用程序和 XML Web Services 开发的关键技术。2总体设计本系统利用Visual Studio 2008处理数据库的功能,实现对图书馆信息的管理。主要功能为管理有关用户、管理员、书籍和借阅的信息等。 本系统的结构分为用户信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块和查询处理模块、统计信息模块

7、。图书馆管理系统框架图如图2.1所示成功进入图书馆管理系统管理员用户查询图书借阅图书图书管理图书编目借还管理查询图书借阅统计登录失败 图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所示用户图书借阅图书管理管理员UIDUNameUPwdUBookIDUStateBookIDBookNameBookTypeBookAutho

8、rBookPriceBookPicBookContentBookIssueIssIDBookIDIssBookIDIssDateTimemN1m图3.1 系统的E-R模型3.2数据库设计3.2.1创建数据库(1)在服务器资源管理器中的任一节点右击。 (2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名BookManage,其他可采用默认值。 (3)单击“确定”按钮,则新建的数据库就会出现在服务器上。3.2.2创建数据表创建数据库后,为BookManage数据库添加数据表,步骤如下。 (1)在服务器资源管理器中右击数据库BookManage下的“表”文件夹在弹出

9、的快捷菜单中执行“新建表”命令。 (2)添加表的字段和其他详细资料。各表数据结构如下表所示。表3-2用户信息(userinfo)列 名含 义数据类型说明UID用户IDint自动,主键UName用户名vchar(50)不为空UPwd密码vchar(50)不为空UState用户权限,管理员=1,普通用户=2int不为空,默认值为2UBookID借阅证号bigint可以为空表3-3图书信息(bookinfo)列 名含 义数据类型主 键BookID图书IDbigint自动,主键BookName图书名称Varchar(50)不为空BookType类别Varchar(100)不为空BookAuthor作者

10、Varchar(100)不为空BookPrice价格smallmoney不为空BookPic封面Varchar(200)允许为空BookContent内容简介text不为空BookIssue图书制定访问码Varchar(50)不为空 表3-4借阅信息(issueinfo)列 名含 义数据类型说明IssID借阅IDbigint自动,主键BookID图书IDbigint外键IssBookID借阅证号bigint不为空IssDateTime借书日期datetime不为空3.3 数据库中表的关系在数据库中新建BookManage数据库的数据库关系图如图2.4所示图 2.4 数据库关系图4读者借阅统计4

11、.1总体结构 读者借阅统计功能设计时,既要考虑用户与自动化集成管理系统使用身份的一致性,又要考虑满足读者的查询需求,同时也要为日后系统功能拓展和数据的再利用留下可扩展接口。系统总体上应具有认证、查询和结果输出三项功能,其实现流程如图4.1所示 图4.1( 1 )认证功能认证功能是用户使用系统的登录环节,旨在识别是否是本校在职教师或在册学生的用户身份,并确保其登录的合法性。( 2 )查询功能查询功能是重要设计环节。鉴于用户某一时段对自己借阅历史记录查询的需要,以及考虑便于日后系统管理员统计分析,要求系统用户界面设计既简单又明确,数据库查询设置既合理又快捷。( 3 )结果输出功能系统将提供当前浏览

12、和打印输出两种最常用的结果输出方式,要求考虑查询结果与书目检索功能的挂接问题。4.2数据表建模设计系统功能将由数据表建模实现,主要体现在认证和数据查询两个模块中,并分别由user数据表和book数据表来实现。考虑未来数据扩展的可能性,在数据表建模设计中,引入了分表存储、调度查询等优化存储策略,解决了大数据量存储及高效检索等问题。数据流程如图4.2所示图4.2( 1) user数据表根据功能要求, user数据表主要用于用户身份认证,以此来保证使用该系统用户的合法性和其借阅历史记录的私密性。( 2) book数据表用于保存和更新读者借阅书目信息、读者身份信息和关联关系的物理表。( 3)存储分区表

13、存储分区表是针对系统数据的不断积累,建立的一种有助于查询效率优化的存储策略,由一组book表实现,如book子表1、book子表2、book子表3等,即所有导入的读者借阅历史记录,根据一定的规则分别存储到一组同构的物理表中。存储分区表主要用于建立到book子表名的索引,包括存储分区码和子表名两个字段。所有的查询都需要首先查询存储分区配置表,查询调度流程如图4.3所示图4.34.3系统功能实现( 1 )认证功能实现由于注册用户的基本信息来自系统,即注册用户必定是人大正式在册的教师和学生,因此,借阅历史记录查询系统的user数据表使用了U系统中的用户基本信息。用户使用该系统时只要输入账号即可登录,

14、完成身份识别认证。这样,既避免了认证功能的重复开发,又减少了读者对多账号的记忆。( 2 )查询功能实现查询界面系统在提供用户登录认证界面的同时,设计了某一日期或某一时段浏览两种选择查询方式,即读者在进行身份登录的同时要设定查询借阅历史的范围。查询范围以时间为界定。数据库查询处理借阅历史查询系统使用PHP语言读取后台数据库中的数据,选择出属于该用户的借阅数据进行处理。由于目前数据库中数据量比较小,因此在系统实现中,仅建立了一个借阅历史数据的物理存储子表book,但随着系统数据的日益增长,将会启用分表存储。( 3)查询结果输出实现对于每一条查询结果,系统提供了三种方式充分满足读者对借阅历史查询的不

15、同需求。读者可以通过应用程序即时查看,也可以导出成为Excel文件形式保存到本地硬盘。5通用类的生成与数据库连接 本系统的主要操作都需要与数据库发生交互,为了提高代码的重用性和规范性,把与数据库交互的功能单独放在一个类中,在该类中实现数据库的增加、删除、修改、查询等通用功能。5.1 连接数据库(1)为数据库BookManage和本系统之间建立一个数据连接。1)在服务器资源管理器中右击“数据连接”节点(VS 2008中操作)。在弹出的快捷菜单中执行“添加连接”命令,打开Data Link Properties对话框。切换到Provider选项卡,选中列表框中的Microsoft OLE DB P

16、rovider for SQL Server项。单击“下一步”切换到Connection选项卡。2)在其中的第一个下拉列表框中选择数据库所在服务器名称。输入登录服务器信息后选择数据库BookManage,然后单击测试按钮。如果测试成功,单击“确定”按钮。(2)定义数据库连接字符串,代码如下:Private static string ConnectString = Data Source= (local)sqlexpress;DataBase=BookManage.mdf;(2)创建Connection对象,代码如下:SqlConnection con = new SqlConnection(

17、ConnectString);(3)打开连接,代码如下:con.Open();(4)关闭连接,代码如下:con.Close();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 =A20SQL

18、EXPRESS;AttachDbFilename=F:BookManagedataBookManage.mdf;Integrated Security=False;/数据库连接字符串 / / 根据表名获取数据集的表 / / / public static DataTable GetDataSetByTableName(string table) using (SqlConnection con = new SqlConnection(ConnectString)/创建数据库连接对象 string sql = select * from + table + ;/查询sql语句try SqlDat

19、aAdapter adapter = new SqlDataAdapter(sql, con);/创建适配器对象 DataSet ds = new DataSet();/创建数据集对象 adapter.Fill(ds, table);/填充数据集 return ds.Tables0;/返回数据表 catch (SqlException ex) throw new Exception(ex.Message); ; public static DataSet GetDataSetBySql(string sql) using (SqlConnection con = new SqlConnecti

20、on(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 (SqlConnectio

21、n 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 (SqlEx

22、ception 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 return false; cat

23、ch (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);/根据适配器

24、自动生成表单 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程序调试情况 在数据连接时一定要

25、注意窗体和相应显示控件的绑定关系。在把系统从一台计算机移植到另一台计算机时一定要把数据文件BookManage.mdf和BookManage_log.LDF同时移植,并对相应的提供服务的SQL Server服务器进行相应的修改,否则数据正确连接并显示。6.3 功能显示6.3.1 主窗口运行程序后首先显示主窗体,如图6.1所示单击“登录”按钮,就会弹出登录窗体,管理用户具有系统提供的所有权限,普通用户可以查询图书、借阅图书。图 6.1 主窗口在登录对话框中输入用户姓名和密码,单击“确认”按钮,就会对用户身份进行认证,如果认证通过,那么就会弹出如图6.2所示的图书馆管理系统的界面:管理员和普通用户

26、进入此窗体后,系统所提供的操作权限是不同的6.3.2 图书查询功能图书查询可以实现组合查询,将查询结果显示在DataGridView控件中。窗体载入时,对图书类别组合框中的项进行了初始化,通过查询语句“select distinct BookType from bookinfo”,调用DataAccess类中的GetDataSetBySql方法获取数据库Bookinfo表中的图书类别,使用distinct关键字去掉重复项。使用查询功能示例如图6.2所示图6.2 图书查询6.3.3 图书编目功能管理员登录系统后,可以为数据库添加新的图书信息。如图6.3所示图6.3 图书编目6.3.4 图书借阅功

27、能用户登录系统后,可以借阅不同的书籍,通过选择组合框中的书名,该书的图书访问代码和作者将显示在文本框中。如图6.5所示图6.56.3.5 读者借阅统计图书更新分为两种,第一种通过更改DataGridView控件中的数据直接更改,第二种可以通过修改各字段值进行更改。单击“保存修改”按钮,将DataGridView控件中修改的数据保存到数据库中。如图6.4所示图6.5 7问题分析与解决方法(1)stringconString=provider=sqloledb.1;datasource=.;initialcatalog=capucivar;userid=sa;pwd=;/连接数据库的字符串(2)p

28、rivate 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编程语言,由于之前学的不好,在程序的代码实现中遇到了很多的问题,使得设计的中期阶段显得很困难,但是经过组员

29、们的共同努力均被一一解决;其次是作为学习软件专业的我们,要有良好的学习心态和严谨的态度,因为编程这一块真的很不容易,一不小心就会出错,而且很是乏味;最后,我还是很顺利的完成了这次课程设计,在这里我要特别感谢张老师在此次课程设计上对我们的指导。9参考文献1 刘丽霞 等编著,零基础学 C#3.0. 北京:机械工业出版社,2009.32 刘辉 等编著,零基础学 SQL Server 2000. 北京:机械工业出版社,2008.110源代码附录A using System;using System.Collections.Generic;using System.ComponentModel;usin

30、g 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 (For

31、m 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) /检测该窗口是

32、否处于打开状态 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

33、; /登录按钮事件处理 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;

34、 /图书查询按钮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, EventA

35、rgs 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

36、 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 v

37、oid 图书修改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(frmIssu

38、eBook) = 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;附录Busing

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 成人自考

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁