〖图书馆管理系统〗概要设计说明书
目录
1
引言 ................................................................................................................................................................................................................................... 2 1.1 1.2 1.3 1.4
编写目的 ............................................................................................................................... 2 项目背景 ............................................................................................................................... 2 定义 ....................................................................................................................................... 2 参考资料 ............................................................................................................................... 3
2.1 目标 .............................................................................................................................................. 4 2.2 运行环境 ...................................................................................................................................... 4 2.3需求概述 ....................................................................................................................................... 4 2.4条件与 ................................................................................................................................... 4
3总体设计 .................................................................................................................................................................................................................................. 5 3.1处理流程 ....................................................................................................................................... 5 3.2总体结构和模块外部设计 ........................................................................................................... 6 3.3功能分配 ....................................................................................................................................... 7
4接口设计 .................................................................................................................................................................................................................................. 9 4.1外部接口 ....................................................................................................................................... 9 4.2内部接口 ....................................................................................................................................... 9
5数据结构设计 ........................................................................................................................................................................................................................ 10 6运行设计 ................................................................................................................................................................................................................................ 29 6.1运行模块的组合 ......................................................................................................................... 29 6.2 运行控制 .................................................................................................................................... 29 6.3运行时间 ..................................................................................................................................... 29
7安全保密设计 ........................................................................................................................................................................................................................ 30
8 .................................................................................... 系统测试 27
9 ........................................................................................... 附录 30
文档编号______________
版 本 号______________
文档名称: 概要设计说明书
项目名称: 图书馆管理系统
项目负责人:张文超
编写 张文超 _____年_____月_____日
校对 所有小组成员 _____年_____月_____日
审核 所有小组成员 _____年_____月_____日
批准 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 7
2.3需求概述
按照需求分析文档中的规格要求,借书、还书,使得信息传递准确、流畅。同时,系统最大限度地实现易安装,易维护性,易操作性,运行稳定,安全可靠。
2.4条件与
无
3总体设计
3.1处理流程
顶层数据流图:
第0层图:
第一层图:
(1):登陆子系统
(2):管理子系统
(3)查询子系统
图书馆管理人员|学生输入学生查询关键字3.1学生信息查询学生信息学生文件借书文件显示器输入图书查询关键字图书目录文件3.2图书信息查询图书信息第二层图:
(1):入库管理
(2)处理学生借书
罚款单学生文件非法学生信息2.2.1检查学生欠费情况图书馆管理人员输入学生字段欠款超额,拒绝借书显示器接受借书,输入图书信息借书成功系统时钟当前日期2.2.2更新数据库借书文件(3):处理学
生还书
图书馆管理人员输入图书字段2.3.1根据图书字段查找数据库借书信息和学生信息2.3.2计算欠款结果欠款金额显示器借书文件还书成功当前日期系统时钟学生文件图书目录文件罚款单(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 Login
{
Char id[11];
Char password[11];
}
Class Login用来记录一个用户的登陆信息
id是一个用户号,最长可以由11位构成。
Password是用户密码,最长可以由11位构成。
class Book
{
public:
char id[11];
char name[20];
char editor[20];
char writer[20];
time_t time;
int outdate;
bool onshelf;//true :available false:not available
char sid[11];//the id of the student
Book *before;
Book *follow;
public:
Book();
};
Class Book
用来记录一本图书的信息
Id是书号,最长可以用11位,如“11112222333”。
Name是书名,最长可以用20位,如“计算机科学与导论”。
Editor 是出版社,最长可以用20位,如“人民教育出版社”。
Writer 是作者名,最长可以用20位,如“冰心”。
Time 用来记录一本书被借出的时间,在我们的程序里面,我们规定,借书超过30天不还的话,即为超期。
Outdate 标注一本书是不是借阅超期,如果超期则为1,否则为0。
Onshelf 标注一本书现在是不是在馆,如果在馆,则可以借阅,否则不能借阅。
Sid 记录是哪一个学生借阅了本书。
Book *before 构建链表的时候,用来指出上一个Book成员的指针。
Book *before构建链表的时候,用来指出下一个Book成员的指针。
Book() book类的构造函数,用来初始化一条记录的初始值。
class Student
{
public:
char id[11];
char idv[11];
char name[20];
int numa[6];
Student *before;
Student *follow;
Book book[6];
public:
Student();
};
Class student
用来记录一个学生的信息
Id 学生的学号,最长为11位,如“11112222333”。
Idv 学生的借书证号,最长为11位,如“11111222223”。
Name 学生的姓名,最长为20位,如“张韬”。
Numa 学生借阅的图书数目,最多为六本。
Student *before构建链表的时候,用来指出上一个Student成员的指针。
Student *follow构建链表的时候,用来指出下一个Student成员的指针。
Student() student类的构造函数,用来初始化一条记录的初始值。
我们为了将数据与操作分开
又建了三个类别分别对这三个类的数据进行操作:
class Loginread
{
public:
void Loginwrite(class Login *head,int m);
int Loginmodpassword(char id[11],char password[11]);
int OnLogin(char id[11],char password[11]);
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 id[11],char password[11]);
管理员登陆的函数,此函数的返回值为一个整数,分为不同的情况
1:管理员成功登陆
2:密码不正确
3:没有该管理员
Id 为用户的帐号
Password为用户的密码
int Loginread::Loginmodpassword(char id[11], char password[11])
此函数用来修改一个管理员的密码,返回值为一个整数,分为不同的情况
0:没有这个管理员
1:修改成功
2:新密码不一样
3:还没有登陆
Id 为用户的帐号
Password为用户的密码
class Bookreed
{
//void Bookread::Pre();
public:
int searchname(char name[20],char fromname[20]);
class Book *Booknamesearch(char name[20]);
int Search(char id[11],class Book * book);
int Bmod(char id[11],char name[20],char editor[20],char writer[20]);
class Book *Bookread(int m);
void Bookwrite(class Book *head,int m);
int Borrow(char a[11],char s[11],char idv[11]);
int BReturn(char a[11]);
int BAdd(char id[11],char name[20],char editor[20],char writer[20]);
int BDel(char id[11]);
private:
class Studentreed 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 id[11],char name[20]);
此函数用来添加一本图书,返回值为整数,分为不同的情况:
0:这本书已经存在了 ,在本馆中收藏
1:这本书已经存在,但已经借出
2:成功存入
3:非法书号//这个不是函数的…还要改的
Id 为新增的图书的书号。
Name 为新增的图书的书名。
Int BDel(char id[11])
此函数用来删除一本图书,返回值为整数,分为不同的情况:
0:没有这本书
1:这本书有 但是已经借出 请以后再删除
2:删除成功
Id 要删除的图书的书号
Int Borrow (char a[11],char s[11])
此函数用来进行借阅操作,返回值为整数,分为不同的情况:
1:这本书存在 但已经借出
2:借书成功
3:没有这本书
4:因为学生原因不能成功借出,没有这个学生
5:学生借书已满
6:该借书证已无效
a为书号
s为学号
Int BReturn(char a[11])
此函数用来进行还书操作,返回值为整数,分为不同的情况:
0:没有这本书
1:这本书在馆 没有被借出
2:成功归还此书
a为要归还的书号
Int Bmod(char id[11],char name[20],char editor[20],char writer[20])
此函数用来进行修改书目信息的操作,返回值为整数,分为不同的情况:
0:不存在这本书
1:修改成功;
Id 为要修改的书目的书号
Name 为书目的新名字。
Editor 为书目的新的出版社。
Writer 为书目的新的作者。
int Bookreed::Search(char id[11],Book *book)
此函数用来进行按书号进行询寻的操作,返回值为整数,分为不同的情况:
0:没有这本书
1:有这本书。但已经外借
2:有这本书。过期
3:有这本书 且在本馆中
Id 为要查询的书目的书号,
Book 一个指针,要查询的头指针。
int searchname(char name[20],char fromname[20]);
此函数用来进行按书名进行匹配,返回值为整数,分为不同的情况:
0:名字不匹配
1:名字匹配
Name 要匹配的名字。
Fromname 从哪里匹配。
class Book *Booknamesearch(char name[20]);
此函数用来进行按书名进行询寻的操作,返回一个headv指针
若为NULL则找不到这本书
若不为NULL则输出所有的书
Name 要查询的书目的名字。
class Studentreed
{
public:
int SMod(char id[11],char name[20],char idv[11]);
int Search(char id[11],class Student * student);
//void Spre();
class Student *Studentread(int m);
void Studentwrite(class Student *head,int m);
int SBorrow(char id[11],class Book *book,char idv[11]); //id:是学生的学号bid:是书号
int SDel(char id[11]);
int SReturn(char bid[11],char sid[11]);
int SAdd(char id[11],char name[20],char idv[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 id[11],name[20],idv[11])
此函数用来添加一名学生,返回值为整数,分为不同的情况:
0:该学生已存在
1:成功添加
Id 为学生的学号,
Name 为学生的姓名,
Idv 为学生的借书证
Int SDel(char id[11])
此函数用来删除一名学生记录,返回值为整数,分为不同的情况:
0:没有这个学生
1:删除成功
Id 为要删除学生的学号
int Studentreed::SBorrow(char id[11],class Book *book,char idv[11])
此函数用来进行借书的操作,返回值为整数,分为不同的情况:
0:没有这个学生
1:这个学生已经借了6本书 不能再借了
2:该学生可以借这本书
3:这个借书证无效了
id为学号
book为书对象指针
idv 为借书证号
Int SReturn(char bid[11],char sid[11])
此函数用来进行还书的操作,返回值为整数,分为不同的情况: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 密码:33333 ) 通过
3 存书功能 正常单独存书通过(先存,在查找)
(1)单独输入书号存入错误
4 添加用户 添加成功
5 借书 通过 输入借书人号,所借书的编号 点击后借阅成功
6 还书 输入所还书的编号 提示还书成功 查询还书信息提示书仍在借书状态
7 修改 删除书 通过
(1)删除借出的书籍失败 提示语言错误
删除学生 通过
(1)删除不存在的学生 失败 提示没有这个学生
(2)删除已经借书的学生信息,提示删除成功。并且查询信息可以显示学生信息已被删除。
8 选择修改书目,在书名栏不进行任何输入,然后点击 按书名查询 系统输出所有书籍信息。若有已删除书籍,则有乱码输出。
9 添加两个学生信息,借书证号均为001,然后选择借书,输入借书证号001,提示不存在这个学生。选择查询学生的基本信息,输入001,依 然显示学生不存在。经过后续测试发现是学生信息添加失败。该缺陷在测试中出现仅一次,未能找到重现方法。
10 超长字符串处理,输入,提示成功,输出,只取前几位,没问题
11 数据存储文件损坏后,程序在异常中运行。
12 同时输出很多本书时候没有换行
测试总结:
本图书馆管理系统运行正常,基本功能已经实现,可以实现功能:
1. 管理员登陆
2. 存书
3. 添加用户
4. 借书
5. 还书
但是在修改和删除图书信息功能上存在缺陷,在添加学生信息的时候也存在漏洞,不过这个不是严重的错误,经过其小组成员的分析和讨论以后已经改进这些漏洞完全可以正确
实现修改和删除图书并且在添加学生信息的时候也不会出现问题了。实现了该系统所要求实现的基本功能。
9附录:
人员分工:
程序编写:
图书书目信息相关模块:张文超
学生信息相关模块:张迪
用户登陆模块与最终整合:何剑涛
文档整理:
设计报告:张磊,胡观
系统测试:房启龙
程序函数总结整理:江景权
最终报告:
张文超,江景权:负责程序信息整理
张迪,何剑涛:程序测试文档整理
张磊,胡观:系统概述与用户使用手册
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- fenyunshixun.cn 版权所有 湘ICP备2023022495号-9
违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务