图书馆信息管理系统实习报告.docx
《图书馆信息管理系统实习报告.docx》由会员分享,可在线阅读,更多相关《图书馆信息管理系统实习报告.docx(26页珍藏版)》请在冰豆网上搜索。
图书馆信息管理系统实习报告
东北石油大学
课程设计
课程数据库课程设计
题目图书馆信息管理系统
院系计算机与信息技术学院
专业班级信息09-1
学生姓名魏冬冬
学生学号090701140116
指导教师
2011年7月9日
东北石油大学课程设计任务书
课程数据库课程设计
题目图书馆信息管理系统
专业电子信息科学与技术姓名魏冬冬学号*********116
一、主要内容
数据库课程设计的目的是让学生综合运用学过的知识,开发一个小型的数据库信息管理系统。
系统主要实现以下几个功能:
图书入库管理;图书出库管理;图书入库统计;图书出库统计;能查询各种信息。
数据库的设计包含以下实体:
1.图书(图书编号、图书名称、作者、版次、出版社);
2.书库(书库编号、名称、位置);
3.读者(借书证号,姓名,性别,年龄,单位,联系电话);
4.系统信息(用户名、密码);
二、基本要求:
1.掌握DBMS的基本工作原理;
2.掌握数据库设计:
进行数据需求分析,给出E-R图,关系模型,表结构;
3.掌握数据库实现:
建立数据库和表;进行数据库链接;
4.掌握系统设计与实现:
画出系统的功能模块图,设计出主界面和各窗体;
5.按时提交规范课程设计报告。
三、主要参考资料:
[1]萨师煊,王珊.数据库系统概论[M].高等教育出版社2000.2
[2]李应伟.ASP.NET数据库高级教程(C#篇)[M].清华大学出版社,2004.7
[3]郑阿奇.C#实用教程[M],电子工业出版社,2008.6
[4]唐学忠.SQLServer2000数据库教程[M],电子工业出版社,2005.5
[5]廖信博.ManagementInformationSystemCase[M].机械工业出版社2005.4
完成期限第19周到第20周
指导教师
专业负责人
2011年7月9日
参考文献22
第1章概述
1.1开发工具的介绍
VisualStudioC#
VisualStudio是微软公司推出的开发环境。
是目前最流行的Windows平台应用程序开发环境。
VisualStudio2010版本于2010年4月12日上市,其集成开发环境(IDE)的界面被重新设计和组织,变得更加简单明了。
VisualStudio2010同时带来了NETFramework4.0、MicrosoftVisualStudio2010CTP(CommunityTechnologyPreview—CTP),并且支持开发面向Windows7的应用程序。
除了MicrosoftSQLServer,它还支持IBMDB2和Oracle数据库。
C#(CSharp)是微软(Microsoft)为.NETFramework量身订做的程序语言,C#拥有C/C++的强大功能以及VisualBasic简易使用的特性,是第一个组件导向(Component-oriented)的程序语言,和C++与Java一样亦为对象导向(object-oriented)程序语言。
SQLserver2005
SQL(StructuredQueryLanguage),结构化查询语言。
SQL语言的主要功能就是同各种数据库建立联系,进行沟通。
按照ANSI(美国国家标准协会)的规定,SQL被作为关系型数据库管理系统的标准语言。
SQL语句可以用来执行各种各样的操作,例如更新数据库中的数据,从数据库中提取数据等。
绝大多数流行的关系型数据库管理系统都采用了SQL语言标准。
虽然很多数据库都对SQL语句进行了再开发和扩展,但是包括Select,Insert,Update,Delete,Create,以及Drop在内的标准的SQL命令仍然可以被用来完成几乎所有的数据库操作。
1.2程序设计思想
目前,在高校系部图书管理中,师生查找图书都是采用传统的查询方法,让读者在图书分类架上一本本地去查找,这样不仅很难找到自己所需要的图书,而且费时费力。
而图书管理员在办理借书登记、查询读者借书记录时,管理人员必须在借书记录上一个个去查找,而要找到借书记录并删除该记录是件很麻烦的事情。
每当新书入库时,图书管理员既要填写新书入库卡片,又要填写新书入库账目,不仅工作量大,而且,在新书入库后要经历较长的时间方能借出。
另外,有的系部因图书数量有限,必须对图书实行限量借阅,因此,要实施弹性借书方法是件很困难的事。
为提高图书查询效率,减少系部图书管理员的工作负担,有必要开发一个小型图书管理软件来对系部图书实施有效管理。
该系统必须具备以下功能:
1、能对各类图书实行分类管理;
2、提供必要的读者信息;
3、能进行各种高级查询(如未还书目的查询;已还书目的查询等);
4、具有图书检索功能;
5、能管理登录系统的图书管理员等。
这样不仅能较好地帮助读者在最短的时间内找到自己所需要的图书书目、编号,而且能让图书管理员以最高的效率办理借阅手续。
本系统在visualstudio2010及SQLserver2005环境下编译,能完成一些图书管理的基本功能,也有待完善。
第2章需求分析
2.1图书馆信息管理系统概述
在当今社会,随着计算机的发展及网络技术的应用,INTERNET应用在全球范围内的普及。
当今社会正快速向信息化社会前进,信息自动化的作用也越来越大。
而在日常生活中信息技术的不断融入,在技术越来越先进的同时,我们应该从以前繁琐的事务中解放出来,来提高了我们的工作效率。
而目前在大的学校的图书馆已经有一整套比较完整的信息管理系统,而在一般小型的学校图书馆中工作大部分还是进行着手工管理,工作起来效率很低,并且不能及时了解图书馆各类图书的存库,学生们比较需求的图书难以在短时间里找到、图书的入库和更新比较麻烦等等,不便于动态及时调整图书结构。
为了更好的适应当前学生的借阅需求,计算机信息化管理提供给我们的处理信息及时快捷,在工作中不仅减缓了压力。
因此我们利用计算机提供给我们信息,及时的调整学校图书馆图书结构,并且对学生们的借阅过程形成一整化动态的管理。
谈到管理信息系统,自然离不开数据库的支持。
数据库技术,是计算机技术的一个重要的分支。
在人类迈向21世纪知识经济的时候,信息变为经济发展的战略资源,信息技术已成为社会生产力重要的组成部分.人们充分认识到,数据库是信息化社会中信息资源管理与开发利用的基础.对于一个国家,数据库的建设规模,使用水平已成为衡量该国信息化程度的重要标志。
2.2系统用户分析
普通的图书馆用户借书之前需要查询图上的信息及图书所在的图书书库及书库所在的位置,需要注册新的用户名,可以修改密码,可以通过本系统借书,还书等操作。
系统管理员需要通过本系统添加系统的用户,需要查询图书馆的读者和图书馆管理系统的用户,并可以修改本系统普通用户的密码。
还需要通过本系统进行一些必要的图书录入和录出工作。
2.3功能需求分析
应用本系统需要实现一些简单的图书查询,书库查询,普通用户的借书,还书功能,普通用户可以在本系统中注册,修改登录密码操作。
本系统的管理员可以应用本系统进行图书录入和录出操作,修改普通用户的登录密码,管理员还需要查询读者及用户的信息,以及时了解用户和读者的动态。
还需要了解书库中的图书信息,以确定是否需要在书库中录入或录出图书。
第3章概要设计
3.1数据库概念模型设计
普通用户登录后进入到首页界面,如图3-1所示。
图3-1系统普通用户首页界面
系统E-R图,具体体现了系统的一些需求分析,以及各个层次之间的联系。
图3-2全局E-R图
3.2数据库逻辑设计
1.用户表(login),该表用来存放用户的登录名和密码。
表3-1用户表
字段名
类型
是否为空
宽度
其他
用户名
Char
否
10
primarykey
密码
Char
否
10
无
2.读者信息表(reader),该表用来存放读者的信息。
表3-2读者信息表
字段名
类型
是否为空
宽度
其他
借书证号
Char
否
10
primarykey
姓名
Char
否
10
无
性别
Char
否
10
无
年龄
Char
否
10
无
工作单位
Char
否
10
无
联系方式
Char
否
10
无
3.图书表(book),该表用户存放图书的信息及图书的具体位置
表3-3图书表
字段名
类型
是否为空
宽度
其他
图书编号
Char
否
10
primarykey
图书名称
Char
否
10
无
作者
Char
否
10
无
版次
Char
否
10
无
出版社
Char
否
10
无
图书位置
Char
否
10
无
4.书库表(bookstore),该表用于存放书库的基本信息。
表3-4书库表
字段名
类型
是否为空
宽度
其他
书库编号
Char
否
10
无
名称
Char
否
10
无
位置
Char
否
10
无
5.图书表和书库表建立的一个视图(bbs),用于存放每个书库中存放的图书
表3-5基于图书和书库的视图
字段名
类型
是否为空
宽度
其他
书库编号
Char
否
10
无
名称
Char
否
10
无
出版社
Char
否
10
无
版次
Char
否
10
无
作者
Char
否
10
无
图书名称
Char
否
10
无
图书编号
Char
否
10
无
3.3数据库物理设计与实现
从理论‘关系模型’到实现/实施‘数据库建立’,物理文件的安排和建立索引。
数据库物理设计是指设计出数据库的物理数据模型,它是数据库在物理设备上的具体实现,即数据库服务器物理空间上的表空间、表、字段、索引、视图、储存过程、触发器,以及相应的数据字典的设计。
用数据库企业管理器建立数据库,数据库名为MYDB,然后再在该数据库上建立用户表,表名为login(用户名,密码)、读者信息表reader(借书证号,姓名,性别,年龄,工作单位,联系方式)、图书表book(图书编号,图书名称,作者,版次,出版社,图书位置)、书库表表bookstore(书库编号,名称,位置)、基于图书和书库的视图(书库编号,名称,出版社,版次,作者,图书名称,图书编号)
第4章详细设计
4.1系统模块设计
图4-1系统模块图
4.2关键步骤及代码
4.2.1数据库连接配置
SqlConnectioncon=newSqlConnection("server=.;database=MYDB;uid=sa;pwd=5880290");
4.2.2系统登录页面
SqlCommandcmd=newSqlCommand(string.Format("SELECTCOUNT(*)FROMloginWHERE用户¡名='{0}'AND密¨码='{1}'",this.user.Text.Trim(),this.pas.Text.Trim()),con);
try
{
con.Open();
if((int)cmd.ExecuteScalar()==1)
{
DialogResultm=MessageBox.Show(user.Text+"欢?
迎®-回?
来¤¡ä!
ê?
","消?
息¡é框¨°",MessageBoxButtons.YesNo,MessageBoxIcon.Information);
if(m==DialogResult.Yes)
{
this.Hide();
WelcomeWelcome=newWelcome();
Welcome.label1.Text=this.user.Text;
Welcome.Show();
}
}
else
{
MessageBox.Show("登Ì?
录?
失º¡ì败㨹,ê?
请?
重?
新?
输º?
入¨?
!
ê?
","消?
息¡é框¨°",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
pas.Clear();
label5.Visible=true;
}
}
catch(Exceptionex)
{
MessageBox.Show("数ºy据Y库a操¨´作Á¡Â失º¡ì败㨹!
"+ex.Message,"提¬¨¢示º?
",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
finally
{
con.Close();
}
}
4.2.3添加功能模块
注册用户代码如下:
SqlConnectioncon=newSqlConnection("server=.;database=MYDB;uid=sa;pwd=5880290");
SqlCommandcmd=newSqlCommand(string.Format("insertintologin(用®?
户¡ì名?
密¨¹码?
)values('{0}','{1}')",
znuser.Text.Trim(),znpas.Text.Trim()),con);
SqlCommandcm=newSqlCommand(string.Format("selectcount(*)fromloginwhere用®?
户¡ì名?
='{0}'",znuser.Text),con);
try
{
con.Open();
if(znuser.Text==""||znpas.Text=="")
{
MessageBox.Show("用户名或¨密¨码不能¨为空","消息框¨°",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
}
elseif(znpas.Text!
=zpnpas.Text)
{
MessageBox.Show("两次输入的密¨码不一致,请重新输入!
","错ä误¨提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
label1.Visible=true;
}
elseif((int)cm.ExecuteScalar()>0)
{
MessageBox.Show("该用户名已经被注册,请重新输入","错误提¬示",MessageBoxButtons.OK,MessageBoxIcon.Error);
znuser.Clear();
znpas.Clear();
zpnpas.Clear();
}
else
{
if((int)cmd.ExecuteNonQuery()==1)
{
MessageBox.Show("恭喜您注册成功|\n您的用户名?
是:
"+znuser.Text+"\n密码是:
êo"+znpas.Text);
}
}
}
catch(Exceptionex)
{
MessageBox.Show("数据库操作失败!
"+ex.Message,"提¬示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
finally
{
con.Close();
}
录入图书的操作代码如下:
SqlConnectioncon=newSqlConnection("server=.;database=MYDB;uid=sa;pwd=5880290");
SqlCommandcmd=newSqlCommand(string.Format("insertintobookvalues({0},'{1}','{2}',{3},'{4}',{5})",bno.Text.Trim(),bname.Text.Trim(),bauthor.Text.Trim(),brank.Text.Trim(),bpub.Text.Trim(),blocation.Text.Trim()),con);
try
{
con.Open();
if((int)cmd.ExecuteNonQuery()==1)
{
MessageBox.Show("图书入库成¨|!
");
bno.Clear();bname.Clear();bauthor.Clear();brank.Clear();bpub.Clear();blocation.Clear();
}
}
catch(Exceptionex)
{
MessageBox.Show("数据库操¨作失º败!
"+ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
finally
{
con.Close();
}
4.2.4编辑和删除功能模块
修改密码的操作代码如下:
SqlConnectioncon=newSqlConnection("server=.;database=MYDB;uid=sa;pwd=5880290");
SqlCommandcmd=newSqlCommand(string.Format("updateloginset密¨码='{0}'where(密¨码='{1}'and用户名='{2}')",npas.Text.Trim(),inipas.Text.Trim(),this.label5.Text.Trim()),con);
try
{
con.Open();
if(npas.Text==""||inipas.Text=="")
{
MessageBox.Show("密¨码不能¨为空!
","错ä误提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
}
elseif(npas.Text!
=pnpas.Text)
{
MessageBox.Show("两次输入的密¨码不一致","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
pnpas.Clear();
label4.Visible=true;
}
elseif(inipas.Text==npas.Text)
{
MessageBox.Show("请输入一个不同的密码","错误提示º?
",MessageBoxButtons.OK,MessageBoxIcon.Error);
npas.Clear();pnpas.Clear();
}
elseif((int)cmd.ExecuteNonQuery()==1)
{
MessageBox.Show("恭喜您密码修改成功|\n您¨新密码是º:
"+npas.Text,"消息框",MessageBoxButtons.YesNo);
this.Close();
Mainwmainw=newMainw();
mainw.Show();
}
else
{
MessageBox.Show("初始密码与当前用户名不符","消?
息¡é框¨°",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);}
inipas.Clear();npas.Clear();pnpas.Clear();
}
catch(SqlExceptionex)
{
MessageBox.Show("数据库操¨作失败!
"+ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
finally
{
con.Close();
}
录出图书的操作代码如下:
SqlConnectioncon=newSqlConnection("server=.;database=MYDB;uid=sa;pwd=5880290");
SqlCommandcmd=newSqlCommand(string.Format("deletefrombookwhere(图书编号={0}or(图书名称='{1}'and作者='{2}'))",bno.Text.Trim(),bname.Text.Trim(),bauthor.Text.Trim()),con);
try
{
con.Open();
if((int)cmd.ExecuteNonQuery()==1)
{
MessageBox.Show("图书删¦除成功!
");
bno.Clear();bname.Clear();bauthor.Clear();brank.Clear();bpub.Clear();blocation.Clear();
}
else
{
MessageBox.Show("删除失ì败!
图书不存在","消息框",MessageBoxButtons.OKCancel,MessageBoxIcon.Error);
}
}
catch(Exceptionex)
{
MessageBox.Show("数据库操作失败!
"+ex.Message,"提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
}
finally
{
con.Close();
}
4.2.5查询模块
查询图书代码如下:
stringconnStr="server=.;database=MYDB;uid=sa;pwd=5880290";
SqlConnectionconn=newSqlConnection(connStr);
SqlCommandselcom=newSqlCommand(string.Format("select*frombookwhere图书名称='{0}'and作者='{1}'",textBox1.Text,textBox2.Text),conn);
SqlDataAdapterda=newSqlDataAdapter();
da.SelectCommand=selcom;
DataSetds=newDataSet();
da.Fill(d