图书馆管理系统课程设计C#.docx
《图书馆管理系统课程设计C#.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统课程设计C#.docx(23页珍藏版)》请在冰豆网上搜索。
图书馆管理系统课程设计C#
课程设计说明书
题目:
图书馆图书管理系统
院系:
计算机科学与工程学院
专业班级:
学号:
学生姓名:
孙阳
指导教师:
2015年10月16日
安徽理工大学课程设计(论文)任务书
计算机科学与工程学院教研室
学号
学生姓名
孙阳
专业(班级)
设计题目
图书馆图书管理系统
设
计
技
术
参
数
该系统采用visualstudio2008软件和SQL2000数据库作为系统设计工具,它们都有较高的开发效率。
尤其是SQLServer具有使用方便、可伸缩性好、与相关软件集成程度高等优点。
故本系统开发的过程中,选取它们作为软件的开发工具与数据库管理软件。
通过visualstudio2008的活动数据对象(ADO)与开放数据库互连(ODBC)技术将利用c#开发的系统与S0L数据库连接起来。
由于使用了ODBC,只要修改数据源就可以将系统的运行平台从单机迁移到网络环境下。
设
计
要
求
(1)系统部分:
主要完成本系统工程的维护工作(包括:
添加用户、添加员工、修改密码)
(2)图书管理部分:
要完成图书基本信息的管理(包括:
添加、修改、查询、删除图书基本信息)(3)借阅管理部分:
主要完成图书借阅的管理(包括:
图书借阅、归还、查询等)(4)超期自动计算罚款,并暂停借阅功能。
工
作
量
课程设计不少于15页
工
作
计
划
根据课程设计的要求,查找相关资料,完成需求分析;
进行系统的概要设计;
进行系统的详细设计和源代码的书写;
对系统进行调试分析,写出课程设计报告。
参
考
资
料
1刘丽霞等编着,零基础学C#.北京:
机械工业出版社,
2刘辉等编着,零基础学SQLServer2005.北京:
机械工业出版社,
指导教师签字
教研室主任签字
2015年10月16日
指导教师评语:
成绩:
指导教师:
年月日
安徽理工大学课程设计(论文)成绩评定表
摘要
当今时代是飞速发展的信息时代。
在各行各业中离不开信息处理,这正是计算机被广泛应用于信息管理系统的环境。
计算机的最大好处在于利用它能够进行信息管理。
使用计算机进行信息控制,不仅提高了工作效率,而且大大的提高了其安全性。
图书馆作为一种信息资源的集散地,图书和用户借阅资料繁多,包含很多的信息数据的管理,现今,有很多的图书馆都是初步开始使用,甚至尚未使用计算机进行信息管理。
根据调查得知,他们以前对信息管理的主要方式是基于文本、表格等纸介质的手工处理,对于图书借阅情况(如借书天数、超过限定借书时间的天数)的统计和核实等往往采用对借书卡的人工检查进行,对借阅者的借阅权限、以及借阅天数等用人工计算、手抄进行。
数据信息处理工作量大,容易出错;由于数据繁多,容易丢失,且不易查找。
总的来说,缺乏系统,规范的信息管理手段。
尽管有的图书馆有计算机,但是尚未用于信息管理,没有发挥它的效力,资源闲置比较突出,这就是管理信息系统的开发的基本环境。
数据处理手工操作,工作量大,出错率高,出错后不易更改。
图书馆采取手工方式对图书借阅情况进行人工管理,由于信息比较多,图书借阅信息的管理工作混乱而又复杂;一般借阅情况是记录在借书证上,图书的数目和内容记录在文件中,图书馆的工作人员和管理员也只是当时对它比较清楚,时间一长,如再要进行查询,就得在众多的资料中翻阅、查找了,造成查询费时、费力。
如要对很长时间以前的图书进行更改就更加困难了。
基于这此问题,我认为有必要建立一个图书管理系统,使图书管理工作规范化,系统化,程序化,避免图书管理的随意性,提高信息处理的速度和准确性,能够及时、准确、有效的查询和修改图书情况。
第一章需求分析1
第二章概要设计2
开发工具的选取2
设计原则2
主要功能设计3
用户登录模块3
用户管理模块3
图书管理模块3
用户操作模块4
数据库设计与数据准备4
第三章详细设计与调试分析6
数据库实现:
6
界面实现7
总体界面7
登录界面实现7
用户管理界面实现9
图书管理界面实现13
退出界面20
主界面20
总结23
参考文献23
第一章需求分析
需求分析就是描述系统的需求,通过定义系统中的关键类来建立模型。
分析的根本目的是在开发者和提出需求的人之间建立一种理解和沟通的机制。
可以将需求分析分为两个过程,一是理解需求,二是分析需求。
需求分析是只收集和分析用户对系统的信息需求和处理要求,得到设计所需的需求信息。
这些信息是是选择了对数据库设计直接有用的信息,一般包括实体类、联系类、数据的使用要求及冲突表等方面的内容。
下面我们从程序设计过程中分别对程序的需求分析和数据库的需求分析结合进行讨论。
1.在进入系统之后首先是登陆界面根据用户输入的内容判断用户的合法身份。
2.进入系统主界面可以进行用户管理和图书管理。
3.进入用户管理界面可以实现用户的删除、添加以及遍历记录等功能。
4.进入图书管理界面可以实现图书的删除、添加、查询以及浏览记录等功能
5.本系统是用C#语言,选用这个语言的原因有以下几点:
(1)C#与C/C++具有极大的相似性,我们之前认真学习过C语言和c++语言,c#是这两个语言的高效率版本,更易于上手。
(2)C#语言完美支持.NET平台,可以在Microsoft.NET平台上事半功倍的构建应用程序的扩展框架(即与数据库的连接非常易于实现,对数据可以直接进行操作。
)
(3)全界面人性化操作,实现代码简单易懂,适合初学者学习。
第二章概要设计
开发工具的选取
该系统采用visualstudio2008软件和SQL2000数据库作为系统设计工具,它们都有较高的开发效率。
尤其是SQLServer具有使用方便、可伸缩性好、与相关软件集成程度高等优点。
故本系统开发的过程中,选取它们作为软件的开发工具与数据库管理软件。
通过visualstudio2008的活动数据对象(ADO)与开放数据库互连(ODBC)技术将利用c#开发的系统与S0L数据库连接起来。
由于使用了ODBC,只要修改数据源就可以将系统的运行平台从单机迁移到网络环境下。
设计原则
1.实用性原则
要求满足实际工作的需要,用户接口和操作界面设计尽可能做到界面美观大方,操作简便实用,能适应不同的用户,对用户的技能性要求应尽量的低,只需进行简单的操作就可完成所要的内容。
2.可扩展性原则
为适应将来的发展,系统应具有良好的可扩展性和可维护性,软件设计尽可能模块化、组件化,使系统可灵活配置,适应不同的情况,使系统能在原来的基础上进行改进与维护。
3.安全性原则
软件与数据库的设计要做到安全可靠,防止非法用户的入侵,数据库与前台能友好地链接,做到前台操作来改变后台数据库的理想效果,并且不产生数据的冲突。
4.用户界面设计原则
用户界面的设计应符合Windows规范的图形用户界面,做到美观大方。
用户界面应当直观、明了,同时在各个界面的相应之处还有相关的信息提示从而使得用户更好地进行操作,真正地实现“傻瓜型”管理——易学、易用、易管理。
5.数据库设计原则
要求数据具有一致性、完整性、安全性的原则。
通过关键字的设置来提示用户在使用时避免数据的重复及冲突等情况。
2.3主要功能设计
本系统功能主要分为用户登录、用户管理、图书管理、用户操作四个部分。
对于支持该系统的数据库,建立了2张表,分别是登录表和图书信息表。
这对每一项功能,都有必要的驱动信息和功能上的约束。
以图书管理功能为例,图书管理分为四部分:
添加图书,删除图书,浏览图书,查询图书。
添加图书时应该能对一些有限制的信息做好正确的检查,录入的图书信息应包括图书编号、图书名称、图书作者、图书出版厂家、图书价格、图书借阅时间、并且在信息输入时应及时对信息的合法性进行检查;删除图书可以根据输入图书的名称进行删除;查询图书主要是对具有相关特征的图书信息进行查找;浏览图书是按照管理员的要求将用户所需的数据抽取出来自动生成报表,该项功能应该能够合理的抽取所需的信息集合,全面合理提供用户所需的数据。
在登录页面输入用户名,密码,并与数据库中登录表中的比较,若都符合则登录成功。
如果是以管理员身份登录,可以对该系统进行所有的操作,若是以普通用户身份的登录,只能使用该系统的部分功能,像添加删除图书,添加删除用户则没有权限。
用户管理模块
在该模块中,主要完成添加删除系统的用户。
图书管理模块
在成功登录系统后,通过图书管理菜单下拉菜单,有四个子模块,分别是添加图书、删除图书、浏览图书、查询图书。
通过图书的相关信息,可以查询所关联的图书名称、图书作者、图书出版厂家、图书价格、图书借阅时间等。
用户操作模块
在成功登录系统后,用户可以根据需要修改密码,或者返回登录界面重新登录。
数据库设计与数据准备
在开发任何关于数据库方面的系统之前,必须要做好的一个工作是确定本系统要管理哪些数据。
通过需求分析,我们已经确定了系统管理的数据包括:
登录对象权限、实验室基本信息、图书信息。
所以在数据库的设计上我们使用了从学校总务处导出的图书信息库作为图书信息的基本存储结构,并且参照该库表结构,设计出其他数据表的结构。
这种做法既保证了上报学校数据的要求,又由于可以直接利用现有数据在保证与学校图书管理部门信息的一致性的同时避免了大量信息的录入所产生的人为错误。
1、数据结构(数据库中表的设计)
用户(用户名,密码)
用户1(编号,用户,密码,图书编号)
图书信息(图书编号,图书名称,图书作者,图书借阅时间,图书出版厂家,图书价格)
2、数据项具体设置
编号
标识符
类型
长度
所属表名
1
用户
nchar
10
用户1
2
密码
int
*
用户1
3
编号
int
*
用户
4
用户名
char
10
用户
5
密码
nchar
10
用户
6
图书编号
varchar
50
图书信息
7
图书名称
varchar
50
图书信息
8
图书出版厂家
varchar
50
图书信息
9
图书作者
varchar
50
图书信息
10
图书借阅时间
datetime
*
图书信息
11
图书价格
money
*
图书信息
E-R图分析:
E-R图分析的目的是确定系统中所有实体之间的关系和实体的属性,即概念模型的分析,图书管理系统概念结构设计(E-R模型)如下:
E-R模型
程序流程图:
第三章系统实现
数据库实现:
该数据库名为图书管理系统,包含两个用户类型的表,分别是:
用户表:
图书信息表:
在用visualstudio2008连接该数据库时,代码为:
SqlConnectioncon=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=图书信息表;IntegratedSecurity=True";
SqlConnectioncon=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=用户表;IntegratedSecurity=True";
再根据需要进行其他操作。
界面实现
总体界面
如图所示,该系统共有8个windows窗体以及其他必要功能模块。
登录界面实现
如图所示:
程序流程图
登录界面部分主要代码:
Stringm_user=this
Stringm_password=this
if==0)
{
("用户名称不能为空");
return;
}
StringselectCmd="select用户from表1where[用户]='"+m_user+"'and[密码]="+m_password;
StringconnStr=;OleDbConnectionconn;
OleDbCommandcmd;
OleDbDataReaderreader;
conn=newOleDbConnection(connStr);
();
cmd=newOleDbCommand(selectCmd,conn);
reader=();
if())
{
();
主界面m=new主界面();
();
}
else
{
("用户名称或密码不对!
");
}
();
在该模块设计中,还添加了对用户名和密码的判断,若用户名或密码错误,则不能进入主界面,若用户名和密码没填写,则会有消息框弹出提示输入完整信息。
用户管理界面实现
1.添加用户界面
部分主要代码:
public添加图书()
{
InitializeComponent();
}
privatevoid添加图书_Load(objectsender,EventArgse)
{
this.图书信息(this.图书信息表DataSet.图书信息_1);
}
stringconnStr,selectCmd;
connStr="DataSource=XUWEI-PC;InitialCatalog=用户表;IntegratedSecurity=True";
selectCmd="Select*From用户表OrderBy编号ASC";
SqlConnectionconn;
SqlDataAdaptermyAdapter;
DataSetmyDataSet=newDataSet();
conn=newSqlConnection(connStr);
();
myAdapter=newSqlDataAdapter(selectCmd,conn);
(myDataSet,"用户表");
=["用户表"];
privatevoidbutton1_Click(objectsender,EventArgse)
{
intm=0;
if==""||==""||=="")
{
("请输入完整信息!
");
}
else
{
SqlConnectioncon=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=用户表;IntegratedSecurity=True";
SqlCommandcmd=();
="select*from用户表where用户名='"++"'";
();
SqlDataReaderdr=();
if())
{
("用户名"++"已经存在!
");
();
}
else
{
SqlConnectionconn=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=用户表;IntegratedSecurity=True";
SqlCommandcmdd=();
="insertinto用户表(编号,用户名,密码)"+"values('"++"','"++"','"++"')";
();
m=();
if(m==1)
{
("添加用户成功!
")
ShowPerson();
}
2.删除用户界面
程序流程图
如图所示:
部分主要代码:
SqlConnectioncon=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=用户表;IntegratedSecurity=True";
SqlCommandcmd=();
="deletefrom用户表where用户名='"++"'";
=con;
();
intd=();
if(d==1)
("删除成功");
图书管理界面实现
1.添加图书界面
如图所示:
部分主要代码:
voidShowPerson()
{
stringconnStr,selectCmd;
connStr="DataSource=XUWEI-PC;InitialCatalog=图书信息表;IntegratedSecurity=True";
selectCmd="Select*From图书信息_1OrderBy图书编号ASC";
SqlConnectionconn;
SqlDataAdaptermyAdapter;
DataSetmyDataSet=newDataSet();
conn=newSqlConnection(connStr);
();
myAdapter=newSqlDataAdapter(selectCmd,conn);
(myDataSet,"图书信息_1");
=["图书信息_1"];
}
privatevoidbotton1_Click(objectsender,EventArgse)
{
{
if=="")
("请输入图书编号");
else
{
SqlConnectionconn=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=图书信息表;IntegratedSecurity=True";
SqlCommandcmdd=();
="select*from图书信息_1where图书名称='"++"'";
();
SqlDataReaderdr=();
if())
{
("图书名称"++"已经存在!
");
();
}
else
{{
stringa=b=c=d=er=f=con=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=图书信息表;IntegratedSecurity=True";
SqlCommandcmd=();
="insertinto图书信息_1(图书编号,图书名称,图书作者,图书出版厂家,图书借阅时间,图书价格)"+"values('"+a+"','"+b+"','"+c+"','"+d+"','"+er+"','"+f+"')";
();
intdd=()
if(dd==1)
{
("添加成功!
");
ShowPerson();
}
privatevoidbutton2_Click(objectsender,EventArgse)
{
();
}
2.删除图书界面
程序流程图
如图所示:
部分主要代码:
DialogResultresult=newDialogResult();
result=("确定要删除该设备?
","警告!
",,;
switch(result)
{
case:
{
SqlConnectioncon=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=图书信息表;IntegratedSecurity=True";
SqlCommandcmd=();
="deletefrom图书信息_1where图书名称='"++"'";
=con;
();
intd=();
if(d==1)
("删除成功");
}break;
case:
break;
}
3.浏览图书界面
如图所示:
部分主要代码:
InitializeComponent();
SqlConnectioncon=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=图书信息表;IntegratedSecurity=True";
stringco="select*from图书信息_1";
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter(co,con);
(ds);
=[0];
privatevoid浏览图书_Load(objectsender,EventArgse)
{
this.图书信息(this.图书信息表DataSet1.图书信息_1);
}
privatevoidbutton1_Click(objectsender,EventArgse)
{
();
}
4.查询图书界面
程序流程图
如图所示:
部分主要代码:
stringtempValue=[].ToString();
SqlConnectioncon=newSqlConnection();
="DataSource=XUWEI-PC;InitialCatalog=图书信息表;IntegratedSecurity=True";
if(tempValue=="图书编号")
{
stringco="select*from图书信息_1where图书编号='"++"'";
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter(co,con);
(ds);
=[0];
}
if(tempValue=="图书名称")
{
stringco="select*from图书信息_1where图书名称='"++"'";
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter(co,con);
(ds);
=[0];
}
if(tempValue=="图书作者")
{
stringco="select*from图书信息_1where图书作者='"++"'";
DataSetds=newDataSet();
SqlDataAdapterda=newSqlDataAdapter(co,con);
(ds);
=[0];
}
if(tempVa