毕业设计(论文)-图书管理系统设计2.doc_第1页
毕业设计(论文)-图书管理系统设计2.doc_第2页
毕业设计(论文)-图书管理系统设计2.doc_第3页
毕业设计(论文)-图书管理系统设计2.doc_第4页
毕业设计(论文)-图书管理系统设计2.doc_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

郑州牧业工程高等专科学校毕 业 设 计题 目: 图书管理系统 作 者: 学 号: 4 系: 信息工程 专 业: 09计对计算机应用 指导者: 评阅者: 2012 年 5 月 第 40 页 共 40 页毕业设计中文摘要图书管理系统论文摘要 图书管理系统是典型的信息管理系统。图书管理工作繁琐,借阅频繁,包含大量的信息数据,因此就需要一个完善的图书管理系统来实现对这些数据的有效管理。本系统的主要任务就是对图书、读者、借阅信息、查询进行统一管理,满足各类用户的需求。其开发主要包括后台数据库的建立和维护以及前端的应用程序的开发两个方面。对于前者要求建立数据的一致性和完整性,对于后者则要求应用程序功能的完备,易用等特点。基于上述考虑本系统主要利用visual studio 2008(C#)作前端的应用开发工具,利用Access作为后台的数据库,充分利用了visual studio 2008(C#)和Access的优点,利用WINDOWS_XP SP3作为系统平台,使系统更加完善。本系统有一定的实用性。系统的功能较为全面,使用简单。关键词 图书管理系统 数据库 图书管理系统的开发毕业设计外文摘要Title The books management system management system paper Abstract The books management system management system is the typical information management system. The books management work tedious, borrowing frequently, contains a large amount of information data, hence the need for a perfect books management system management system to realize the effective management of the data. The systems main mission is to books, readers, borrowing information query, unified management, meet all types of users needs. Its development mainly include the setting and maintenance of database and the front end of the application development two aspects. For the former request to establish the consistency of the data and integrity, for the latter requires the application program function complete, is easy to use, etc. Based on the above consideration this system mainly using visual studio 2008 (C#) as part of the application development tools, the use of the database Access as the background, make full use of the visual studio 2008 (C#) and Access the advantages of the use of WINDOWS_XP SP3 as system platform, and that the system is more perfect. This system has certain practical. The function of the system is a comprehensive, simple to use. Keywords books management system management system database books management system management system development 目 录1.系统概述51.1系统功能51.2系统预览62.系统概要设计72.1系统设计思想72.2功能模块设计83数据库设计103.1数据库概念设计103.2数据库逻辑设计113.3数据库表之间的关系124.系统详细设计134.1数据库连接134.2系统管理设计144.3图书管理设计144.4读者管理设计164.5借还管理设计174.6查询管理设计195.系统程序设计195.1登录界面编码195.2主界面编码225.3系统管理编码245.4图书管理编码255.5读者管理编码295.6借还管理代码315.7查询管理编码366.使用说明书376.1 系统要求377. 结论377.1.工作成果377.2问题与不足387.3学习心得388.致谢39参考文献401.系统概述1.1系统功能图书管理系统是典型的信息管理系统(MIS),其开发主要包括后台数据库的建立和维护以及前台应用程序的开发两个方面,一方面要求建立起数据库一致性和完整性强、数据安全性好的数据库;另一方面则要求应用程序具有功能完备,易使用等特点。原来的图书管理处理中心进行信息管理主要是基于手工处理,信息处理工作量大,容易出错,缺乏系统、规范的信息管理手段。现在准备建立的图书管理系统,要对图书馆的图书管理、读者管理、图书借阅管理等日常管理工作实行计算机统一管理,以提供工作效率和管理水平。图书馆作为提供学习的场所,不仅要求便于管理,而且要求给读者和借阅者提供方便快速的查找、借阅和登记手续。图书馆需要统一图书的管理,对各类书籍的借阅情况和图书馆现有藏书的数量、种类要及时掌握,这样要求它具有很强的时效性。既要减少旧书和大量内容重复的图书占用有限的空间而又要尽量做到图书种类的齐全,作为图书馆的管理人员需要及时地对图书进行上架和注销处理。图书管理涉及图书信息、系统用户信息、读者信息、图书借阅信息等多种数据管理。从管理的角度可将数据分为3类;图书信息管理、系统用户管理、读者数据管理。图书信息管理包括图书征订、借还、查询等操作,系统用户管理包括用户数据管理,读者数据管理包括读者类别管理和个人数据的录入、修改和删除。本系统的功能主要包括以下几个方面: 本系统只有管理员有权限。管理员能随时查询书库中图书的库存量,以便准确、及时地位读者提供借阅信息。既能修改数据,也能浏览数据。 图书馆各项数据信息必须保证安全性和完整性; 系统管理员定时整理系统数据库,实现对图书的借阅、读者的管理、书库增减等操作,并将运行结果归档。1.2系统预览图书管理系统的登录界面如图1所示 图1 登录界面输入用户名和密码用户名和密码分别是admin和000000),单击“确定”按钮,进入应用程序界面如图2 图2应用程序主界面2.系统概要设计2.1系统设计思想图书管理系统主要应具有以下功能:图书借阅者的需求是查询图书馆所存的图书、个人借阅情况及个人信息;图书馆工作人员对图书借阅者的借阅及还书要求进行操作,同时形成借书和还书报表给借阅者查看你和确认;图书馆管理人员的功能最为复杂,包括对工作人员、图书借阅者、图书进行管理和维护,以及对系统状态的查看和维护等。图书借阅者可以直接查看图书馆的图书情况,如图书借阅者根据本人借书证号和密码登录系统,还可以进行本人借书情况的查询和部分个人信息,若查询和维护其他借阅者的借书情况和个人信息,就要知道其他图书借阅者的借书证号和密码。这些是很难得到的,特别是密码,所以不但满足了图书借阅者的要求,还保护了图书借阅者的个人隐私。图书馆工作人员有修改图书借阅者借书和还书记录的权限,所以需要对图书馆工作人员登录本模块进行更多的考虑。在此模块中,图书馆工作人员可以为图书借阅者添加借书记录或还书记录,并打印生成相应的报表给用户查看和确认。图书馆管理人员管理的信息量大,数据安全性和保密性要求高。本功能实现对图书信息、借阅者信息、总体借阅信息的管理和统计、对工作人员信息和管理人员信息的查看和维护。图书馆管理人员可以浏览、查询、添加、修改、删除、统计图书的基本信息;浏览、查询、统计、统计、添加、删除和修改图书借阅者的基本信息,浏览、查询、统计图书馆的借阅信息,但不能添加、删除和修改借阅者信息,这部分功能应该由图书馆工作人员执行,但是,在删除某条图书借阅者基本信息记录时,应事先对该图书借阅者借阅记录的级联删除。具体功能如下: 设计管理员的操作权限和登录方法; 对所有用户开放的图书查询; 借阅者维护部分个人信息; 借阅者查看个人借阅信息; 查询及统计各种信息; 维护图书信息; 维护借阅者信息。2.2功能模块设计通过对用户需求和系统设计思想的分析,可以得出该图书馆管理信息系统大致可以分为几个大模块:图书馆管理人员维护管理模块、图书馆工作人员借还管理模块,借阅者查询模块。1. 图书馆管理系统维护管理模块l 系统管理模块 系统用户身份的修改;l 图书管理模块图书数据的录入、修改、删除和校审等。l 读者管理模块借阅者个人数据的录入、修改和删除等。2. 图书馆工作人员借还管理模块包括图书的借阅、返还;图书借阅数据的修改和删除;图书书目查询等。3. 借阅者查询模块图书书目查询:借阅情况查询本系统的系统结构功能图,如图3图3系统功能结构图本系统的数据流程图如图4 图4系统数据流程图3数据库设计3.1数据库概念设计在数据库概念设计阶段,从用户的角度看待数据及处理要求和约束,产生一个反映客户观点的概念模式。然后把概念模式转换成逻辑模式。利用ER方法进行数据库的概念设计,可以分成3部分:首先设计局部ER模式,然后把各局部ER模式综合成一个全局模式,最后对全局模式进行优化,得到最终的模式,即概念模式。1.设计局部ER模式 实体和属性的定义:l 图书(编号、名称、作者、出版社、出版日期、备注、价格、数量、类别)l 借出图书(借书证号、图书编号、借出时间)l 借阅者(借书证号、姓名、性别、身份证、电话、罚款、身份编号)l 身份(身份编号、身份描述、最大借阅数、最长借阅时间)l 图书类别(图书类别编号、类别描述) ER模式的“联系”用于刻画实体之间的关联。一种完整的方式是对局部结构种任意两个实体类型,依据需求分析的结构,考察局部结构中任意两个实体类型之间是否存在联系。若有联系,则进一步确定是1:N,M:N,还是1:1.还要考察一个实体类型内部是否存在联系,两个实体类型之间是否存在联系,多个实体类型之间是否存在联系等。2.设计全局ER模式所有局部ER模式都设计好了以后,接下来就是把它们综合成单一的全局概念结构。全局概念结构不仅要支持所有局部ER模式,而且必须合理的表示一个完整、一直的数据库概念结构。为了提高数据库系统的效率,还应进一步依据处理需求对ER模式进行优化。一个好的全局ER模式,除了能准确、全面地反映用户功能需求外,还应满足下列条件:实体类型的个数要尽可能少;实体类型所含属性个数尽可能少;实体类型之间联系无冗余。“图书馆管理系统”的全局ER模式如图5所示。 图5全局ER模式图3.2数据库逻辑设计根据数据库的概念设计,得出数据库的逻辑设计。系统数据库名称为“libraryMIS”,数据库中包括:1)图书信息表(book);2)借出图书信息表(bookout);3)借阅者信息表(person);4)身份信息表(identity);5)图书类别信息表(type);6)管理员信息表(manager)。下面列出各个表的数据结构,如图表1-表6所示表1 图书信息表(book)的数据结构图字段名类型描述BID文本图书编号(主键)BName文本图书名BWriter文本作者BPublish文本出版社BDate日期/时间出版日期BPrice文本价格BNume文本数量type文本类型BRemark文本备注表2 借出图书信息表(bookOut)的数据结构图字段名类型描述OID自动编号借出图书ID(主键)BID文本图书编号PID文本借书证编号ODate日期/时间借出日期表3 借阅者信息表(person)的数据结构图字段名类型描述PID文本借书证号(主键)PName文本姓名PSex文本性别PPhone文本电话PN文本身份证PCode文本密码PMoney数字罚款identity文本身份证PRemark文本备注sys文本权限表4 身份信息表(idengtity)的数据结构图字段名类型描述identity文本身份(主键)longTime数字最长借阅时间bigNum数字最大借阅数量表5 图书类别信息表(type)的数据结构图字段名类型描述TID自动编号类别IDtype文本类别(主键)tRemark文本类别描述表6 管理员信息表(manager)的数据结构图字段名类型描述MName文本名称(主键)MCode文本密码manager是/否管理人员query是/否查询3.3数据库表之间的关系根据本示例的特点,需要设置图书类别信息表与图书信息表、图书信息表与借出图书信息表、借出图书信息表与借阅者信息表、借阅者信息表与身份信息表之间的关系,数据库中表与表之间的关系如图6所示。 图6数据库中表与表之间的关系图4.系统详细设计4.1数据库连接本系统采用Access文件数据库,降低了程序对硬件操作系统版本的要求。并且Access数据库操作方便,配置简单,只需要把数据库文件放置到合适的目录下即可。在本系统中,数据库文件放置的目录是图书馆管理系统图书管理系统binDebug图书管理系统数据库.mdb。在程序中专门设计连接字符串模块databasedbConnection.cs,代码如例程1.并在程序中设置变量条用这个连接,代码如例程2所示:例程1 数据库连接代码 using System;namespace 图书管理系统数据库.database public class dbConnection public dbConnection() public static string connection get return Data Source=图书管理系统数据库.mdb;Jet OLEDB:Engine Type=5;Provider=Microsoft.Jet.OLEDB.4.0; 4.2系统管理设计 在主界面中选择“系统管理”/“修改密码”命令即可进入修改密码界面,如图7所示。在该界面可以修改成新的密码,赋予管理员新权限。单击“确定”按钮,如果用户两次输入的密码一致,则显示修改成功,否则提示修改失败。图7 添加用户界面 输入原始密码后再输入两次新密码后,单击“确定”按钮即可修改成功。如图 图8 浏览用户界面 4.3图书管理设计在主界面中选择“图书管理”“图书分类”命令菜单,即可进入浏览图书分类界面,如图10所示。在该页面共有5个button按钮,单击“添加”按钮进入添加图书类型界面,如图11所示。图9 浏览图书分类界面图10 添加图书类型界面 用户在这个窗体中可以设置图书类型信息,单击“确定”按钮,如果图书类型信息输入完整并且图书类型不重复在显示添加成功,否则添加失败。 在主界面中选择“图书管理”“浏览”命令菜单,即可进入浏览图书界面,如图12所示。在该页面共有5个button按钮,单击“添加”按钮进入添加图书界面,如图13所示。图11 浏览图书界面图12 添加图书界面 用户可以在这个窗体中设置图书信息,单击“确定”按钮,如果输入的信息完整并且图书编号不重复则显示添加成功,否则显示添加失败。4.4读者管理设计 在主界面中选择“读者管理”“浏览读者”命令菜单,即可进入浏览借阅者界面,如图16所示。该界面有5个按钮,单击“添加”按钮,即可进入添加借阅者界面,如图17所示。图13 浏览借阅者界面图14 添加借阅者界面用户可以在这个窗体中设置读者基本信息。单击“确定”按钮,如果读者基本信息输入完整并且借书证号和身份不重复则显示添加成功,否则会提示输入完整信息的。4.5借还管理设计 在主界面中选择“图书管理”“借还管理”“借书”命令菜单,即可进入借书界面,如图18所示图 15 借书界面 在“借书证号”文本框中输入借书证号后回车,借阅者信息和已借图书信息都会先是在相应的控件中,在“图书编号”文本框中输入图书编号后回车,该编号的图书也显示在相应的控件中。单击“借出”按钮,判断该借阅者是否已经借了该书,如果没有则介乎成功,否则借书失败。在主界面中选择“图书管理”“借还管理”“还书书”命令菜单,即可进入还书界面,如图19所示 图16 还书界面在“借书证号”文本框中输入借书证号,在“图书编号”文本框中输入图书编号后回车,如果该借阅者借了该书,则该图书信息就会显示在相应的空间中,并计算出该图书的应还日期,超出天数和罚金。4.6查询管理设计在主界面中选择“查询管理”“图书查询”命令菜单即可进入查询图书界面,如图20所示图17 图书查询界面该界面上有3个查询条件,图书编号、图书名和作者,单击“查询”按钮根据查询条件得出的图书信息将显示在DateGrid控件中,并计算出该图书目前在库中的数量。5.系统程序设计5.1登录界面编码在登录界面中输入管理员帐号和密码来登录程序,.代码如例程3例程3: 登录界面部分代码using System;using System.Collections.Generic;using System.ComponentModel;using System.Data;using System.Drawing;using System.Linq;using System.Text;using System.Windows.Forms;using System.Data.OleDb;using System.IO;namespace 图书管理系统 public partial class 登录 : Form public 登录() InitializeComponent(); private OleDbConnection oleconnection1 = new OleDbConnection(图书管理系统数据库.database.dbConnection.connection); private void button1_Click(object sender, EventArgs e) if (checkBox1.Checked = true) ReadUserFromFile(); if (textBox2.Text.Trim() = | textBox1.Text.Trim() = ) MessageBox.Show(请输入正确的用户名和密码!, 温馨提示); else SaveUserToFile(); oleconnection1.Open(); OleDbCommand cmd = new OleDbCommand(, oleconnection1); string sql = select *from manager where MName= + textBox1.Text.Trim() + and MCode= + textBox2.Text.Trim() + ; cmd.CommandText = sql; if (cmd.ExecuteScalar() != null) OleDbDataReader reader = cmd.ExecuteReader(); if (reader.HasRows) reader.Read(); 主界面 main = new 主界面(); this.Visible = false; main.ShowDialog(); this.Close(); else oleconnection1.Close(); MessageBox.Show(用户名或密码错误!, 提示); public void SaveUserToFile() String path = 图书管理系统数据库; String user = new String2; user0 = textBox1.Text;/textBox1里是用户名 user1 = textBox2.Text;/textBox2里是密码 File.WriteAllLines(path, user, Encoding.Default); public void ReadUserFromFile() String path = 图书管理系统数据库; string user = new string2; textBox1.Text = user0; textBox2.Text = user1; File.ReadAllLines(path,Encoding.Default); private void button2_Click(object sender, EventArgs e) this.Close(); private void label2_Click(object sender, EventArgs e) private void 登录_Load(object sender, EventArgs e) 5.2主界面编码主界面中菜单栏的部分菜单功能代码,如例程4例程4public partial class 主界面 : Form public 主界面() InitializeComponent(); private void 修改密码ToolStripMenuItem1_Click(object sender, EventArgs e) 修改密码 xpcode = new 修改密码(); xpcode.MdiParent = this; xpcode.Show(); private void 图书分类ToolStripMenuItem_Click(object sender, EventArgs e) 图书类型 booktype = new 图书类型(); booktype.MdiParent = this; booktype.Show(); private void 浏览ToolStripMenuItem_Click(object sender, EventArgs e) 图书 ebook = new 图书(); ebook.MdiParent = this; ebook.Show(); private void 借书管理ToolStripMenuItem_Click(object sender, EventArgs e) 借书界面 bbook = new 借书界面(); bbook.MdiParent = this; bbook.Show(); private void 还书ToolStripMenuItem_Click(object sender, EventArgs e) 还书界面 rbook = new 还书界面(); rbook.MdiParent = this; rbook.Show(); private void 图书查询ToolStripMenuItem_Click(object sender, EventArgs e) 图书查询 bookq = new 图书查询(); bookq.MdiParent = this; bookq.Show(); private void 浏览读者ToolStripMenuItem_Click(object sender, EventArgs e) 浏览读者 lreader = new 浏览读者(); lreader.MdiParent = this; lreader.Show(); private void 主界面_Load(object sender, EventArgs e) toolStripStatusLabel1.Text = 当前登录用户; toolStripStatusLabel2.Text = DateTime.Now.ToString(); toolStripStatusLabel3.Text = 作者:段易村; toolStripStatusLabel4.Text = 图书馆管理信息系统; private void menuStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) 5.3系统管理编码用户浏览的编码窗体加载时自动加载用户信息,代码如例程6例程6窗体加载代码 public partial class 用户列表 : Form string connectionString = Provider=Microsoft.Jet.OleDb.4.0;Data Source=图书管理系统数据库.mdb; OleDbConnection myCon; OleDbCommand myCmd; OleDbDataAdapter myAD; DataSet myDS; OleDbCommandBuilder builder; public 用户列表() InitializeComponent(); myCon = new OleDbConnection(connectionString); myCmd = new OleDbCommand(select MName as 用户名,MCode as 密码,work as 管理员,manage as 工作者 from manager, myCon); myAD = new OleDbDataAdapter(myCmd); myDS = new DataSet(); myAD.Fill(myDS, subject); builder = new OleDbCommandBuilder(myAD); dataGridView1.DataSource = myDS.Tablessubject; dataGridView1.ReadOnly = true; dataGridView1.AllowUserToAddRows = false; private OleDbConnection oleconnection1 = new OleDbConnection(图书管理系统数据库.database.dbConnection.connection); private void button2_Click(object sender, EventArgs e) this.Close(); private void dataGridView1_CellContentClick(object sender, DataGridViewCellEventArgs e) private void 用户列表_Load(object sender, EventArgs e) private void button1_Click(object sender, EventArgs e) if (dataGridView1.CurrentRow.Index = 0 & dataGridView1.DataSource != null & dataGridView1.CurrentCell != null) oleconnection1.Open(); string sql = delete *from manager where MName= + myDS.Tablessubject.RowsdataGridView1.CurrentCell.RowIndex0.ToString().Trim() + ; OleDbCommand cmd = new OleDbCommand(sql, oleconnection1); cmd.ExecuteNonQuery(); MessageBox.Show(删除用户 + myDS.Tables0.RowsdataGridView1.CurrentCell.RowIndex0.ToString().Trim() + 成功, 提示); myCon = new OleDbConnection(connectionString); myCmd = new OleDbCommand(select MName as 用户名,MCode as 密码,work as 管理员,manage as 工作者 from manager, myCon); myAD = new OleDbDataAdapter(myCmd); myDS = new DataSet(); myAD.Fill(myDS, subject); builder = new OleDbCommandBuilder(myAD); dataGridView1.DataSource = myDS.Tablessubject; dataGridView1.ReadOnly = true; dataGridView1.AllowUserToAddRows = false; oleconnection1.Close(); else return; 5.4图书管理编码图书分类的编码添加图书类型代码,如例程8例程8“添加”代码private void button1_Click(object sender, EventArgs e) if (textBox1.Text.Trim() = | textBox2.Text.Trim() = ) MessageBox.Show(请输入完整的信息!, 提示); else oleconnection1.Open(); string sql = select *from type where type= + textBox1.Text.Trim() + ; OleDbCommand cmd = new OleDbCommand(sql, oleconnection1); if (cmd.ExecuteScalar() != null) MessageBox.Show(类型重复,请重新输入!, 提示); else sql = insert into type (type,tRemark) values( + textBox1.Text.Trim() + , + textBox2.Text.Trim() + ); cmd.CommandText = sql; cmd.ExecuteNonQuery(); MessageBox.Show(类型添加成功!, 提示); textBox1.Text = ; textBox2.Text = ; oleconnection1.Close(); this.Close(); 图书类型界面部分代码如例程9例程9 public partial class 图书 : Form string connectionString = Provider=Microsoft.Jet.OleDb.4.0;Data Source=图书管理系统数据库.mdb; OleDbConnection myCon; OleDbCommand myCmd; OleDbDataAdapter myAD; DataSet myDS; OleDbCommandBuilder builder; public 图书() InitializeComponent(); myCon = new OleDbConnection(connectionString); myCmd = new OleDbCommand(select BID as 图书编号,BName as 图书名,BWriter as 作者,BPublish as 出版社,BDate as 出版日期,BPrice as 价格,BNum as 数量,type as 类型,BRemark as 备注 from Book, myCon); myAD = new OleDbDataAdapter(myCmd);

温馨提示

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

评论

0/150

提交评论