优秀的毕业设计论文网
计算机 JAVA 电子信息 单片机 机械机电 模具 土木工程 建筑结构 论文
热门搜索词:网络 ASP.NET 汽车 电气 数控 PLC

图书管理系统的建立

以下是资料介绍,如需要完整的请充值下载.
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]

[资料来源:THINK58.com]

2.2系统数据分析
通过对图书管理系统的分析,可以得出该系统涉及三个实体:读者、图书、工作人员。通过对各实体数据关系的整理,我们可以画出如下E—R图:       

内容来自think58

[来源:http://www.think58.com]

[资料来源:THINK58.com]

图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

[来源: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("库存量");
   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
[资料来源:www.THINK58.com]

    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;

[资料来源:www.THINK58.com]

  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
[来源:http://www.think58.com]

    }
   }
 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]