ImageVerifierCode 换一换
格式:DOCX , 页数:43 ,大小:154.51KB ,
资源ID:3827115      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/3827115.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c++图书管理系统范文.docx)为本站会员(b****4)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

c++图书管理系统范文.docx

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