数据库课设报告 图书管理系统.docx

上传人:b****6 文档编号:7439447 上传时间:2023-01-24 格式:DOCX 页数:43 大小:615.11KB
下载 相关 举报
数据库课设报告 图书管理系统.docx_第1页
第1页 / 共43页
数据库课设报告 图书管理系统.docx_第2页
第2页 / 共43页
数据库课设报告 图书管理系统.docx_第3页
第3页 / 共43页
数据库课设报告 图书管理系统.docx_第4页
第4页 / 共43页
数据库课设报告 图书管理系统.docx_第5页
第5页 / 共43页
点击查看更多>>
下载资源
资源描述

数据库课设报告 图书管理系统.docx

《数据库课设报告 图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课设报告 图书管理系统.docx(43页珍藏版)》请在冰豆网上搜索。

数据库课设报告 图书管理系统.docx

数据库课设报告图书管理系统

《图书管理信息系统》

课程设计报告

 

学号:

姓名:

班级:

指导教师:

报告日期:

 

1.课设题目………………………………………………………………………………………………...1

2.课设目的…………………………………………………………………………………………………1

3.设计任务…………………………………………………………………………………………………1

4.设计准备…………………………………………………………………………………………………1

4.1系统准备…………………………………………………………………………………………...1

4.2知识准备……………………………………………………………………………………………1

5.系统分析………………………………………………………………………………………………….2

5.1系统功能需求…………………………………………………………………………………….2

6.系统设计………………………………………………………………………………………………….2

6.1体系结构…………………………………………………………………………………………….2

6.2功能框图…………………………………………………………………………………………….3

6.3数据库结构………………………………………………………………………………………..3

7.功能实现………………………………………………………………………………………………….5

7.1功能实现思路…………………………………………………………………………………….5

7.2功能实现程序设计…………………………………………………………………………….7

7.2.1建立主要方法集合…………………………………………………………………7

7.2.2用户登录功能实现………………………………………………………………..11

7.2.3图书管理功能实现………………………………………………………………..13

7.2.4读者管理功能实现………………………………………………………………..21

7.2.5借阅管理功能实现………………………………………………………………..28

7.2.6系统管理功能实现………………………………………………………………..33

8.课设小结…………………………………………………………………………………………………35

 

1.课设题目

图书馆管理系统

2.课设目的

通过对图书管理信息系统的系统分析、系统设计、编码和调试等工作的实践,了解管理信息系统的一般设计方法和实现思路,深入了解数据库设计的基本理论及方法。

并且熟悉了visualstudio2010的开发环境,对c#的可视化编程有了更深的了解。

3.设计任务

要求完成一个具有一定实用价值的图书管理信息系统,主要任务包括:

在SQLServer2000或SQLServer2005环境下建立图书管理信息系统所使用的数据库,利用企业管理器或查询分析器建立各种数据库对象,包括:

数据表、视图、约束、存储过程和触发器等;

了解数据库引擎技术,并掌握使用ADO.NET连接数据库服务器和客户端应用程序;

掌握使用C#或其他语言开发一个数据库系统的基本方法和步骤,应用程序的功能包括:

数据的输入、修改和删除;数据的浏览和查询;数据的图形化、报表以及打印输出;系统的用户登录和权限管理;

了解多层C/S或B/S体系结构的数据库系统的开发过程:

需求分析、系统设计、系统实现及文档的收集和整理。

4.设计准备

4.1系统准备

操作系统:

Windows7

数据库系统:

SQLServer2005

客户端开发工具:

VisualStudio2010或其他开发工具

4.2知识准备

熟悉SQLServer2000或SQLServer2005的使用;

熟悉C#、ASP.NET或其他语言进行数据库编程。

5.系统分析

5.1系统功能需求

1)图书馆借阅书籍于归还书籍的登记。

也就是为读者建立一个台账,应用该台账,工作人员能方便地掌握某位读者借了哪些书,借了多长时间。

2)提供快速的图书查询功能,方便读者尽快插大所需要的书。

3)系统提供的全部功能要简单、直观、实用。

4)图书信息包括:

每种图书都有书名、ISBN、一名或多名作者(译者)、出版社、定价和内容简介等;

5)读者信息包括:

借书证记录有借阅者的姓名、密码、类别和所在单位等;

本课设希望编写一个图书馆管理员及借书用户能够同时使用的系统,且在使用时拥有不同的使用权限。

系统能够实现普通的图书及各类信息的添加、删除、修改及借书、还书等基本操作,实现应用程序与数据库的交互,从而做到对图书更加方便清晰地管理。

 

6.系统设计

6.1体系结构

要求使用多层(三层)C/S或B/S模式开发该系统。

简单的客户/服务器体系结构的数据库应用系统开发周期短,能够适应大部分中小型数据库应用系统的要求(当客户端数量少于50时),但是,随着数据库应用的日益发展、数据容量的不断增加、客户端数量的不断增多,这种体系结构显示出了诸多缺陷。

所谓三层体系结构,是在客户端与数据库之间加入了一个“中间层”。

它是指逻辑上的三层结构,即使在一台机器上也可构成三层体系结构的应用系统。

三层分别为表示层、业务逻辑层和数据访问层。

表示层(USL):

为客户提供对应用程序的访问,以Windows应用程序或Web应用程序的形式提供实现的功能。

业务逻辑层(BLL):

实现应用程序的业务功能,以类库的形式为表示层提供服务。

数据访问层(DAL):

实现整个系统所有的数据库连接、数据存取操作,以组件类库的形式为业务逻辑层提供服务。

此外,实体类,简单地说是描述一个业务实体的类。

业务实体直观一点的理解就是整个应用系统业务所涉及的对象,从数据存储来讲,业务实体就是存储应用系统信息的数据表,将数据表中的每一个字段定义成属性,并将这些属性用一个类封装,这个类就称为实体类。

业务实体可以认为属于业务逻辑层,当然,可以将业务实体单独作为一层,称为业务实体层。

表示层、业务逻辑层、数据访问层都依赖于业务实体。

各层之间数据的传递主要是实体对象(业务信息封装在实体对象中)。

6.2功能框图

该系统主要由五大功能模块组成:

图书管理、读者管理、借阅管理、数据统计和系统管理。

各大功能模块又由一些子功能模块构成,其功能框图如下。

6.3数据库结构

1.读者类别表(ReaderType)

字段名

数据类型

说明

rdType

SmallInt

读者类别【主键】0—教师,1—学生

CanLendQty

Int

可借书数量

CanLendDay

Int

可借书天数

CanContinueTimes

Int

可续借的次数

PunishRate

Float

罚款率(分/天/本)

DateValid

SmallInt

证书有效日期

2.读者信息表(Reader)

字段名

数据类型

说明

rdID

Int

读者序号【主键】

rdName

varchar(10)

读者姓名

rdPwd

varchar(10)

读者密码,初值为“123”

rdSex

Bit

性别,0-男,1-女

rdType

SmallInt

读者类别【外键】

rdDept

Char(8)

单位代码

rdPhone

varchar(25)

电话号码

rdEmail

varchar(25)

电子邮件

rdDateReg

smalldatetime

读者登记日期

rdBorrowQty

Int

已借书数量

3.图书信息表(Book)

字段名

数据类型

说明

bkID

Int

图书序号【主键】

bkCode

Char(20)

图书编号

bkName

Varchar(50)

书名

bkAuthor

Varchar(50)

作者

bkPress

Varchar(50)

出版社

bkDatePress

Smalldatetime

出版日期

bkISBN

Char(15)

书号

bkCatalog

Varchar(30)

分类名

bkLanguage

Char(30)

语言,0-中文,1-英文,2-日文,3-俄文,

4-德文,5-法文,6-其他

bkPages

Int

页数

bkPrice

Money

价格

bkDateIn

SmallDateTime

入馆日期

bkBrief

Text

内容简介

bkCover

image

图书封面照片

bkIsInLabc3

Char(4)

是否在馆

4.借阅信息表(Borrow)

字段名

数据类型

说明

rdID

Int

读者序号【主键】

bkID

Int

图书序号【主键】

ldContinueTimes

Int

续借次数(第一次借时,记为1)

ldDateOut

SmallDateTime

借书日期

ldDateRetPlan

SmallDateTime

应还日期

ldDateRetAct

SmallDateTime

实际还书日期

ldOverDay

Int

超期天数

ldOverMoney

Money

超期金额

ldPunishMoney

Money

罚款金额

lsHasReturn

Bit

是否已经还书,缺省为0-未还

OperatorLend

VarChar(10)

借书操作员

OperatorRet

VarChar(10)

还书操作员

5.系统用户信息表(manage)

字段名

数据类型

说明

mID

Int

用户序号

mType

Smallint

用户类型

mName

Varchar(50)

用户姓名

mPwd

Varchar(50)

用户密码

7功能实现

7.1功能实现思路

1.图书管理

添加图书信息:

图书管理员可以将新书添加到数据库中。

查询图书信息:

所有用户可以按指定的组合条件查询图书,查询结果可以显示、预览。

删除及修改图书信息:

可以删除图书和修改部分字段的内容。

2.读者管理

管理员可以添加读者类别和修改读者类别。

读者管理员可以添加读者信息,可以按指定的组合条件查询读者,查询结果可以显示、预览,还可以删除读者和修改部分字段的内容。

读者可以修改个人信息、密码和查阅个人的借阅信息。

3.借阅管理

读者管理员可以给读者借书和还书。

还书时如果图书超期,提示超期的天数,并计算罚款,记录归还相关信息。

读者管理员还可按读者信息查询指定期间内的历史借阅信息和当前未还信息,按图书信息查询指定期间内的历史借阅信息和当前借阅读者信息。

查询结果可以显示、预览。

4.系统管理

系统管理员可以浏览、添加、修改和删除用户信息。

7.2功能实现程序设计

在本次程序设计中,运用了windows应用程序中数据访问涉及的System.Data.SqlClient、System.Data.OleDb、System.Data.OracleClient、System.Data.Odbc命名空间和Connection、Command、DataReader、DataAdapter、Dataset、DataGridView等类和控件。

ADO.NET对象模型中有五个主要的组件,分别是Connection对象,Command对象,DataAdapter对象,Dataset对象以及DataReader对象。

7.2.1建立主要方法集合

在项目中新建了一个类,取名为DataBase.cs。

具体代码如下:

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Collections;

usingSystem.Text;

usingSystem.Data;

usingSystem.Data.SqlClient;

usingSystem.IO;

usingSystem.Windows.Forms;

namespaceWindowsApplication3

{

classDataBase

{

publicSqlConnectionconnection;

///打开数据库

publicvoidopen()

{

stringconnstring="DataSource=WIN-4E814AOPU42;InitialCatalog=图书馆管理系统(课设);IntegratedSecurity=True";

connection=newSqlConnection(connstring);

connection.Open();

}

///关闭数据库

publicvoidclose()

{

connection.Dispose();

connection.Close();

connection=null;

}

///输入sql命令,得到DataReader对象

publicSqlDataReaderGetDataReader(stringsqlstring)

{

open();

SqlCommandmycom=newSqlCommand(sqlstring,connection);

SqlDataReaderDr=mycom.ExecuteReader();

returnDr;

}

///输入sql命令,得到DataSet对象

publicDataSetGetDataSet(stringsqlstring)

{

open();

SqlCommandmycom=newSqlCommand(sqlstring,connection);

SqlDataAdapteradapter=newSqlDataAdapter();

adapter.SelectCommand=mycom;

DataSetdataset=newDataSet();

adapter.Fill(dataset);

close();

returndataset;

}

///执行非查询命令sql命令

publicintExecuteSQL(stringsqlstring)

{

intcount=-1;

open();

try

{

SqlCommandcmd=newSqlCommand(sqlstring,connection);

count=cmd.ExecuteNonQuery();

}

catch

{

count=-1;

}

finally

{

close();

}

returncount;

}

///输入sql命令,检查数据库表中是否有该数据信息

publicintGetdataRow(stringsqlstring)

{

intCountRow=0;

open();

SqlCommandmycom=newSqlCommand(sqlstring,connection);

SqlDataAdapterda=newSqlDataAdapter();

da.SelectCommand=mycom;

DataSetds=newDataSet();

da.Fill(ds);

ds.CaseSensitive=false;

CountRow=ds.Tables[0].Rows.Count;//取行集合中的元素的总数

close();

returnCountRow;

}

 

///输入sql命令,得到DataTable对象

publicDataTableGetDataTable(stringsqlstring)

{

DataSetds=GetDataSet(sqlstring);

DataTabledt=newDataTable();

dt=ds.Tables[0];

returndt;

}

///获取单个值

publicobjectGetScalar(stringsqlstring)

{

open();

SqlCommandmycom=newSqlCommand(sqlstring,connection);

objectresult=mycom.ExecuteScalar();

close();

returnresult;

}

///对整体数据集实施批量更新;一般用于列表这样的对象

publicbooldoUpdata(DataSetds,Stringsql,StringtableName)

{

boolflag=false;

open();

using(SqlDataAdapterda=newSqlDataAdapter(sql,connection))

{

SqlCommandBuilderbuilder=newSqlCommandBuilder(da);

try

{

lock(this)

{

da.Update(ds,tableName);

flag=true;

}

}

catch(SqlExceptione)

{

thrownewException(e.Message);

}

}

close();

returnflag;

}

///查询某个表的某列属性的数据,并形成列表

publicArrayListGetListArry(stringsqlstring,intm)

{

ArrayListarray=newArrayList();

SqlDataReaderdr=GetDataReader(sqlstring);

while(dr.Read())//遍历所有结果集

{

array.Add(dr.GetValue(m));//取得结果集索引的第列的值并添加到ArrayList对象中

}

returnarray;

}

///执行存储过程,返回Command对象

publicSqlCommandGetprocCommand(stringsqlstring)

{

open();

SqlCommandmycom=newSqlCommand(sqlstring,connection);

returnmycom;

}

}

}

 

7.2.2用户登录功能实现

1.登录界面

2.“登录”按钮代码

///

///登录

///

///

///

privatevoidbutton1_Click(objectsender,EventArgse)

{

if(textBox1.Text==string.Empty||textBox2.Text==string.Empty)

{

MessageBox.Show("信息禁止为空!

","信息提示");

clear();

return;

}

else

{

stringsql="selectmTypefrommanagewheremID="+textBox1.Text.Trim()+"andmPwd='"+textBox2.Text.Trim()+"'";

objecta;

a=mydatabase.GetScalar(sql);

intb=Convert.ToInt32(a);

if(b!

=0)

{

this.Hide();

Form3fm3=newForm3();

fm3.Show();

}

if(b!

=1)

{

Form4fm4=newForm4();

fm4.Show();

}

}

}

publicvoidclear()

{

textBox1.Clear();

textBox2.Clear();

textBox1.Focus();

}

3.“取消”按钮代码

///

///取消

///

///

///

privatevoidbutton2_Click(objectsender,EventArgse)

{

textBox1.Clear();

textBox2.Clear();

textBox1.Focus();

}

 

7.2.3图书管理功能实现

1.管理员菜单界面

 

 

2.查询、删除图书信息界面

3.“查询”按钮代码

///

///查询图书信息

///

///

///

privatevoidbutton1_Click(objectsender,EventArgse)

{

stringstrsql=null;

if(textBox1.Text=="")

{

if(textBox2.Text==""&&textBox3.Text==""&&textBox4.Text==""&&comboBox1.Text=="")

strsql="selectbkID,bkCode,bkName,bkAuthor,bkPress,bkDatePress,bkISBN,bkCatalog,bkLanguage,bkPages,bkPrice,bkDateIn,bkBrief,bkIsInLabfromBook";

//只填入一个

if(textBox2.Text!

=""&&textBox3.Text==""&&textBox4.Text==""&&comboBox1.Text=="")

strsql="selectbkID,bkCode,bkName,bkAuthor,bkPress,bkDatePress,bkISBN,bkCatalog,bkLangua

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

当前位置:首页 > 高等教育 > 理学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1