《数据库》课程设计报告图书借阅管理系统的设计与实现.docx
《《数据库》课程设计报告图书借阅管理系统的设计与实现.docx》由会员分享,可在线阅读,更多相关《《数据库》课程设计报告图书借阅管理系统的设计与实现.docx(27页珍藏版)》请在冰豆网上搜索。
《数据库》课程设计报告图书借阅管理系统的设计与实现
《SQLServer数据库
课程设计》
题目:
图书借阅管理系统的设计与实现
院、系:
计算机信息与技术系
学科专业:
软件工程
学号:
B10060XXX___
学生姓名:
XXXX
指导教师:
XX
2012年06月
引言
随着社会的发展,人们对知识的需求也不断地增长。
在这种形势下,书籍就渐渐地成为人们获取并增长知识的主要途径,而图书馆就自然而然地在人们的生活中占据了一定的位置,如何科学地管理图书馆不但关系到读者求知的方便程度,也关系到图书馆的发展,因此,开发一套完善的图书馆管理系统就势在必行.图书馆在正常运营中总是面对大量的读者信息、书籍信息以及两者相互作用产生的借书信息、还书信息。
本软件针对图书馆的业务范围及工作特点,设计了图书查询、新增图书、图书借阅书以及图书归还等5个子系统,这5个子系统包括了图书馆的主要业务,可以全面实现对图书馆采购、编目、检索、统计和流通等业务的计算机管理,使图书馆管理水平和业务水平跃上一个新的台阶。
应用本系统可以在计算机上灵活、方便地管理图书,从而大大的提高了处理速率,使管理更加现代化。
本系统是根据实际情况和具体内容,按照一定的要求,科学、合理的进行系统分析、设计,具体包括画面设计、数据输入、查询、新增、删除等设计。
从而使本系统完全能满足经济性、灵活性、系统性及可靠性的要求。
本系统的实现的主要功能有:
图书馆图书的查询、新书的入库、图书的借阅和归还等等功能,是一个基本可以满足借阅者和图书馆管理人员的需要的数据库。
第一章需求分析
一、功能需求
根据出版社图书的规模日益扩增,图书类别的日益繁琐,经销商与出版社频繁交易,行业竞争日益激烈。
面对诸多问题时:
一款优秀的出版社图书管理软件是每一个从事出版社图书销售与管理的必备的工具。
出版社图书出版管理是一个庞大的任务,传统方式的图书管理将会造成巨大的人力和物力的浪费,因此我们需要设计一个可以使工作人员实现使用计算机管理的系统。
减轻工作量,实现图书出版管理的高效化.
通过本系统,读者可以随时查询图书的信息并对对图书信息进行增加,删除,查询.图书借阅管理系统旨在实现图书管理的现代化,能够很好的利用计算机帮助读者查询各种书籍,也能很好的帮助管理者对书籍的信息有一个及时的了解,极大程度上方便了我们的生活及学习。
二、数据需求
学生基本信息:
学号,姓名.
书籍基本信息:
图书编号,图书名,作者,出版社,数量.
第二章概要设计
一.系统设计目标
本系统为学校的图书馆信息而设计,实现信息处理的自动化、规范化,主要用于处理图书日常借阅和还书、图书入库、各种查询操作,系统具有以下功能。
(1)完成新书入库、借阅、还书等处理功能
(2)具有借阅者增加、删除等功能
(3)具有各种查询功能
二.系统功能设计
要求系统实现图书馆日常管理事务最主要的功能,包括图书的借出于还回,图书信息的录入、修改和查询,读者信息的录入、修改和查询,员工信息的录入、修改和查询.实现这些基本功能,组建了图书管理系统的基本框架,根据功能的关联关系和集中分组的原则,将系统细化如图2-1所示的结构图.
图2—1系统功能结构图
三.开发工具的选择
本系统采用MicrosoftSQLServer2008创建后台数据库,前台开发工具采用的MicrosoftSQLServerManagementStudio,编程语言为C#。
如图2-2所示.
图2-2
第三章详细设计
一.实体E-R图
数据库设计使系统开发中非常重要的一个环节,数据库结构设计的好坏将直接影响系统的效率。
在设计数据库之前,要了解用户需求,从而确定数据库结构。
否则,如果在代码实现过程中再修改数据库的结构,将会浪费人力和物力。
同时,在数据库设计中,表的数量不能太多,否则系统的升级和维护将很困难。
由概要设计中系统结构可以得出实体及他们之间的联系.实体具体的描述及其联系E—R图,如图3-1所示:
图3-1E-R图
二.表的设计
2。
1图书信息
图书信表:
表名为:
“图书查询”,用于保存所以图书信息,其结够如图3—2所示。
图3-2book表的结构
2。
2读者信息
读者信息表:
表名为:
“图书借阅",用于保存可以在本馆借书的所有读者信息,其结果如图3-3所示。
图3—3reader表的结构
三.界面设计
3.1登录窗体设计
登录窗体作为系统的启动窗体,用于核对用户和密码,只有图书馆工作管理人员才能登录到本系统进行操作。
登录窗体的设计比较灵活,只要能实现用户和密码的验证即可,本系统将其设计成为一个小窗体。
登录窗体文件名设计为“Form1.cs”
3。
1.1界面设计
在该窗体上添加3个Label、2个TextBox、2个Button控件.登录窗体及其主要控件的属性设置如图3—4界面设计
图3-4登录窗体
3。
1.2代码设计:
usingSystem;
usingSystem。
Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem。
Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
//添加命名空间
usingSystem。
Data。
SqlClient;
namespacefeng
{
publicpartialclassForm1:
Form
{
publicForm1()
{
InitializeComponent();
}
privatevoidtextBox3_TextChanged(objectsender,EventArgse)
{
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringstrcon=”DataSource=.;InitialCatalog=图书馆借阅系统;IntegratedSecurity=True";
SqlConnectionsqlCon=newSqlConnection(strcon);
sqlCon.Open();
stringsql="select*from登录whereusername=@form1nameandpassword=@password";
SqlCommandcmd=newSqlCommand(sql,sqlCon);
cmd.Parameters。
Add(”@form1name”,SqlDbType。
NChar,20);
cmd。
Parameters。
Add("@password",SqlDbType.NChar,20);
cmd。
Parameters[”@form1name”]。
Value=username。
Text;
cmd.Parameters[”@password"]。
Value=password.Text;
//创建SqlDataReader,必须调用SqlCommand对象的ExecuteReader方法,而不要直接使用构造函数。
SqlDataReaderdr=cmd.ExecuteReader();
if(dr.Read())
{
dr。
Close();
Formmainformmain=newFormmain();
formmain.Show();
this.Hide();
}
Else
{
MessageBox.Show("密码错误,请重新输入!
”);
//name。
Clear();
password。
Clear();
}
sqlCon.Close();
}
privatevoidtextBox1_TextChanged(objectsender,EventArgse)
{
}
privatevoidtextBox2_TextChanged(objectsender,EventArgse)
{
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Application.Exit();
}
}
}
3。
2图书管理模块设计
图书管理窗体作为系统的功能窗体,用于有以下功能图书查询、图书借阅、图书增加、和退出到登录窗体。
登录窗体文件名设计为“Formmain。
cs”.
3.2。
1界面设计
在该窗体上添加5个Button控件,其中图书管理窗体及其主要控件的属性设置如图3—5所示。
他分别连接到图书查询、图书借阅、图书新增、图书归还和登录窗体。
图3—5图书管理
3.2.2代码设计:
usingSystem;
usingSystem。
Collections.Generic;
usingSystem.ComponentModel;
usingSystem。
Data;
usingSystem.Drawing;
usingSystem。
Linq;
usingSystem。
Text;
usingSystem。
Windows。
Forms;
namespacefeng
{
publicpartialclassFormmain:
Form
{
publicFormmain()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
Selectbookselectbook=newSelectbook();
selectbook.Show();
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
Addbookaddbook=newAddbook();
addbook。
Show();
}
privatevoidbutton6_Click(objectsender,EventArgse)
{
Application.Exit();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Borrowbookborrowbook=newBorrowbook();
borrowbook。
Show();
}
privatevoidbutton4_Click(objectsender,EventArgse)
{
Returnbookreturnbook=newReturnbook();
returnbook。
Show();
}
}
}
3.3图书借阅窗体设计
图书借阅窗体作为系统的启动窗体,用于借出和还入,其运行界面如图1—13所示。
登录窗体文件名设计为“Form4.cs”.
3.3。
1界面设计
在该窗体上添加2个Label、2个TextBox、2个Button控件,其中图书借阅窗体及其主要控件的属性设置如图3—6所示.
图3—6图书借阅
3.3。
2代码设计:
(关键代码)
namespacefeng
{
publicpartialclassBorrowbook:
Form
{
publicBorrowbook()
{
InitializeComponent();
}
privatevoidlabel3_Click(objectsender,EventArgse)
{
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Formmainformmain=newFormmain();
formmain。
Show();
this。
Hide();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
stringstrcon=”DataSource=BXAIT-PC;InitialCatalog=图书馆借阅系统;IntegratedSecurity=True";
SqlConnectionsqlCon=newSqlConnection(strcon);
sqlCon.Open();
stringsql="select*fromdbo.借阅信息wheresno=@snoorbookid=@bookid”;
SqlCommandcmd=newSqlCommand(sql,sqlCon);
cmd.Parameters。
Add(”@sno”,SqlDbType.NChar,10);
cmd。
Parameters.Add(”@bookid”,SqlDbType。
NChar,10);
cmd。
Parameters["@sno"].Value=textBox1。
Text;
cmd.Parameters["@bookid”].Value=textBox2。
Text;
SqlDataReaderdr=cmd。
ExecuteReader();
if(dr.Read())
{
dr.Close();
stringlend="insertintodbo。
借阅信息values(@sno,@bookid)";
SqlCommandcmd2=newSqlCommand(lend,sqlCon);
cmd2。
Parameters。
Add("@sno”,SqlDbType.NChar,10);
cmd2。
Parameters。
Add("@bookid”,SqlDbType.NChar,10);
cmd2.Parameters[”@sno”]。
Value=textBox1。
Text;
cmd2。
Parameters[”@bookid"].Value=textBox2.Text;
cmd2.ExecuteNonQuery();
MessageBox。
Show(”借书成功!
”);
}
else
{
MessageBox.Show(”图书馆没有这本书,请重新输入!
");
textBox1.Clear();
textBox2.Clear();
}
sqlCon.Close();
}
}
}
}
3.4图书查询窗体设计
图书查询窗体通过输入图书名称查询出作者,出版社,数量.图书查询窗体文件名设计为“Form2.cs”。
3.4.1界面设计
在该窗体上添加5个Label、5个TextBox、3个Button控件,其中图书查询窗体及其主要控件的属性设置如表3-7所示.
图3-7图书查询
3。
4。
2代码设计:
(关键代码)
namespacefeng
{
publicpartialclassSelectbook:
Form
{
publicSelectbook()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
Formmainformmain=newFormmain();
formmain。
Show();
this.Hide();
}
privatevoidbutton1_Click_1(objectsender,EventArgse)
{
Borrowbookborrowbook=newBorrowbook();
borrowbook.Show();
}
PrivatevoiddataGridView1_CellContentClick(objectsender,DataGridViewCellEventArgse)
{
}
privatevoidbutton3_Click(objectsender,EventArgse)
{
SqlConnectionsqlcon=newSqlConnection("DataSource=。
;InitialCatalog=图书馆借阅系统;IntegratedSecurity=True”);
sqlcon.Open();
stringstr=”select*from查询wherebookid=@bookidorbookname=@booknameorbookauthor=@bookauthororbookpub=@bookpuborbookstate=@bookstate”;
SqlCommandcmd=newSqlCommand(str,sqlcon);
cmd。
Parameters。
Add(”@bookid",SqlDbType。
NChar,10);
cmd。
Parameters。
Add(”@bookname”,SqlDbType.VarChar,50);
cmd。
Parameters.Add("@bookauthor",SqlDbType。
VarChar,50);
cmd.Parameters。
Add("@bookpub”,SqlDbType。
VarChar,50);
cmd.Parameters。
Add("@bookstate",SqlDbType。
VarChar,50);
cmd。
Parameters[”@bookid”]。
Value=this.textBox1。
Text;
cmd。
Parameters[”@bookname"].Value=this。
textBox2。
Text;
cmd.Parameters["@bookauthor”].Value=this.textBox3。
Text;
cmd.Parameters[”@bookpub”]。
Value=this。
textBox4.Text;
cmd。
Parameters["@bookstate"]。
Value=this.textBox5.Text;
this.textBox1。
Text="NULL";
this。
textBox2。
Text=”NULL";
this.textBox3。
Text="NULL”;
this。
textBox4。
Text=”NULL”;
this。
textBox5。
Text=”NULL”;
SqlDataReaderdr=cmd.ExecuteReader();
while(dr。
Read())
{
this.textBox1.Text=dr[”bookid”].ToString().Trim();
this。
textBox2.Text=dr["bookname"]。
ToString()。
Trim();
this.textBox3。
Text=dr["bookauthor"].ToString()。
Trim();
this。
textBox4.Text=dr[”bookpub”]。
ToString().Trim();
this。
textBox5.Text=dr["bookstate"]。
ToString()。
Trim();
}
}
}
}
3.5图书新增窗体设计
图书新增窗体作为系统的启动窗体,用于对新书入库,其运行界面如图1-13所示.登录窗体文件名设计为“Form3.cs”
。
3。
5.1界面设计
在该窗体上添加4个Label、4个TextBox、2个Button控件,其中图书增加窗体及其主要控件的属性设置如表3-8所示。
图3-8图书新增
3.5.2代码设计:
(关键代码)
namespacefeng
{
publicpartialclassAddbook:
Form
{
publicAddbook()
{
InitializeComponent();
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
SqlConnectionsqlcon=newSqlConnection(”datasource=.;InitialCatalog=图书馆借阅系统;IntegratedSecurity=True”);
Stringstr="insertintodbo.新增values(@bookid,@bookname,@bookauthor,@bookpub)";
sqlcon.Open();
//SqlCommandcmd=newSqlCommand("insertinto新增(bnum,bname,bauthor,bpub,)values('"+textBox1.Text+"','"+textBox2。
Text+"’,’"+textBox3。
Text+”',’"+textBox4.Text+"’)",sqlcon);
SqlCommandcmd=newSqlCommand(str,sqlcon);
cmd.Parameters。
Add("@bookid",SqlDbType.NChar,10);
cmd.Parameters.Add(”@bookname”,SqlDbType.VarChar,50);
cmd。
Parameters。
Add("@bookauthor",SqlDbType.VarChar,50);
cmd.Parameters.Add(”@bookpub”,SqlDbType。
VarChar,50);
cmd。
Parameters["@bookid”].Value=textBox1.Text;
cmd.Parameters["@bookname”]。
Value=textBox2。
Text;
cmd.Parameters["@bookauthor"]。
Value=textBox3.Text;
cmd.Parameters["@bookpub”]。
Value=textBox4。
Text;
cmd.ExecuteNonQuery();
sqlcon.Close();
MessageBox。
Show(”——添加成功!
——");
this。
textBox1.Clear();
this。
textBox2。
Clear();