图书管理系统设计与实现.docx
- 文档编号:11448182
- 上传时间:2023-03-01
- 格式:DOCX
- 页数:25
- 大小:66.51KB
图书管理系统设计与实现.docx
《图书管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《图书管理系统设计与实现.docx(25页珍藏版)》请在冰豆网上搜索。
图书管理系统设计与实现
图书管理系统的设计和开发
第1章概论
1.1背景及目的
当今时代是飞速发展的信息时代,各行各业都离不开信息处理,这正是计算机被广泛应用于社会各行各业的原因。
使用计算机进行信息管理是行业现代化的一个标志,此举不仅提高了工作效率,而且大大的提高了其安全性。
尤其对于复杂的信息管理,计算机能够充分发挥它的优越性:
快速操作、智能分析、海量存储和长期保存等等。
使用计算机进行信息管理与信息管理系统的开发密切相关,因为信息管理系统的开发是利用信息管理系统进行管理的前提。
本系统就是为了进行现代化图书馆信息管理而设计的。
本系统是一个针对大中专院校图书馆的图书信息管理系统,着力于解决原来手工管理出现的问题,如效率低、易出错、手续繁琐,还耗费大量的人力和物力,旨在实现现代化的信息管理。
1.2系统功能模块设计简介
本系统包含读者登记、添加新书、读者借书、读者还书、图书注销、查询读者、查询图书等等功能。
Ø读者登记时要为读者编制读者卡号,包括读者的具体信息(包括读者编号、姓名、性别、类别、有效证件、联系电话、联系地址等),写入读者文件中。
Ø添加新书时要为该书编制图书卡片(包括分类图书编号、图书书名、作者、类别、图书单价和入库日期等信息),写入图书文件中。
Ø读者借书时,先检查该读者是否为有效的读者,若无效则拒绝借书,然后检查该读者所借图书是否超过最大限制数,若超过则拒绝借书,再检查有尚未归还的过期图书,若有则拒绝借书,最后查找要借的图书是否还有,如果有则办理借出手续,登记图书分类号、读者号和借阅日期等。
Ø读者还书时,根据书号,从借书文件中读出有关记录,标明还书日期,如果图书过期,则处以罚款。
Ø系统还应提供图书清理的功能,对无价值的和过时的图书可以进行注销。
Ø查询要求分为查询某位读者、某种图书和全局图书三种情况。
第2章图书管理系统需求分析
2.1应用需求分析
图书馆管理系统开发的总的设计目标是实现图书管理的系统化、规范化和自动化,实现对图书资料的集中统一的管理。
本系统主要实现对图书馆信息的管理,主要功能为管理有关读者、图书、借阅、查询、删除和管理员的信息等。
本系统结构分为读者类别管理、读者档案管理、图书类型管理、图书档案管理以及图书流程管理,读者管理可以浏览读者的信息,可以对读者信息进行维护。
图书管理可以浏览图书的信息,可以对图书信息进行维护。
借阅管理可以显示当前数据库中书籍借阅情况,可以对借阅信息进行维护。
本系统主要解决的问题是利用关键字对数据库进行查询。
图书管理系统需要满足来自二方面的需求,这二个方面分别是图书借阅者和图书管理系统管理人员。
图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息的修改;图书管理系统管理人员对图书借阅者的借阅及还书要求进行操作,同时形成借书或还书情况给借阅者查看确认,对工作人员、图书借阅者、图书进行管理和维护,及系统状态的查看。
图书管理系统管理人员有修改图书借阅者借书和还书记录的权限,所以需对工作人员登陆本模块进行更多的考虑。
在此模块中,图书管理系统管理人员可以为图书借阅者加入借书记录或是还书记录,并给用户查看和确认。
管理员可以对图书的基本信息进行浏览、查询、添加、删除、修改和统计。
还可以对借阅者的基本信息进行浏览和查询以及对图书馆的借阅信息进行统计。
2.2功能需求分析
1.管理者登录
2.系统设置:
管理员设置、图书馆信息设置、罚金设置
3.图书管理:
添加、浏览、修改、删除、借阅、归还、挂失、详细查看、检索
4.读者管理:
添加、浏览、删除、修改、详情查看、检索
5.信息查询:
查询
2.3数据需求分析
1.管理员信息:
用户名、密码、权限、编号。
2.图书信息:
除读者需要的信息以外,还需要录入时间、产品的编号以及图书是否挂失的信息。
3.读者信息:
读者编码、姓名、性别、类别、联系电话、联系地址、注册时间、是否挂失。
4.借还书信息:
读者编码、图书编码、借书数量、借阅时间、还书时间
第3章数据库设计
3.1数据库设计平台
有效证件
证件号码
登记日期
是否挂失
读者
学生
教师
读者编码
读者姓名
读者性别
读者类别
联系电话
联系地址
包括
查询/借阅
图书
图书编码
图书书名
作者
出版社
图书类别
图书单价
入库时间
存放位置
是否挂失
库存数量
借出数量
本数据库设计采用了MicrosoftSQLServer2000作为开发平台。
3.2数据库ER模型图
3.3数据库的设计及内容简介
打开MicrosoftSQLServer2000,因为我设计是图书管理系统,所以为了方便,命名数据库的名称为tsglxt。
然后新建表,主要包括图书馆信息表(tsgxx表)、管理员表(admin表)、图书表(book表)、借书表(Jhbook表)、借书人表(borrow_reader表)、图书挂失表(tsgs表)、图书注销表(tszx表)、出版社表(cbs表)、图书存放位置表(cfwz表)、读者类别表(dzlb表)、用户表(users表)、读者挂失表(dzgs表)、有效证件表(yxzj表)、图书类别表(booklb表)等。
(1)名称:
管理员表
表名称标识:
admin表
字段名
字段类型
主/外键
admin_id
char
p
admin_xm
char
admin_name
char
admin_password
char
(2)名称:
图书表
表名称标识:
book表
字段名
字段类型
主/外键
Book_id
Char(10)
p
Book_name
Nvarchar(50)
author
Char(10)
publish
Nvarchar(50)
class
Char(10)
bookdj
Char(10)
inputtime
Nvarchar(50)
sjmc
Char(10)
nrjj
Nvarchar(50)
sfgs
Char(10)
kcsl
Int(4)
jcsl
Int(4)
(3)名称:
出版社表
表名称标识:
cbs表
字段名
字段类型
主/外键
publish
Nvarchar(50)
(4)名称:
图书挂失表
表名称标识:
tsgs表
字段名
字段类型
主/外键
Book_id
Char(10)
p
sfgs
Char(10)
Book_name
Nvarchar(50)
(5)名称:
存放位置(书架名称)表
表名称标识:
cfwz表
字段名
字段类型
主/外键
sjmc
Char(10)
(6)名称:
读者类别表
表名称标识:
dzlb表
字段名
字段类型
主/外键
dzlb
Char(10)
kjsl
Char(10)
zcqx
Char(10)
(7)名称:
借还书表
表名称标识:
jhbook表
字段名
字段类型
主/外键
User_id
Char(10)
User_name
Varchar(20)
Book_id
Char(10)
Jstime
Datatime
hstime
datatime
(8)名称:
图书馆信息表
表名称标识:
tsgxx表
字段名
字段类型
主/外键
Tsg_name
Nvarchar(50)
Tsg_admin
Char(10)
B_time
Char(10)
Photo
Nvarchar(50)
Emile
Nvarchar(50)
Address
Nvarchar(50)
Nrjj
Char(10)
(9)名称:
注销图书表
表名称标识:
zxts表
字段名
字段类型
主/外键
Book_id
Char(10)
p
Book_name
Nvarchar(50)
(10)名称:
读者挂失表
表名称标识:
dzgs表
字段名
字段类型
主/外键
User_id
Char(10)
P
sfgs
Char(10)
User_name
Char(10)
(11)名称:
读者表
表名称标识:
users表
字段名
字段类型
主/外键
User_id
Char(10)
P
User_name
Char(10)
User_xb
Char(10)
User_lb
Char(10)
Photo
Nvarchar(50)
Address
Nvarchar(50)
Yxzj
Char(10)
Zj_number
Nvarchar(50)
Dj_time
Char(10)
sfgs
Char(10)
(12)名称:
有效证件表
表名称标识:
yxzj表
字段名
字段类型
主/外键
yxzj
Char(10)
(13)名称:
图书类别表
表名称标识:
booklb表
字段名
字段类型
主/外键
class
Char(10)
(14)名称:
借书人表
表名称标识:
borrow_reader表
字段名
字段类型
主/外键
User_id
Char(10)
P
Kjsl
Int(4)
Yjsl
Int(4)
第4章功能模块概要设计
4.1功能模块开发平台
本功能模块应用软件的开发采用了Microsoft.Visual.Studio.2005C#作为软件设计和开发平台。
功能应用软件的界面采用菜单方式进行操作,具有操作方便、直观,功能明确、统一,对各界面的调用均在程序的主窗口下进行操作。
4.2功能模块设计及内容简介
打开Microsoft.Visual.Studio.2005C#,新建项目并命名为图书管理系统。
新建窗体,拖入空间设计窗体。
本系统主要包括Welcome登录模块、系统设置模块、图书设置模块、读者管理模块、图书管理模块、系统查询模块、帮助模块等模块。
读者挂失查询
主界面
帮助信息
管理员设置
Welcome欢迎登陆界面
系统设置
图书设置
读者管理
图书管理
信息查询
图书馆设置
退出系统
图书分类设置
出版社
存放位置
读者信息
读者有效证件
读者类型设置
读者挂失
解除挂失
图书资料
借阅图书
归还图书
挂失图书
注销图书
记事本
图书信息查询
归还图书查询
挂失图书查询
读者信息查询
借阅图书查询
4.3功能模块设计图
第5章功能模块详细设计
5.1借阅图书模块设计
5.1.1界面设计
5.1.2算法设计
在“更新”按钮的Click事件代码中编写代码,采用ADO.Net技术实现数据库的访问,在数据库的book表中查询图书信息记录,用SqlDataReader对象读取,然后显示出所有的图书信息记录。
在“查询”按钮的Click事件代码中编写代码,采用ADO.Net技术实现数据库的访问,在数据库的book表中查询图书信息记录,用SqlDataReader对象读取,然后显示出查询的图书信息记录。
在“借阅图书”按钮的Click事件代码中编写代码,将读者要借的图书信息与读者的信息绑定写入数据库借还书表(jhbook表)中。
5.1.3代码实现
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceWindowsApplication1
{
publicpartialclass借阅图书:
Form
{
public借阅图书()
{
InitializeComponent();
}
privatevoid借阅图书_Load(objectsender,EventArgse)
{
//TODO:
这行代码将数据加载到表“tsglxtDataSet.JHbook”中。
您可以根据需要移动或移除它。
this.jHbookTableAdapter.Fill(this.tsglxtDataSet.JHbook);
//TODO:
这行代码将数据加载到表“tsglxtDataSet.book”中。
您可以根据需要移动或移除它。
this.bookTableAdapter.Fill(this.tsglxtDataSet.book);
//TODO:
这行代码将数据加载到表“tsglxtDataSet.users”中。
您可以根据需要移动或移除它。
this.usersTableAdapter.Fill(this.tsglxtDataSet.users);
}
SqlConnectioncon=newSqlConnection("DataSource=.;InitialCatalog=tsglxt;IntegratedSecurity=True");
DataSetds=newDataSet();
SqlDataAdapterada=newSqlDataAdapter();
BindingSourcebs=newBindingSource();
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringsql="select*fromuserswhereuser_id='"+textBox2.Text.Trim()+"'";
ada.SelectCommand=newSqlCommand(sql,con);
dataGridView1.DataSource=null;
ada.Fill(ds,"users");
bs.DataSource=ds;
bs.DataMember="users";
if(bs.Count<=0)
MessageBox.Show("表中无此读者");
else
dataGridView1.DataSource=bs;
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
stringsql="select*fromuserswhereuser_name='"+textBox1.Text.Trim()+"'";
ada.SelectCommand=newSqlCommand(sql,con);
dataGridView1.DataSource=null;
ada.Fill(ds,"users");
bs.DataSource=ds;
bs.DataMember="users";
if(bs.Count<=0)
MessageBox.Show("表中无此读者");
else
dataGridView1.DataSource=bs;
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
stringsql="select*frombookwherebook_id='"+textBox3.Text.Trim()+"'";
ada.SelectCommand=newSqlCommand(sql,con);
dataGridView2.DataSource=null;
ada.Fill(ds,"book");
bs.DataSource=ds;
bs.DataMember="book";
if(bs.Count<=0)
MessageBox.Show("表中无此图书");
else
dataGridView2.DataSource=bs;
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
stringsql="select*frombookwhereclass='"+comboBox1.SelectedItem.ToString()+"'";
ada.SelectCommand=newSqlCommand(sql,con);
ada.SelectCommand.Parameters.AddWithValue("class",comboBox1.Text);
dataGridView2.DataSource=null;
ada.Fill(ds,"book");
bs.DataSource=ds;
bs.DataMember="book";
if(bs.Count<=0)
MessageBox.Show("表中无类别");
else
dataGridView2.DataSource=bs;
}
privatevoidbutton5_Click(objectsender,EventArgse)
{
stringsql="select*fromusers";
ada.SelectCommand=newSqlCommand(sql,con);
ds.Clear();
ada.Fill(ds,"users");
bs.DataSource=ds;
bs.DataMember="users";
dataGridView1.DataSource=bs;
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
stringsql="select*frombook";
ada.SelectCommand=newSqlCommand(sql,con);
ds.Clear();
ada.Fill(ds,"book");
bs.DataSource=ds;
bs.DataMember="book";
dataGridView1.DataSource=bs;
}
privatevoidbutton7_Click(objectsender,EventArgse)
{
stringsql="selectkjsl-yjslfromborrow_readerwhereuser_id='"+textBox1.Text.Trim()+"'";
SqlCommandcmd=newSqlCommand(sql,con);
inta=cmd.ExecuteScalar();
if(a=0)
{
MessageBox.Show("借书数量已满,请还书后再借!
");
return;
}
string_sql="selectkcsl-jcslfrombookwherebook_id='"+textBox3.Text.Trim()+"'";
SqlCommandcmd=newSqlCommand(_sql,con);
intb=cmd.ExecuteScalar();
if(b=0)
{
MessageBox.Show("此书已全部被借出,不能借阅");
}
else
{
stringsql="insertintojhbook(user_id,user_name,book_id,jstime)Values(@user_id,@user_name,@book_id,@jstime)";
SqlCommandsqlcmd=newSqlCommand(sql,con);
sqlcmd.Parameters.AddWithValue("@user_id",textBox1.Text);
sqlcmd.Parameters.AddWithValue("@user_name",textBox2.Text);
sqlcmd.Parameters.AddWithValue("@book_id",textBox3.Text);
sqlcmd.Parameters.AddWithValue("@jstime",dateTimePicker1.Value);
stringsqlstr="updateborrow_readersetYjsl=Yjsl+1whereuser_id=@user_id";
string_sql="updatebooksetjcsl=jcsl+1wherebook_id=@book_id";
SqlCommandcmd=newSqlCommand(sqlstr,con);
SqlCommandddd=newSqlCommand(_sql,con);
cmd.Parameters.AddWithValue("@user_id",textBox1.Text);
ddd.Parameters.AddWithValue("@book_id",textBox3.Text);
try
{
con.Open();
sqlcmd.ExecuteNonQuery();
cmd.ExecuteNonQuery();
ddd.ExecuteNonQuery();
con.Close();
MessageBox.Show("借阅成功");
}
catch(DataExceptionex)
{MessageBox.Show(ex.Message);}
finally
{
dataGridView3.DataSource=bs;
}
}
}
privatevoidbutton8_Click(objectsender,EventArgse)
{
this.Close();
}
privatevoidbutton9_Click(objectsender,EventArgse)
{
stringsql="select*frombookwherebook_name='"+textBox4.Text.Trim()+"'";
ada.SelectCommand=newSqlCommand(sql
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 图书 管理 系统 设计 实现