C#课程设计图书馆信息管理系统.docx

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

C#课程设计图书馆信息管理系统.docx

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

C#课程设计图书馆信息管理系统.docx

C#课程设计图书馆信息管理系统

C#课程设计论文

论文题目图书馆信息管理系统的实现与设计

姓名黄海林

学号201015046

班级计科二班

目录

1绪论2

1.1数据库应用系统简介2

1.2VisualStudio2008开发平台2

1.3图书管理系统2

2数据库设计3

2.1数据库分析3

2.2E-R模型设计4

2.2.1实体列表4

2.2.2系统的E-R模型4

2.3设计数据库5

2.3.1创建数据库5

2.3.2创建数据表5

3界面设计6

3.1主界面6

3.2用户登录界面7

3.3图书查询界面7

3.4图书入库界面7

3.5图书更新界面8

3.6图书借阅界面9

4通用类的生成9

4.1连接数据库9

4.2操作数据库中的数据10

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

5连接数据库12

6系统测试12

6.1开发与测试环境12

6.2程序调试情况12

6.3功能显示12

6.3.1运行主窗口12

6.3.2图书查询功能13

6.3.3图书入库功能14

6.3.4图书更新功能14

6.3.5图书借阅功能14

7问题分析与解决方法15

7.1定义连接数据库字符串的技巧15

7.2图书更新中删除功能的约束性15

7.3图书查询功能的友好交互性16

8总结17

附录17

附录A主窗口实现代码17

附录B图书查询实现代码20

附录C图书更新实现代码21

附录D图书借阅功能实现代码24

参考文献26

1绪论

1.1数据库应用系统简介

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

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

它主要包括四个要素:

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

1.2VisualStudio2008开发平台

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

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

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

1.3图书管理系统

当今时代是飞速发展的信息时代。

在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。

计算机的最大好处在于利用它能够进行信息管理。

使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。

图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。

根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。

数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。

总的来说,缺乏系统,规范的信息管理手段。

尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。

数据处理手工操作,工作量大,出错率高,出错后不易更改。

图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。

如要对很长时间以前的图书进行更改就更加困难了。

基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。

2数据库设计

2.1数据库分析

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

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

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

图书馆管理系统框图如图2.1所示

 

图2.1图书馆管理系统框图

 

2.2E-R模型设计

2.2.1实体列表

实   体

描    述

用户

所有借阅者,查阅者,以及系统管理员,由用户ID标识

图书

图书馆所有图书,由图书ID标识

借   阅

图书ID、借阅ID、借书日期、借阅证号等属性,由借阅ID标识

2.2.2系统的E-R模型

该图书管理系统的E-R模型,如图2.2所示

 

2.2系统的E-R模型

2.3设计数据库

2.3.1创建数据库

(1)在服务器资源管理器中的任一节点右击。

  

(2)执行快捷菜单中的“新建数据库”命令,并在打开的“创建数据库”对话框中输入数据库名BookManage,其他可采用默认值。

  (3)单击“确定”按钮,则新建的数据库就会出现在服务器上。

2.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数据库中表的关系

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

图2.4数据库关系图

3界面设计

3.1主界面

  进入VisualStudio2008,创建一个新的“Windows应用程序”类型的项目,名为“图书馆管理”。

将默认创建的窗体命名为“图书馆管理系统”,把“图书馆管理系统”作为本系统中的主界面。

在窗体中添加一个菜单(MenuStrip)控件,一个工具栏(ToolStrip)控件。

MenuStrip中的菜单项,子菜单项如图3.1所示

图3.1主界面

3.2用户登录界面

本系统的用户非为普通用户和管理用户,管理用户具有系统提供的所有权限,普通用户可以查询图书、借阅图书。

在窗体中添加3个标签(Label)控件,2个按钮(Button)控件,1个组合框(ComboBox)控件,2个文本框(TextBox)控件。

用户类型分为管理用户和普通用户,在组合窗口中添加这两项。

3.3图书查询界面

图书查询提供组合查询的方式,界面窗体名称为“frmSearchBook.cs”,图书类别组合框中的项是从数据库中获取的,在设计时不需要添加内容。

在条件组合框中输入“or”和“and”,来动态实现条件组合。

在窗体中添加2个分组框(GroupBox)控件:

搜索条件、搜索结果,各种控件的添加如图3.3所示

图3.3图书查询界面

在右边的分组框中添加DataGridView控件,单击右上角的黑色三角,选择“在父容器中停靠”选项。

3.4图书入库界面

管理员有权限将图书添加到数据库中,图书入库界面的设计如图3.4所示

图3.4图书入库界面

在窗体的左边的分组框中添加标签和文本框,用来接收管理员输入的图书信息,以便保存到数据库中。

在右边的分组框中添加DataGridView控件,可以显示数据库中的图书信息,新添加的图书信息也可以显示出来。

3.5图书更新界面

图书更新界面用于方便管理员管理图书信息,实现图书信息修改、删除等操作。

界面设计如图3.5所示

图3.5图书更新界面

 

管理员可以在DataGridView控件中直接修改数据,也可以通过右边的分组框实现图书信息的修改。

3.6图书借阅界面

根据图书馆中已有的图书信息,用户可以通过图书证号实现借阅。

界面设计如图3.6所示

图3.6图书借阅界面

4通用类的生成

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

4.1连接数据库

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

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

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

SqlConnectioncon=newSqlConnection(ConnectString);

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

con.Open();

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

con.Close();

4.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);}}}}}

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

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

5连接数据库

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

  

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

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

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

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

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

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

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

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图书更新功能

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

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

如图6.4所示

图6.4图书更新

6.3.5图书借阅功能

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

如图6.5所示

图6.5图书借阅

7问题分析与解决方法

7.1定义连接数据库字符串的技巧

(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";

7.2图书更新中删除功能的约束性

在图书馆管理员管理图示信息时,有时需要不断地增添新的图书和删除旧的图书信息,但是当有一本图书正在被借阅当中,则不能删除,针对这一问题,该系统应该提供有关对管理员显示提醒的功能.

下面在删除功能代码中用C#语句提供相应的解法.

DataSetds=DataAccess.GetDataSetBySql("select*fromIssueInfowhereBookID="+Convert.ToInt32(this.txtbID.Text)+"");

if(ds.Tables[0].Rows.Count>0)

{

MessageBox.Show("此书有借阅,不能删除");

return;

}

7.3图书查询功能的友好交互性

对于一个藏书量很大的图书馆,一本图书可能有好几种版本,即作者不同、出版社不同、价格不同;或者同一类型的书:

如计算机类的书有很多本。

这时不同的用户就需要查询自己所需的书,在查询时就需要同时根据多项图书的信息进行关联性的查找,所以在查询功能这一块要用相应的算法解决这一问题,如下面的代码所示,已经实现了图书的关联性查找:

privatevoidbtnSerch_Click(objectsender,EventArgse)

{

stringcbo1=this.cboOR.Text;

stringcbo2=this.cboAnd.Text;

stringbooktype=cboType.Text;

stringbookname=this.txtName.Text;

stringbookcontent=this.txtContent.Text;

//定义sql语句

stringsql="select*frombookInfowhereBookType='"+booktype+"'"+cbo1+"BookNamelike'%"+bookname+"%'"+cbo2+"BookContentlike'%"+bookcontent+"%'";

//调用DataAccess.GetDataSetBySql方法

DataSetMyds=DataAccess.GetDataSetBySql(sql);

DataTabletable=Myds.Tables[0];

//指定数据源

this.dgvSearchBook.DataSourc

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

当前位置:首页 > 医药卫生 > 基础医学

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

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