WEB课程设计图书借阅信息管理系统Word格式文档下载.docx

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

WEB课程设计图书借阅信息管理系统Word格式文档下载.docx

《WEB课程设计图书借阅信息管理系统Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《WEB课程设计图书借阅信息管理系统Word格式文档下载.docx(27页珍藏版)》请在冰点文库上搜索。

WEB课程设计图书借阅信息管理系统Word格式文档下载.docx

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

密码

UState

用户权限,管理员=1,普通用户=2

不为空,默认值为2

UBookID

借阅证号

bigint

可以为空

  

表2-2图书信息(bookinfo)

主 

BookID

图书ID

BookName

图书名称

Varchar(50)

BookType

类别

Varchar(100)

BookAuthor

作者

BookPrice

价格

smallmoney

BookPic

封面

Varchar(200)

允许为空

BookContent

内容简介

text

BookIssue

图书制定访问码

  表2-3借阅信息(issueinfo)

IssID

借阅ID

外键

IssBookID

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通用类的生成

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

连接数据库;

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

PrivatestaticstringConnectString="

DataSource=(local)\\sqlexpress;

DataBase=BookManage.mdf"

;

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

SqlConnectioncon=newSqlConnection(ConnectString);

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

con.Open();

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

con.Close();

5连接数据库

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

  

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

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

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

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

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

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

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

6系统测试

6.1运行主窗口

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

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

图6-1主窗口

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

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

6.2图书查询功能

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

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

使用查询功能示例如图6-2所示

图6-2图书查询

6.3图书更新功能

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

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

如图6-3所示

图6-3图书更新

6.4图书入库功能

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

如图6-4所示

如图6-4图书入库

6.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)

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;

stringsql="

select*frombookInfowhereBookType='

+booktype+"

'

"

+cbo1+"

BookNamelike'

%"

+bookname+"

%'

+cbo2+"

BookContentlike'

+bookcontent+"

DataSetMyds=DataAccess.GetDataSetBySql(sql);

DataTabletable=Myds.Tables[0];

this.dgvSearchBook.DataSource=table;

图7-1关联查找

如图7-1所示若要查询“爱情情感”类中的“明晓溪”著作的《心之萌》这本书就要同时对图书类别和图书名称这两个信息进行关联查找:

在图书类别下的组合框中选中“and”,图书类别中输入爱情情感,图书名称中输入心之萌。

附录

操作数据库中的数据实现代码

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+"

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);

try

{adapter.Fill(ds);

returnds;

catch(SqlExceptionex)

thrownewException(ex.Message)}}

publicstaticSqlDataReaderGetDataReaderByID(intid)

using(SqlConnectioncon=newSqlConnection(ConnectString))

select*frombookinfowherebookid="

+id;

SqlCommandcomm=newSqlCommand(sql,con);

con.Open();

SqlDataReaderreader=comm.ExecuteReader();

reader.Read()

returnreader;

}

{thrownewException(ex.Message);

}}

publicstaticboolUpdateDataTable(stringsql)

{try

{con.Open();

SqlCommandcomm=newSqlCommand(sql,con);

/if(comm.ExecuteNonQuery()>

{returntrue;

else

{returnfalse;

}}

publicstaticvoidUpdateDataSet(DataSetds,stringsql)

{using(SqlConnectioncon=newSqlConnection(ConnectString))

{try

{SqlDataAdapteradapter=newSqlDataAdapter(sql,con);

SqlCommandBuilderbuilder=newSqlCommandBuilder(adapter);

adapter.Update(ds,"

catch(SqlExceptionex)

{thrownewException(ex.Message);

}}}}}

主窗口实现代码

usingSystem.ComponentModel;

usingSystem.Drawing;

usingSystem.Windows.Forms;

{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用户登录ToolStripMenuItem_Click(objectsender,EventArgse)

if(this.checkchildfrm("

frmLogin"

)==true)

frmLoginuser=newfrmLogin();

user.ShowDialog();

if(result==DialogResult.OK)

{this.tsbtnAddBook.Enabled=true;

this.mnuUpdateBook.Enabled=true;

this.mnuAddBook.Enabled=true;

privatevoidtsbtnLogin_Click(objectsender,EventArgse)

{if(this.checkchildfrm("

user.ShowDialog();

privatevoidts

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

当前位置:首页 > 工程科技 > 能源化工

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

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