一、项目功能结构图
二、项目功能
(1) 读者信息管理:包括读者信息添加和读者信息查询与修改功能。用户登录成功之后,可以浏览所有读者的信息,也可以检索特定读者的信息;同时,可以对读者信息进行维护,包括增加、删除及修改。具体信息包括读者类型(读者的类型决定着他可以借到书的最大数量和最大归还天数)、读者姓名、出生日期、性别、电话、所在院系、注册日期等。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(2)图书信息管理:包括图书信息添加和图书信息查询与修改功能。用户登录成功之后,可以浏览所有图书信息和检索特定图书的信息;也可以对图书信息进行维护。包括添加图书、删除图书以及修改图书信息。具体信息包括:图书ISBN、图书名称、作者、出版社、出版日期、印刷次数、单价、图书类别等。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(3)图书借阅管理:包括图书借阅和图书归还功能。图书借阅功能,先输入读者的编号,然后输入要借阅的图书的信息,记录系统当前时间即借阅时间;图书归还功能,输入读者的编号,选择其名下已借阅的图书,判断当前日期即归还日期与借阅日期的差值是否超过了规定的期限,计算罚金,从而进行图书的归还操作。具体信息包括:借阅日期、归还日期、罚金。由于要计算罚金,故需要知道该读者的读者类型,根据类型判断其可借图书天数、可借图书数量等。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(4)基础信息维护:包括图书类别设置、读者类别设置及罚金设置。图书类别设置,可以对图书的类别进行增加、删除、修改和查询;读者类别设置可以对读者的类别进行增加、删除、修改和查询;罚金设置,可以指定超期一天的罚金标准。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
(5)用户管理:包括修改密码、用户添加和删除。修改密码,是指当前用户修改自己的密码;用户添加和删除,是对新增和去除系统用户时对用户信息的维护。(相关存储数据可通过I/O流直接存在文件,可也直接在文件里读的数据)
三、项目设计
1.读者信息
根据输入的读者编号、姓名、类别、性别、年龄、电话、所在部门、注册日期,完成读者信息的录入
- 注册日期,出生日期等是一个日期Date格式
//SimpleDateFormat 格式化日期
Date dNow = new Date( );
SimpleDateFormat ft = new SimpleDateFormat ("yyyy-MM-dd hh:mm:ss");
System.out.println("当前时间为: " + ft.format(dNow));
- 修改读者信息
Properties pro = new Properties();
BufferedReader br = new BufferedReader(new FileReader(f));
pro.load(br);
br.close();
if (pro.size() == 0) {
try {
throw new LibraryException("当前没有读者信息");
} catch (LibraryException e) {
System.out.println(e.getMessage());
}
} else {
while (true) {
showAllReaderInfo(pro);
System.out.println("请输入你要修改的读者编号:");
int readerId = LiUtility.readIdInt();
if (!pro.containsKey(String.valueOf(readerId))) {
System.out.println("你要修改的读者不存在,请重新输入……");
} else if (isReaderReturn(readerId)) {
System.out.println("你要修改的读者借书未归还……");
} else {
System.out.println("请输入修改后的姓名:(" + pro.getProperty(String.valueOf(readerId)).split(",")[0] + ")");
String readerName = LiUtility.readString(6, pro.getProperty(String.valueOf(readerId)).split(",")[0]);
System.out.println("请输入修改后的性别:(" + pro.getProperty(String.valueOf(readerId))