数据库课设报告 图书管理系统.docx
《数据库课设报告 图书管理系统.docx》由会员分享,可在线阅读,更多相关《数据库课设报告 图书管理系统.docx(43页珍藏版)》请在冰豆网上搜索。
![数据库课设报告 图书管理系统.docx](https://file1.bdocx.com/fileroot1/2023-1/23/2bb228f4-998d-4392-9478-5f46e0bb7d8d/2bb228f4-998d-4392-9478-5f46e0bb7d8d1.gif)
数据库课设报告图书管理系统
《图书管理信息系统》
课程设计报告
学号:
姓名:
班级:
指导教师:
报告日期:
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