图书馆管理系统_第1页
图书馆管理系统_第2页
图书馆管理系统_第3页
图书馆管理系统_第4页
图书馆管理系统_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图书馆管理系统概要设计说明书目录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附录30iiig文档编号_ 版 本 号_文档名称: 概要设计说明书项目名称: 图书馆管理系统项目负责人:张文超 编写 张文超 _年_月_日 校对 所有小组成员 _年_月_日 审核 所有小组成员 _年_月_日 批准 test _年_月_日 开发单位_组员: 张磊张文超胡观何剑涛房启龙张迪姜景权1 引言1.1 编写目的由前面的需求分析,得出了系统的基本需求,和基本的数据流图,要实现整个系统,需要对用户的需求进行设计,概要设计主要是利用比较抽象的语言对整个需求进行概括,确定对系统的物理配置,确定整个系统的处理流程和系统的数据结构,接口设计,实现对系统的初步设计。1.2 项目背景根据XX学校希望能够充分利用现代科技来提高图书管理的效率,在原有的办公系统基础上进行扩展,将一些可以用计算机来管理的都进行计算机化,使得图书馆管理人员工作更加方便,工作效率也更加的高。1.3 定义Windows vista/7/XP:运行环境C+ :软件开发语言1.4 参考资料软件工程导论第5版 张海藩编著 清华大学出版社软件工程实践导论:有关方法、设计、实现、管理之三十六计金尊和编著 清华大学出版社 C+程序设计 谭浩强 清华大学出版社 2 任务概述2.1 目标通过该系统的实施,将图书馆管理等方面通过系统来实施,其中包括对学生借还读书信息,员工信息,以及读书信息等等,使得图书馆借还等管理业务和查询业务运转周期缩短?%以上,来提高学校图书馆运转效率。2.2 运行环境运行平台:Windows XP/Windows vista/Windows 72.3需求概述按照需求分析文档中的规格要求,借书、还书,使得信息传递准确、流畅。同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。2.4条件与限制无 3总体设计3.1处理流程顶层数据流图:第0层图:第一层图:(1):登陆子系统(2):管理子系统(3)查询子系统第二层图:(1):入库管理(2)处理学生借书(3):处理学生还书(4):处理图书注销(5)处理学生信息查询 3.2总体结构和模块外部设计3.3功能分配针对图书馆管理系统,可以分为两大模块,一个小模块:分别为管理子系统,查询子系统两大模块;基础信息管理小模块;在管理子系统中:1):新书购入处理模块只要是针对采购员在根据计划在外采购新书之后的处理,所以当采购员采购到新书后,系统根据原先计划采购的新书进行核查,如果符合计划预定,则将新书入库;否则退货;该模块主要是处理购入的新书是否符合要求;2):处理学生借书模块:该模块主要是处理学生借书业务,在图书馆管理人员输入学生信息的时候,系统会根据学生文件对该学生进行查询,看看是否存在该学生,如果不存在,则系统给出警告信息:该学生不存在;如果存在该学生,则系统根据罚款单对该学生的欠款情况进行查询,如果欠款超过一定金额,则借书失败,否则接受借书,更新借书文件,在显示器上面显示借书成功;3):处理学生还书模块:该模块主要是处理学生还书业务,在图书馆管理人员输入要还的图书字段时,系统会在借书文件中查找该图书信息,之后对借书文件,学生文件中的该学生已借书数,图书目录文件进行更新;然后在借书文件中提取学生数据,根据图书的还书日期和借出日期对学生的欠款金额进行计算,如果没有超期,则欠款金额在原来的基础上加0;之后将结果显示出来;4):处理图书注销模块:该模块主要是针对图书注销业务;在查询子系统中:有两个查询内容:1) 学生信息查询:学生信息查询子模块主要是对学生信息的查询;2) 图书信息查询:图书信息查询子模块主要是对图书信息的查询;这些模块,是针对学生或者图书馆管理人员这两个不同的对象,查询子系统主要是让用户了解信息,所以不需要进行用户密码登陆,直接可以进行查询,而管理模块是涉及到图书馆内部的重要信息管理方面,所以必须要设置用户密码登陆和权限等等,以保数据的安全性和系统的安全性; 4接口设计4.1外部接口1, 用户接口:采用窗口化,菜单式进行设计,在操作时响应热键。4.2内部接口通过面向对象语言设计类,在public类中实现调用;类间实现严格封装; 5数据结构设计数据结构与程序是软件的重要组成部分,程序的正确执行依赖于合理的数据结构系统程序函数大全介绍与说明:图书馆管理系统中,我们小组将整个系统分成了三个大块:1:登陆信息(包括管理员与普通用户)2:图书信息(对图书进行借阅,归还,查询等操作)3:学生信息(对学生进行查询,添加,删除等操作)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;/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 标注一本书现在是不是在馆,如果在馆,则可以借阅,否则不能借阅。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位,如“”。Idv 学生的借书证号,最长为11位,如“”。Name 学生的姓名,最长为20位,如“张韬”。Numa 学生借阅的图书数目,最多为六本。Student *before构建链表的时候,用来指出上一个Student成员的指针。Student *follow构建链表的时候,用来指出下一个Student成员的指针。Student() student类的构造函数,用来初始化一条记录的初始值。我们为了将数据与操作分开又建了三个类别分别对这三个类的数据进行操作:class Loginread public:void Loginwrite(class Login *head,int m);int Loginmodpassword(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 )从“Login.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)此函数用来修改一个管理员的密码,返回值为一个整数,分为不同的情况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 *Bookread(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)函数用来对“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 BDel(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 Bmod(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 一个指针,要查询的头指针。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);int 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 idv11);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)此函数用来添加一名学生,返回值为整数,分为不同的情况: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 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)此函数用来进行修改学生信息的操作,返回值为整数,分为不同的情况:0:没有这个学生1:修改成功Id 为学生的学号Name 为学生的新的姓名Idv 为学生的新的借书证 6运行设计6.1运行模块的组合本程序主要是以一个窗口为模块,一般一个窗口完成一个特定的功能,主窗口通过打开另一个子窗口来实现个模块之间不同功能的连接和组合。各模块之间相对独立,程序的可移植性好。各模块之间主要以传递数据项的引用来实现模块之间的合作和数据共享。6.2 运行控制只要符合操作说明书,用户可自由控制6.3运行时间由用户决定 7安全保密设计我们这个软件的安全主要有几个方面:软件使用安全:这个我们在对错误的异常处理的地方已经详细说明。这里不再重述。账号安全:主要就是密码的保护,因为我们现在的能力有限,所以关于密码保护的方面比较薄弱,希望用户妥善保护自己的密码。 8系统测试 图书管理系统测试文档 测试人:孙亦轩基本功能测试:每一项功能进行遍历1 双击运行程序,提示没有找到MFC42D.dll,说明该系统仅可以应用于安装了visual C+的机器上才能够运行.应该属于兼容性问题. 2 管理员登陆(账号:33333 密码:3

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论