《图书馆管理系统(共33页).doc》由会员分享,可在线阅读,更多相关《图书馆管理系统(共33页).doc(33页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、精选优质文档-倾情为你奉上图书馆管理系统概要设计说明书目录1引言21.1编写目的21.2项目背景21.3定义21.4参考资料22任务概述32.1目标32.2运行环境32.3需求概述32.4条件与限制33总体设计43.1处理流程43.2总体结构和模块外部设计103.3功能分配114接口设计134.1外部接口134.2内部接口135数据结构设计145.1 设计中三个对象的定义145.2功能实现函数186运行设计256.1运行模块的组合256.2运行控制256.3运行时间257安全保密设计268系统测试279附录30专心-专注-专业文档编号_ 版 本 号_文档名称: 概要设计说明书项目名称: 图书馆
2、管理系统项目负责人:张文超 编写 张文超 _年_月_日 校对 所有小组成员 _年_月_日 审核 所有小组成员 _年_月_日 批准 test _年_月_日 开发单位_组员: 张磊张文超胡观何剑涛房启龙张迪姜景权1 引言1.1 编写目的由前面的需求分析,得出了系统的基本需求,和基本的数据流图,要实现整个系统,需要对用户的需求进行设计,概要设计主要是利用比较抽象的语言对整个需求进行概括,确定对系统的物理配置,确定整个系统的处理流程和系统的数据结构,接口设计,实现对系统的初步设计。1.2 项目背景根据XX学校希望能够充分利用现代科技来提高图书管理的效率,在原有的办公系统基础上进行扩展,将一些可以用计算
3、机来管理的都进行计算机化,使得图书馆管理人员工作更加方便,工作效率也更加的高。1.3 定义Windows vista/7/XP:运行环境C+ :软件开发语言1.4 参考资料软件工程导论第5版 张海藩编著 清华大学出版社软件工程实践导论:有关方法、设计、实现、管理之三十六计金尊和编著 清华大学出版社 C+程序设计 谭浩强 清华大学出版社 2 任务概述2.1 目标通过该系统的实施,将图书馆管理等方面通过系统来实施,其中包括对学生借还读书信息,员工信息,以及读书信息等等,使得图书馆借还等管理业务和查询业务运转周期缩短?%以上,来提高学校图书馆运转效率。2.2 运行环境运行平台:Windows XP/
4、Windows vista/Windows 72.3需求概述按照需求分析文档中的规格要求,借书、还书,使得信息传递准确、流畅。同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。2.4条件与限制无 3总体设计3.1处理流程顶层数据流图:第0层图:第一层图:(1):登陆子系统(2):管理子系统(3)查询子系统第二层图:(1):入库管理(2)处理学生借书(3):处理学生还书(4):处理图书注销(5)处理学生信息查询 3.2总体结构和模块外部设计3.3功能分配针对图书馆管理系统,可以分为两大模块,一个小模块:分别为管理子系统,查询子系统两大模块;基础信息管理小模块;在管理子系统中
5、:1):新书购入处理模块只要是针对采购员在根据计划在外采购新书之后的处理,所以当采购员采购到新书后,系统根据原先计划采购的新书进行核查,如果符合计划预定,则将新书入库;否则退货;该模块主要是处理购入的新书是否符合要求;2):处理学生借书模块:该模块主要是处理学生借书业务,在图书馆管理人员输入学生信息的时候,系统会根据学生文件对该学生进行查询,看看是否存在该学生,如果不存在,则系统给出警告信息:该学生不存在;如果存在该学生,则系统根据罚款单对该学生的欠款情况进行查询,如果欠款超过一定金额,则借书失败,否则接受借书,更新借书文件,在显示器上面显示借书成功;3):处理学生还书模块:该模块主要是处理学
6、生还书业务,在图书馆管理人员输入要还的图书字段时,系统会在借书文件中查找该图书信息,之后对借书文件,学生文件中的该学生已借书数,图书目录文件进行更新;然后在借书文件中提取学生数据,根据图书的还书日期和借出日期对学生的欠款金额进行计算,如果没有超期,则欠款金额在原来的基础上加0;之后将结果显示出来;4):处理图书注销模块:该模块主要是针对图书注销业务;在查询子系统中:有两个查询内容:1) 学生信息查询:学生信息查询子模块主要是对学生信息的查询;2) 图书信息查询:图书信息查询子模块主要是对图书信息的查询;这些模块,是针对学生或者图书馆管理人员这两个不同的对象,查询子系统主要是让用户了解信息,所以
7、不需要进行用户密码登陆,直接可以进行查询,而管理模块是涉及到图书馆内部的重要信息管理方面,所以必须要设置用户密码登陆和权限等等,以保数据的安全性和系统的安全性; 4接口设计4.1外部接口1, 用户接口:采用窗口化,菜单式进行设计,在操作时响应热键。4.2内部接口通过面向对象语言设计类,在public类中实现调用;类间实现严格封装; 5数据结构设计数据结构与程序是软件的重要组成部分,程序的正确执行依赖于合理的数据结构系统程序函数大全介绍与说明:图书馆管理系统中,我们小组将整个系统分成了三个大块:1:登陆信息(包括管理员与普通用户)2:图书信息(对图书进行借阅,归还,查询等操作)3:学生信息(对学
8、生进行查询,添加,删除等操作)5.1设计中的三个对象定义我们在程序中建立了三个类别:Class LoginChar id11;Char password11;Class Login用来记录一个用户的登陆信息id是一个用户号,最长可以由11位构成。Password是用户密码,最长可以由11位构成。class Bookpublic:char id11;char name20;char editor20;char writer20;time_t time;int outdate;bool onshelf;/true :available false:not availablechar sid11;/
9、the id of the studentBook *before;Book *follow;public:Book();Class Book用来记录一本图书的信息Id是书号,最长可以用11位,如“”。Name是书名,最长可以用20位,如“计算机科学与导论”。Editor 是出版社,最长可以用20位,如“人民教育出版社”。Writer 是作者名,最长可以用20位,如“冰心”。Time 用来记录一本书被借出的时间,在我们的程序里面,我们规定,借书超过30天不还的话,即为超期。Outdate 标注一本书是不是借阅超期,如果超期则为1,否则为0。Onshelf 标注一本书现在是不是在馆,如果在馆,则
10、可以借阅,否则不能借阅。Sid 记录是哪一个学生借阅了本书。Book *before 构建链表的时候,用来指出上一个Book成员的指针。Book *before构建链表的时候,用来指出下一个Book成员的指针。Book() book类的构造函数,用来初始化一条记录的初始值。class Studentpublic:char id11;char idv11;char name20;int numa6;Student *before;Student *follow;Book book6;public:Student();Class student用来记录一个学生的信息Id 学生的学号,最长为11位,
11、如“”。Idv 学生的借书证号,最长为11位,如“”。Name 学生的姓名,最长为20位,如“张韬”。Numa 学生借阅的图书数目,最多为六本。Student *before构建链表的时候,用来指出上一个Student成员的指针。Student *follow构建链表的时候,用来指出下一个Student成员的指针。Student() student类的构造函数,用来初始化一条记录的初始值。我们为了将数据与操作分开又建了三个类别分别对这三个类的数据进行操作:class Loginread public:void Loginwrite(class Login *head,int m);int Lo
12、ginmodpassword(char id11,char password11);int OnLogin(char id11,char password11); class Login * Login(int m);Loginread用来对Login数据进行操作。void Loginwrite(class Login *head,int m);用来把管理员的记录写入一个名叫“Login.txt”的文件。Head为要写出记录的头指针,m为要把记录写到哪一块,M代表一个Login对象的大小,我们以一个Login对象的大小为写出的基本单位Class Login Login(int m )从“Log
13、in.txt0”里面读出数据,每一次读入20个记录 返回一个头指针,从20*M的位置开始读,M为一个标记位置的数字,M代表一个Login对象的大小,我们以一个Login对象的大小为读取的基本单位int OnLogin(char id11,char password11);管理员登陆的函数,此函数的返回值为一个整数,分为不同的情况1:管理员成功登陆2:密码不正确3:没有该管理员Id 为用户的帐号Password为用户的密码int Loginread:Loginmodpassword(char id11, char password11)此函数用来修改一个管理员的密码,返回值为一个整数,分为不同的
14、情况0:没有这个管理员1:修改成功2:新密码不一样3:还没有登陆Id 为用户的帐号Password为用户的密码class Bookreed/void Bookread:Pre();public:int searchname(char name20,char fromname20);class Book *Booknamesearch(char name20);int Search(char id11,class Book * book);int Bmod(char id11,char name20,char editor20,char writer20);class Book *Bookrea
15、d(int m);void Bookwrite(class Book *head,int m);int Borrow(char a11,char s11,char idv11);int BReturn(char a11);int BAdd(char id11,char name20,char editor20,char writer20);int BDel(char id11);private:classStudentreed Studentreed;5.2功能实现函数Bookread用来对Book类的对象进行操作。class Book *Bookreed:Bookread(int m)函数用
16、来对“Book.txt”进行读取操作。这里的M用来记录读入第几个20个文件 这里设一次读入为20个记录void Bookreed:Bookwrite(class Book *head,int m)函数用来对“Book.txt”进行写操作。这里head为被写入文件的头指针m为写回磁盘文件的哪一个位置Int BAdd(char id11,char name20);此函数用来添加一本图书,返回值为整数,分为不同的情况:0:这本书已经存在了 ,在本馆中收藏1:这本书已经存在,但已经借出2:成功存入3:非法书号/这个不是函数的还要改的Id 为新增的图书的书号。Name 为新增的图书的书名。Int BDe
17、l(char id11)此函数用来删除一本图书,返回值为整数,分为不同的情况:0:没有这本书1:这本书有 但是已经借出 请以后再删除2:删除成功Id 要删除的图书的书号Int Borrow (char a11,char s11)此函数用来进行借阅操作,返回值为整数,分为不同的情况:1:这本书存在但已经借出2:借书成功3:没有这本书4:因为学生原因不能成功借出,没有这个学生5:学生借书已满6:该借书证已无效a为书号s为学号Int BReturn(char a11)此函数用来进行还书操作,返回值为整数,分为不同的情况:0:没有这本书1:这本书在馆没有被借出2:成功归还此书a为要归还的书号Int B
18、mod(char id11,char name20,char editor20,char writer20)此函数用来进行修改书目信息的操作,返回值为整数,分为不同的情况:0:不存在这本书1:修改成功;Id 为要修改的书目的书号Name 为书目的新名字。Editor 为书目的新的出版社。Writer 为书目的新的作者。int Bookreed:Search(char id11,Book *book)此函数用来进行按书号进行询寻的操作,返回值为整数,分为不同的情况:0:没有这本书1:有这本书。但已经外借2:有这本书。过期3:有这本书 且在本馆中Id 为要查询的书目的书号,Book 一个指针,要查
19、询的头指针。int searchname(char name20,char fromname20);此函数用来进行按书名进行匹配,返回值为整数,分为不同的情况:0:名字不匹配1:名字匹配Name 要匹配的名字。Fromname 从哪里匹配。class Book *Booknamesearch(char name20);此函数用来进行按书名进行询寻的操作,返回一个headv指针若为NULL则找不到这本书若不为NULL则输出所有的书Name 要查询的书目的名字。class Studentreedpublic:int SMod(char id11,char name20,char idv11);in
20、t Search(char id11,class Student * student);/void Spre(); class Student *Studentread(int m);void Studentwrite(class Student *head,int m);int SBorrow(char id11,class Book *book,char idv11); /id:是学生的学号bid:是书号int SDel(char id11);int SReturn(char bid11,char sid11);int SAdd(char id11,char name20,char idv
21、11);Studentread用来对Student类的对象进行操作。class Student *Studentreed:Studentread(int m)函数用来对“Book.txt”进行读取操作。这里的M用来记录读入第几个20个文件 ,这里设一次读入为20个记录void Studentreed:Studentwrite(class Student *head,int m)函数用来对“Book.txt”进行读取操作。这里head为被写入文件的头指针m为写回磁盘文件的哪一个地方Int SAdd(char id11,name20,idv11)此函数用来添加一名学生,返回值为整数,分为不同的情况
22、:0:该学生已存在1:成功添加Id 为学生的学号,Name 为学生的姓名,Idv 为学生的借书证Int SDel(char id11)此函数用来删除一名学生记录,返回值为整数,分为不同的情况:0:没有这个学生1:删除成功Id 为要删除学生的学号int Studentreed:SBorrow(char id11,class Book *book,char idv11)此函数用来进行借书的操作,返回值为整数,分为不同的情况:0:没有这个学生1:这个学生已经借了6本书不能再借了2:该学生可以借这本书3:这个借书证无效了id为学号book为书对象指针 idv为借书证号Int SReturn(char
23、bid11,char sid11)此函数用来进行还书的操作,返回值为整数,分为不同的情况:0:没有这个学生(这一项为一个虚项,因为若有被借出的书必定有借出人)1:成功归还Id要还的书的书号sid为学生的学号int Studentreed:Search(char id, Student *student)此函数用来进行查询的操作,返回值为整数,分为不同的情况:0:没有该学生1:又该学生,返回该学生的相关信息Id 要查的学生的学号Student 一个头指针。int Studentreed:SMod(char id, char name, char idv)此函数用来进行修改学生信息的操作,返回值为
24、整数,分为不同的情况:0:没有这个学生1:修改成功Id 为学生的学号Name 为学生的新的姓名Idv 为学生的新的借书证 6运行设计6.1运行模块的组合本程序主要是以一个窗口为模块,一般一个窗口完成一个特定的功能,主窗口通过打开另一个子窗口来实现个模块之间不同功能的连接和组合。各模块之间相对独立,程序的可移植性好。各模块之间主要以传递数据项的引用来实现模块之间的合作和数据共享。6.2 运行控制只要符合操作说明书,用户可自由控制6.3运行时间由用户决定 7安全保密设计我们这个软件的安全主要有几个方面:软件使用安全:这个我们在对错误的异常处理的地方已经详细说明。这里不再重述。账号安全:主要就是密码
25、的保护,因为我们现在的能力有限,所以关于密码保护的方面比较薄弱,希望用户妥善保护自己的密码。 8系统测试 图书管理系统测试文档 测试人:孙亦轩基本功能测试:每一项功能进行遍历1 双击运行程序,提示没有找到MFC42D.dll,说明该系统仅可以应用于安装了visual C+的机器上才能够运行.应该属于兼容性问题. 2 管理员登陆(账号:33333 密码:33333 ) 通过3 存书功能 正常单独存书通过(先存,在查找) (1)单独输入书号存入错误4 添加用户 添加成功5 借书 通过 输入借书人号,所借书的编号 点击后借阅成功6 还书 输入所还书的编号 提示还书成功 查询还书信息提示书仍在借书状态
26、 7 修改 删除书 通过 (1)删除借出的书籍失败 提示语言错误 删除学生 通过 (1)删除不存在的学生 失败 提示没有这个学生 (2)删除已经借书的学生信息,提示删除成功。并且查询信息可以显示学生信息已被删除。8 选择修改书目,在书名栏不进行任何输入,然后点击 按书名查询 系统输出所有书籍信息。若有已删除书籍,则有乱码输出。 9 添加两个学生信息,借书证号均为001,然后选择借书,输入借书证号001,提示不存在这个学生。选择查询学生的基本信息,输入001,依 然显示学生不存在。经过后续测试发现是学生信息添加失败。该缺陷在测试中出现仅一次,未能找到重现方法。10 超长字符串处理,输入,提示成功
27、,输出,只取前几位,没问题11 数据存储文件损坏后,程序在异常中运行。12 同时输出很多本书时候没有换行测试总结:本图书馆管理系统运行正常,基本功能已经实现,可以实现功能:1. 管理员登陆2. 存书3. 添加用户4. 借书5. 还书但是在修改和删除图书信息功能上存在缺陷,在添加学生信息的时候也存在漏洞,不过这个不是严重的错误,经过其小组成员的分析和讨论以后已经改进这些漏洞完全可以正确实现修改和删除图书并且在添加学生信息的时候也不会出现问题了。实现了该系统所要求实现的基本功能。9附录:人员分工:程序编写:图书书目信息相关模块:张文超学生信息相关模块:张迪用户登陆模块与最终整合:何剑涛文档整理:设计报告:张磊,胡观系统测试:房启龙程序函数总结整理:江景权最终报告:张文超,江景权:负责程序信息整理张迪,何剑涛:程序测试文档整理张磊,胡观:系统概述与用户使用手册