1、SQL数据库图书管理系统442020年4月19日文档仅供参考SQL Server数据库课程设计题目:图书借阅管理系统的设计与实现院、 系: 计算机信息与技术系 学科专业: 计算机科学与技术 学 号: B10060111 学生姓名: 指导教师: 高峰 06月前 言“图书是人类进步的阶梯,是人类的精神财富,是人类的终身伴侣。”图书作为教学和学习必不可少的工具,它的作用举足轻重,它几乎存在与每一个学校之中,而相当一部分的设施条件不好资金缺乏的学校甚至对于图书的管理,采用传统的纸质的方式去完成,这样就导致了很多很多的问题,例如:不能很好的对读者借书还书管理,当读者需要还书的时候还要查找以前的纸质文档来
2、找到相应的记录,非常的麻烦;时间长的话图书馆的资料一旦丢失很难再恢复,给整个工作带来很大的困难;读者也只有经过去学校图书馆才能一本一本挨个的寻找才能找到自己想要找到书本等等一系列的问题。针对以上情况开发一个图书管理系统,来实现管理员和读者两个角色的管理使用,对于读者,能够不用去图书馆直接在自己电脑上按多种条件轻松的查找自己想要找的书本的信息,能够很轻松的看到自己借阅的信息来方便读者及时的归还相应的信息,能够很容易的看到读者对在馆书籍的借阅排行问题,来了解图书的热度以及为了个人安全来对密码的管理。而对于图书的管理员,她实现的功能就相当的复杂了,首先它能够增加读者信息,能够对新书进行入库,删除旧书
3、,这里所说的旧书是没有人借阅的书,当有读者节约的时候,管理员就不能删除图书的信息了,能够查询所有的读者信息,能够对图书进行修改校正,以及解决自己登陆安全性的问题。最重要的是能够进行对图书的借阅和归还,同时改变图书库存和被借阅次数的信息。本图书管理系统能够更加人性化的满足小型图书馆的日常借阅问题,达到一个很理想的智能管理目的。“图书是人类进步的阶梯,是人类的精神财富,是人类的终身伴侣。”图书作为教学和学习必不可少的工具,它的作用举足轻重,它几乎存在与每一个学校之中,而相当一部分的设施条件不好资金缺乏的学校甚至对于图书的管理第一章:实验指导书数据库原理及应用课程设计指导书一、课设目的经过设计一个管
4、理信息系统,考察学生运用所学知识的能力,针对相关的课程:计算机语言、数据库原理等的检验;还有助于提高学生的实践能力、综合应用能力,为毕业设计打下良好的基础。二、课设要求1、题目要求本次课程设计的题目是图书借阅管理系统的设计与实现。2、设计结果要求(1)每人在指定时间内独立完成课程设计题目,最后一次上机开始检查个人程序,被检查人要能详细解释自己程序功能的实现方法;(2)统一提交课程设计报告,按照需求分析、概要设计、详细设计、软件实现、软件测试、课程设计总结的框架撰写课程设计报告;报告附录:源程序清单(可节选主要代码);(3)完整的数据库文件、代码、课程设计报告电子版压缩打包,并以学号姓名命名(如
5、:B班若愚.rar),数据库文件、源码和课程设计报告电子版收齐后以班为单位刻盘;(4)课程设计报告打印版、光盘以班为单位在最后一天上机时提交;光盘每个班交一张.4、环境(1) 机房在规定的时间内,必须在指定的机房进行课程设计,其余时间自由上机设计。(2) 硬件要求提供具有网络功能的PC机。(3) 软件操作系统: Windows xp;语言:任选一种面向对象的程序设计语言(如: C#.net,VB.net ,VB, VC等);工具::文字处理WORD, 表格处理EXCEL, 图形处理-Microsoft Visio等,数据库:SQL Server 。三、参考资料为了让同学们能顺利地开展课程设计,
6、 对所做的系统有更多的了解与掌握, 下面给出有关的参考文献, 以供同学们选择。1 杨学全 主编, SQL Server实例教程(第二版)M. 北京: 电子工业出版社. 9月2 于国防,李剑.C#语言Windows程序设计M.北京:清华大学出版社. 9月3 史济民, 顾春华, 李昌武, 苑荣 编著. 软件工程原理、方法与应用M. 北京: 高等教育出版社. 1月. 4 张海藩 编著. 软件工程导论M. 北京: 清华大学出版社. 10月. 5 张奇, 李律松, 卫建伟 等编著. Visual C#数据库项目案例导航M. 北京: 清华大学出版社. 6月. 6 邹建峰等,C#企业级开发案例精解M,北京:
7、人民邮电出版社. 1月.7 Kouresh Ardestani著,张哲峰 译.高效掌握ADO.NET. M北京:清华大学出版社. 3月.第二章:需求分析一 实验目的(1)培养综合应用Microsoft Visual Studio 和SQL进行应用程序设计和解决实际问题的能力;(2)加深对Microsoft Visual Studio 和SQL编程环境和编程方法的理解;(3)发挥各人的想像能力和分析能力,拓展思维空间;(4)掌握应用程序设计的基本方法;(5)巩固已经学到的编程技术,学会在编程中学习编程。二 实验要求(1)图书信息的录入和删除,出版社信息管理等;(2)图书的检索(包括按作者姓名、出
8、版时间、出版社名称、图书类别、书名、关键宇等);(3)图书的租借(包括图书借书登记、还书登记);(4)用户管理系统(包括用户注册,用户密码修改等)(5)系统设置(主要是对系统功能增加删除)三 实验需求分析1.目标分析登陆界面管理员界面读者界面 用户登录 退出 修改密码 图书管理(包括书籍借出,还入,修改,删除) 用户注册 退出 查找图书 用户还书 修改密码 2 概念结构设计经过需求分析阶段的分析结果,本系统所要设计的ER图如下;3. 设计环境:操作系统:Windows XP;DBMS:SQL Server ;开发工具:ASP.NET。管理员(管理员账号,管理员密码)图书 (图书代码,图书名称,
9、图书类型,出版社,定价,作者,库存,)读者 ( 读者编号,密码,姓名,性别,专业,联系方式)借还书(读者编号, 图书代码,借书日期,还书日期)注:“_”为表中的主键。改关系模型满足基本的三范式。因为每个非主属性既不部分依赖也不传递依赖于码。第三章:实验内容分析一:创立数据库 创立数据库,数据库名user,在数据库里建表1表3,表1图3.1 管理员表,表2图3.2 图书表 ,表3图3.3读者表。图表如下:图3.1 管理员表 图3.2 图书表 图3.3读者表功能分析:本系统的主要文件以及所实现功能的对照表如下:文件名功能Login.aspx登陆界面实现admain存放管理员实现功能的文件夹adma
10、inadd.aspx新书入库admainadmain.aspx管理员主界面admainback.aspx读者还书admainborrow.aspx读者借书admainduzhe.aspx查阅所有读者信息admaingaishu.aspx图书校正admainshanbook.aspx旧书淘汰admainxiugai.aspx修改管理员登录密码admainzengdu.aspx新读者注册image存放系统中所用的图片reader存放实现读者功能的文件夹readerchaziji.aspx查看读者自己借阅信息readerlook.aspx读者按不同条件(作者,图书代码,出版社,图书类型)查询图书re
11、aderreader.aspx读者主界面readerxiugai.aspx读者密码修改二:源代码及系统截图 在书数据库连接部分,加上在每个文件引用: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) priv
12、ate 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 whe
13、re 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.Parametersloginname.Value = username.Text; cmd.Parameterspassword.Value = password.Text; /创建 Sql
14、DataReader,?必?须?调用? 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 (); p
15、rivate 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(); pr
16、ivate 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);
17、cmd.Parameters.Add(loginname, SqlDbType.NChar, 20); cmd.Parameters.Add(loginpassword, SqlDbType.NChar, 20); cmd.Parametersloginname.Value = tBoxuser.Text; cmd.Parametersloginpassword.Value = tBoxpassword.Text; cmd.ExecuteNonQuery(); sqlcon.Close(); MessageBox.Show(注册成功|!); this.tBoxuser.Clear(); thi
18、s.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 = n
19、ew 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.Parametersloginname.Value = tBoxuser.Text; SqlDataReader dr = cmd.ExecuteReader(); if (dr.Rea
20、d() 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.Parametersloginname.Value = t
21、Boxuser.Text; cmd2.Parametersloginpassword.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() Init
22、ializeComponent(); 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
23、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 注册ToolStr
24、ipMenuItem_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();
25、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) privat
26、e 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 textBox
27、2_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
28、 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( + boo
29、kno.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,2
30、0); cmd.Parameters.Add (bookpublisher,SqlDbType.NChar,20); cmd.Parameters.Add (benshu,SqlDbType.TinyInt); cmd.Parametersbookno.Value = bookno.Text; cmd.Parametersbookname.Value = bookname.Text; cmd.Parametersbookauthor.Value = bookauthor.Text; cmd.Parametersbookpublisher.Value = bookpublisher.Text;
31、cmd.Parametersbenshu.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(); priv
32、ate 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) SqlConnecti
33、on 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.
34、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.Parametersbenshu.Value = booknum.Text; cmd.Parametersbno
35、.Value = bookno.Text; cmd.Parametersbookname.Value = bookname.Text; cmd.Parametersbookauthor.Value = bookauthor.Text; cmd.Parametersbookpublisher.Value = bookpublisher.Text; cmd.ExecuteNonQuery(); sqlcon.Close(); MessageBox.Show(修T改?成功|!); this.bookno.Clear(); this.bookname.Clear(); this.bookauthor.
36、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