资源描述
SQL数据库图书管理系统
44
2020年4月19日
文档仅供参考
《SQL Server数据库
课程设计》
题目:图书借阅管理系统的设计与实现
院、 系: 计算机信息与技术系
学科专业: 计算机科学与技术
学 号: B10060111
学生姓名:
指导教师: 高峰
××× 06月
前 言
“图书是人类进步的阶梯,是人类的精神财富,是人类的终身伴侣。”图书作为教学和学习必不可少的工具,它的作用举足轻重,它几乎存在与每一个学校之中,而相当一部分的设施条件不好资金缺乏的学校甚至对于图书的管理,采用传统的纸质的方式去完成,这样就导致了很多很多的问题,例如:不能很好的对读者借书还书管理,当读者需要还书的时候还要查找以前的纸质文档来找到相应的记录,非常的麻烦;时间长的话图书馆的资料一旦丢失很难再恢复,给整个工作带来很大的困难;读者也只有经过去学校图书馆才能一本一本挨个的寻找才能找到自己想要找到书本等等一系列的问题。
针对以上情况开发一个图书管理系统,来实现管理员和读者两个角色的管理使用,对于读者,能够不用去图书馆直接在自己电脑上按多种条件轻松的查找自己想要找的书本的信息,能够很轻松的看到自己借阅的信息来方便读者及时的归还相应的信息,能够很容易的看到读者对在馆书籍的借阅排行问题,来了解图书的热度以及为了个人安全来对密码的管理。而对于图书的管理员,她实现的功能就相当的复杂了,首先它能够增加读者信息,能够对新书进行入库,删除旧书,这里所说的旧书是没有人借阅的书,当有读者节约的时候,管理员就不能删除图书的信息了,能够查询所有的读者信息,能够对图书进行修改校正,以及解决自己登陆安全性的问题。最重要的是能够进行对图书的借阅和归还,同时改变图书库存和被借阅次数的信息。
本图书管理系统能够更加人性化的满足小型图书馆的日常借阅问题,达到一个很理想的智能管理目的。
“图书是人类进步的阶梯,是人类的精神财富,是人类的终身伴侣。”图书作为教学和学习必不可少的工具,它的作用举足轻重,它几乎存在与每一个学校之中,而相当一部分的设施条件不好资金缺乏的学校甚至对于图书的管理
第一章:实验指导书
《数据库原理及应用》课程设计指导书
一、课设目的
经过设计一个管理信息系统,考察学生运用所学知识的能力,针对相关的课程:计算机语言、数据库原理等的检验;还有助于提高学生的实践能力、综合应用能力,为毕业设计打下良好的基础。
二、课设要求
1、题目要求
本次课程设计的题目是《图书借阅管理系统的设计与实现》。
2、设计结果要求
(1)每人在指定时间内独立完成课程设计题目,最后一次上机开始检查个人程序,被检查人要能详细解释自己程序功能的实现方法;
(2)统一提交课程设计报告,按照需求分析、概要设计、详细设计、软件实现、软件测试、课程设计总结的框架撰写课程设计报告;报告附录:源程序清单(可节选主要代码);
(3)完整的数据库文件、代码、课程设计报告电子版压缩打包,并以学号姓名命名(如:B班若愚.rar),数据库文件、源码和课程设计报告电子版收齐后以班为单位刻盘;
(4)课程设计报告打印版、光盘以班为单位在最后一天上机时提交;光盘每个班交一张.
4、环境
(1) 机房
在规定的时间内,必须在指定的机房进行课程设计,其余时间自由上机设计。
(2) 硬件
要求提供具有网络功能的PC机。
(3) 软件
操作系统: Windows xp;
语言:任选一种面向对象的程序设计语言(如: C#.net,VB.net ,VB, VC等);
工具::文字处理—WORD, 表格处理—EXCEL, 图形处理--Microsoft Visio等,
数据库:SQL Server 。
三、参考资料
为了让同学们能顺利地开展课程设计, 对所做的系统有更多的了解与掌握, 下面给出有关的参考文献, 以供同学们选择。
[1] 杨学全 主编, SQL Server实例教程(第二版)[M]. 北京: 电子工业出版社. 9月
[2] 于国防,李剑.C#语言Windows程序设计[M].北京:清华大学出版社. 9月
[3] 史济民, 顾春华, 李昌武, 苑荣 编著. 软件工程——原理、方法与应用[M]. 北京: 高等教育出版社. 1月.
[4] 张海藩 编著. 软件工程导论[M]. 北京: 清华大学出版社. 10月.
[5] 张奇, 李律松, 卫建伟 等编著. Visual C#数据库项目案例导航[M]. 北京: 清华大学出版社. 6月.
[6] 邹建峰等,C#企业级开发案例精解[M],北京:人民邮电出版社. 1月.
[7] Kouresh Ardestani著,张哲峰 译.高效掌握ADO.NET. [M]北京:清华大学出版社. 3月.
第二章:需求分析
一 实验目的
(1)培养综合应用Microsoft Visual Studio 和SQL进行应用程序设计和解决实际问题的能力;
(2)加深对Microsoft Visual Studio 和SQL编程环境和编程方法的理解;
(3)发挥各人的想像能力和分析能力,拓展思维空间;
(4)掌握应用程序设计的基本方法;
(5)巩固已经学到的编程技术,学会在编程中学习编程。
二 实验要求
(1)图书信息的录入和删除,出版社信息管理等;
(2)图书的检索(包括按作者姓名、出版时间、出版社名称、图书类别、
书名、关键宇等);
(3)图书的租借(包括图书借书登记、还书登记);
(4)用户管理系统(包括用户注册,用户密码修改等)
(5)系统设置(主要是对系统功能增加删除)
三 实验需求分析
1.目标分析
登陆界面
管理员界面
读者界面
① 用户登录 退出
② 修改密码
③ 图书管理(包括书籍借出,还入,修改,删除)
① 用户注册 退出
② 查找图书
③ 用户还书
④ 修改密码
2 概念结构设计
经过需求分析阶段的分析结果,本系统所要设计的ER图如下;
3. 设计环境:
操作系统:Windows XP;
DBMS:SQL Server ;
开发工具:ASP.NET。
管理员(管理员账号,管理员密码)
图书 (图书代码,图书名称,图书类型,出版社,定价,作者,库存,)
读者 ( 读者编号,密码,姓名,性别,专业,联系方式)
借还书(读者编号, 图书代码,借书日期,还书日期)
注:“____”为表中的主键。
改关系模型满足基本的三范式。因为每个非主属性既不部分依赖也不传递依赖于码。
第三章:实验内容分析
一:创立数据库
创立数据库,数据库名user,在数据库里建表1~表3,表1图3.1 管理员表,表2图3.2 图书表 ,表3图3.3读者表。图表如下:
图3.1 管理员表
图3.2 图书表
图3.3读者表
功能分析:本系统的主要文件以及所实现功能的对照表如下:
文件名
功能
Login.aspx
登陆界面实现
admain
存放管理员实现功能的文件夹
admain\add.aspx
新书入库
admain\admain.aspx
管理员主界面
admain\back.aspx
读者还书
admain\borrow.aspx
读者借书
admain\duzhe.aspx
查阅所有读者信息
admain\gaishu.aspx
图书校正
admain\shanbook.aspx
旧书淘汰
admain\xiugai.aspx
修改管理员登录密码
admain\zengdu.aspx
新读者注册
image
存放系统中所用的图片
reader
存放实现读者功能的文件夹
reader\chaziji.aspx
查看读者自己借阅信息
reader\look.aspx
读者按不同条件(作者,图书代码,出版社,图书类型)查询图书
reader\reader.aspx
读者主界面
reader\xiugai.aspx
读者密码修改
二:源代码及系统截图
在书数据库连接部分,加上<add name="图书馆ConnectionString" connectionString="Data Source=41928FCITVRT9GD;Initial Catalog=图书馆;Integrated Security=True" providerName="System.Data.SqlClient"/>
在每个文件引用:
using System.Data.SqlClient;
3.4 图书管理系统登录(Login.aspx)
经过用户的输入用户名,密码实现登陆。
主要代码如下:
namespace bookmis
{ public partial class Login : Form
{ public Login()
{InitializeComponent();
} private void label3_Click(object sender, EventArgs e)
{
}private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void btok_Click(object sender, EventArgs e)
{
string strcon = "Data Source=BXAIT-PC;Initial Catalog=BookStore;Integrated Security=True";
SqlConnection sqlCon=new SqlConnection (strcon );
sqlCon.Open();
string sql = "select * from login where loginname=@loginname and loginpassword=@password";
SqlCommand cmd = new SqlCommand(sql,sqlCon );
cmd.Parameters.Add ("@loginname",SqlDbType.NChar, 20);
cmd.Parameters.Add("@password", SqlDbType.NChar, 20);
cmd.Parameters["@loginname"].Value = username.Text;
cmd.Parameters["@password"].Value = password.Text;
//创ä¡ä建¡§ SqlDataReader,ê?必À?须?调Ì¡Â用®? SqlCommand 对?象¨®的Ì? ExecuteReader 方¤?法¤¡§,ê?而?不?要°a直¡À接¨®使º1用®?构1造¨¬函¡¥数ºy。¡ê
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
dr.Close();
Formmain formmain = new Formmain();
formmain.Show();
this.Hide();
}
else
{
MessageBox.Show("密¨¹码?错䨪误¨®,请?重?新?输º?入¨?!");
//name.Clear();
password.Clear();
}
sqlCon.Close ();
} private void btcancel_Click(object sender, EventArgs e)
{
Application.Exit();
} private void username_TextChanged(object sender, EventArgs e)
{
}
private void Login_Load(object sender, EventArgs e)
{
}
}
}
3.5 用户注册
用户注册主要代码:
namespace bookmis
{
public partial class logon : Form
{
public logon()
{
InitializeComponent();
}
private void btnlogon_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("data source=localhost;Initial catalog=Bookstore;Integrated security=sspi;");
string str = "insert into dbo.login values(@loginname,@loginpassword)";
sqlcon.Open();
SqlCommand cmd = new SqlCommand(str, sqlcon);
cmd.Parameters.Add("@loginname", SqlDbType.NChar, 20);
cmd.Parameters.Add("@loginpassword", SqlDbType.NChar, 20);
cmd.Parameters["@loginname"].Value = tBoxuser.Text;
cmd.Parameters["@loginpassword"].Value = tBoxpassword.Text;
cmd.ExecuteNonQuery();
sqlcon.Close();
MessageBox.Show("注Á¡é册¨¢成¨¦功|!");
this.tBoxuser.Clear();
this.tBoxpassword.Clear();
}
}
}
3.6 用户修改密码
修改密码主要代码:namespace bookmis
{
public partial class xgmm : Form
{
public xgmm()
{
InitializeComponent();
}
private void btnxgmm_Click(object sender, EventArgs e)
{
string strcon = "Data Source=BXAIT-PC;Initial Catalog=BookStore;Integrated Security=True";
SqlConnection sqlCon = new SqlConnection(strcon);
sqlCon.Open();
string sql = "select * from dbo.login where loginname=@loginname";
SqlCommand cmd = new SqlCommand(sql, sqlCon);
cmd.Parameters.Add("@loginname", SqlDbType.NChar, 20);
cmd.Parameters["@loginname"].Value = tBoxuser.Text;
SqlDataReader dr = cmd.ExecuteReader();
if (dr.Read())
{
dr.Close();
string xgmm = "update dbo.login set loginpassword = @loginpassword where loginname=@loginname";
SqlCommand cmd2 = new SqlCommand(xgmm, sqlCon);
cmd2.Parameters.Add("@loginpassword", SqlDbType.NChar, 20);
cmd2.Parameters.Add("@loginname", SqlDbType.NChar, 20);
cmd2.Parameters["@loginname"].Value = tBoxuser.Text;
cmd2.Parameters["@loginpassword"].Value = tBoxpassword.Text;
cmd2.ExecuteNonQuery();
MessageBox.Show("修T改?成¨¦功|!");
}
else
{
MessageBox.Show("无T此ä?用®?户¡ì,请?重?新?输º?入¨?!");
tBoxpassword.Clear();
}
sqlCon.Close();
}
}
}
3.7 图书查询系统
查询图书主要代码: namespace bookmis
{
public partial class Formmain : Form
{ public Formmain()
{InitializeComponent();
} private void 增?加¨®ToolStripMenuItem_Click(object sender, EventArgs e)
{
Addbook addbook = new Addbook();
addbook.Show();}
private void 退ª?出?ToolStripMenuItem_Click(object sender, EventArgs e)
{ Application.Exit();
}
private void 修T改?ToolStripMenuItem_Click(object sender, EventArgs e)
{
Update Update = new Update();
Update.Show();
}private void 查¨¦询¡¥ToolStripMenuItem_Click(object sender, EventArgs e)
{
Selectbook selectbook = new Selectbook();
selectbook.Show();
}
private void 借¨¨书º¨¦ToolStripMenuItem_Click(object sender, EventArgs e)
{
Borrow Borrow = new Borrow();
Borrow.Show();
}
private void 注Á¡é册¨¢ToolStripMenuItem_Click(object sender, EventArgs e)
{
logon logon = new logon();
logon.Show();
}
private void 修T改?密¨¹码?ToolStripMenuItem_Click(object sender, EventArgs e)
{
xgmm xgmm = new xgmm();
xgmm.Show();
}
private void 还1书º¨¦ToolStripMenuItem_Click(object sender, EventArgs e)
{
huan huan = new huan();
huan.Show();
}
private void 删¦?除yToolStripMenuItem_Click(object sender, EventArgs e)
{
Deletebook Deletebook = new Deletebook();
Deletebook.Show();
}
}
}
3.8 图书增加界面
主要代码:namespace bookmis
{
public partial class Addbook : Form
{
public Addbook()
{
InitializeComponent();
}
private void label2_Click(object sender, EventArgs e)
{
}
private void label5_Click(object sender, EventArgs e)
{
}
private void textBox4_TextChanged(object sender, EventArgs e)
{ }
private void label4_Click(object sender, EventArgs e)
{ }
private void textBox3_TextChanged(object sender, EventArgs e)
{ }
private void label3_Click(object sender, EventArgs e)
{ }
private void textBox2_TextChanged(object sender, EventArgs e)
{ }
private void textBox5_TextChanged(object sender, EventArgs e)
{ }
private void textBox1_TextChanged(object sender, EventArgs e)
{ }
private void label1_Click(object sender, EventArgs e)
{ }
private void btnadd_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("data source=localhost;Initial catalog=Bookstore;Integrated security=sspi;");
string str = "insert into dbo.book values(@bookno,@bookname,@bookauthor,@bookpublisher,@benshu)";
sqlcon.Open();
// SqlCommand cmd = new SqlCommand("insert into dbo.book(bnum,bname,bauthor,bpublic,benshu) values('" + bookno.Text + "','" + bookname.Text + "','" + bookauthor.Text + "','" + bookpublisher.Text + "','" + booknum.Text + "')", sqlcon);
SqlCommand cmd=new SqlCommand (str,sqlcon );
cmd.Parameters.Add ("@bookno",SqlDbType.NChar,20);
cmd.Parameters.Add ("@bookname",SqlDbType.NChar,20);
cmd.Parameters.Add ("@bookauthor",SqlDbType.NChar,20);
cmd.Parameters.Add ("@bookpublisher",SqlDbType.NChar,20);
cmd.Parameters.Add ("@benshu",SqlDbType.TinyInt);
cmd.Parameters["@bookno"].Value = bookno.Text;
cmd.Parameters["@bookname"].Value = bookname.Text;
cmd.Parameters["@bookauthor"].Value = bookauthor.Text;
cmd.Parameters["@bookpublisher"].Value = bookpublisher.Text;
cmd.Parameters["@benshu"].Value = booknum.Text;
cmd.ExecuteNonQuery();
sqlcon.Close();
MessageBox.Show("添¬¨ª加¨®成¨¦功|!");
this.bookno.Clear();
this.bookname.Clear();
this.bookauthor.Clear();
this.bookpublisher.Clear();
this.booknum.Clear();
}
private void btcancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void Addbook_Load(object sender, EventArgs e)
{
}
}
}
3.9 图书修改界面
图书修改主要代码:namespace bookmis
{
public partial class Update : Form
{
public Update()
{
InitializeComponent();
}
private void btcancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnupdate_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlConnection("data source=localhost;Initial catalog=Bookstore;Integrated security=sspi;");
string str = "update dbo.book set bname=@bookname,bauthor=@bookauthor,bpublic=@bookpublisher,benshu=@benshu where bno=@bno";
sqlcon.Open();
SqlCommand cmd = new SqlCommand(str, sqlcon);
cmd.Parameters.Add("@bookname", SqlDbType.NChar, 20);
cmd.Parameters.Add("@bookauthor", SqlDbType.NChar, 20);
cmd.Parameters.Add("@bookpublisher", SqlDbType.NChar, 20);
cmd.Parameters.Add("@bno", SqlDbType.NChar, 20);
cmd.Parameters.Add("@benshu", SqlDbType.NChar, 20);
cmd.Parameters["@benshu"].Value = booknum.Text;
cmd.Parameters["@bno"].Value = bookno.Text;
cmd.Parameters["@bookname"].Value = bookname.Text;
cmd.Parameters["@bookauthor"].Value = bookauthor.Text;
cmd.Parameters["@bookpublisher"].Value = bookpublisher.Text;
cmd.ExecuteNonQuery();
sqlcon.Close();
MessageBox.Show("修T改?成¨¦功|!");
this.bookno.Clear();
this.bookname.Clear();
this.bookauthor.Clear();
this.bookpublisher.Clear();
this.booknum.Clear();
}
private void Update_Load(object sender, EventArgs e)
{
}
}
}
namespace bookmis
{
public partial class Update : Form
{
public Update()
{
InitializeComponent();
}
private void btcancel_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnupdate_Click(object sender, EventArgs e)
{
SqlConnection sqlcon = new SqlCon
展开阅读全文