1、c+图书管理系统范文目录1 概述 12 需求分析 13系统设计 23.1 总体设计框架 23.2 系统流程分析 23.3 数据库设计 34系统实现过程 44.1 连接数据库 44.2 用户进入界面 44.3 系统的主界面 64.4 书库管理 84.5 借阅证管理 244.6 系统管理 285 总结 306 参考文献 311 概述随着人们知识层次的提高图书馆成为日常生活中不可缺少的一部分。而图书馆的存书量和业务量庞大,仅仅靠传统的记账式管理式不可行的。图书馆管理系统应运而生,逐渐成为信息化建设的重要组成部分。图书馆管理系统为学校或者社会型图书馆的管理员提供所有借阅者的详细信息,以及馆内库存的详细
2、情况,对借书和还书两大功能进行合理操纵并登记。本系统主要包括以下几个主要功能(1)进入系统前需要身份验证、用户名、密码,输入正确后方可进入。(2)用户可以根据需要进行书库管理。(3)用户可以进行借书证的办理、查询、挂失等操作。(4)用户可以添加账号和修改密码和退出系统等功能。2 需求分析2.1数据库需求分析通过对图书馆管理系统功能的分析和实际调查情况,图书馆管理系统需要包括以下数据库信息。 (1)管理员基本信息:包括图书ID、密码等。(2)图书信息:包括图书ID、图书名称、作者、出版社、单价、入库时间、图书总量、现存总量。(3)借书信息:包括借书号、借阅卡号、所借图书的名字、借书日期。(4)借
3、阅卡信息:包括借阅卡号、读者姓名、性别、出生日期、家庭住址、身份证号码、电话号码、现借书总数。(5)罚金管理:包括罚金号、借阅证号、图书号、借出时间、返还时间、罚金。2.2系统功能分析本系统功能模块主要包括以下几部分:身份验证、书库管理、借阅证管理、系统管理和退出。(1)身份验证:提供系统的访问控制功能。(2)书库管理:包括新书登记、借书、还书、书籍挂失、图书信息查询、借书信息查询等功能。(3)借阅证管理:其提供办理借阅证、借阅证信息查询、借阅证挂失功能。(4)系统管理:包括添加账号、修改密码和退出系统等功能。(5)系统管理:其功能是为系统的使用者提供密码管理和数据备份、恢复管理。3系统设计3
4、.1 总体设计框架系统总体设计图如下: 图1 图书馆管理系统总计设计图3.2系统流程分析在系统运行时的动态模型应该由系统的流程决定。当用户登录系统后,可以根据拥有的权限来进行书库的管理、借阅证的管理等操作,具体的流程如图2所示。图2 图书馆管理系统流程图3.3 数据库设计基本表的设计如下:(1) 管理员基本信息表 管理员基本信息表(Admin_Info)包含了图书馆管理员的基本信息,其结构如表1所示。表1 管理员基本信息表字 段 名 称数 据 类 型可 否 为 空约 束 条 件说 明WorkIDINTEGERNOT NULL主键地方ID值User_nameVARCHAR2(24)NOT NUL
5、L无姓名PasswordVARCHAR2(24)NOT NULL无密码(2) 图书信息表图书信息表(Book_Info)包含了图书馆所有图书的基本信息,用来方便读者查询和借阅,其结构如表2所示。表2:图书信息表字 段 名 称数 据 类 型可 否 为 空约 束 条 件说 明Book_IDVARCHAR(50)NOT NULL主键书籍ID值Book_NameVARCHAR(50)NOT NULL无书名WriterVARCHAR(50)NOT NULL无作者PressVARCHAR(50)NOT NULL无出版社PricefloatNOT NULL无单价InLibrary_DataDATANOT N
6、ULL无入库时间Total_AmoutINTEGERNOT NULL无总量Now_AmountINTEGERNOT NULL无现存量(3) 借阅卡信息表借阅卡信息表(Proof_Info)包含了所有读者的借阅卡信息,用来方便读者借阅和管理员,其结构如表3所示。表3:借阅卡信息表字 段 名 称数 据 类 型可 否 为 空约 束 条 件说 明Proof_IDVARCHAR(50)NOT NULL主键借阅卡IDNameVARCHAR(50)NOT NULL无姓名SexVARCHAR(50)NOT NULL无性别Birth_TimeDATANOT NULL无出生日期AddressVARCHAR(50)
7、NOT NULL无地址ID_NumberVARCHAR(50)NOT NULL无身份证号码Tel_NumberVARCHAR(50)NOT NULL无电话号码Now_Borrow_AmountINTEGERNOT NULL无现借书总量(4) 借书信息表借书信息表(Borrow_Info)包含了所有图书借阅的信息,用来方便管理员管理图书馆的图书出借情况,其结构如表4所示。表4:借书信息表字 段 名 称数 据 类 型可 否 为 空约 束 条 件说 明BorrowIDINTEGERNOT NULL主键借书IDProof_IDVARCHAR(50)NULL外键(Proof_Info)借书卡IDBook
8、_IDVARCHAR(50)NULL外键(Proof_Info)书籍IDBorrow_DateDATANULL无产品备注 (5) 罚单信息表 罚单信息表(Punish_Info)包含了所有读者的罚金信息,用来方便管理员管理图书过期的情况,其结构表如表5所示。表5 罚单信息表字 段 名 称数 据 类 型可 否 为 空约 束 条 件说 明Puni_IDINTEGERNOT NULL主键罚单IDProof_IDVARCHAR(50)NOT NULL外键(Proof_Info)借书卡IDBook_IDVARCHAR(50)NOT NULL外键(Proof_Info)图书IDBorrow_DateDAT
9、ANOT NULL无借出日期Return_DateDATANOT NULL无返还日期Puni_MoneyINTEGER)NOT NULL无罚金4系统实现过程打开Visual C+6.0,新建工程名为“Library”的基于对话框的MFC AppWizardexe。Visual C+6.0会自动生成一些类、文件和主题框架。为了实现系统与数据库的连接,Visual C+6.0有支持ODBC的文件,只需在“stdafx.h”中添加#include afxdb.h即可实现和数据库的连接。4.1 连接数据库 当函数启动后,就要连接数据库,需要3个参数:ODBC数据源名称、数据库用户名称、数据库用户密码。
10、登录到主界面之前,首先调用管理员登录模块。从数据库中读入Admin_Info表中的内容,判断用户输入的用户名和密码是否正确。4.2 用户进入界面功能:当使用者使用此系统时,只有用户名和密码都正确时,才可以通过进入界面进入此系统的主界面。其窗体如下:图3 登录界面主要代码如下。 void CLibraryDlg:OnOK() / TODO: Add extra validation here UpdateData(); if(m_strUsername.IsEmpty() MessageBox(Please input your username!,登录系统,MB_OK|MB_ICONEXCLA
11、MATION); m_strUsername.Empty(); UpdateData(FALSE); return; if(!m_database.IsOpen() /连接数据源 if(!m_database.Open(_T(Library) MessageBox(连接数据库失败!,图书管理系统,MB_OK|MB_ICONINFORMATION); return; CLoginSet *m_pLogset=new CLoginSet(&m_database); /编写SQL语句 CString strSQL; strSQL.Format(select * from Admin_Info whe
12、re User_Name=%s AND Password=%s,m_strUsername,m_strPassword); /编写SQL语句结束 m_pLogset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pLogset-GetRecordCount()=0) if(countOpen(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pset-GetRecordCount()!=0) m_pset-Edit(); m_pset-m_Total_Amount=m_pset-m_Total_Amount+m_lTotal;
13、m_pset-m_Now_Amount=m_pset-m_Now_Amount+m_lNow; m_pset-Update(); m_pset-Requery(); m_pset-Close(); m_database.Close(); MessageBox(Adding new books successfully!,新书入库登记); OnButtonCheckBooks(); return; m_pset-Close(); if(m_strBookID=|m_strBookName=|m_strWriter= |m_strPress=|m_dPrice=0|m_lTotal=0 |m_lN
14、ow=0) MessageBox(请正确填写要求的数据!,新书登记入库); m_database.Close(); return; strSQL.Format(select * from Book_Info); m_pset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); /if(m_pset-GetRecordCount()=0) / /MessageBox(There are not any book information!,新书登记); / m_pset-AddNew(); m_pset-SetFieldNull(&(m_pset-m_Book_ID),FA
15、LSE); m_pset-m_Book_ID=m_strBookID; m_pset-SetFieldNull(&(m_pset-m_Book_Name),FALSE); m_pset-m_Book_Name=m_strBookName; m_pset-SetFieldNull(&(m_pset-m_Writer),FALSE); m_pset-m_Writer=m_strWriter; m_pset-SetFieldNull(&(m_pset-m_Press),FALSE); m_pset-m_Press=m_strPress; m_pset-SetFieldNull(&(m_pset-m_
16、Price),FALSE); m_pset-m_Price=m_dPrice; m_pset-SetFieldNull(&(m_pset-m_Total_Amount),FALSE); m_pset-m_Total_Amount=m_lTotal; m_pset-SetFieldNull(&(m_pset-m_Now_Amount),FALSE); m_pset-m_Now_Amount=m_lNow; CTime curTime=CTime:GetCurrentTime(); m_pset-SetFieldNull(&(m_pset-m_InLibrary_Date),FALSE); m_p
17、set-m_InLibrary_Date=curTime; m_pset-Update(); m_pset-Requery(); m_pset-Close(); m_database.Close(); MessageBox(Adding new books successfully!,新书入库登记); OnButtonCheckBooks(); m_strBookID.Empty(); m_strBookName.Empty(); m_strPress.Empty(); m_strWriter.Empty(); m_lNow=0; m_lTotal=0; m_dPrice=0.0; Updat
18、eData(FALSE); return; (2)查询查询也是图书馆管理系统中一个很重要的功能,在很多的地方会用到,也是显示数据的一个功能函数。实现的过程也是首先检查数据库是否打开,以及要查询的书号是否为空。函数代码如下。void CNewBooksDlg:OnButtonCheckBooks() / TODO: Add your control notification handler code here UpdateData(); if(m_strBookID=) MessageBox(请正确填写信息,(书号?),新书登记); return; if(!m_database.IsOpen()
19、 if(!m_database.Open(_T(Library) MessageBox(Cannot access the database!,新书登记); return; CBookSet *m_pset=new CBookSet(&m_database); CString strSQL; strSQL.Format(select * from Book_Info where Book_ID=%s,m_strBookID); m_pset-Open(AFX_DB_USE_DEFAULT_TYPE,strSQL); if(m_pset-GetRecordCount()=0) MessageBo
20、x(No this book in the database!,新书登记); m_database.Close(); return; /处理表格 m_ctrList.DeleteAllItems(); m_pset-MoveFirst(); char buf50; CDBVariant varValue; int i=0; CString strBookName; while(!m_pset-IsEOF() m_ctrList.InsertItem(i,buf); m_ctrList.SetItemText(i,0,m_strBookID); m_pset-GetFieldValue(1,strBookName); m_ctrList.SetItemText(i,1,strBookName); m_pset
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1