图书馆管理系统课程设计C#

上传人:GCG1****010 文档编号:57136424 上传时间:2022-02-23 格式:DOC 页数:19 大小:100KB
返回 下载 相关 举报
图书馆管理系统课程设计C#_第1页
第1页 / 共19页
图书馆管理系统课程设计C#_第2页
第2页 / 共19页
图书馆管理系统课程设计C#_第3页
第3页 / 共19页
点击查看更多>>
资源描述
课程设计说明书 题目: 图书馆图书管理系统 院 系: 计算机科学与工程学院 专业班级: 学 号: 学生姓名: 孙阳 指导教师: 2015 年 10月16日安徽理工大学课程设计(论文)安徽理工大学课程设计(论文)任务书 计算机科学与工程 学院 教研室学 号学生姓名孙阳专业(班级)设计题目 图书馆图书管理系统设计技术参数该系统采用visual studio2008软件和SQL2000数据库作为系统设计工具,它们都有较高的开发效率。尤其是SQL Server具有使用方便、可伸缩性好、与相关软件集成程度高等优点。故本系统开发的过程中,选取它们作为软件的开发工具与数据库管理软件。通过visual studio2008的活动数据对象(ADO)与开放数据库互连(ODBC)技术将利用c#开发的系统与S0L数据库连接起来.由于使用了ODBC,只要修改数据源就可以将系统的运行平台从单机迁移到网络环境下.设计要求(1)系统部分:主要完成本系统工程的维护工作(包括:添加用户、添加员工、修改密码) (2)图书管理部分:要完成图书基本信息的管理(包括:添加、修改、查询、删除图书基本信息) (3)借阅管理部分:主要完成图书借阅的管理(包括:图书借阅、归还、查询等)(4)超期自动计算罚款,并暂停借阅功能.工作量课程设计不少于15页工作计划 根据课程设计的要求,查找相关资料,完成需求分析;进行系统的概要设计;进行系统的详细设计和源代码的书写;对系统进行调试分析,写出课程设计报告。 参考资料1 刘丽霞 等编著,零基础学 C#3.0. 北京:机械工业出版社,2009。32 刘辉 等编著,零基础学 SQL Server 2005. 北京:机械工业出版社,2008.1指导教师签字教研室主任签字2015年 10月16日指导教师评语:成绩: 指导教师: 年 月 日安徽理工大学课程设计(论文)成绩评定表摘要当今时代是飞速发展的信息时代。在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。计算机的最大好处在于利用它能够进行信息管理.使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行.数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。总的来说,缺乏系统,规范的信息管理手段。尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。数据处理手工操作,工作量大,出错率高,出错后不易更改。图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力.如要对很长时间以前的图书进行更改就更加困难了。基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。目 录第一章 需求分析1第二章 概要设计22.1开发工具的选取22。2设计原则22。3 主要功能设计32.3。1用户登录模块32.3。2 用户管理模块32.3。3 图书管理模块32。3.4 用户操作模块42.3.5 数据库设计与数据准备4第三章 详细设计与调试分析63.1数据库实现:63.2 界面实现73.2。1 总体界面73.2。2 登录界面实现73.2.3 用户管理界面实现93。2。4 图书管理界面实现133.2。5 退出界面203。2。6 主界面20总结23参考文献23第一章 需求分析需求分析就是描述系统的需求,通过定义系统中的关键类来建立模型。分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。可以将需求分析分为两个过程,一是理解需求,二是分析需求。需求分析是只收集和分析用户对系统的信息需求和处理要求,得到设计所需的需求信息.这些信息是是选择了对数据库设计直接有用的信息,一般包括实体类、联系类、数据的使用要求及冲突表等方面的内容。 下面我们从程序设计过程中分别对程序的需求分析和数据库的需求分析结合进行讨论。1.在进入系统之后首先是登陆界面根据用户输入的内容判断用户的合法身份。2。进入系统主界面可以进行用户管理和图书管理。3。进入用户管理界面可以实现用户的删除、添加以及遍历记录等功能。4。进入图书管理界面可以实现图书的删除、添加、查询以及浏览记录等功能5。本系统是用C语言,选用这个语言的原因有以下几点: (1)C与C/C+具有极大的相似性,我们之前认真学习过C语言和c+语言,c是这两个语言的高效率版本,更易于上手。 (2)C#语言完美支持.NET平台,可以在Microsoft .NET平台上事半功倍的构建应用程序的扩展框架(即与数据库的连接非常易于实现,对数据可以直接进行操作.) (3)全界面人性化操作,实现代码简单易懂,适合初学者学习。第二章 概要设计2。1开发工具的选取该系统采用visual studio2008软件和SQL2000数据库作为系统设计工具,它们都有较高的开发效率.尤其是SQL Server具有使用方便、可伸缩性好、与相关软件集成程度高等优点。故本系统开发的过程中,选取它们作为软件的开发工具与数据库管理软件。通过visual studio2008的活动数据对象(ADO)与开放数据库互连(ODBC)技术将利用c开发的系统与S0L数据库连接起来。由于使用了ODBC,只要修改数据源就可以将系统的运行平台从单机迁移到网络环境下。2.2设计原则 1实用性原则要求满足实际工作的需要,用户接口和操作界面设计尽可能做到界面美观大方,操作简便实用,能适应不同的用户,对用户的技能性要求应尽量的低,只需进行简单的操作就可完成所要的内容。2可扩展性原则为适应将来的发展,系统应具有良好的可扩展性和可维护性,软件设计尽可能模块化、组件化,使系统可灵活配置,适应不同的情况,使系统能在原来的基础上进行改进与维护。3安全性原则软件与数据库的设计要做到安全可靠,防止非法用户的入侵,数据库与前台能友好地链接,做到前台操作来改变后台数据库的理想效果,并且不产生数据的冲突.4用户界面设计原则用户界面的设计应符合Windows规范的图形用户界面,做到美观大方。用户界面应当直观、明了,同时在各个界面的相应之处还有相关的信息提示从而使得用户更好地进行操作,真正地实现“傻瓜型”管理易学、易用、易管理。5数据库设计原则要求数据具有一致性、完整性、安全性的原则。通过关键字的设置来提示用户在使用时避免数据的重复及冲突等情况。23 主要功能设计本系统功能主要分为用户登录、用户管理、图书管理、用户操作四个部分。对于支持该系统的数据库,建立了2张表,分别是登录表和图书信息表。这对每一项功能,都有必要的驱动信息和功能上的约束.以图书管理功能为例,图书管理分为四部分:添加图书,删除图书,浏览图书,查询图书.添加图书时应该能对一些有限制的信息做好正确的检查,录入的图书信息应包括图书编号、图书名称、图书作者、图书出版厂家、图书价格、图书借阅时间、并且在信息输入时应及时对信息的合法性进行检查;删除图书可以根据输入图书的名称进行删除;查询图书主要是对具有相关特征的图书信息进行查找;浏览图书是按照管理员的要求将用户所需的数据抽取出来自动生成报表,该项功能应该能够合理的抽取所需的信息集合,全面合理提供用户所需的数据。2。3。1用户登录模块在登录页面输入用户名,密码,并与数据库中登录表中的比较,若都符合则登录成功.如果是以管理员身份登录,可以对该系统进行所有的操作,若是以普通用户身份的登录,只能使用该系统的部分功能,像添加删除图书,添加删除用户则没有权限.2。3。2 用户管理模块 在该模块中,主要完成添加删除系统的用户。2。3.3 图书管理模块在成功登录系统后,通过图书管理菜单下拉菜单,有四个子模块,分别是添加图书、删除图书、浏览图书、查询图书。通过图书的相关信息,可以查询所关联的图书名称、图书作者、图书出版厂家、图书价格、图书借阅时间等。2.3。4 用户操作模块在成功登录系统后,用户可以根据需要修改密码,或者返回登录界面重新登录。2。3。5 数据库设计与数据准备在开发任何关于数据库方面的系统之前,必须要做好的一个工作是确定本系统要管理哪些数据。通过需求分析,我们已经确定了系统管理的数据包括:登录对象权限、实验室基本信息、图书信息。所以在数据库的设计上我们使用了从学校总务处导出的图书信息库作为图书信息的基本存储结构,并且参照该库表结构,设计出其他数据表的结构。这种做法既保证了上报学校数据的要求,又由于可以直接利用现有数据在保证与学校图书管理部门信息的一致性的同时避免了大量信息的录入所产生的人为错误。1、数据结构(数据库中表的设计)用户(用户名,密码)用户1(编号,用户,密码,图书编号)图书信息(图书编号,图书名称,图书作者,图书借阅时间,图书出版厂家,图书价格)2、数据项具体设置编号标识符类型长度所属表名1用户nchar10用户12密码int*用户13编号int*用户4用户名char10用户5密码nchar10用户6图书编号varchar50图书信息7图书名称varchar50图书信息8图书出版厂家varchar50图书信息9图书作者varchar50图书信息10图书借阅时间datetime图书信息11图书价格money*图书信息E-R图分析:E-R图分析的目的是确定系统中所有实体之间的关系和实体的属性,即概念模型的分析,图书管理系统概念结构设计(E-R模型)如下:编号名称密码编号作者借阅图书用户年龄姓名价格借阅时间ER模型程序流程图:第三章 系统实现3.1数据库实现:该数据库名为图书管理系统,包含两个用户类型的表,分别是: 用户表:图书信息表:在用visual studio2008连接该数据库时,代码为: SqlConnection con = new SqlConnection();con。ConnectionString = Data Source=XUWEIPC;Initial Catalog=图书信息表;Integrated Security=True”;SqlConnection con = new SqlConnection(); con。ConnectionString = ”Data Source=XUWEI-PC;Initial Catalog=用户表;Integrated Security=True;再根据需要进行其他操作。3。2 界面实现 3。2.1 总体界面如图所示,该系统共有8个windows窗体以及其他必要功能模块。3。2.2 登录界面实现如图所示:程序流程图一致,进入系统主界面。输入用户名、密码不一致,提示输入有误,重新登录!登录界面部分主要代码:String m_user = this。textBox1.Text。ToString().Trim(); String m_password = this。textBox2。Text.ToString()。Trim(); if (m_user.Length = 0) MessageBox.Show(用户名称不能为空); return; String selectCmd = ”select 用户 from 表1 where 用户=+m_user +” and 密码=+m_password ; String connStr = ”Provider=Microsoft.Jet。OLEDB.4.0;Data Source=db1。mdb; OleDbConnection conn; OleDbCommand cmd;OleDbDataReader reader; conn = new OleDbConnection(connStr); conn。Open(); cmd = new OleDbCommand(selectCmd, conn); reader = cmd。ExecuteReader(); if(reader.Read() this.Hide (); 主界面 m=new 主界面 (); m。Show(); else MessageBox。Show (”用户名称或密码不对!); conn。Close();在该模块设计中,还添加了对用户名和密码的判断,若用户名或密码错误,则不能进入主界面,若用户名和密码没填写,则会有消息框弹出提示输入完整信息。3。2。3 用户管理界面实现1。 添加用户界面部分主要代码:public 添加图书() InitializeComponent(); private void 添加图书_Load(object sender, EventArgs e) this.图书信息_1TableAdapter。Fill(this.图书信息表DataSet。图书信息_1); string connStr, selectCmd;connStr = Data Source=XUWEIPC;Initial Catalog=用户表;Integrated Security=True;selectCmd = ”Select From 用户表 Order By 编号 ASC”;SqlConnection conn;SqlDataAdapter myAdapter;DataSet myDataSet = new DataSet();conn = new SqlConnection(connStr);conn.Open();myAdapter = new SqlDataAdapter(selectCmd, conn);myAdapter。Fill(myDataSet, ”用户表);dataGridView1.DataSource = myDataSet。Tables”用户表”;private void button1_Click(object sender, EventArgs e) int m = 0; if (this.textBox1。Text = ” | this。textBox2。Text = ” | this.textBox3。Text = ”) MessageBox。Show(请输入完整信息!”); else SqlConnection con = new SqlConnection();con.ConnectionString = Data Source=XUWEI-PC;Initial Catalog=用户表;Integrated Security=True”;SqlCommand cmd = con。CreateCommand(); cmd。CommandText = select * from 用户表 where 用户名= + this.textBox2.Text + ; con。Open();SqlDataReader dr = cmd。ExecuteReader(); if (dr.Read()) MessageBox。Show(用户名 + this。textBox2.Text + ”已经存在!”); con.Close(); else SqlConnection conn = new SqlConnection(); conn.ConnectionString = Data Source=XUWEIPC;Initial Catalog=用户表;Integrated Security=True”; SqlCommand cmdd = conn。CreateCommand(); cmdd.CommandText = insert into 用户表 (编号,用户名,密码) + values (” + this.textBox1.Text + , + this.textBox2。Text + ”, + this。textBox3。Text + ”); conn。Open(); m = cmdd.ExecuteNonQuery(); if (m = 1) MessageBox.Show(”添加用户成功!”) ShowPerson(); 2 。删除用户界面程序流程图不存在,重新输入! 输入要删除的用户名存在,删除成功!如图所示:部分主要代码:SqlConnection con = new SqlConnection(); con。ConnectionString = ”Data Source=XUWEI-PC;Initial Catalog=用户表;Integrated Security=True;SqlCommand cmd = con。CreateCommand();cmd。CommandText = delete from 用户表 where 用户名 = + this。textBox1。Text + ”;cmd.Connection = con;con.Open(); int d = cmd。ExecuteNonQuery(); if (d = 1) MessageBox.Show(删除成功”);3。2。4 图书管理界面实现1。添加图书界面如图所示:部分主要代码:void ShowPerson() string connStr, selectCmd; connStr = Data Source=XUWEI-PC;Initial Catalog=图书信息表;Integrated Security=True”; selectCmd = ”Select From 图书信息_1 Order By 图书编号 ASC”; SqlConnection conn; SqlDataAdapter myAdapter; DataSet myDataSet = new DataSet(); conn = new SqlConnection(connStr); conn。Open(); myAdapter = new SqlDataAdapter(selectCmd, conn); myAdapter。Fill(myDataSet, 图书信息_1); dataGridView1。DataSource = myDataSet。Tables”图书信息_1; private void botton1_Click(object sender, EventArgs e) if (this.textBox1。Text = ) MessageBox.Show(请输入图书编号”); else SqlConnection conn = new SqlConnection(); conn.ConnectionString = Data Source=XUWEI-PC;Initial Catalog=图书信息表;Integrated Security=True”; SqlCommand cmdd = conn。CreateCommand(); cmdd。CommandText = ”select from 图书信息_1 where 图书名称 = + this.textBox2。Text + ”; conn。Open(); SqlDataReader dr = cmdd.ExecuteReader(); if (dr。Read() MessageBox。Show(”图书名称 + this.textBox2.Text + ”已经存在!); conn。Close(); else string a = this。textBox1。Text;string b = this.textBox2.Text;string c = this。textBox3.Text;string d = this。textBox4。Text;string er = this.textBox5.Text;string f = this.textBox6。Text;SqlConnection con = new SqlConnection();con.ConnectionString = ”Data Source=XUWEIPC;Initial Catalog=图书信息表;Integrated Security=True”;SqlCommand cmd = con。CreateCommand();cmd。CommandText = insert into 图书信息_1(图书编号,图书名称,图书作者,图书出版厂家,图书借阅时间,图书价格) + ”values(” + a + ”, + b + , + c + ,” + d + ”, + er + , + f + )”;con.Open(); int dd = cmd。ExecuteNonQuery()if (dd = 1) MessageBox.Show(”添加成功!); ShowPerson(); private void button2_Click(object sender, EventArgs e) this。Close(); 2.删除图书界面程序流程图输入删除图书名称名称存在,提示“确定要删除?”不存在,输入有误!取消,返回删除界面。确定,删除成功!如图所示:部分主要代码:DialogResult result = new DialogResult();result = MessageBox.Show(”确定要删除该设备?”, ”警告!, MessageBoxButtons.OKCancel, MessageBoxIcon.Warning);switch (result) case DialogResult.OK: SqlConnection con = new SqlConnection(); con.ConnectionString = ”Data Source=XUWEIPC;Initial Catalog=图书信息表;Integrated Security=True; SqlCommand cmd = con.CreateCommand(); cmd。CommandText = ”delete from 图书信息_1 where 图书名称= + this。textBox1。Text + ”; cmd。Connection = con; con.Open(); int d = cmd.ExecuteNonQuery(); if (d = 1) MessageBox。Show(删除成功”); break; case DialogResult.Cancel: break; 3.浏览图书界面如图所示:部分主要代码:InitializeComponent();SqlConnection con = new SqlConnection();con.ConnectionString = ”Data Source=XUWEI-PC;Initial Catalog=图书信息表;Integrated Security=True;string co = ”select * from 图书信息_1 ”;DataSet ds = new DataSet();SqlDataAdapter da = new SqlDataAdapter(co, con);da。Fill(ds);dataGridView1。DataSource = ds。Tables0;private void 浏览图书_Load(object sender, EventArgs e) this。图书信息_1TableAdapter。Fill(this。图书信息表DataSet1.图书信息_1); private void button1_Click(object sender, EventArgs e) this。Close(); 4。查询图书界面程序流程图输入查询条件、关键字一致,显示查询结果!不一致,显示为空。如图所示:部分主要代码:string tempValue = comboBox1。ItemscomboBox1。SelectedIndex。ToString();SqlConnection con = new SqlConnection();con.ConnectionString = Data Source=XUWEIPC;Initial Catalog=图书信息表;Integrated Security=True”; if (tempValue = ”图书编号) string co = ”select from 图书信息_1 where 图书编号=” + this.textBox1.Text + ; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(co, con); da。Fill(ds); dataGridView1。DataSource = ds.Tables0; if (tempValue = 图书名称”) string co = ”select * from 图书信息_1 where 图书名称=” + this。textBox1。Text + ”; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(co, con); da。Fill(ds); dataGridView1。DataSource = ds.Tables0; if (tempValue = ”图书作者”) string co = ”select from图书信息_1 where 图书作者= + this.textBox1.Text + ”; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(co, con); da。Fill(ds); dataGridView1.DataSource = ds.Tables0; if (tempValue = 图书出版厂家”) string co = select * from 图书信息_1 where 图书出版厂家= + this.textBox1.Text + ”; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(co, con); da.Fill(ds); dataGridView1。DataSource = ds.Tables0; if (tempValue = 图书借阅时间”) string co = select * from图书信息_1 where 图书借阅时间= + this.textBox1。Text + ”; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(co, con); da.Fill(ds); dataGridView1.DataSource = ds.Tables0; if (tempValue = ”图书价格) string co = ”select * from 图书信息_1 where 图书价格= + this.textBox1.Text + ”; DataSet ds = new DataSet(); SqlDataAdapter da = new SqlDataAdapter(co, con); da.Fill(ds); dataGridView1.DataSource = ds。Tables0; private void button1_Click(object sender, EventArgs e) this。Close(); 3.2。5 退出界面在主界面中设置代码如下:private void 退出ToolStripMenuItem_Click(object sender, EventArgs e) this。Close(); 3。2。6 主界面菜单按钮如图所示:实现该功能的部分代码如下:using System;using System.Collections.Generic;using System。ComponentModel;using System.Data;using System。Drawing;using System。Text;using System。Windows。Forms;using System。Data.SqlClient;namespace WindowsApplication7 public partial class 主界面 : Form public 主界面() InitializeComponent(); private void 添加用户ToolStripMenuItem_Click(object sender, EventArgs e) 添加用户 f = new 添加用户(); f.Tag = this.FindForm(); f。ShowDialog(); private void 删除用户ToolStripMenuItem_Click(object sender, EventArgs e) 删除用户 f = new 删除用户 (); f。Tag = this。FindForm(); f.ShowDialog(); private void 添加管理ToolStripMenuItem_Click(object sender, EventArgs e) 添加图书 f = new 添加图书(); f.Tag = this.FindForm(); f.ShowDialog(); private void 删除图书ToolStripMenuItem_Click(object sender, EventArgs e) 删除图书 f = new 删除图书(); f。Tag = this。FindForm(); f.ShowDialog(); private void 浏览图书ToolStripMenuItem_Click(object sender, EventArgs e) 浏览图书 f = new 浏览图书(); f。Tag = this.FindForm(); f。ShowDialog(); private void 查询图书ToolStripMenuItem_Click(object sender, EventArgs e) 查询图书 f = new 查询图书(); f.Tag = this.FindForm(); f.ShowDialog(); private void button2_Click(object sender, EventArgs e) this.Close(); 总结图书管理系统开发是对高校的管理是有着重大的实际意义,该系统采用选进开发理念,软件工程的标准化开发.通过开本系统使我全面的掌握了C#的基本知识,并在开发过程中我的C#开发能力得到了进一步的提高。如:更进一步的深入ADO数据对象技术,SQL语言的使用;软件工程知识也得到了提高,充分利用软件工程及数据库系统原理知识将及大为我们提高了开发及设计速度。 在开发过程中我学到了一些经验:系统分析的好坏将决定着的系统开发成功与否,一份好分析设计将是成功开发主要因素。我们在着手开发之前不要急于编码,先应有较长的时间去把分析做好,写出相关的开发文档等。然后再开始编码,这样做到每写一步代码心底有数,有条不絮。参考文献1 刘丽霞 等编著,零基础学 C#3.0。 北京:机械工业出版社,2009.32 刘辉 等编著,零基础学 SQL Server 2005。 北京:机械工业出版社,2008。113
展开阅读全文
相关资源
相关搜索

最新文档


当前位置:首页 > 生活休闲 > 励志创业


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!