资源描述
郑州工业应用技术学院课程设计说明书 题目: 图 书 管 理 系 统 姓 名: 院 (系): 信 息 工 程 学 院 专业班级:14级计算机科学与技术一班 学 号: 1401110126 指导教师: 成 绩: 时间: 2015 年 9 月 11 日至 2015 年 11 月 14 日郑州工业应用技术学院课程设计任务书 题目 图 书 管 理 系 统 专业、班级14级计算机科学与技术一班 学号1401110126 姓名 主要内容:设计开发一个小型的图书管信息管理系统,至少具有如下功能:查寻所有图书信息、通过输入图书编号来完成查找某一本图书信息、添加图书信息 、删除图书信息 以及通过学生学号实现图书借阅功能。操作界面要符合用户的一般习惯,界面易于读者明白理解,图形或文本界面都可以。基本要求:1、巩固并加深学生对C+语言程序设计知识的理解;2、认识面向过程和面向对象两种设计方法的区别; 3、进一步掌握和应用VC+6.0集成开发环境;4、提高运用C+语言解决实际问题的能力; 5、初步掌握开发小型实用软件的基本方法,能独立设计、实现基本的MIS系统. 主要参考资料:1谭浩强.C+语言基础课程M.北京:清华大学出版社,2009 2于永彦. C+程序设计基础案例教程M.北京:北京大学出版社,20093郑莉. C+语言程序设计习题与实验指导M.北京:清华大学出版社,2007 完 成 期 限: 9月11日-11月14日 指导教师签名: 课程负责人签名: 2015年 11月 14日摘要随着计算机技术的飞速发展,电子信息化慢慢替代了企业管理的传统管理手法,采用管理系统是能够有效提高管理效率的。图书馆是信息交换和资源流通的重要媒介,对图书馆的信息化管理将大大提高图书资源的利用和信息的交换速度。图书管理系统是通过将借阅信息以资料库的形式由网络传输来完成各用户(教师或学生)所要的借阅方面的需求(如借阅,归还,预订等)。以打破传统的人工选书模式,极大地方便了使用人员和管理人员,节约了时间和空间,实现图书借阅自动化,自由化,使图书资源得到充分利用。建立图书管理系统,使每个用户自由地选到自己需要的图书,避免传统借书模式的繁琐、低效率、借阅程序臃肿等等的缺点,减轻相关人员的负担。本图书管理系统实现了基本的管理员登录、图书管理、读者管理、借还图书、图书查询以及信息维护等功能的图书管理系统。 目录第1章 系统要求分析.11.1 系统目标.11.2 主体功能.11.3 开发环境.1第2章 系统概要设计.22.1 系统的功能模块划分.22.2 系统流程图.2第3章 系统详细设计.43.1 系统登录模块设计.63.2 系统界面设计.83.3 图书信息管理模块设计.83.4 管理员、读者信息管理模块设计.103.5 借书还书管理模块设计.12第4章 测试.144.1 测试方法.144.2 测试结果.14第5章 课程设计总结.19参考文献.20附录.21课程设计成绩评定表.23 第1章 系统需求分析1.1 系统目标 实现简单图书信息的计算机自动化管理,力求方便用户进行图书信息的管理,简化图书整理工作,节省人力成本,实现高效并易用的图书馆里系统。如:登陆权限管理、读者管理、图书信息(入库、修改、借还、查询、超期)管理、罚金管理。随着信息技术的发展,电子自动化作业越来越成熟,本系统主要针对的用户群体是各中小型图书馆。使用本系统能够方便图书管理,避免数据过多人工维护过于复杂。本系统同时支持管理员模式,同时支持进行读者登记等等功能。使用本系统能够有效减少图书馆的工作,简化工作流程,提高图书馆日常管理工作的效率,节约人力资源,为图书馆创造更大价值。1.2 主体功能 (1)权限管理:增加或删除系统操作人员,并指定操作人员的权限; (2)读者管理:设置不同的读者身份,并对读者相关信息进行管理,包括建立新的读者,编辑已有的读者信息和删除读者信息的操作; (3)图书类别的管理:对图书的类别进行管理;(4)图书入库管理:录入新的图书信息; (5)图书信息修改管理:对已有的图书信息进行修改,包括删除指定图书操作;(6)图书借还管理:实现对图书的借出和归还的管理; (7)图书查询管理:通过各种查询方式可以来进行查询,比如书号,书名,作者等;(8)图书超期管理:对超期的情况能自动给出提示信息。1.3 开发环境 VC+6.0集成开发环境、ACCESS2003数据库第2章 系统概要设计2.1系统的功能模块划分 整个图书管理系统分为四个模块。分别为图书管理模块、借阅管理模块、读者管理模块和系统管理四大模块,各模块的功能如下:图书管理模块包括新书入库,书籍查询,书籍信息修改。借阅管理模块有图书归还、借阅,罚金设置,逾期罚款。读者管理模块有增加读者,查询读者,修改读者信息。系统管理模块有登陆,管理员信息查询,删除账号,退出系统。2.2 系统流程图第一步是用户进行登陆,如果用户输入的密码不正确则将提示用户密码错误,如果用户通过验证,则进入功能选择模块进行详细操作。在功能选择模块,有图书管理、读者管理、借阅管理和管理员管理四个大的功能模块。每个大模块下面细分为小模块,详细设计见图2.2.在本系统中,图书管理模块对应BOOK表,读者管理对应READER表,借阅管理对应BORROW表,管理员管理对应CLERK表。流程图如下: 第3章 系统详细设计3.1 数据库设计用access2003建立名为“Library”的数据库,创建4个表,分别为:BOOK,CLERK,READER,BORROW和FINE。BOOK表存储图书信息。CLERK表存储用户欠费信息。READER表存储读者信息。BORROW表存储借出的图书信息。FINE存储在库图书。对话框如下: 图(1)数据表的设计利用ODBC数据源管理器配置与数据库对应的数据源 图(2)ODBC数据源设计建立名为“Library”的 MFC单文档应用程序向导 图(3)建立主程序 3.1 系统登录模块设计 图(4)登录界面添加系统登录对话框,属性设置为:双击对话框打开ClassWizard对话框,为IDD_LOGIN添加CLoginMDlg类,按 下表为该类添加成员变量。创建一个新类,名为CClerkDataSet,在BaseClass中选择CRecordset 图(5)类的设计3.2 系统主界面设计 图(6)系统主界面其中信息可以查看管理员信息,图书信息,读者信息;日常工作中包含图书借阅,图书归还,缴纳罚款;查询中包含读者查询;帮助中可以查看系统帮助3.3 图书信息管理模块设计图书信息管理模块的设计主要包括添加图书,修改图书信息,删除图书以及查看图书信息等。其中添加图书和修改图书信息以及查看图书信息可以使用一个界面进行完成。删除图书和修改图书信息的过程中要使用数据库的锁避免同时几个管理员对同一图书信息的编辑出现混乱的情况。查看图书信息不仅要显示图书已有的所有属性,还要显示此图书的借出数量与时间以及在架数量。图(7)图书信息录入添加书籍信息对话框,属性设置为IDD_BOOK_MAINTAIN字段及其解释为IDD_BOOK_MAINTAIN添加成员变量 创建一个新类,名为CBookDataSet,方法步骤同CClerkDataSet,添加消息映射 最后输入按钮代码3.4 管理员、读者信息管理模块设计 管理员信息管理:管理员信息管理模块能够实现对能够操作本系统的用户的增删改查,能够方便用户创建多个管理账户进行分工协作。同时对管理员信息的修改能够保证管理员信息与现实生活中的保持一致。图(8)管理员信息添加管理员信息对话框,属性设置为IDD_CLERK_MAINTAIN 字段设置为IDD_CLERK_MAINTAIN添加成员变量建立新类CClerkMDlg,按图书信息模块设计步骤做相似操作,添加消息映射最后输入按钮代码读者管理:读者管理能够实现对读者的增删改查。为应对不确定的读者群,本系统实现了对读者信息的增加修改能功能。能够帮助管理员及时删除不存在的读者账户,也能帮助管理员实现及时更改读者信息等实用功能。图(9)读者信息管理添加读者信息对话框,属性设置为IDD_READER_MAINTAIN读者信息字段为IDD_READER_MAINTAIN添加消息函数 建立新类CReaderDataSet,按上述步骤做相似操作,添加消息映射最后输入按钮代码3.5 借书还书管理模块设计借书还书模块是本系统的核心功能,此功能免去了以往手动输入借阅信息的繁琐,并增加了自动检索功能,是管理员对借阅情况了如指掌。此功能大大的简化了图书借阅流程,减轻了图书馆工作人员的工作程度。借书管理。借书管理: 图(10)借书界面添加图书借阅对话框,属性设置为IDD_LENDOUT为IDD_LENDOUT添加成员变量 建立新类LendOutDlg,按上述步骤做相似操作,添加消息回应最后输入按钮代码 还书管理: 图(11)还书管理添加图书归还对话框,属性设置为IDD_ReturnBook 借书字段 为IDD_ReturnBook添加成员变量 建立新类CReturnBookDlg,按上述步骤做相似操作,添加消息映射最后输入代码第4章 测试4.1 测试方法 采用黑盒测试方法,对功能进行逐一测试,在输入合理及不合理的数据后测试系统的正常运作情况 测试1:系统登录测试 测试2:图书管理测试测试3:读者管理测试测试4:管理员管理测试测试5:借书测试 测试6:还书测试 测试7:借书、罚金查询测试4.2 测试结果 项目的测试能够有效减少用户的学习成本,增加项目可靠度,及时发现项目存在的bug进行修改。能够避免用户使用过程中出现软件运行错误导致运行停止能问题,减少数据丢失风险,增加系统运行的可靠度。本项目测试分为登陆测试、图书管理测试、读者管理测试、管理员测试、借书测试以及罚金模块的测试。1、 登录测试代码如下:CLoadDlgdlg; aa:if(dlg.DoModal()=IDOK)if(!m_bAccept) AfxMessageBox(用户名或密码错误,请重新输入!);gotoaa;elsereturnFALSE;对话框如下: 图(1)2、 管理员测试代码如下:m_nTableNO=2;if(m_strDatabase!=)pDoc-OpenMdb();elseMessageBox(未设置数据库,请退出并设置数据库!);elseMessageBox(对不起,您没有此权限!); voidCStaffDlg:OnButtonAdd() if(m_nTableNO=2)SetValue();:SendMessage(hwnd,WM_USER_ADD,0,0);elseMessageBox(系统忙,请稍后再试!);对话框如下:图(2)3、 读者管理测试代码如下:if(m_nTableNO=2):SendMessage(hwnd,WM_USER_PREV,0,0);GetValue();elseMessageBox(系统忙,请稍后再试!); voidCStaffDlg:OnButtonRequary() if(m_nTableNO=2):SendMessage(hwnd,WM_USER_REQUERY,0,0);GetValue();elseMessageBox(系统忙,请稍后再试!);对话框如下:图(3)4、借书测试 代码如下:voidCTestView:OnReaderBook() CTestDoc*pDoc=GetDocument();if(m_strDatabase!=)if(m_nPurview=2)if(m_strInfo=0)MessageBox(您的借阅记录为空!);elseif(m_nTableNO=0) m_nTableNO=4;if(AfxMessageBox(该用户借阅记录为空!是否创建?,MB_YESNO)=IDYES)m_nFieldRow=m_nSelectedRow;pDoc-OnDemand();if(AfxMessageBox(数据库已建立!是否添加,MB_YESNO)=IDYES)/*m_strReaderID=m_arrayFieldValue5;pDoc-OpenMdb();*/elseMessageBox(未设置数据库,请退出并设置数据库!);对话框如下: 图(4) 第5章 课程设计总结在这次的课程设计中,让我学到了很多在课堂上和书本上学不到的知识,我在这次课程设计中最大的收获有以下几方面: 一、领略到了数据库设计在计算机领域的重要性。数据库作为一个永久存储形式在图书管理系统的设计应用中发挥着重要的作用。在数据库设计中,我明白了数据库设计不是范式越高越好的,我们要根据我们的应用来决定,一切应该以需求为首要选择。 二、对编程环境、一些控件的使用和界面的设计更加熟悉。因为图书管理系统中设计到很多控件的使用,只有很好的使用这些控件才可以给出一个很好的界面呈现在用户面前。这样更有利于数据库和用户之间的交流。三、利用软件工程学开发系统。虽然这个图书管理系统是一个小的系统,但从这个小的项目中也让我明白了数据库作为任何一个系统的后台的重要性,在开发系统设计和实现中学到和总结很多经验和教训。参考文献1谭浩强.C+程序设计M.北京:清华大学出版社,20042谭浩强.C+程序设计题解与上机指导M.北京:清华大学出版社,20053谭浩强.C语言教程M.北京:清华大学出版社,19994谭浩强.C程序设计案例教程M.北京:清华大学出版社,19995宋铁桥、陈彦.C语言开发实例教程M.北京:电子工业出版社,20086谭浩强、张基温.C语言程序设计教程M.北京:高等教育出版社,20097陈朔鹰.C语言程序设计基础教程M.北京:兵器工业出版社,19948姜仲秋等主编.C语言程序设计M.南京:南京大学出版社,19989刘瑞挺主编.计算机二级教程M.南京:南开大学出版社,199610陈朔鹰等编著.C语言程序设计基础教程M.北京:兵器工业出版社,199411姜仲秋等主编.C语言程序设计M.南京:南京大学出版社,1998 12谭浩强.C程序设计(第二版)M.北京:清华大学出版社,1999附录数据库设计: 数据库类型ACCESS 数据表 Admin_Info(管理员基本信息)、Book_Info(书籍信息)、Borrow_Info(借阅信息)、Proof_Info(读者信息) 关系 数据档格式 .mdb关系图:数据库连接ADO是目前在Windows环境中比较流行的数据库编程技术,是基于OLE DB的访问界面,它继承了OLE DB 技术的优点,并且,ADO对OLE DB 的界面做了封装,定义了ADO对象,使程序开发得到简化,ADO技术属于数据库访问的高层界面。在VC中使用ADO 有3中不同的方法(1)直接使用ADO Data控件。(2)使用智能指针操作。(3)使用VC Extensions for ADO。 由于使用智能指针进行操作比较普遍,故我们经过深思熟虑之后,一致决定使用该方法进行数据库连接。 ADO库包含3种智能指针,即连接对象指针_ConnectionPtr、命令对象指针_CommandPtr、记录集对象指针_RecordsetPtr。 用Connection对象连接数据库时,首先需要添加一个指向Connection对象的指针,然后调用CreatInstance()来创建对象的一个实例,最后通过Connection对象的Open方法进行连接。例如: _ConnectionPtr m_pConnection; m_pConnection.CreateInstance(ADODB.Connection); m_pConnection-Open(Provider=Microsoft.Jet.OLEDB.4.0;Data Source=Library.mdb,adModeUnknown); 如果使用记录集,可以直接用Recordset对象进行查询取得记录集,然后进行添加、删除、修改和查询等操作。字符转换由于ADO是基于若干COM界面实现的,因此COM使用其特定的数据类型。我接触的比较多的数据类型是_variant_t和_bstr_t两种。在遇到表和控件定义的变量格式不一致的情况时,我们通常会先定义_variant_t或者_bstr_t类型的变量,再进行相应的转换。通过查阅相关资料,并运用网络搜索,我们进一步了解了这两种数据类型。_variant_t是Variant的封装类,而Variant是一个结构化的数据类型,包含了一个成员值及其数据类型的表示。Variant可以表示相当多的数据类型,甚至另一个Variant,BSTR指针。对于Variant变量的赋值,首先给Variant成员赋值,指明数据类型,再对联合结构中相同数据类型的变量赋值。_bstr_t也是一个结构化的数据类型,是32位指针,但并不直接指向字符串的缓冲区。COM提供了方法进行串的空间分配、操作、释放。还有,我们也采用了CString的变量,通过Format()函数进行相应的数据类型转换。课程设计成绩评定表评定项目内 容满分评分总分学习态度学习认真,态度端正,遵守纪律。10设计情况认真查阅资料,勤学好问,提出的问题有一定的深度,分析解决问题的能力较强。40说明书质量设计方案正确、表达清楚;设计思路、实验(论证)方法科学合理;达到课程设计任务书规定的要求;图、表、文字表达准确规范,上交及时。40回答问题情况回答问题准确,基本概念清楚,有理有据,有一定深度。10总成绩采用五级分制:优、良、中、及格、不及格指导教师评语: 签名: 年 月 日24
展开阅读全文