vc图书馆管理系统实验报告Word格式文档下载.doc
- 文档编号:1452671
- 上传时间:2023-04-30
- 格式:DOC
- 页数:50
- 大小:2.03MB
vc图书馆管理系统实验报告Word格式文档下载.doc
《vc图书馆管理系统实验报告Word格式文档下载.doc》由会员分享,可在线阅读,更多相关《vc图书馆管理系统实验报告Word格式文档下载.doc(50页珍藏版)》请在冰点文库上搜索。
5.系统要有完整的帮助文件,供前台操作员能方便的操作本系统。
2设计方案简述
2.1图书馆管理系统功能介绍
本系统主要实现对图书馆信息的管理,主要可以分为两大块:
图书信息的服务系统和图书的综合管理系统。
图书的使用对象是借阅者,例如学生,教师;
管理者是图书馆的管理员。
因此根据这些信息,本系统的主要功能就是:
实现图书馆图书信息的管理和维护,如用户信息管理,图书馆规则维护,新书入库,整理图书,修改图书信息和进行查询等;
以及服务系统的图书信息查询,图书的借出和归还等功能图书信息管理系统能够为用户提供充足的信息和快捷的查询手段。
例如:
检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。
这些优点能够极大地提高图书信息管理的效率,也是图书管理的科学化、数字化、正规化管理,与世界接轨的重要条件。
2.2程序开发环境和基本开发软件
2.2.1VC++开发软件
对于小型应用软件的开发,VC++6.0易操作,并且有强大的调试和纠错功能,对于经验不多的开发者来说,VC++6.0应该是首先选择的工具。
这款软件主要基于MFC(MicrosoftFoundationClasses)卡发环境,MFC是以C++类的形式封装了Windows的API,并且包含一个应用程序框架,以减少应用程序开发人员的工作量。
其中包含的类包含大量Windows句柄封装类和很多Windows的内建控件和组件的封装类。
MFC中有大量的美观的使用控件,对于程序界面的设计十分方便。
2.2.2数据库开发软件
在这里采用了MicrosoftAcessODBC数据库,来实现对数据的存储与更新。
MicrosoftAcessODBC数据库具有操作简便,性能良好等特点,便于vc++编程初学者使用
2.2.3环境搭建
首先,构建数据库,在构建完成之后,进行配置MicrosoftAcessODBC数据库。
配置完成之后,新建单文档,导入数据源文件即可。
2.3程序设计流程图
表BOOK
2.4系统的功能模块划分
整个图书管理系统分为四个模块。
分别为图书管理模块、借阅管理模块、读者管理模块和系统管理模块。
书籍信息修改
书籍查询
新书入库
图书资料
表BORROW
表FINE
表READER
读者信息修改
读者信息查询
增加读者
读者资料
还书管理
借书管理
借阅管理
是否正确?
输入用户名和密码
用户登录
图书馆管理系统
3详细设计
3.1数据库的建立及更新
3.1.1数据库的建立
用ACCESS2007建立名为“Library”的数据库,创建5个表,分别为:
BOOK,CLERK,READER,BORROW和FINE。
图3-1ACCESS数据表
图3-2ODBC数据源管理器配置
图3-3利用ODBC数据源管理器创建数据源
图3-4建立名为“Library”的MFC单文档应用程序向导
3.2系统登录模块设计
图3-5添加系统登录对话框
图3-6属性设置
3.3系统主界面设计
图3-12主界面
其中系统登录可以登录和退出系统,登录后可以查看图书资料、读者资料,进行图书馆里和读者管理;
图书资料中可以增加、修改、删除、查询图书信息;
读者资料中可以增加、修改、删除、查询读者信息;
借书管理中可以借阅相关图书;
还书管理可以归还借阅图书;
版权测试可以查看版本信息。
添加系统登陆对话框,属性设置为IDD_DIALOG_LOGIN,宋体,9号字体。
为IDD_DIALOG_LOGIN添加成员变量。
创建一个新类,名为CClerkDataSet,添加消息映射,最后输入按钮代码。
3.4图书信息管理模块设计
图3-13图书信息界面
添加书籍信息对话框,属性设置为IDD_DIALOG_BOOK,宋体,9号字体,为IDD_DIALOG_BOOK添加成员变量。
创建一个新类,名为CBookDataSet,方法步骤同CClerkDataSet,添加消息映射,最后输入按钮代码。
3.5读者信息管理模块设计
图3-14读者信息管理
添加读者信息对话框,属性设置为IDD_DIALOG_READER,宋体,9号,为IDD_DIALOG_READER添加成员变量。
建立新类CReaderDataSet,按上述步骤做相似操作,添加消息响应,最后输入按钮代码。
3.6借书管理
添加借书查询对话框,属性设置为IDD_DIALOG_BORROW,宋体,9号,为IDD_DIALOG_BORROW添加成员变量,建立新类CBorrowDataSet,按上述步骤做相似操作,添加消息映射,最后输入代码
3.7还书管理
添加图书归还对话框,属性设置为IDD_DIALOG_RETURN,微软雅黑,10号,为IDD_DIALOG_RETURN添加成员变量,建立新类CReturnDataSet,按上述步骤做相似操作,添加消息映射,最后输入代码。
3.8版权测试
版权测试对话框,属性设置为IDD_ABOUTBOX
4设计结果及分析
4.1测试
对功能进行逐一测试,在输入合理及不合理的数据后测试系统的正常运作情况
测试1:
系统登录测试
测试2:
图书资料测试
测试3:
读者资料测试
测试4:
借书管理测试
测试5:
还书测试
测试6:
版权测试
4.2测试结果
4.2.1登录测试
密码正确输入后显示如下界面:
密码输入错误时,显示如下界面:
4.2.2图书资料测试
增加图书:
4.2.3读者资料测试
增加读者资料:
4.2.4借书管理测试
4.2.5还书管理测试
4.2.6版权测试
5.总结
5.1小结
在这次的课程设计中,让我学到了很多在课堂上和书本上学不到的知识,我在这次课程设计中最大的收获有以下几方面:
领略到了数据库设计在计算机领域的重要性。
数据库作为一个永久存储形式在应用中发挥着重要的作用。
在数据库设计中,我明白了数据库设计不是范式越高越好的,我们要根据我们的应用来决定,一切应该以需求为首要选择。
对编程环境、一些控件的使用和界面的设计更加熟悉。
因为《图书管理系统》中设计到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户面前。
这样更有利于数据库和用户之间的交流。
利用软件工程学开发系统。
虽然这个《图书管理系统》是一个小的系统,但从这个小的项目中也让我明白了数据库作为任何一个系统的后台的重要性,在开发系统设计和实现中学到和总结很多经验和教训。
主要程序代码
1,登录代码
//CLoginDlgdialog
CLoginDlg:
:
CLoginDlg(CWnd*pParent/*=NULL*/)
:
CDialog(CLoginDlg:
IDD,pParent)
{
//{{AFX_DATA_INIT(CLoginDlg)
m_strName=_T("
"
);
m_strPassword=_T("
//}}AFX_DATA_INIT
}
voidCLoginDlg:
DoDataExchange(CDataExchange*pDX)
CDialog:
DoDataExchange(pDX);
//{{AFX_DATA_MAP(CLoginDlg)
DDX_Text(pDX,IDC_LOGIN_NAME,m_strName);
DDV_MaxChars(pDX,m_strName,8);
DDX_Text(pDX,IDC_LOGIN_PASSWORD,m_strPassword);
DDV_MaxChars(pDX,m_strPassword,8);
//}}AFX_DATA_MAP
BEGIN_MESSAGE_MAP(CLoginDlg,CDialog)
//{{AFX_MSG_MAP(CLoginDlg)
ON_BN_CLICKED(IDC_CONFIRM,OnConfirm)
ON_BN_CLICKED(IDC_CANCEL,OnCancel)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
/////////////////////////////////////////////////////////////////////////////
//CLoginDlgmessagehandlers
OnConfirm()
//TODO:
Addyourcontrolnotificationhandlercodehere
CClerkDataSetmrsDataSet;
/*声明记录集*/
CStringmSqlStr;
UpdateData(TRUE);
if(m_strName.IsEmpty())/*判断用户名信息是否为空*/
{
AfxMessageBox("
请输入用户名!
return;
}
mSqlStr.Format("
SELECT*FROMCLERKWHERENAME='
%s'
ANDPASSWORD='
m_strName,m_strPassword);
/*
mSqlStr="
;
mSqlStr=mSqlStr+m_strName;
mSqlStr=mSqlStr+"
'
mSqlStr=mSqlStr+m_strPassword;
*/
if(!
mrsDataSet.Open(AFX_DB_USE_DEFAULT_TYPE,mSqlStr))
CLERK表打开失败!
mrsDataSet.IsEOF())
//Openallfunctionforuser
CDialog:
OnOK();
else
登录失败!
OnCancel()
OnCancel();
2,图书信息代码
//CBookDlgdialog
CBookDlg:
CBookDlg(CWnd*pParent/*=NULL*/)
CDialog(CBookDlg:
//{{AFX_DATA_INIT(CBookDlg)
m_strAuthor=_T("
m_strBookID=_T("
m_strBookIDQ=_T("
m_strBookName=_T("
m_strBookNameQ=_T("
m_strFlag=_T("
m_strPress=_T("
m_strPressDate=_T("
voidCBookDlg:
//{{AFX_DATA_MAP(CBookDlg)
DDX_Text(pDX,IDC_AUTHOR,m_strAuthor);
DDX_Text(pDX,IDC_BOOKID,m_strBookID);
DDX_Text(pDX,IDC_BOOKID_Q,m_strBookIDQ);
DDX_Text(pDX,IDC_BOOKNAME,m_strBookName);
DDX_Text(pDX,IDC_BOOKNAME_Q,m_strBookNameQ);
DDX_Text(pDX,IDC_FLAG_BORROW,m_strFlag);
DDV_MaxChars(pDX,m_strFlag,1);
DDX_Text(pDX,IDC_PRESS,m_strPress);
DDV_MaxChars(pDX,m_strPress,20);
DDX_Text(pDX,IDC_PRESSDATE,m_strPressDate);
DDV_MaxChars(pDX,m_strPressDate,10);
BEGIN_MESSAGE_MAP(CBookDlg,CDialog)
//{{AFX_MSG_MAP(CBookDlg)
ON_BN_CLICKED(IDC_CANCEL_REC,OnCancelRec)
ON_BN_CLICKED(IDC_DELETE,OnDelete)
ON_BN_CLICKED(IDC_EDIT,OnEdit)
ON_BN_CLICKED(IDC_ENQUERY,OnEnquery)
ON_BN_CLICKED(IDC_EXIT,OnExit)
ON_BN_CLICKED(IDC_FIRST,OnFirst)
ON_BN_CLICKED(IDC_LAST,OnLast)
ON_BN_CLICKED(IDC_NEW,OnNew)
ON_BN_CLICKED(IDC_NEXT,OnNext)
ON_BN_CLICKED(IDC_PRIOR,OnPrior)
ON_BN_CLICKED(IDC_SAVE,OnSave)
//NOTE:
theClassWizardwilladdmessagemapmacroshere
//CBookDlgmessagehandlers
OnCancelRec()
m_bAdd=FALSE;
m_bEdit=FALSE;
DisplayRecord();
SetButtonState();
SetTextState();
OnDelete()
m_rsDataSet.Delete();
OnEdit()
m_bEdit=TRUE;
CWnd*pWnd;
pWnd=GetDlgItem(IDC_BOOKNAME);
pWnd->
SetFocus();
OnEnquery()
if(m_strBookIDQ.IsEmpty()&
&
m_strBookNameQ.IsEmpty())
m_rsDataSet.m_strFilter="
m_rsDataSet.Requery();
DisplayRecord();
SetButtonState();
BOOLmAll=FALSE;
m_strBookIDQ.IsEmpty())
BOOK_ID='
+m_strBookIDQ;
m_rsDataSet.m_strFilter=m_rsDataSet.m_strFilter+"
mAll=TRUE;
m_strBookNameQ.IsEmpty())
if(mAll)
{
m_rsDataSet.m_strFilter=m_rsDataSet.m_strFilter+"
ANDBOOK_NAME='
m_rsDataSet.m_strFilter=m_rsDataSet.m_strFilter+m_strBookNameQ;
}
else
m_rsDataSet.m_strFilter="
BOOK_NAME='
+m_strBookNameQ;
m_rsDataSet.Requery();
OnExit()
OnFirst()
if(!
m_rsDataSet.IsBOF())
m_rsDataSet.MoveFirst();
OnLast()
m_rsDataSet.IsEOF())
m_rsDataSet.MoveLast();
OnNew()
m_strBookID="
m_strBookName="
m_strAuthor="
m_strPress="
m_strFlag="
Y"
UpdateData(FALSE);
m_bAdd=TRUE;
pWnd=GetDlgItem(IDC_BOOKID);
OnNext()
Addyourcontrol
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vc 图书馆 管理 系统 实验 报告
![提示](https://static.bingdoc.com/images/bang_tan.gif)