数据库课程设计图书管理系统.doc_第1页
数据库课程设计图书管理系统.doc_第2页
数据库课程设计图书管理系统.doc_第3页
数据库课程设计图书管理系统.doc_第4页
数据库课程设计图书管理系统.doc_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

课 程 设 计课程设计名称: 数据库应用系统课程设计 专 业 班 级 : 计科0906 学 生 姓 名 : 学 号 : 指 导 教 师 : 课程设计时间: 2011-12-19至2011-12-30 计算机科学与技术 专业课程设计任务书学生姓名专业班级计科0906学号题 目图书管理系统课题性质其它课题来源自拟课题指导教师王社伟同组姓名无主要内容图书馆作为学校的核心机构,传统的登记式已经不能满足,信息量越来越大的图书馆需求。时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。课题要求设计并实现一个图书管理系统,能够通过计算机和数据库满足对图书信息的管理工作。功能应包括:登录对角色的判断、登陆密码修改、新书入库、旧书淘汰、借书还书管理、书本修改、增加读者、读书排行查询、读者对自己信息查询、读者多条件查询和统计等。界面设计相对友好,方便用户的操作。任务要求综合运用所学的数据库基本知识,并能通过查阅相关文献材料,独立完成该课题的设计开发工作。要求根据本课题设计出合理的数据结构,并实现图书管理系统中, 登录对角色的判断、登陆密码修改、新书入库、旧书淘汰、借书还书管理、书本修改、增加读者、读书排行查询、读者对自己信息查询、读者多条件查询和统计等。参考文献1.数据库原理与应用教程SQL Server尹志宇、郭晴。清华大学出版社.2011.072.SQL Server 数据库技术与应用 黄维通、王晓英。清华大学出版社.2011.013.SQL Server 应用与开发范例宝典(第二版) 庞娅娟、房大伟。人民邮电出版社。2009.104.C#项目开发案例全程实录(第二版)王小科、王军、赵会东。清华大学出版社。2011.015.ASP.NET数据库网站设计教程(C#版)孙士保、张瑾。电子工业出版社。2011.02审查意见指导教师签字:教研室主任签字: 年 月 日 填 表 说 明1“课题性质”一栏:A工程设计;B工程技术研究;C软件工程(如CAI课题等);D文献型综述;E其它。2“课题来源”一栏:A自然科学基金与部、省、市级以上科研课题;B企、事业单位委托课题;C校、院(系、部)级基金课题;D自拟课题。3图书管理系统1 概述“图书是人类进步的阶梯,是人类的精神财富,是人类的终身伴侣。”图书作为教学和学习必不可少的工具,它的作用举足轻重,它几乎存在与每一个学校之中,而相当一部分的设施条件不好资金缺乏的学校甚至对于图书的管理,采用传统的纸质的方式去完成,这样就导致了很多很多的问题,例如:不能很好的对读者借书还书管理,当读者需要还书的时候还要查找以前的纸质文档来找到相应的记录,非常的麻烦;时间长的话图书馆的资料一旦丢失很难再恢复,给整个工作带来很大的困难;读者也只有通过去学校图书馆才能一本一本挨个的寻找才能找到自己想要找到书本等等一系列的问题。针对以上情况开发一个图书管理系统,来实现管理员和读者两个角色的管理使用,对于读者,可以不用去图书馆直接在自己电脑上按多种条件轻松的查找自己想要找的书本的信息,可以很轻松的看到自己借阅的信息来方便读者及时的归还相应的信息,可以很容易的看到读者对在馆书籍的借阅排行问题,来了解图书的热度以及为了个人安全来对密码的管理。而对于图书的管理员,他实现的功能就相当的复杂了,首先它可以增加读者信息,可以对新书进行入库,删除旧书,这里所说的旧书是没有人借阅的书,当有读者节约的时候,管理员就不能删除图书的信息了,可以查询所有的读者信息,可以对图书进行修改校正,以及解决自己登陆安全性的问题。最重要的是可以进行对图书的借阅和归还,同时改变图书库存和被借阅次数的信息。本图书管理系统可以更加人性化的满足小型图书馆的日常借阅问题,达到一个很理想的智能管理目的。2 需求分析业务流程:本系统的流程图如下: 图2.1 系统功能模块数据流图如下:图2.2 业务流程图数据字典: 图 2.3 管理员表 图2.4 图书表图2.5读者表功能分析:本系统的主要文件以及所实现功能的对照表如下:文件名 功能 Login.aspx登陆界面实现admain存放管理员实现功能的文件夹admainadd.aspx新书入库admainadmain.aspx管理员主界面admainback.aspx读者还书admainborrow.aspx读者借书admainduzhe.aspx查阅所有读者信息admaingaishu.aspx图书校正admainshanbook.aspx旧书淘汰admainxiugai.aspx修改管理员登录密码admainzengdu.aspx新读者注册image存放系统中所用的图片reader存放实现读者功能的文件夹readerbookpaihang.aspx查看图书借阅排行readerchaziji.aspx查看读者自己借阅信息readerlook.aspx读者按不同条件(作者,图书代码,出版社,图书类型)查询图书readerreader.aspx读者主界面readerxiugai.aspx读者密码修改 表 2.1 功能对照表3 概念结构设计通过需求分析阶段的分析结果,本系统所要设计的ER图如下;4逻辑结构设计设计环境:操作系统:Windows XP;DBMS:SQL Server 2005;开发工具:ASP.NET。管理员(管理员账号,管理员密码)图书(图书代码,图书名称,图书类型,出版社,定价,作者,库存,被借次数)读者(读者编号,密码,姓名,性别,专业,联系方式)借还书(读者编号,图书代码,借书日期,还书日期)注:“_”为表中的主键。改关系模型满足基本的三范式。因为每个非主属性既不部分依赖也不传递依赖于码。5源代码及系统截图在书数据库连接部分,加上在每个文件引用:using System.Data.SqlClient;5.1图书管理系统登录(Login.aspx)通过不同的角色验证,分别实现读者和管理员登录代码如下:protected void Button1_Click(object sender, EventArgs e) string ConnSql = ConfigurationManager.ConnectionStrings图书馆ConnectionString.ConnectionString; string userName = txtUserName.Text.ToString().Trim(); string userPwd = txtPwd.Text.ToString().Trim(); string userRole = rblClass.SelectedValue.Trim(); string selectStr = ; switch (userRole) case 0: /身份为管理员时 selectStr = Select * from 管理员 where 管理员账号 = + userName + ; break; case 1: /身份为读者时 selectStr = Select * from 读者 where 读者编号 = + userName + ; break; SqlConnection conn = new SqlConnection(ConnSql); SqlCommand cmd = new SqlCommand(selectStr, conn); try conn.Open(); /打开连接 SqlDataReader sdr = cmd.ExecuteReader(); /执行查询 if (sdr.Read() /如果该用户存在 if (sdr.GetString(1) = userPwd) /密码正确 SessionuserName = userName; SessionuserRole = userRole; conn.Close(); switch (userRole) case 0: /身份为管理员时 Response.Redirect(admain/admain.aspx); break; case 1: /身份为读者时 Response.Redirect(reader/reader.aspx); break; else /密码错误,给出提示信息! lblMessage.Text = 您输入的密码错误,请检查后重新输入!; else /用户不存在或用户名输入错误 lblMessage.Text = 该用户不存在或用户名输入错误,请检查后重新输入!; catch (Exception ee) Response.Write(alert( + ee.Message.ToString() + ); finally conn.Close(); protected void TextBox2_TextChanged(object sender, EventArgs e) protected void txtUserName_TextChanged(object sender, EventArgs e) protected void Button2_Click(object sender, EventArgs e) txtUserName.Focus(); txtUserName.Text = txtPwd.Text = string.Empty; 程序运行结果如图: 图5.1 系统登陆页面5.2 读者主页面(reader.aspx)显示读者的每个功能的页面程序代码如下:protected void Page_Load(object sender, EventArgs e) if (!this.IsPostBack) Label1.Text = 欢迎学生 + SessionuserName.ToString() + 进入本系统!; Label2.Text = DateTime.Now.Year + 年 + DateTime.Now.Month + 月 + DateTime.Now.Day + 日; / Label3.Text = operatorclass.getWeek(); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(xiugai.aspx); protected void Button3_Click(object sender, EventArgs e) Response.Redirect(chaziji.aspx); protected void Button4_Click(object sender, EventArgs e) Response.Redirect(look.aspx); protected void Button5_Click(object sender, EventArgs e) Response.Write(关闭窗口); protected void Button1_Click(object sender, EventArgs e) Response.Redirect(bookpaihang.aspx); 程序运行结果如图: 图5.2 读者主页面 5.3管理员主页面(admainadmain.aspx)显示和索引管理员实现的功能程序代码如下: protected void Page_Load(object sender, EventArgs e) if (!this.IsPostBack) Label1.Text = 欢迎管理员 + SessionuserName.ToString() + 进入本系统!; Label2.Text = DateTime.Now.Year + 年 + DateTime.Now.Month + 月 + DateTime.Now.Day + 日; protected void Button5_Click(object sender, EventArgs e) Response.Redirect(xiugai.aspx); protected void Button1_Click(object sender, EventArgs e) Response.Redirect(add.aspx); protected void Button3_Click(object sender, EventArgs e) Response.Redirect(gaishu.aspx); protected void Button8_Click(object sender, EventArgs e) Response.Redirect(zengdu.aspx); protected void Button7_Click(object sender, EventArgs e) Response.Redirect(shanbook.aspx); protected void Button4_Click(object sender, EventArgs e) Response.Redirect(back.aspx); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(borrow.aspx); protected void Button9_Click(object sender, EventArgs e) Response.Write(关闭窗口); protected void Button10_Click(object sender, EventArgs e) Response.Redirect(duzhe.aspx); 程序运行结果如图: 图5.3 管理员主页面5.4 新书入库(admainadd.aspx) 程序代码如下:protected void Page_Load(object sender, EventArgs e) this.Title = 新书入库; TextBox1.Focus(); protected void Submit_Click1(object sender, EventArgs e) string ConnSql = ConfigurationManager.ConnectionStrings图书馆ConnectionString.ConnectionString; /声明Conn为一个SQL Server连接对象 SqlConnection Conn = new SqlConnection(ConnSql); Conn.Open();/打开连接 SqlDataAdapter da = new SqlDataAdapter(); string SelectSql = select * from 图书; da.SelectCommand = new SqlCommand(SelectSql, Conn); SqlCommandBuilder scb = new SqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds); Conn.Close(); DataRow NewRow = ds.Tables0.NewRow(); NewRow图书代码 = TextBox1.Text;/为新行的各字段赋值 NewRow图书名称 = TextBox2.Text; NewRow图书类型 = TextBox3.Text; NewRow出版社 = TextBox4.Text; NewRow定价 = TextBox5.Text; NewRow作者 = TextBox6.Text; NewRow库存 = TextBox7.Text;NewRow被借次数 = TextBox8.Text; ds.Tables0.Rows.Add(NewRow);/将新建行添加到DataSet第一个表对象中 da.Update(ds);/将DataSet中数据变化提交到数据库(更新数据库) Response.Write(alert(新记录添加成功,请单击“返回”回到主页面!);); protected void TextBox1_TextChanged(object sender, EventArgs e) protected void BackHome_Click1(object sender, EventArgs e) Response.Redirect(admain.aspx); 程序运行结果如图: 图5.4(1) 新书入库 图5.4(2) 新书入库成功5.5图书校正(admaingaishu.aspx)程序代码如下:protected void Page_Load(object sender, EventArgs e) this.Title = 更新记录; DropDownList1.AutoPostBack = true; if (!IsPostBack) string ConnSql = Data Source=.;Initial Catalog=图书馆;Integrated Security=True; /声明Conn为一个SQL Server连接对象 SqlConnection Conn = new SqlConnection(ConnSql); Conn.Open();/打开连接 SqlDataAdapter da = new SqlDataAdapter(); string SelectSql = select * from 图书; da.SelectCommand = new SqlCommand(SelectSql, Conn); SqlCommandBuilder scb = new SqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds); Conn.Close(); DataRow MyRow = ds.Tables0.Rows0; TextBox1.Text = MyRow图书名称.ToString(); TextBox2.Text = MyRow图书类型.ToString(); TextBox3.Text = MyRow出版社.ToString(); TextBox4.Text = MyRow定价.ToString(); TextBox5.Text = MyRow作者.ToString(); TextBox6.Text = MyRow库存.ToString(); protected void Button1_Click(object sender, EventArgs e) string ConnSql = ConfigurationManager.ConnectionStrings图书馆ConnectionString.ConnectionString; SqlConnection Conn = new SqlConnection(ConnSql); Conn.Open();/打开连接 SqlDataAdapter da = new SqlDataAdapter(); string SelectSql = select * from 图书 where 图书代码 = + DropDownList1.Text + ; da.SelectCommand = new SqlCommand(SelectSql, Conn); SqlCommandBuilder scb = new SqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds); DataRow MyRow = ds.Tables0.Rows0;/从表对象中得到要修改 MyRow图书名称 = TextBox1.Text; MyRow图书类型 = TextBox2.Text; MyRow出版社 = TextBox3.Text; MyRow定价 = TextBox4.Text; MyRow作者 = TextBox5.Text; MyRow库存 = TextBox6.Text; da.Update(ds);/提交更新 Response.Write(alert(记录更新成功,请单击“返回”按钮回到主页面!);); protected void Button2_Click(object sender, EventArgs e) Response.Redirect(admain.aspx); protected void DropDownList1_SelectedIndexChanged1(object sender, EventArgs e) string ConnSql = Data Source=.;Initial Catalog=图书馆;Integrated Security=True; SqlConnection Conn = new SqlConnection(ConnSql); Conn.Open();/打开连接 SqlDataAdapter da = new SqlDataAdapter(); string SelectSql = select * from 图书 where 图书代码 = + DropDownList1.Text + ; da.SelectCommand = new SqlCommand(SelectSql, Conn); SqlCommandBuilder scb = new SqlCommandBuilder(da); DataSet ds = new DataSet(); da.Fill(ds); Conn.Close(); DataRow MyRow = ds.Tables0.Rows0;/从表对象中得到要修改的行 TextBox1.Text = MyRow图书名称.ToString(); TextBox2.Text = MyRow图书类型 .ToString(); TextBox3.Text = MyRow出版社.ToString(); TextBox4.Text = MyRow定价.ToString(); TextBox5.Text = MyRow作者.ToString(); TextBox6.Text = MyRow库存.ToString(); 程序运行结果如图: 图5.5图书校正5.6旧书淘汰(admainshanbook.aspx)该部分是通过sqldatasource 和GridView控件来实现的把没有读者借阅的图书显示出来,其中配置数据源的时候运用的是sql 语句定义的代码如下:SELECT * FROM 图书where 图书代码 not in (select 图书.图书代码 from 图书,借还书 where 图书.图书代码=借还书.图书代码 )ORDER BY 图书代码程序运行结果如图: 图5.6 旧书淘汰5.7 修改管理员密码(admainxiugai.aspx)程序代码如下: /修改密码按钮事件 protected void Button1_Click(object sender, EventArgs e) /取参数 string ConnSql = ConfigurationManager.ConnectionStrings图书馆ConnectionString.ConnectionString; string userName = SessionuserName.ToString(); string oldPwd = txtOldPwd.Text.Trim(); string newPwd = txtNewPwd.Text.Trim(); string selectStr = Select * from 管理员 where 管理员账号= + userName + and 密码= + oldPwd + ; string updateStr = update 管理员 set 密码= + newPwd + where 管理员账号= + userName + ; SqlConnection conn = new SqlConnection(ConnSql); SqlCommand selectCmd = new SqlCommand(selectStr, conn); conn.Open(); SqlDataReader sdr = selectCmd.ExecuteReader(); if (sdr.Read() /如果用户存在且输入密码正确,修改密码 sdr.Close(); SqlCommand updateCmd = new SqlCommand(updateStr, conn); int i = updateCmd.ExecuteNonQuery(); if (i 0) /根据修改后返回的结果给出提示 Label1.Text = 成功修改密码; else Label1.Text = 修改密码失败!; else Response.Write(您输入的旧密码错误,检查后重新输入!); conn.Close(); protected void Button3_Click(object sender, EventArgs e) txtOldPwd.Text = ; txtNewPwd.Text = ; txtConfirmPwd.Text = ; 程序运行结果如图: 图5.7 管理员密码修改5.8新读者注册( admainzengdu.aspx)程序代码如下:protected void Button1_Click1(object sender, EventArgs e) SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings图书馆ConnectionString.ConnectionString);/创建连接对象 SqlCommand insertCmd = new SqlCommand(insert into 读者(读者编号,密码,姓名,性别,专业,联系方式) values(readerID,readerPwd,readerName,readerSex,readerDep,readerPhone), conn); insertCmd.Parameters.Add(readerID, SqlDbType.Char, 12);/设置参数 insertCmd.Parameters.Add(readerPwd, SqlDbType.VarChar, 16); insertCmd.Parameters.Add(readerName, SqlDbType.Char, 10); insertCmd.Parameters.Add(readerSex, SqlDbType.Char,2); insertCmd.Parameters.Add(readerDep, SqlDbType.VarChar,20); insertCmd.Parameters.Add(readerPhone, SqlDbType.Char,11); insertCmd.ParametersreaderID.Value = TextBox1.Text; /为每个参数赋值 insertCmd.ParametersreaderPwd.Value = TextBox1.Text; insertCmd.ParametersreaderName.Value = TextBox2.Text; insertCmd.ParametersreaderSex.Value = RadioButtonList1.SelectedValue; insertCmd.ParametersreaderDep.Value = ddlDepart.SelectedValue; insertCmd.ParametersreaderPhone.Value = TextBox3.Text; conn.Open(); int flag = insertCmd.ExecuteNonQuery(); /执行添加 if (flag 0) /如果添加成功 lblMessage.Text = 成功添加读者信息!; else /如果添加失败 lblMessage.Text = 添加读者信息失败,查看输入是否正确!; conn.Close(); protected void Button2_Click(object sender, EventArgs e) TextBox1.Text = ; TextBox2.Text = ; TextBox3.Text = ; protected void Button3_Click(object sender, EventArgs e) Response.Redirect(admain.aspx); 程序运行结果如图: 图5.8新读者注册5.9图书借阅(admainborrow.aspx)程序代码如下:protected void Page_Load(object sender, EventArgs e) Label1.Visible = false; Label2.Visible = false; Button2.Visible = false; Button3.Visible = false; Button4.Visible = false; /Button5.Visible = false; txtBookID.Visible = false; protected void Button1_Click(object sender, EventArgs e) if (txtReaderID.Text = ) Response.Write(alert(读者编号不能为空!);

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论