图书管理系统的建立
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘 要
二十一世纪是信息的社会,信息作为社会最主要的资源,将成为战略资源引起人们广泛的关注。如何获取信息?图书是我们最好的获取信息的方式,但由于图书馆图书收藏量大大增加,使传统的图书管理员的工作日益繁重起来。迫使人们起用新的管理方法来管理图书,如何把图书管理员从繁重的工作中解脱出来呢?
科学技术日新月异的进步,让人类生活发生了巨大的变化,计算机技术的飞速发展,使各行各业在计算机技术应用方面得到了广泛的普及和使用。信息化时代的到来成为不可抗拒的潮流,人类文明正在进入一个崭新的时代。因此,图书管理系统也以方便、快捷、费用低的优点正慢慢地进入人们的生活,将传统的图书管理方式彻底的解脱出来,提高效率,减轻工人人员以往繁忙的工作,减小出错的概率,使读者可以花更多的时间在选择书和看书上。从而使人们有更多时间来获取信息、了解信息、掌握信息 。
关键词:图书管理 系统设计 信息 think58 [来源:http://www.think58.com]
目 录
摘 要........................................................1
目 录........................................................3
第一章 导 论 ...............................................5
1.1所用开发语言简介.............................................6
1.1.1 VC++的特点 ...............................................6
1.1.2 VC++控件及其属性简介 .....................................6
1.1.3系统数据访问接口的选择.....................................7
第二章 系统分析阶段 ............................................7
2.1系统功能模块 ..............................................8
2.1.1 功能的实现 ..............................................8
2.1.2 模块框架图 ..............................................9
2.2系统数据分析 ...............................................10
第三章 设计阶段 ...............................................13 本文来自think58 [资料来源:http://think58.com]
3.1概要设计 ...............................................13
3.1.1数据库概论及SQL、ACCESS2000简介 ..........................14
3.2 详细设计 ...............................................20
3.2.1数据信息准备 ...............................................20
3.2.2程序数据流图 ...............................................20
第四章 设计思想 .............................................27
4.1 面向对象的程序设计..............................................23
4.2 详细设计思想 .............................................24
4.2.1“用户登录”模块设计..................................... ....24
4.2.2“基本资料”维护模块设计:......................................26
4.3 “系统管理”模块设计.........................................35
总结与展望 ......................................................38
结束语 ...............................................39 copyright think58
[资料来源:http://THINK58.com]
参考文献 ...............................................39
致谢语…………………………………………………………………………40
附录:………………………………………………………………………….42
第二章 需求分析阶段
需求分析是在于要弄清用户对开发的数据库应用系统的确切要求。Visual C++ 数据库设计的第一步是明确数据库的目的和如何使用。也就是说需要从数据库中得到哪些信息。明确目的之后,就可以确定您需要保存哪些主题的信息(表),以及每个主题需要保存哪些信息(表中字段)。
要设计一个有效的数据库,必须用系统工程的观点来考虑问题。在系统分析阶段,设计者和用户双方要密切合作,共同收集和分析数据管理中信息的内容和用户对处理的要求。
根据系统分析,图书管理系统的要求如下 :
(1)需求分析:
① 能够输入图书的综合情况和进行新书入库、现有图书信息修改以及删除;
② 能够实现对读者档案的查询和编辑管理;
③ 能够进行罚款功能;
④ 能够进行借阅历史的查询功能;
(2)系统性能要求:
① 系统安全、可靠;
② 功能齐全;
③ 操作方便、界面友好; 本文来自think58 [资料来源:THINK58.com]
④ 易于维护和扩充。
(3)系统的功能分析:
密码设置:每个操作员均有自己的密码,可以防止非本系统人员进入本系统;又因每个人的权限不一致,故可以防止越权操作。
资料维护:为了存放图书、读者档案的全部数据,本系统将每一本图书和每位读者的信息进行管理。系统维护包括对各种表记录的修改、删除、添加等操作。
系统查询:可以按图书编号、借阅证编号等相关信息进行查询
系统管理:进行员工管理、数据备份和数据恢复。
报表统计:包括统计图书信息、读者信息、借阅信息和罚款信息等。
其它操作:包括修改密码、添加用户、页面设置等
2.1系统功能模块
图书管理系统需要实现的功能主要有四大块:“日常工作管理”、“基本资料维护”、“查询”、和“系统管理”模块。其中日常工作管理和基本资料维护是整个系统的核心。
2.1.1 功能的实现:
1.“日常工作”模块:
(1) 借书处理:主要功能是记录借阅证编号和图书编号,进行借书过程。在数据库中插入一条借书记录,该记录包括读者ID、图书ID、借出日期、还书期限、操作员姓名。
(2) 还书处理:主要功能是输入借阅证编号、图书ID,在借阅登记表中找到相应的记录,将该记录的相应数据插入到还书记录中,同时将借书记录删除,并保存在借阅历史记录表中。 think58.com [资料来源:THINK58.com]
(3) 缴纳罚金:输入读者ID,显示该读者的姓名、图书编号、罚款金额和罚款原因,如果读者交纳了罚金,则将借阅登记表的允许借阅标志置为“Y”。删除罚款记录表中该读者对应的记录,将这一条记录同时插入到罚款历史记录表中。
2.“基本资料维护”模块:
(1)图书资料维护:包括新书的入库,以及现有书籍资料的修改和删除。
(2)读者资料维护:包括新会员的资料入库,以及现有会员资料的修改和删除
3.“查询”模块:
(1)图书资料查询:根据相应的图书信息对所有书籍进行所需查询。此查询包括:‘图书分类’、‘图书编号’、‘图书名称’、‘作者’、‘出版社’。
(2)读者资料查询:根据相应的读者资料进行所需查询。 ‘借阅证编号’、‘读者姓名’ 以及‘身份证编号’。
(3)借阅历史记录查询:根据相应的借阅信息进行所需查询。此查询包括:‘借阅证编号’、‘图书编号’、‘借书日期’、‘还书日期’。
(4)罚款历史记录查询:根据相应的罚款信息进行所需查询。此查询包括:‘借阅证编号’、‘罚款日期’、‘罚款原因’。
4.“系统管理”模块:
(1)员工管理:包括新员工信息的录入,密码的修改以及员工信息的删除。
(2)数据备份:对现有的数据库信息的保存。 [资料来源:http://www.THINK58.com]
(3)数据恢复:对数据库信息的恢复
2.1.2 模块框架图
图2-1 模块框架图
内容来自think58
[资料来源:THINK58.com]
2.2系统数据分析
通过对图书管理系统的分析,可以得出该系统涉及三个实体:读者、图书、工作人员。通过对各实体数据关系的整理,我们可以画出如下E—R图:
内容来自think58
图2-2 系统E-R图
这些实体涉及的数据项有:
读者:借阅证编号、姓名、身份证号、最大借书数、止借标志。
图书:图书编号、图书名称、作者、出版社、价格、库存量。
工作人员:员工编号、员工姓名、员工性别、身份证号、登陆密码。
实体之间的联系涉及的数据项有:
借阅信息表:借阅证编号,图书编号1,图书编号2,图书编号3,借书日期1,借书日期2,借书日期3,操作员姓名。
罚款信息表:借阅证编号,读者姓名,图书编号,图书名称,罚款原因,罚款金额,罚款日期,操作员姓名。
内容来自think58
[资料来源:http://THINK58.com]
[资料来源:THINK58.com]图4-1 “图书资料维护”数据流程图
在这里,图书的添加、修改和删除操作都与前面的用户资料维护功能一样,分别调用CRrecordSet提供的AddNew、Edit、Delete成员函数,可方便的实现对数据库的操作,此模块可以实现图书维护的基本功能。
在查看图书基本资料的时候需要用到Crecordset提供的几个成员函数,用来在记录集中滚动,如下所示:
void MoveNext( );//前进一个记录
void MovePrev( );//后退一个记录
void MoveFirst( );//滚动到记录集中的第一个记录
void MoveLast( );//滚动到记录集中的最后一个记录
当图书信息被添加、修改以及删除后,在保存的同时,数据库将会自动更新。系统调用‘void shuixin()’,重画网格。代码如下:
if(m_rsDataSet.IsBOF())
{
m_MSFGrid.SetCols(7);
m_MSFGrid.SetRows (m_rsDataSet.GetRecordCount()+1);
m_MSFGrid.SetColWidth(-1,2360);
//定义网格的表头
m_MSFGrid.SetRow(0);
m_MSFGrid.SetCol(1);
m_MSFGrid.SetText("图书编号");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(2);
think58.com [资料来源:http://THINK58.com]
m_MSFGrid.SetText("图书名称");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(3);
m_MSFGrid.SetText("作者");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(4);
m_MSFGrid.SetText("出版社");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(5);
m_MSFGrid.SetText("单价");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(6);
m_MSFGrid.SetText("库存量");
return;
}
m_rsDataSet.MoveFirst();//画网格
while (!m_rsDataSet.IsEOF())
{
m_rsDataSet.MoveNext();
m_rsDataSet.GetRecordCount();
}
m_MSFGrid.SetCols(7);
m_MSFGrid.SetRows (m_rsDataSet.GetRecordCount()+1);
m_MSFGrid.SetColWidth(-1,2360);
//定义网格的表头
m_MSFGrid.SetRow(0);
m_MSFGrid.SetCol(1);
m_MSFGrid.SetText("图书编号");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(2);
think58.com
m_MSFGrid.SetText("图书名称");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(3);
m_MSFGrid.SetText("作者");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(4);
m_MSFGrid.SetText("出版社");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(5);
m_MSFGrid.SetText("单价");
m_MSFGrid.SetRow(0);m_MSFGrid.SetCol(6);
m_MSFGrid.SetText("库存量");
m_rsDataSet.MoveFirst();
//重新画网格
int iRow=1;
while(!m_rsDataSet.IsEOF())
{
CString str,str1,str2;
str.Format("BOOK%d",iRow);
str1.Format("%d",m_rsDataSet.m_STOCK);
str2.Format("%d",m_rsDataSet.m_PRICE);
m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(0);
m_MSFGrid.SetText(str);
m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(1);
m_MSFGrid.SetText(m_rsDataSet.m_BOOK_ID);
m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(2);
m_MSFGrid.SetText(m_rsDataSet.m_BOOK_NAME);
本文来自think58 [版权所有:http://think58.com]
m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(3);
m_MSFGrid.SetText(m_rsDataSet.m_AUTHOR);
m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(4);
m_MSFGrid.SetText(m_rsDataSet.m_PRESS);
m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(5);
m_MSFGrid.SetText(str2);
m_MSFGrid.SetRow(iRow);m_MSFGrid.SetCol(6);
m_MSFGrid.SetText(str1);
iRow++;
m_rsDataSet.MoveNext();
}
m_MSFGrid.SetRow(1);
m_MSFGrid.SetCol(1); think58好,好think58
m_rsDataSet.MoveFirst();
在此模块的实现过程中遇到了下列问题:
a、 数据库的打开和关闭不合理
b、 数据变量类型的不一致
c、 准备工作不够,用‘选择语句’时没有分析好流程,比较盲目
等等一些问题,最后也都一一解决。
三、“读者资料维护”模块设计:
“读者资料维护”模块的实现与“图书资料维护”基本上一样,实现了读者的借书证号、姓名、证件号码的登记。在模块的设计过程中,根据需要对数据库中的“读者登记表”作了相应的修改。
读者资料的添加、修改、保存部分实现代码如下:
UpdateData(TRUE);
if (m_strReaderID.IsEmpty()|| m_strReaderName.IsEmpty())
{
AfxMessageBox("请输入相应数据!");
return;
}
if (m_bAdd)
{
m_rsDataSet.Close();
int n=0;
CString strSQL;
strSQL = "SELECT * FROM READER WHERE NAME='";
strSQL = strSQL + m_strReaderName;
strSQL = strSQL + "' AND IDCARD='";
strSQL = strSQL + m_strIDCard;
strSQL = strSQL + "'";
m_rsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,strSQL);
if(m_rsDataSet.GetRecordCount()!=0)
{
m_rsDataSet.MoveFirst();
MessageBox("此读者已存在!","提示",MB_ICONQUESTION);
n=1;
}
else
{
if (n==0)
{
m_rsDataSet.AddNew();
m_rsDataSet.m_READER_ID= m_strReaderID;
m_rsDataSet.m_NAME = m_strReaderName;
m_rsDataSet.m_IDCARD = m_strIDCard;
m_rsDataSet.m_FLAG_BORROW= m_strFlagBorrow;
m_rsDataSet.Update();
m_rsDataSet.Requery();
MessageBox("新记录添加成功!"); copyright think58
}
}
else
{
m_rsDataSet.Edit();
m_rsDataSet.m_READER_ID= m_strReaderID;
m_rsDataSet.m_NAME = m_strReaderName;
m_rsDataSet.m_IDCARD = m_strIDCard;
m_rsDataSet.m_FLAG_BORROW= m_strFlagBorrow;
m_rsDataSet.Update();
m_rsDataSet.Requery();
MessageBox("信息修改成功!");
}
m_bAdd = FALSE;
m_bEdit = FALSE;
SetButtonState();
SetTextState();
m_rsDataSet.Close();
m_rsDataSet.Open();
shuaxin(); copyright think58
[资料来源:www.THINK58.com]
上一篇:C#教材管理系统毕业论文
下一篇:超市进销存管理系统毕业设计