资源描述
《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 SqlConnection("data source=localhost;Initial catalog=Bookstore;Integrated security=sspi;");
string str = "update dbo.book set bname=@bookname,bauthor=@bookauth
展开阅读全文