图书馆管理系统课程设计报告文档格式.docx
《图书馆管理系统课程设计报告文档格式.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统课程设计报告文档格式.docx(42页珍藏版)》请在冰豆网上搜索。
最为重要的,.NET将改变因特网的行为方式:
软件将变成为服务。
与Microsoft的其它产品一样,.NET与Windows平台紧密集成,并且与其它微软产品相比它更进一步:
由于其运行库已经与操作系统融合在了一起,从广义上把它称为一个运行库也不为过。
简而言之,.NET是一种面向网络、支持各种用户终端的开发平台环境。
微软的宏伟目标是让Misrosoft.NET彻底改变软件的开发方式、发行方式、使用方式等等,并且不止是针对微软一家,而是面向所有开发商与运营商!
.NET的核心内容之一就是要搭建第三代因特网平台,这个网络平台将解决网站之间的协同合作问题,从而是最大限度地获取信息。
在.NET平台上,不同网站之间通过相关的协定联系在一起,网站之间形成自动交流,协同工作,提供最全面的服务。
C#既具有C++语言功能强大、灵活,又具有VB的简单易学、高效的优点,利用它可以方便快捷地开发基于文字处理、图开图像、数据库、多媒体、网络的Windows应用程序和Web应用程序,它对于迅速崛起的XML和WebService也提供了全方位的支持。
因此,越来越多的人选择它作为程序设计语言。
可视化编程:
用传统程序设计语言设计程序时,都是通过编写程序代码来设计用户界面,在设计过程中看不到界面的实际显示效果,必须编译后运行程序才能观察。
如果对界面的效果不满意,还要回到程序中修改。
有时候,这种编程-编译-修改的操作可能要反复多次,大大影响了软件开发效率。
MicrosoftVisualStudio2005提供了可视化设计工具,把Windows界面设计的复杂性“封装”起来,开发人员不必为界面设计而编写大量程序代码。
只需要按设计要求的屏幕布局,用系统提供的工具,在屏幕上画出各种“部件”,即图形对象,并设置这些图形对象的属性。
MicrosoftVisualStudio2005自动产生界面设计代码,程序设计人员只需要编写实现程序功能的那部分代码,从而可以大大提高程序设计的效率。
面向对象的程序设计
MicrosoftVisualStudio2005支持面向对象的程序设计,但它与一般的面向对象的程序设计语言(C++)不完全相同。
在一般的面向对象程序设计语言中,对象由程序代码和数据组成,是抽象的概念;
而MicrosoftVisualStudio2005则是应用面向对象的程序设计方法,把程序和数据封装起来作为一个对象,并为每个对象赋予应有的属性,使对象成为实在的东西。
在设计对象时,不必编写建立和描述每个对象的程序代码,而是用工具画在界面上,MicrosoftVisualStudio2005自动生成对象的程序代码并封装起来。
每个对象以图形方式显示在界面上,都是可视的。
1.2系统的功能简介
本系统主要可以实现以下的管理功能:
读者管理、流通管理、图书管理、系统管理等等。
(1)项目规划
图书馆管理系统是一个典型的数据库应用程序,由系统管理、读者管理、流通管理、图书管理等模块组成,特规划如下:
(2)系统管理模块
该模块的主要任务是维护系统的正常运行和安全性设置,包括新图书管理员的添加、修改密码、照片的添加等等。
(3)读者管理模块
该模块的功能是实现对读者类别的设置、读者档案的管理、借书证挂失与恢复以及过期续证管理。
(4)流通管理模块
该模块的主要功能是对图书的借阅、归还、逾期清单和过期后罚款的一些管理。
(5)图书管理模块
该模块的主要功能有:
图书类别设置、图书档案管理、出版社管理、图书注销、图书征定、图书验收、图书盘点等对图书的管理。
(6)系统开发的目标
图书馆管理系统总的实现目标是:
建立以馆藏目录为基础的书目数据库;
长期的目标还要实现直接浏览电子图书以及馆际间的图书互借等。
第二章图书馆管理系统数据库分析
2.1图书馆管理系统示意图
Ø
系统流程图如下:
2.2图书馆管理系统数据表清单:
数据表名称
数据表用途
出版社
保存图书对应出版社的基础信息
读者类型
保存读者类型及相关信息
读者信息
保存读者的各种信息
供应商
保存图书供应商信息
管理员
保存用户信息
期刊丢失
保存期刊丢失记录
期刊罚款
保存期刊罚款记录
期刊归还
保存期刊归还记录
期刊借阅
保存期刊借阅记录
期刊类型
保存期刊类型及相关信息
期刊信息
保存期刊信息
期刊征订
保存期刊征订入库记录
期刊注销
保存期刊注销记录
书架
保存图书馆内数据的基础信息
图书丢失
保存图书丢失记录
图书罚款
保存图书罚款记录
图书馆
保存图书馆的基础信息
图书归还
保存图书归还记录
图书借阅
保存图书借阅记录
图书类型
保存图书类型及相关信息
图书信息
保存图书信息
图书征订
保存图书征订入库记录
图书注销
保存图书注销记录
文献尺寸
保存文献(包括图书和期刊)的尺寸基础信息
文献等级
保存文献(包括图书和期刊)的等级基础信息
文献附件
保存文献(包括图书和期刊)的附件基础信息
文献印刷
保存文献(包括图书和期刊)的印刷基础信息
文献语系
保存文献(包括图书和期刊)的语系基础信息
第三章图书馆数据库设计
3.1创建数据库
打开SQLServer企业管理器,新建一个数据库,名称为xmm。
利用光盘中的脚本代码“建库脚本\图书馆管理系统.sql”文件创建数据库对象,完成数据库的设计.也可以利用”建库脚本\xmm.bak”文件直接恢复数据库,这样数据库中存在初始的图书信息和系统数据.
3.2数据库设计
(1)本系统中所涉及到的主要实体共有六个数据表:
a)“读者信息”表:
----{条形码,编号,姓名,性别,类型,出生日期,有效证件,证件号码,联系方式,登记日期,有限期至,操作员,备注,图书借阅次数,期刊借阅次数,是否挂失}
b)“图书信息”表:
----{条形码,编号,书名,类型,作者,译者,ISBN,出版社,价格,页码,书架名称,现存量,库存总量,入库时间,操作员,简介,借出次数,是否注销}
c)“图书借阅”表:
----{借阅编号,图书编号,读者编号,借阅时间,应还时间,续借次数,操作员,状态}
d)“图书归还”表:
----{归还编号,图书编号,读者编号,退还押金,归还时间,操作员,确认归还}
e)“图书征订”表:
----{征订编号,图书编号,订购者,订购者联系方式,订购数量,订购单价,订购日期,是否验收,验收日期,操作员}
f)“图书罚款”表:
----{罚款编号,图书编号,读者编号,罚款日期,应罚日期,应罚金额,实收金额,是否交款,备注}
g)“管理员”表:
----{编号,姓名,年龄,联系电话,地址,照片,权限,说明,密码}
(2)各表的物理结构如下:
读者信息表:
字段名称
类型
宽度
是否为空
条形码
Varchar
20
否
编号
姓名
10
性别
4
出生日期
Smallldatetime
是
有效证件
30
证件号码
联系方式
200
登记日期
Smalldatetime
有限期至
操作员
备注
Ntext
图书借阅次数
Int
期刊借阅次数
是否挂失
bit
图书信息表:
varchar
书名
100
50
作者
译者
ISBN
价格
Money
页码
书架名称
现存量
库存总量
入库时间
简介
借出次数
是否注销
Bit
图书借阅表:
借阅编号
16
图书编号
读者编号
5
借阅时间
8
应还时间
绫借次数
状态
图书归还表:
归还编号
退还押金
归还时间
确认归还
图书征订表:
征订编号
订购者
订购者联系方式
400
订购数量
订购单价
订购日期
是否验收
验收日期
图书罚款表:
罚款编号
罚款日期
应罚金额
实收金额
是否交款
管理员表:
年龄
联系电话
住址
照片
Image
权限
说明
密码
第四章系统的功能
下面的一些界面都为系统的一些主要运行界面.
4.1系统登陆界面:
本界面的主要功能是为了对系统进行安全性管理,本系统的用户名和密码保存在管理员表中,本系统根据不同的用户而设置了不同的权限,例:
(用户名:
刘飞,密码:
123)即可登陆.
图4.1系统登陆界面
4.2系统主界面:
本界面是系统的主界面,在本界面上集成了本系统的所有功能,共有7个功能菜单和21个子菜单(功能模块),从而实现了本系统从读者管理、流通管理、图书管理、系统管理等系统的具体功能,同时,在系统管理模块中可以完成对本系统的安全性管理。
图4.2系统主界面
4.3用户管理模块:
此界面是本系统的安全性设置模块,根据不同的管理员对本系统的管理不同,从而实行了分级管理,对用户的权限和类别进行了分类管理。
4.4读者类别管理模块:
因为本系统中有些功能模块具有相似之处,因此在本文只用此模块进行一个简单的说明。
其它的相似模块的代码可能参阅本模块的设计思路。
4.5图书借阅:
本模块为系统的主要工作模块,是管理日常的图书的借阅的一些工作,别一图书归还与之类似,在这里就不一一列出了.
4.6图书类别设置:
本模块为管理图书馆内的图书类型,在入库的时候做出分类,以便以后便易查找.为借阅者带来便利.
第五章课程设计总结
在本系统的开发过程中,由于我是初次开发软件,在知识、经验方面都存在着不足。
另外,在整个开发的过程中,时间也比较仓促。
因此,该系统必然会存在一些缺陷和不足。
因为对图书馆管理图书的整个流程不够熟悉,在需求分析时未能做到完全满足用户的需求。
虽然网络在图书馆管理系统中的应用不是很多,但是未来的发展方向,在本次开发过程由于硬件的限制,未能实现网络功能,因此在以后的系统更新过程中可能会造成一些不必要的数据损失。
尽管本管理系统存在着很多不足,但其功能全面、易于日后程序更新、数据库管理容易、界面友好、操作方便、效率高、安全性好等优点是本管理系统所必需的。
相信本图书馆管理系统是一套学校在日常管理中必不可少的管理软件,通过开发这个系统,我掌握了项目开发的本过程,了解了基本知识巩固了我对C#2005的学习,但在这次毕业设计中的最大收获并不是掌握这几门开发工具的应用,而是学会了设计系统的思维方法,以及与同学们之间相互帮助的精神。
在课程设计总结即将完成之际,回顾紧张但又充实的学习班和开发过程,本人在此向所有关心我的及帮助我的老师和同学们致以最真诚的感谢。
在本次毕业设计中,我从指导老师--------朱会东老师,身上学到了很多东西。
他认真负责的工作态度,严谨的治学精神和深厚的理论水平都使我收益匪浅。
他无论在理论上还是在实践中,都给与我很大的帮助,使我得到很大的提高,这对于我以后的工作和学习都有一种巨大的帮助,在此感谢他耐心的辅导。
另外,我还要感谢在这几年来对我有所教导的老师,他们孜孜不倦的教诲不但让我学到了很多知识,而且让我掌握了学习的方法,更教会了我做人处事的道理,在此表示感谢。
同时,在系统开发过程中还有段传鑫同学也给了我不少帮助,这里一并表示感谢。
第六章:
参考文献
[1]周佩德.《数据库原理及应用》.电子工业出版社
[2]马骏等,MicrosoftVisualStudio2005C#程序设计教程,2008
[6]王要武,管理系统,电子工业出版社,2005
[7]李红等编著,管理信息系统开发与应用,电子工业出版社,2005
第七章:
主要代码
主要模块程序代码如下:
程序登陆界面:
publicintpower;
privatevoidbutton1_Click(objectsender,EventArgse)
{
sqlConnection1.Open();
if(textBox1.Text=="
"
||textBox2.Text=="
)
MessageBox.Show("
请输入用户名和密码,然后再登录!
);
return;
}
stringsql="
select权限from管理员信息where姓名='
+textBox1.Text.Trim()+"
'
and密码='
+textBox2.Text.Trim()+"
;
SqlCommandmycom=null;
try
mycom=newSqlCommand(sql,sqlConnection1);
SqlDataReadermydr=mycom.ExecuteReader();
if(mydr.HasRows)
mydr.Read();
power=Convert.ToInt32(mydr[0]);
switch(power)
case220:
this.读者管理ToolStripMenuItem.Enabled=true;
break;
case330:
this.图书管理ToolStripMenuItem.Enabled=true;
case110:
this.流通管理ToolStripMenuItem.Enabled=true;
this.系统管理ToolStripMenuItem.Enabled=true;
default:
你没有使使用本系统的权限"
登录成功!
panel1.Hide();
label4.Visible=true;
mydr.Close();
else
没有这个用户或密码不正确,请重新登录!
catch(SqlExceptiona)
MessageBox.Show(a.Message,"
错误"
sqlConnection1.Close();
读者类别管理模块:
publicBindingManagerBaseNavigator;
publicvoidTextReadOnly(boolA)
textBox2.ReadOnly=A;
textBox3.ReadOnly=A;
textBox4.ReadOnly=A;
textBox5.ReadOnly=A;
privatevoid读者类型管理_Load(objectsender,EventArgse)
sqlDataAdapter1.Fill(dataSet11,"
读者类型"
Navigator=this.BindingContext[dataSet11,"
];
TextReadOnly(true);
dataGrid1.UnSelect(Navigator.Position);
Navigator.Position=0;
dataGrid1.Select(Navigator.Position);
dataGrid1.CurrentRowIndex=Navigator.Position;
privatevoidbutton2_Click(objectsender,EventArgse)
if(Navigator.Position!
=0)
Navigator.Position--;
privatevoidbutton3_Click(objectsender,EventArgse)
=Navigator.Count-1)
Navigator.Position++;
p