




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
东南大学自动化学院计算机综合课程设计设计说明小组编号:_小组成员:学号姓名角色设计时间: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类: /书籍信息类int m_BookOut; /借出册数int m_BookIn; /库存册数CString m_BookName; /书籍名称CString m_Writer ; /作者姓名CString m_BookNum; /书目编号CString m_LogNum; /书籍登录号CString m_OutDate; /借出日期CString m_BorrowerNum; /借阅该书者的借书证号CString m_BorrowerName; /借阅该书者的姓名BOOL m_IsBorrowed; /是否借出CInfOfBook();virtual CInfOfBook();virtual void Serialize(CArchive &ar); /序列化函数的声明 CInfOfBook(CString,CString,CString,CString); /带参构造函数申明,用于添加新书时使用DECLARE_SERIAL(CInfOfBook) /序列化类2. CInfOfReader类: /读者信息类CString m_Name; /读者姓名CString m_LinNum; /借书证号 int m_BorrowedNum; /已借书册数CString m_Book1; /所借第一本书的名称CString m_Book2; /所借第二本书的名称CString m_Password; /借书证号密码CString m_Book1lognum; /所借第一本书的登录号CString m_Book2lognum; /所借第二本书的登录号CInfOfReader(); /缺省构造函数virtual CInfOfReader(); /析构函数CInfOfReader(CString ,CString,CString);/构造函数,注册时调用virtual void Serialize(CArchive &ar); /序列化函数DECLARE_SERIAL(CInfOfReader) /序列化类3. CInfOfMan类: /管理员信息类CString m_ManNum; /管理员编号CString m_ManPassword; /管理员登录密码CInfOfMan(CString,CString); /构造函数virtual CInfOfMan(); /析构函数virtual void Serialize(CArchive &ar); /序列化函数DECLARE_SERIAL(CInfOfMan)/序列化类4. CManReg类: /管理员注册对话框类CManReg(CWnd* pParent = NULL); / standard constructorDoDataExchange(CDataExchange* pDX);OnCancel();CStringm_strManNum; /管理员编号CStringm_strManPassword; /管理员登录密码5. CReaderReg类: /读者注册对话框类CReaderReg(CWnd* pParent = NULL); / standard constructorDoDataExchange(CDataExchange* pDX);OnCancel();CStringm_strReaderName; /读者姓名CStringm_strReaderLin; /读者借书证号CStringm_strReaderPassword; /读者登陆密码6. CManLog类: /管理员登陆对话框类CManLog(CWnd* pParent = NULL); / standard constructorDoDataExchange(CDataExchange* pDX);OnCancel();CStringm_strManNum; /管理员编号CStringm_strManPassword; /管理员登录密码7. CReadLog类: /读者登陆对话框类 CReadLog(CWnd* pParent = NULL); / standard constructorDoDataExchange(CDataExchange* pDX);OnCancel();CStringm_strLinNum; /读者借书证号CStringm_strReaderPassword; /读者登陆密码8. CManOper类: /管理员操作对话框类CManOper(CWnd* pParent = NULL); / standard constructorDoDataExchange(CDataExchange* pDX);OnCancel();OnADD(); /添加书籍OnDelete(); /删除旧书9. CReadOper类: /读者操作对话框类CReadOper(CWnd* pParent = NULL); / standard constructorDoDataExchange(CDataExchange* pDX);OnCancel();OnBorrow(); /借书OnReturn(); /还书10. CAdd类: /添加书籍类CAdd(CWnd* pParent = NULL); / standard constructorDoDataExchange(CDataExchange* pDX);OnCancel();OnOK();CStringm_strBookName; /书籍名称CStringm_strWriterName; /作者姓名CStringm_strBookNumber; /书目编号CStringm_strBookLogNumber; /登录号11. CDelete类: /删除书籍类CDelete(CWnd* pParent = NULL); / standard constructorCStringm_strLogNum; /所删书籍的登录号12. CBorrowed类: /读者借书类CBorrow(CWnd* pParent = NULL); / standard constructorCStringm_strLogNum; /所借书的登录号CStringm_strLinNum; /所借书的库存册数CStringm_strPassword; /读者的登陆密码13. CReturn类: /读者还书类CReturn(CWnd* pParent = NULL); / standard constructorCStringm_strLogNum; /所还书的登录号CStringm_strLinNum; /所还书的库存册数CStringm_strPassword; /读者的登陆密码14. CLogCon类: /按登录号查找书籍CLogCon(CWnd* pParent = NULL); / standard constructorCStringm_strLogNum; /所查书籍的登录号15. CBookConsult类: /按书名查找书籍类DoDataExchange(CDataExchange* pDX);CBookConsult(CWnd* pParent = NULL); / standard constructorCStringm_strBookName; /所查找书的书名16. CLibManDoc类: /简单图书馆系统文档类CLibManDoc();DECLARE_DYNCREATE(CLibManDoc)CObList m_InfOfReaderList; /储存读者信息的链表CObList m_InfOfManList; /储存管理员信息的链表CObList m_InfOfBookList; /储存书籍信息的链表17. CLibManView类: /简单图书馆系统视图类 CObList *m_pm_InfOfManList;CObList *m_pm_InfOfReaderList;CObList *m_pm_InfOfBookList;/用于指向文档类三个对象的三个指针BOOL IsRight;int num; 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)手工定义消息,可以这么写 #define WM_MY_MESSAGE(WM_USER+100),MS推荐的至少是 WM_USER+100;(2)写消息处理函数,用 WPARAM,LPARAM返回LRESULT.LRESULT CMa
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年办公软件操作中级水平考试模拟题及答案解析
- 2025年中学化学教师招聘考试重点知识点梳理与预测题解析
- 2025年中国邮政客户经理招聘考试模拟试题及备考指南
- 2025年铁基及铁镍基非晶合金项目发展计划
- 2025年柔性树脂版合作协议书
- 2025年频率测量仪表项目合作计划书
- 2025年港口业投资项目合作计划书
- 2025年超多道数字地震仪项目建议书
- 2025年自动包装设备项目建议书
- 跨境电商物流 题库试题及答案 任务五 跨境电商出口货物包装
- 2025年4月自考00841第二外语(法语)试题
- 脊膜瘤的护理查房
- 法拍房介绍课件
- 器械gcp培训课件
- 《医院感染监测与控制》课程教学大纲(本科)
- 访问控制安全管理制度
- 【课件】数轴(课件)数学人教版2024七年级上册
- 乌镇景区管理制度
- 跨流域生态服务权衡-洞察及研究
- 公司意识形态管理制度
- 建筑行业技术总工岗位职责
评论
0/150
提交评论