1.1需求分析
图书馆管理系统是图书馆管理工作中不可缺少的部分,对于图书馆的管理者和使用者来说都非常重要了,故相对于传统的手工方式或性能较低的图书馆管理系统管理图书馆的日常事务相比,设计一个能提供快速的图书信息检索功能、快捷的图书借阅、归还流程,为管理者与读者提供充足的信息和快捷的数据处理手段的系统,能更好的对图书进行管理。所以从读者与图书管理员的角度出发,本着以读者借书、还书快捷、方便的原则,要求本系统应具有以下特点:
√ 具有良好的系统性能,友好的用户界面。
√ 较高的处理效率,便于使用和维护。
√ 采用成熟技术开发,使系统具有较高的技术水平和较长的生命周期。
√ 系统尽可能简化图书馆管理员的重复工作,提高工作效率。
√ 简化数据查询、统计难度。
最高层用例图中展开读者借书的用例图如下图所示:
读者借助此图书管理系统子系统,可以进行一下操作:
读者借助此图书管理系统子系统,可以进行一下操作:
- 查询;
- 预留;
- 借书;
- 还书;
- 查阅借阅信息。
其中,在读者进行预留图书和查询借阅信息之前,读者必须先登录系统;
读者进行还书操作时,必须保证图书完整;
最高层用例图中展开图书馆管理员处理借书、还书等的用例图如下图所示:
图书管理员用例描述:
图书管理员使用系统进行的操作主要有:
- 处理读者的送还的图书;
- 处理读者的借书要求
- 处理读者的预留图书要求
其中在处理还书时,要查看图书的完整性;处理读者借书时,要检查读者信息;
最高层用例图中展开系统管理员进行系统维护的用例图如下图2-4所示:
系统管理员使用系统进行的操作主要有:
- 处理图书库里新书信息记录;
- 处理图书库里旧图书的信息记录;
- 处理新旧图书信息记录维护问题;
- 处理新读者信息登记;
- 处理已存在的读者信息记录;
- 查询读者资料;
- 添加书目信息;
- 处理旧书目信息。
2.图书管理系统对象模型
根据需求描述,提取出管理员,借阅者,图书等几个对象.
3.1 对象模型描述
下面对这个几个对象进行详细描述并建模:
3.1.1. 读者Borrower类:
读者在系统注册的信息包括一下几点:
姓名(name),
住址(address),
城市(city),
省/州(state),
邮政编码(zip),
可借数的最大数目(maxbook),
借书期限(maxday),
读者编号(userid),
借书证号码(borrow_number);
读者使用系统可进行的操作有:
查询-------find(),
借书------borrow(),
还书-------return_back();
3.1.2. 系统管理员Administrator类:
系统管理员也可以借书,因此他能进行读者类所以的操作;系统管理员同时也是图书管理员,也可以进行图书管理员说做的一切操作;系统管理员有自己的特殊编号,用来登录系统,进行系统级操作.以区别图书管理员.
3.1.3. 图书管理员Librarian类:
图书管理员也要在系统内注册,注册信息如下:
姓名(name),
住址(address),
城市(city),
省(state);
系统为每个管理员分配一个唯一编号workID.
图书管理员登录系统后,可以进行以下操作:
更新借书还书信息------update();
增加预留----------------create();
删除预留信息----------destroy();
3.1.4. 书目Title类:
书目类代表图书,在系统中要保存每一本图书的资料,这些信息包括:
书名(name),
作者(author),
书号(isbn),
库存数量(total_number),
借阅号(borrowed_number),
是否可以借出(is_allowedForBorrow);
在书类的操作有一些:
查找书目-------------------find();
增加书目----------------create();
删除书目----------------destroy();
借书----------------------borrow();
还书----------------------return_back();
预留图书--------------reserve()
3.1.5. 其他类:
Item类:此类代表一个书目的一份拷贝
Loan类:代表对超过还书期限的读书进行罚金的类
Reserve类:预留图书类
3.2 类代码如下:
Reader类:
/**
* 读者对象
* @author cz
*
*/
public class Reader extends User {
private String sex;//性别
private int take;//借出
private int revert;//归还
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public int getTake() {
return take;
}
public void setTake(int take) {
this.take = take;
}
public int getRevert() {
return revert;
}
public void setRevert(int revert) {
this.revert = revert;
}
}
Student类:
public class Student extends Reader {
public String sclass;//学生的班级
public String getSclass() {
return sclass;
}
public void setSclass(String sclass) {
this.sclass = sclass;
}
public String toString() {
return "您好,尊敬的学生用户 " + getName()+"\n你的班级: " + getClass()+ "\n你的性别" + getSex()
+ "\n你已借了:" + getTake() + "\n你已还:" +