图书馆管理系统设计说明模板.docx

上传人:b****5 文档编号:6949714 上传时间:2023-01-13 格式:DOCX 页数:6 大小:19.03KB
下载 相关 举报
图书馆管理系统设计说明模板.docx_第1页
第1页 / 共6页
图书馆管理系统设计说明模板.docx_第2页
第2页 / 共6页
图书馆管理系统设计说明模板.docx_第3页
第3页 / 共6页
图书馆管理系统设计说明模板.docx_第4页
第4页 / 共6页
图书馆管理系统设计说明模板.docx_第5页
第5页 / 共6页
点击查看更多>>
下载资源
资源描述

图书馆管理系统设计说明模板.docx

《图书馆管理系统设计说明模板.docx》由会员分享,可在线阅读,更多相关《图书馆管理系统设计说明模板.docx(6页珍藏版)》请在冰豆网上搜索。

图书馆管理系统设计说明模板.docx

图书馆管理系统设计说明模板

图书馆管理系统设计说明模板

图书馆管理系统设计说明模板东南大学自动化学院《计算机综合课程设计》设计说明小组编号:

_____________________小组成员:

学号姓名角色设计时间:

2010年9月7日–2010年9月30日评定成绩:

评阅教师:

目录一.项目背景……………………………………………………………3二.系统总体设计………………………………………………………3三.个子系统设计………………………………………………………3四.详细设计……………………………………………………………4五.数据设计……………………………………………………………9六.技术难点……………………………………………………………10(要求:

给出一级目录,宋体加粗,四号字,1.5倍行距。

)(报告正文部分的格式):

(要求:

正文部分一律用五号字,宋体,单倍行距。

一级大标题靠左,四号,宋体,加粗。

二级大标题靠左,小四,宋体,不加粗。

)课程设计的内容如下:

一、项目背景图书馆在正常运营中面对大量书籍、读者信息以及两者间相互联系产生的借书信息、还书信息。

现有的人工记录方法既效率低又错误过多,大大影响了图书馆的正常管理工作。

因此需要对书籍资源、读者资源、借书信息、还书信息以及图书管理员进行添加书籍、删除旧书、查询某书被某人所借等进行管理,及时了解各个环节中信息的变更,有利用管理效率的提高。

二、系统总体设计图书馆管理系统读者书籍管理员管理员信息系统管理员操作系统读者信息系统读者操作系统管理员注册管理员登陆书籍信息查询系统添加新书删除旧书查看借出书籍读者注册读者登陆借书还书按书名查询按登录号查询书籍信息系统(要求:

说明程序的整体框架。

)三、各子系统设计1.管理员注册系统:

设置两个字符串变量m_strManNum和m_strManPassword分别保存管理员编号和管理员登录密码,管理员注册时输入其管理员编号和管理员登录密码时,通过设置消息响应函数将管理员输入的内容传送给m_strManNum和m_strManPassword,并设计程序让它们存入链表,进而通过文档类和序列化函数保存在txt文档中。

2.管理员登陆系统:

设置两个字符串变量m_strManNum和m_strManPassword分别保存管理员编号和管理员登录密码,管理员登录时输入其管理员编号和管理员登录密码时,通过设置消息响应函数将管理员输入的内容传送给m_strManNum和m_strManPassword,此时程序调用文档类和管理员信息类通过链表m_InfOfManList进行查找。

若获得通过,则进入管理员操作系统进行一系列操作;否则利用MessageBox输出“账号或密码错误”。

3.读者注册系统:

设置三个字符串变量m_strReaderName、m_strReaderLin和m_strReaderPassword分别保存读者姓名、读者借书证号和读者登陆密码。

读者注册时输入其姓名、借书号和登录密码时,通过设置消息响应函数将管理员输入的内容分别传送给m_strReaderName、m_strReaderLin和m_strReaderPassword,并设计程序让它们存入链表,进而通过文档类和序列化函数保存在txt文档中。

4.读者登录系统:

设置两个个字符串变量m_strReaderLin和m_strReaderPassword分别保存读者借书证号和读者登陆密码。

读者登陆时输入其借书号和登录密码时,通过设置消息响应函数将管理员输入的内容分别传送给m_strReaderLin和m_strReaderPassword,此时程序调用文档类和读者信息类并通过链表m_InfOfReaderList进行查找。

若获得通过,则进入读者操作系统进行一系列操作;否则利用MessageBox输出“非法用户”。

5.管理员添加新书系统:

调用书籍信息类CInfOfBook类写入所添加书籍的有关信息,并把所添加书籍存入存储书籍信息的链表中,即在链表中添加节点。

6.管理员删除书籍系统:

根据管理员提供的书籍信息调用书籍信息类CInfOfBook类在链表中找到所删的书籍节点,并把这些节点移出链表。

7.管理员查看借出书籍系统:

根据管理员提供的书籍信息调用书籍信息类CInfOfBook类在链表中找到所查询的书籍节点,再调用书籍信息类CInfOfBook类得到借阅此书的读者的有关信息。

8.读者借书系统:

读者先由书籍的登录号查到该书籍,再由程序判断是否存在此书、此书是否有剩余库存以及该读者是否借满两本书,若满足借书条件,系统就将书借给他,并调用CInfOfBook类和CInfOfReader类修改书籍和读者的有关信息。

9.读者还书系统设计:

读者先进入自己的还书系统,查看自己已借的书籍,选择其中的一本或两本书籍归还、归还后,程序要调用CInfOfBook类和CInfOfReader类修改书籍和读者的有关信息。

10.按书名查询书籍信息:

操作者输入书名后,程序先判断是否存在此书,若存在此书,则调用书籍信息类CInfOfBook类和菜单的视图类将书籍信息显示在菜单的视图中。

11.按登录号查询书籍信息:

操作者输入书的登录号后,程序先判断是否存在此书,若存在此书,则调用书籍信息类CInfOfBook类和菜单的视图类将书籍信息显示在菜单的视图中。

(要求:

说明程序的各个部分的设计。

)四、详细设计A.本程序中所有使用的类(从主要得到次要的)以及这些类的主要成员有:

1.CInfOfBook类:

//书籍信息类intm_BookOut;//借出册数intm_BookIn;//库存册数CStringm_BookName;//书籍名称CStringm_Writer;//作者姓名CStringm_BookNum;//书目编号CStringm_LogNum;//书籍登录号CStringm_OutDate;//借出日期CStringm_BorrowerNum;//借阅该书者的借书证号CStringm_BorrowerName;//借阅该书者的姓名BOOLm_IsBorrowed;//是否借出CInfOfBook();virtual~CInfOfBook();virtualvoidSerialize(CArchive//序列化函数的声明CInfOfBook(CString,CString,CString,CString);//带参构造函数申明,用于添加新书时使用DECLARE_SERIAL(CInfOfBook)//序列化类2.CInfOfReader类:

//读者信息类CStringm_Name;//读者姓名CStringm_LinNum;//借书证号intm_BorrowedNum;//已借书册数CStringm_Book1;//所借第一本书的名称CStringm_Book2;//所借第二本书的名称CStringm_Password;//借书证号密码CStringm_Book1lognum;//所借第一本书的登录号CStringm_Book2lognum;//所借第二本书的登录号CInfOfReader();//缺省构造函数virtual~CInfOfReader();//析构函数CInfOfReader(CString,CString,CString);//构造函数,注册时调用virtualvoidSerialize(CArchive//序列化函数DECLARE_SERIAL(CInfOfReader)//序列化类3.CInfOfMan类:

//管理员信息类CStringm_ManNum;//管理员编号CStringm_ManPassword;//管理员登录密码CInfOfMan(CString,CString);//构造函数virtual~CInfOfMan();//析构函数virtualvoidSerialize(CArchive//序列化函数DECLARE_SERIAL(CInfOfMan)//序列化类4.CManReg类:

//管理员注册对话框类CManReg(CWnd*pParent=NULL);//standardconstructorDoDataExchange(CDataExchange*pDX);OnCancel();CStringm_strManNum;//管理员编号CStringm_strManPassword;//管理员登录密码5.CReaderReg类:

//读者注册对话框类CReaderReg(CWnd*pParent=NULL);//standardconstructorDoDataExchange(CDataExchange*pDX);OnCancel();CStringm_strReaderName;//读者姓名CStringm_strReaderLin;//读者借书证号CStringm_strReaderPassword;//读者登陆密码6.CManLog类:

//管理员登陆对话框类CManLog(CWnd*pParent=NULL);//standardconstructorDoDataExchange(CDataExchange*pDX);OnCancel();CStringm_strManNum;//管理员编号CStringm_strManPassword;//管理员登录密码7.CReadLog类:

//读者登陆对话框类CReadLog(CWnd*pParent=NULL);//standardconstructorDoDataExchange(CDataExchange*pDX);OnCancel();CStringm_strLinNum;//读者借书证号CStringm_strReaderPassword;//读者登陆密码8.CManOper类:

//管理员操作对话框类CManOper(CWnd*pParent=NULL);//standardconstructorDoDataExchange(CDataExchange*pDX);OnCancel();OnADD();//添加书籍OnDelete();//删除旧书9.CReadOper类:

//读者操作对话框类CReadOper(CWnd*pParent=NULL);//standardconstructorDoDataExchange(CDataExchange*pDX);OnCancel();OnBorrow();//借书OnReturn();//还书10.CAdd类:

//添加书籍类CAdd(CWnd*pParent=NULL);//standardconstructorDoDataExchange(CDataExchange*pDX);OnCancel();OnOK();CStringm_strBookName;//书籍名称CStringm_strWriterName;//作者姓名CStringm_strBookNumber;//书目编号CStringm_strBookLogNumber;//登录号11.CDelete类:

//删除书籍类CDelete(CWnd*pParent=NULL);//standardconstructorCStringm_strLogNum;//所删书籍的登录号12.CBorrowed类:

//读者借书类CBorrow(CWnd*pParent=NULL);//standardconstructorCStringm_strLogNum;//所借书的登录号CStringm_strLinNum;//所借书的库存册数CStringm_strPassword;//读者的登陆密码13.CReturn类:

//读者还书类CReturn(CWnd*pParent=NULL);//standardconstructorCStringm_strLogNum;//所还书的登录号CStringm_strLinNum;//所还书的库存册数CStringm_strPassword;//读者的登陆密码14.CLogCon类:

//按登录号查找书籍CLogCon(CWnd*pParent=NULL);//standardconstructorCStringm_strLogNum;//所查书籍的登录号15.CBookConsult类:

//按书名查找书籍类DoDataExchange(CDataExchange*pDX);CBookConsult(CWnd*pParent=NULL);//standardconstructorCStringm_strBookName;//所查找书的书名16.CLibManDoc类:

//简单图书馆系统文档类CLibManDoc();DECLARE_DYNCREATE(CLibManDoc)CObListm_InfOfReaderList;//储存读者信息的链表CObListm_InfOfManList;//储存管理员信息的链表CObListm_InfOfBookList;//储存书籍信息的链表17.CLibManView类:

//简单图书馆系统视图类CObList*m_pm_InfOfManList;CObList*m_pm_InfOfReaderList;CObList*m_pm_InfOfBookList;//用于指向文档类三个对象的三个指针BOOLIsRight;intnum;CInfOfBook*elem1;//这三个对象用于在视中输出查询书的结果时调用OnDraw()函数CLibManView();DECLARE_DYNCREATE(CLibManView)CLibManDoc*GetDocument();18.CAboutDlg类:

//关于对话框类CAboutDlg();B.各个类之间的相互继承、调用关系:

CManReg类CManLog类CManOper类CInfOfMan类CDelete类CAdd类CLibManDoc类CInfOfReader类CInfOfBook类CLogCon类CBookConsult类CBorrowed类CReturn类CLibManView类CReadOper类CReaderReg类CReadLog类BA注:

是指类A被类B调用。

五、数据设计针对一般图书馆管理信息系统的需求,通过对图书馆管理工作过程的内容和数据流流程分析,设计如下面所示的数据项和数据结构:

●读者信息包括:

借书证号、借书证密码、读者姓名、借书数量、所借书的登录号和名称等。

●管理员信息包括:

管理员编号、管理员登陆密码。

●书籍信息包括:

书籍编号、书籍名称、作者姓名、书籍登录号、同名书籍的库存册数和已借出册数、是否已借出、借出日期、借阅者姓名、借阅者借书证号等。

它们分别存放在三个类以及三个链表里:

CInfOfReader类、CInfOfBook类、CInfOfMan类和m_InfOfReaderList、m_InfOfManList、m_InfOfBookList,最后再把它们都写入一个txt文档。

使用者使用该系统时只要先打开该txt文件后就能进行有关操作了。

六、技术难点1.如何通过代码获得应用程序主窗口的指针?

经查阅资料了解到主窗口的指针保存在CWinThread:

:

m_pMainWnd中,调用AfxGetMainWnd实现。

比如:

AfxGetMainWnd()->ShowWindow(SW_SHOWMAXMIZED);//使程序最大化.2.如何自定义消息?

经查询有三种方法,分述如下:

(1)手工定义消息,可以这么写#defineWM_MY_MESSAGE(WM_USER+100),MS推荐的至少是WM_USER+100;

(2)写消息处理函数,用WPARAM,LPARAM返回LRESULT.LRESULTCMainFrame:

:

OnMyMessage(WPARAMwparam,LPARAMlParam){//加入你的处理函数}(3)在类的AFX_MSG处进行声明,也就是常说的“宏映射“3.如何改变一个视图的背景?

想改变CView、CFrameWnd或者CWnd的背景,需要处理WM_ERASEBKGND消息。

像下面演示的这样:

BOOLCSampleView:

:

OnEraseBkgnd(CDC*pDC){//设置背景画刷颜色CBrushbackBrush(RGB(255,128,128));//保存旧画刷CBrush*pOldBrush=pDC->SelectObject(CRectrect;pDC->GetClipBox(//擦掉所要画的区域pDC->PatBlt(rect.left,rect.top,rect.Width(),rect.Height(),PATCOPY);pDC->SelectObject(pOldBrush);returnTRUE;}4.如何解决视图的重绘问题,即上一次菜单窗口视图中的内容会显示在这一次菜单窗口文字的后面?

定义一个字符串变量add=““然后在每一个将在菜单窗口中显示的变量后都加上一个add,就可以利用add来把上一次菜单窗口视图中的内容覆盖掉。

(要求:

技术难点以及克服方法)参考书目:

(五号,宋体加粗)[1]李久进,《MFC深入浅出》,华中理工大学出版社1999[2]曾凡锋,苗雨编,《MFC编程技巧与范例详解》,清华大学出版社2008(要求:

五号字,宋体,单倍行距。

按作者、书名、出版社、地点、出版时间格式逐一列出,中间用逗号格开)11

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 工作范文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1