图书管理系统.docx
《图书管理系统.docx》由会员分享,可在线阅读,更多相关《图书管理系统.docx(18页珍藏版)》请在冰点文库上搜索。
图书管理系统
毕业设计说明书
(计算机应用工程系)
设计课题:
图书管理系统
专业班级:
计算机应用工程系
学生姓名:
学生学号:
指导教师:
目录
第一章系统简介……………………………………………….4
1.1设计目的………………………………………………………..4
1.2项目背景………………………………………………………..4
1.3具体内容………………………………………………………..4
1.4开发环境………………………………………………………..4
1.5系统需求分析…………………………………………………..4
第二章数据库设计…………………………………………….6
2.1E-R图…………………………………………………………..6
2.2数据库设计……………………………………………………..6
2.3表结构设计……………………………………………………….6
第三章界面设计……………………………………………….8
3.1登录界面……………………………………………………….8
3.2主页面………………………………………………………….9
第四章代码设计………………………………………………10
4.1登录代码……………………………………………………….10
4.2主页面代码……………………………………………………12
小结………………………………………………………………17
参考文献…………………………………………………………18
图书管理系统
摘要:
本文是基于.NET的图书管理系统的开发过程:
首先根据系统特点确立开发模型,再通过对系统进行的需求分析研究,建立结构化分析模型,确定数据的定义与属性,建立数据表,最后完成系统功能的实现;论述了图书管理系统的运行环境和前台、后台的设计:
本系统基于ASP.NET技术开发,可运行于.NET平台下,前台主要使用表格设计,后台使用ASP.NET编写,并结合SQLSERVER数据库系统实现了数据的查询,插入,删除和修改及用户登录,用户可以通过web访问。
关键字:
图书管理系统,ASP.NET技术,B/S技术,数据库
第一章系统简介
1.1设计目的
此系统是基于C#和SQLSever2000设计和开发的一个图书馆管理系统,实现了图书信息,管理的信息化,并能向用户提供各种图图书信息,对管理者提供各种有关图书信息,管理的信息,以及动态的销售行情,使得对信息的管理更加及时、高效,提高了工作效率。
1.2项目背景
在当今以信息为主的年代,随着计算机技术的飞速发展,计算机在信息管理中应用的普及,利用计算机实现信息管理势在必行。
传统的图书管理方法已经不能满足图书管理的需求,各种管理技术应运而生。
而现在最流行的管理方法是基于.NET架构的图书管理系统。
建立以馆藏图书为基础的书目数据库,实现馆内采购、编目、流通、文献检索等信息化管理。
主要功能包括:
读者管理,图书管理,图书流通管理,统计,查询,系统管理等。
该系统实现了图书管理系统中的图书管理部分:
增、删、改、查。
1.3具体内容
1)系统设计指导思想与目标
立足于校园实际,着眼于未来发展,建成符合标准化协议、通用性较强、实用的系统,以提高图书信息的现代化管理水平,实现信息资源的共享,提高图书管理工作的效率,减少相关人员的工作量,使学校的图书管理工作真正做到科学、合理的规划,系统、高效的实施。
2)代码编写、测试
登陆页面与主页面的编写,测试。
3)数据库
基于SqlServer2003数据库设计book数据库以及表的设计
1.4开发环境
1)SqlServer2003
2)VisualC#2005
1.5系统需求分析
根据一定的条件对图书进行查询,并可以查看图书的详细信息,查询范围出版社、书名、作者等查询项目进行任意条件的组合查询。
权限维护管理:
系统管理员可以在此模块中,对已有的图书信息进行修改并对用户信息进行管理。
用户信息管理:
用户登录该系统后,可以进行图书的借阅和归还操作,还可修改密码、查询借阅信息等。
该系统主要实现的了用户登录、工作人员的增删改查,借阅者的查询功能。
如下图:
第二章数据库设计
本系统使用SQLSERVER2000作为应用程序的数据库。
系统至少需要二张数据库表,具体如下:
2.1系统E-R图设计
2.2数据库设计
创建book数据库,设置数据库位置、初始大小1M,文件增长百分比为10%及最大文件大小为1G。
2.3表结构设计
表Book定义如下:
列明
数据类型
长度
允许空
序号
Smallint
2
√
书名
Nvarchar
255
√
作者或译者
Nvarchar
255
√
出版社
Nvarchar
255
√
定价
Float
8
√
ISBN
Nvarchar
255
卖出数量
Smallint
2
√
折扣
Float
8
√
应收金额
Float
8
√
实收金额
Float
8
√
主键:
ISBN外键:
书名
表UserLogin定义如下:
列明
数据类型
长度
允许空
用户名
Nvarchar
50
√
口令
Nvarchar
50
√
权限
Nvarchar
1
√
主键:
用户名
第三章界面设计
3.1登录页面
登录页面由一个表格组成,包括两个文本框控件,两个按钮控件。
3.2主页面
主页面由GridView数据控件组成。
第四章代码设计
4.1登录代码
登录代码主要由两部分构成
1)登录按钮代码:
1如果用户名或者密码为空,
2用户名错误,
3密码错误,
4用户名,密码正确登录。
2)重置按钮代码
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Collections;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
publicpartialclassUserLogin:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
TextBox1.Text="";
TextBox2.Text="";
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
if(TextBox1.Text==""||TextBox2.Text=="")
{
Response.Write("alert('用户名活密码不能为空');");
return;
}
strings="select*fromUserLoginwhere用户名='"+TextBox1.Text+"'";
SqlConnectionscon=newSqlConnection("server=(local);database=book;uid=sa");
scon.Open();
SqlCommandscd=newSqlCommand(s,scon);
SqlDataReaderdr=scd.ExecuteReader();
if(dr.Read())
{
if(dr["口令"].ToString().Trim()==TextBox2.Text)
{
Response.Redirect("Default.aspx");
}
else
{
Response.Write("alert('密码错误');");
}
}
else
{
Response.Write("alert('用户名错误');");
}
dr.Close();
scon.Close();
}
}
4.2主页面代码
主页面代码由五部分构成
1数据库调用代码
2查询代码
3增加代码
4修改代码
5删除代码
usingSystem;
usingSystem.Data;
usingSystem.Configuration;
usingSystem.Web;
usingSystem.Web.Security;
usingSystem.Web.UI;
usingSystem.Web.UI.WebControls;
usingSystem.Web.UI.WebControls.WebParts;
usingSystem.Web.UI.HtmlControls;
usingSystem.Data.SqlClient;
usingSystem.IO;
usingSystem.Text;
publicpartialclass_Default:
System.Web.UI.Page
{
protectedvoidPage_Load(objectsender,EventArgse)
{
if(!
Page.IsPostBack)
{
CX();
GridView1.DataBind();
if(Request.QueryString["序号"]!
=null)
{
TextBox1.Text=Request.QueryString["序号"];
SqlConnectionodc=newSqlConnection("server=(local);database=book;uid=sa");
odc.Open();
SqlDataAdapteroda=newSqlDataAdapter("SELECT*FROMBookWHERE序号='"+Request.QueryString["序号"]+"'",odc);
DataSetds=newDataSet();
oda.Fill(ds,"t1");
DataRowViewdrv=ds.Tables["t1"].DefaultView[0];
TextBox1.Text=drv["序号"].ToString();
TextBox2.Text=drv["书名"].ToString();
TextBox3.Text=drv["作者或译者"].ToString();
DropDownList1.Text=drv["出版社"].ToString();
TextBox4.Text=drv["ISBN"].ToString();
TextBox5.Text=drv["定价"].ToString();
TextBox6.Text=drv["卖出数量"].ToString();
DropDownList2.Text=drv["折扣"].ToString();
TextBox7.Text=drv["应收金额"].ToString();
TextBox8.Text=drv["实收金额"].ToString();
}
}
}
privatevoidCX()
{
SqlConnectionodc=newSqlConnection("server=(local);database=book;uid=sa");
odc.Open();
SqlDataAdapteroda=newSqlDataAdapter("SELECT*FROMBook",odc);
DataSetds=newDataSet();
oda.Fill(ds);
GridView1.DataSource=ds;
GridView1.DataKeyNames=newstring[]{"ISBN"};
GridView1.DataBind();
odc.Close();
odc.Dispose();
}
privatevoidCX(Stringusql)
{
SqlConnectionodc=newSqlConnection("server=(local);database=book;uid=sa");
odc.Open();
SqlDataAdapteroda=newSqlDataAdapter(usql,odc);
DataSetds=newDataSet();
oda.Fill(ds);
GridView1.DataSource=ds;
GridView1.DataBind();
odc.Close();
odc.Dispose();
}
privatevoidML(Stringusql)
{
SqlConnectionodc=newSqlConnection("server=(local);database=book;uid=sa");
odc.Open();
SqlCommandodm=newSqlCommand(usql,odc);
odm.ExecuteNonQuery();
}
privatevoidExport(stringFileType,stringFileName)
{
Response.Charset="GB2312";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("GB2312");
Response.AppendHeader("Content-Disposition","attachment;filename="+HttpUtility.UrlEncode(FileName,Encoding.UTF8).ToString());
Response.ContentType=FileType;
this.EnableViewState=false;
StringWritersw=newStringWriter();
HtmlTextWriterhtw=newHtmlTextWriter(sw);
GridView1.RenderControl(htw);
Response.Write(sw.ToString());
Response.End();
}
protectedvoidButton1_Click(objectsender,EventArgse)
{
if(DropDownList3.Text!
="全部")
{
stringcxsql="SELECT*FROMBookWHERE"+DropDownList3.Text+"LIKE"+"'%"+TextBox9.Text+"%'";
CX(cxsql);
}
else
{
CX();
}
}
protectedvoidButton2_Click(objectsender,EventArgse)
{
doublezk=Convert.ToDouble(DropDownList2.Text.Trim());
doubledj=Convert.ToDouble(this.TextBox5.Text);
doublesl=Convert.ToDouble(this.TextBox6.Text);
doubleys=dj*sl;
doubless=ys*zk;
TextBox7.Text=Convert.ToString(ys);
TextBox8.Text=Convert.ToString(ss);
stringcrsql="INSERTINTOBook(序号,书名,作者或译者,出版社,ISBN,定价,卖出数量,折扣,应收金额,实收金额)VALUES('"
+TextBox1.Text+"','"+TextBox2.Text+"','"+TextBox3.Text+"','"+DropDownList1.Text+"','"
+TextBox4.Text+"','"+TextBox5.Text+"','"+TextBox6.Text+"','"+DropDownList2.Text+"','"
+TextBox7.Text+"','"+TextBox8.Text+"')";
ML(crsql);
CX();
}
protectedvoidButton4_Click(objectsender,EventArgse)
{
stringscsql_1="DELETEFROMBookWHERE"+DropDownList3.Text+"="+"'"
+TextBox9.Text+"'";
stringscsql_2="DELETEFROMBook";
if(DropDownList3.Text!
="全部")
{
ML(scsql_1);
CX();
}
else
{
ML(scsql_2);
CX();
}
}
protectedvoidButton3_Click(objectsender,EventArgse)
{
stringXgSql="UPDATEBookSET序号='"+TextBox1.Text+"',书名='"+TextBox2.Text+"',作者或译者='"+TextBox3.Text
+"',出版社='"+DropDownList1.Text+"',ISBN='"+TextBox4.Text+"',定价='"+TextBox5.Text+"',卖出数量='"
+TextBox6.Text+"',折扣='"+DropDownList2.Text+"',应收金额='"+TextBox7.Text+"',实收金额='"+TextBox8.Text
+"'WHERE序号="+Request.QueryString["序号"];
ML(XgSql);
CX();
}
protectedvoidGridView1_RowDeleting(objectsender,GridViewDeleteEventArgse)
{
SqlConnectionodc=newSqlConnection("server=(local);database=book;uid=sa");
odc.Open();
SqlCommandodm=newSqlCommand("DELETEFROMBookWHEREISBN='"+GridView1.DataKeys[e.RowIndex].Value+"'",odc);
odm.ExecuteNonQuery();
CX();
}
protectedvoidGridView1_RowDataBound(objectsender,GridViewRowEventArgse)
{
if(e.Row.RowType==DataControlRowType.DataRow)
{
((LinkButton)(e.Row.Cells[0].Controls[0])).Attributes.Add("onclick","returnconfirm('确认要删除吗?
')");
}
}
protectedvoidButton5_Click(objectsender,EventArgse)
{
Export("application/ms-excel","图书销售表.xls");
}
protectedvoidButton6_Click(objectsender,EventArgse)
{
Response.Write("window.close();");
}
protectedvoidGridView1_PageIndexChanging1(objectsender,GridViewPageEventArgse)
{
GridView1.PageIndex=e.NewPageIndex;
CX();
}
}
小结
通过完成图书管理系统后,通过自己独立完成图书管理系统后,让我对C#的运用更加的熟悉,让我认识到不能追求一气呵成,要循序渐进,不断的修改完善,同时不能拘泥于课本上的格式,要敢于创新,勇于实践,对于C#还有很多东西要学,要继续努力。
参考文献
[1] ASP.NET/XML深入编程技术,作者:
王超、张鹏
[2] 景海燕.网络环境下图书馆学的发展[M].图书馆现代化1998.
[3]《基于C#的WEB应用程序设计》作者:
微软公司,出版日期:
2006
[4] 李明华.信息交流与现代图书馆系统[M].书目文献出版社.1996.
[5]《完全入门》
[6]《ASP.NET网站设计实例通》
[7] 常晋义.管理信息系统-原理、方法与应用[M].高等教育出版社.2005.
[8] 张奇,李律松,卫建伟.VisualC#数据库项目案例导航[M].清华大学出版社.2006.