ERP课程方案设计书图书馆信息管理系统.docx

上传人:b****5 文档编号:14456404 上传时间:2023-06-23 格式:DOCX 页数:28 大小:74.49KB
下载 相关 举报
ERP课程方案设计书图书馆信息管理系统.docx_第1页
第1页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第2页
第2页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第3页
第3页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第4页
第4页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第5页
第5页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第6页
第6页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第7页
第7页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第8页
第8页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第9页
第9页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第10页
第10页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第11页
第11页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第12页
第12页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第13页
第13页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第14页
第14页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第15页
第15页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第16页
第16页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第17页
第17页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第18页
第18页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第19页
第19页 / 共28页
ERP课程方案设计书图书馆信息管理系统.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

ERP课程方案设计书图书馆信息管理系统.docx

《ERP课程方案设计书图书馆信息管理系统.docx》由会员分享,可在线阅读,更多相关《ERP课程方案设计书图书馆信息管理系统.docx(28页珍藏版)》请在冰点文库上搜索。

ERP课程方案设计书图书馆信息管理系统.docx

ERP课程方案设计书图书馆信息管理系统

封面

作者:

PanHongliang

仅供个人学习

目录

1引言1

1.1图书管理系统1

1.2数据库应用系统简介1

1.3VisualStudio2008开发平台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.2数据库应用系统简介

SQLServer2000数据库是微软公司精心打造的企业级数据库平台产品,该产品不仅包含了丰富的企业及数据管理功能,还集成了商业智能等特性。

数据库由DBMS(数据库管理系统)处理,DBMS则由开发人员和用户通过应用程序直接或间接地使用。

它主要包括四个要素:

用户数据、元数据、索引和应用元数据。

1.3VisualStudio2008开发平台

VisualStudio是一套完整的开发工具集,用于生成ASP.NETWeb应用程序、XMLWebServices、桌面应用程序和移动应用程序。

VisualBasic、VisualC++、VisualC#和VisualJ#全都使用相同的集成开发环境(IDE),利用此IDE可以共享工具且有助于创建混合语言解决方案。

另外,这些语言利用了.NETFramework的功能,通过此框架可使用简化ASPWeb应用程序和XMLWebServices开发的关键技术。

2总体设计

本系统利用VisualStudio2008处理数据库的功能,实现对图书馆信息的管理。

主要功能为管理有关用户、管理员、书籍和借阅的信息等。

本系统的结构分为用户信息管理模块、书籍信息管理模块、借阅信息管理模块、管理者管理信息模块和查询处理模块、统计信息模块。

图书馆管理系统框架图如图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所示

图3.1系统的E-R模型

3.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

不为空

IssDateTime

借书日期

datetime

不为空

3.3数据库中表的关系

在数据库中新建BookManage数据库的数据库关系图如图2.4所示

图2.4数据库关系图

4读者借阅统计

4.1总体结构

读者借阅统计功能设计时,既要考虑用户与自动化集成管理系统使用身份的一致性,又要考虑满足读者的查询需求,同时也要为日后系统功能拓展和数据的再利用留下可扩展接口。

系统总体上应具有认证、查询和结果输出三项功能,其实现流程如图4.1所示

图4.1

(1)认证功能

  认证功能是用户使用系统的登录环节,旨在识别是否是本校在职教师或在册学生的用户身份,并确保其登录的合法性。

  

(2)查询功能查询功能是重要设计环节。

鉴于用户某一时段对自己借阅历史记录查询的需要,以及考虑便于日后系统管理员统计分析,要求系统用户界面设计既简单又

明确,数据库查询设置既合理又快捷。

  (3)结果输出功能

  系统将提供当前浏览和打印输出两种最常用的结果输出方式,要求考虑查询结果与书目检索功能的挂接问题。

4.2数据表建模设计

  系统功能将由数据表建模实现,主要体现在认证和数据查询两个模块中,并分别由user数据表和book数据表来实现。

考虑未来数据扩展的可能性,在数据表建模设计中,引入了分表存储、调度查询等优化存储策略,解决了大数据量存储及高效检索等问题。

数据流程如图4.2所示

图4.2

 

(1)user数据表

  根据功能要求,user数据表主要用于用户身份认证,以此来保证使用该系统用户的合法性和其借阅历史记录的私密性。

 

(2)book数据表

  用于保存和更新读者借阅书目信息、读者身份信息和关联关系的物理表。

 (3)存储分区表

  存储分区表是针对系统数据的不断积累,建立的一种有助于查询效率优化的存储策略,由一组book表实现,如book子表1、book子表2、book子表3等,即所有导入的读者借阅历史记录,根据一定的规则分别存储到一组同构的物理表中。

存储分区表主要用于建立到book子表名的索引,包括存储分区码和子表名两个字段。

所有的查询都需要首先查询存储分区配置表,查询调度流程如图4.3所示

图4.3

4.3系统功能实现

(1)认证功能实现

  由于注册用户的基本信息来自系统,即注册用户必定是人大正式在册的教师和学生,因此,借阅历史记录查询系统的user数据表使用了U系统中的用户基本信息。

用户使用该系统时只要输入账号即可登录,完成身份识别认证。

这样,既避免了认证功能的重复开发,又减少了读者对多账号的记忆。

(2)查询功能实现

  ①查询界面

  系统在提供用户登录认证界面的同时,设计了某一日期或某一时段浏览两种选择查询方式,即读者在进行身份登录的同时要设定查询借阅历史的范围。

查询范围以时间为界定。

  ②数据库查询处理

借阅历史查询系统使用PHP语言读取后台

数据库中的数据,选择出属于该用户的借阅数据进行处理。

由于目前数据库中数据量比较小,因此在系统实现中,仅建立了一个借阅历史数据的物理存储子表book,但随着系统数据的日益增长,将会启用分表存储。

(3)查询结果输出实现

对于每一条查询结果,系统提供了三种方式充分满足读者对借阅历史查询的不同需求。

读者可以通过应用程序即时查看,也可以导出成为Excel文件形式保存到本地硬盘。

5通用类的生成与数据库连接

本系统的主要操作都需要与数据库发生交互,为了提高代码的重用性和规范性,把与数据库交互的功能单独放在一个类中,在该类中实现数据库的增加、删除、修改、查询等通用功能。

5.1连接数据库

(1)为数据库BookManage和本系统之间建立一个数据连接。

  1)在服务器资源管理器中右击“数据连接”节点(VS2008中操作)。

在弹出的快捷菜单中执行“添加连接”命令,打开DataLinkProperties对话框。

切换到Provider选项卡,选中列表框中的MicrosoftOLEDBProviderforSQLServer项。

单击“下一步”切换到Connection选项卡。

2)在其中的第一个下拉列表框中选择数据库所在服务器名称。

输入登录服务器信息后选择数据库BookManage,然后单击测试按钮。

如果测试成功,单击“确定”按钮。

(2)定义数据库连接字符串,代码如下:

PrivatestaticstringConnectString="DataSource=(local)\\sqlexpress;DataBase=BookManage.mdf";

(2)创建Connection对象,代码如下:

SqlConnectioncon=newSqlConnection(ConnectString);

(3)打开连接,代码如下:

con.Open();

(4)关闭连接,代码如下:

con.Close();

5.2操作数据库中的数据

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Data;

usingSystem.Data.SqlClient;

namespaceBookManage

{classDataAccess

{privatestaticstringConnectString=@"DataSource=A20\SQLEXPRESS;AttachDbFilename=F:

\BookManage\data\BookManage.mdf;IntegratedSecurity=False";//数据库连接字符串

///

///根据表名获取数据集的表

///

///

///

publicstaticDataTableGetDataSetByTableName(stringtable)

{using(SqlConnectioncon=newSqlConnection(ConnectString))//创建数据库连接对象

{stringsql="select*from"+table+"";//查询sql语句

try

{SqlDataAdapteradapter=newSqlDataAdapter(sql,con);//创建适配器对象

DataSetds=newDataSet();//创建数据集对象

adapter.Fill(ds,"table");//填充数据集

returnds.Tables[0];//返回数据表}

catch(SqlExceptionex)

{thrownewException(ex.Message);;}}}

publicstaticDataSetGetDataSetBySql(stringsql)

{using(SqlConnectioncon=newSqlConnection(ConnectString))//创建数据库连接对象

{SqlDataAdapteradapter=newSqlDataAdapter(sql,con);//创建适配器对象

DataSetds=newDataSet();//创建数据集对象

try

{adapter.Fill(ds);//填充数据集

returnds;//返回数据集}

catch(SqlExceptionex)

{thrownewException(ex.Message)}}

publicstaticSqlDataReaderGetDataReaderByID(intid)

{using(SqlConnectioncon=newSqlConnection(ConnectString))

{stringsql="select*frombookinfowherebookid="+id;//sql语句

try

{SqlCommandcomm=newSqlCommand(sql,con);//创建Command对象

con.Open();//打开连接

SqlDataReaderreader=comm.ExecuteReader();//创建DataReader对象

reader.Read();//读取数据

returnreader;//返回DataReader}

catch(SqlExceptionex)

{thrownewException(ex.Message);

}}

publicstaticboolUpdateDataTable(stringsql)

{using(SqlConnectioncon=newSqlConnection(ConnectString))

{try

{con.Open();//打开连接

SqlCommandcomm=newSqlCommand(sql,con);//创建Command对象

if(comm.ExecuteNonQuery()>0)//执行更新

{returntrue;}

else

{returnfalse;}}

catch(SqlExceptionex)

{thrownewException(ex.Message);}}}

publicstaticvoidUpdateDataSet(DataSetds,stringsql)

{using(SqlConnectioncon=newSqlConnection(ConnectString))

{try

{SqlDataAdapteradapter=newSqlDataAdapter(sql,con);//创建适配器

SqlCommandBuilderbuilder=newSqlCommandBuilder(adapter);//根据适配器自动生成表单

adapter.Update(ds,"table");//更新数据库}

catch(SqlExceptionex)

{thrownewException(ex.Message);}}}}}

5.3用户登录代码、图书查询代码等的实现

以上代码的实现都是C#语言和Sql语言的使用,此处由于代码篇幅较长,此处不再说明,祥见附录。

6系统测试

6.1开发与测试环境

本系统使用C#3.0语言进行开发。

需要Microsoft.NETFramework的支持。

适用内存不低于256M配备有Windows2000,Windows2003,WindowsXP系统的计算机。

6.2程序调试情况 

在数据连接时一定要注意窗体和相应显示控件的绑定关系。

在把系统从一台计算机移植到另一台计算机时一定要把数据文件BookManage.mdf和BookManage_log.LDF同时移植,并对相应的提供服务的SQLServer服务器进行相应的修改,否则数据正确连接并显示。

6.3功能显示

6.3.1主窗口

运行程序后首先显示主窗体,如图6.1所示

单击“登录”按钮,就会弹出登录窗体,管理用户具有系统提供的所有权限,普通用户可以查询图书、借阅图书。

图6.1主窗口

在登录对话框中输入用户姓名和密码,单击“确认”按钮,就会对用户身份进行认证,如果认证通过,那么就会弹出如图6.2所示的图书馆管理系统的界面:

管理员和普通用户进入此窗体后,系统所提供的操作权限是不同的

6.3.2图书查询功能

图书查询可以实现组合查询,将查询结果显示在DataGridView控件中。

窗体载入时,对图书类别组合框中的项进行了初始化,通过查询语句“selectdistinctBookTypefrombookinfo”,调用DataAccess类中的GetDataSetBySql方法获取数据库Bookinfo表中的图书类别,使用distinct关键字去掉重复项。

使用查询功能示例如图6.2所示

图6.2图书查询

6.3.3图书编目功能

管理员登录系统后,可以为数据库添加新的图书信息。

如图6.3所示

图6.3图书编目

6.3.4图书借阅功能

用户登录系统后,可以借阅不同的书籍,通过选择组合框中的书名,该书的图书访问代码和作者将显示在文本框中。

如图6.5所示

图6.5

6.3.5读者借阅统计

图书更新分为两种,第一种通过更改DataGridView控件中的数据直接更改,第二种可以通过修改各字段值进行更改。

单击“保存修改”按钮,将DataGridView控件中修改的数据保存到数据库中。

如图6.4所示

图6.5

7问题分析与解决方法

(1)string conString = "provider=sqloledb.1;data source=.;initial catalog=capucivar;user id=sa;pwd=";//连接数据库的字符串

(2)privatestaticstringConnectString=

"server=(local)\\sqlexpress;database=Book_Data;user=sa;pwd=1234";//数据库连接字符串

(3)PrivatestaticstringConnectString="DataSource=(local)\\sqlexpress;DataBase=BookManage.mdf";

8总结

通过近两周的课程设计,我有了很多的收获,首先这次课程设计使用到了很多的C#和SQL编程语言,由于之前学的不好,在程序的代码实现中遇到了很多的问题,使得设计的中期阶段显得很困难,但是经过组员们的共同努力均被一一解决;其次是作为学习软件专业的我们,要有良好的学习心态和严谨的态度,因为编程这一块真的很不容易,一不小心就会出错,而且很是乏味;最后,我还是很顺利的完成了这次课程设计,在这里我要特别感谢张老师在此次课程设计上对我们的指导。

9参考文献

1刘丽霞等编著,零基础学C#3.0.北京:

机械工业出版社,2009.3

2刘辉等编著,零基础学SQLServer2000.北京:

机械工业出版社,2008.1

10源代码

附录A

usingSystem;

usingSystem.Collections.Generic;

usingSystem.ComponentModel;

usingSystem.Data;

usingSystem.Drawing;

usingSystem.Linq;

usingSystem.Text;

usingSystem.Windows.Forms;

namespaceBookManage

{publicpartialclassFrmMain:

Form

{publicstaticDialogResultresult;

publicFrmMain()

{InitializeComponent();}

//查询子窗体是否存在

publicboolcheckchildfrm(stringchildfrmname)

{foreach(FormchildFrminthis.MdiChildren)

{if(childFrm.Name==childfrmname)

{if(childFrm.WindowState==FormWindowState.Minimized)

childFrm.WindowState=FormWindowState.Normal;

childFrm.Activate();

returntrue;}}

returnfalse;}

//用户登录菜单的事件处理

privatevoid用户登录

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 农林牧渔 > 林学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2