Administrator
发布于 2024-05-14 / 9 阅读
0
0

需求文档-图书管理系统

1. 项目简介

开发一个基于Java的命令行界面的图书管理系统,能够管理图书、杂志、报纸等。系统需要支持基本的增删改查功能,并且具有数据存储功能。系统设计需遵循面向对象的编程原则,包括封装、继承和多态。同时,系统需实现权限管理,分为用户和管理员两类角色,并且具备登录注册功能。

2. 功能需求

2.1 用户角色
  • 用户注册

    • 用户可以通过用户名和密码注册新账号。

  • 用户登录

    • 用户必须登录后才能使用系统。

  • 浏览资源

    • 用户可以查看所有可用的图书、杂志和报纸。

  • 搜索资源

    • 用户可以通过名称、作者等关键字搜索资源。

  • 借阅资源

    • 用户可以借阅图书、杂志和报纸,每次只能借一本。

  • 查看借阅记录

    • 用户可以查看自己的借阅记录,包括已借阅和归还的资源。

2.2 管理员角色
  • 管理员登录

    • 管理员必须登录后才能使用系统。

  • 添加资源

    • 管理员可以添加新的图书、杂志和报纸。

  • 删除资源

    • 管理员可以删除现有的图书、杂志和报纸。

  • 修改资源

    • 管理员可以修改现有资源的信息。

  • 查看所有借阅记录

    • 管理员可以查看所有用户的借阅记录。

3. 系统功能模块

3.1 用户管理模块
  • 用户注册

    • 提供用户名和密码进行注册。

  • 用户登录

    • 通过用户名和密码进行登录。

  • 管理员登录

    • 通过管理员用户名和密码进行登录。

3.2 资源管理模块
  • 资源添加

    • 管理员可以选择添加图书、杂志或报纸,输入相关信息如标题、作者、出版日期等。

  • 资源删除

    • 管理员可以通过资源ID删除图书、杂志或报纸。

  • 资源修改

    • 管理员可以修改现有资源的信息,如标题、作者等。

  • 资源查看

    • 用户和管理员可以查看所有资源的列表。

  • 资源搜索

    • 用户和管理员可以通过关键字搜索资源,显示符合条件的资源列表。

3.3 借阅管理模块
  • 借阅资源

    • 用户可以借阅图书、杂志和报纸,每次只能借一本,更新借阅记录。

  • 查看借阅记录

    • 用户可以查看自己的借阅记录,包括已借阅和归还的资源。

  • 查看所有借阅记录

    • 管理员可以查看所有用户的借阅记录。

4. 系统设计

4.1 类设计
  • User: 基础用户类,包含用户名、密码、角色等属性。

    • ​String username​

    • ​String password​

    • ​Role role​

  • Admin: 管理员类,继承自User。

  • Resource: 资源类,包含图书、杂志和报纸的基本属性。

    • ​String id​

    • ​String title​

    • ​String author​

    • ​Date publishDate​

  • Book: 图书类,继承自Resource。

  • Magazine: 杂志类,继承自Resource。

  • Newspaper: 报纸类,继承自Resource。

  • LibrarySystem: 图书管理系统类,包含用户登录注册、资源管理、借阅管理等功能。

    • ​List<User> users​

    • ​List<Resource> resources​

    • ​List<BorrowRecord> borrowRecords​

  • BorrowRecord: 借阅记录类,包含用户、资源、借阅日期和归还日期等信息。

    • ​User user​

    • ​Resource resource​

    • ​Date borrowDate​

    • ​Date returnDate​

5. 示例代码结构

// User.java
public class User {
private String username;
private String password;
// Getters and setters
// Other methods
}

// Admin.java
public class Admin extends User {
// Additional admin-specific methods
}

// Resource.java
public abstract class Resource {
private String id;
private String title;
private String author;
private Date publishDate;
// Getters and setters
// Other methods
}

// Book.java
public class Book extends Resource {
// Additional book-specific attributes
}

// Magazine.java
public class Magazine extends Resource {
// Additional magazine-specific attributes
}

// Newspaper.java
public class Newspaper extends Resource {
// Additional newspaper-specific attributes
}

// BorrowRecord.java
public class BorrowRecord {
private User user;
private Resource resource;
private Date borrowDate;
private Date returnDate;
// Getters and setters
// Other methods
}

// LibrarySystem.java
public class LibrarySystem {
private List<User> users;
private List<Resource> resources;
private List<BorrowRecord> borrowRecords;
// Methods for user registration, login, resource management, borrowing
}


// Main.java
public class Main {
public static void main(String[] args) {
LibrarySystem system = new LibrarySystem();
// Command line interface logic
}
}

6. 运行流程

  1. 启动程序。

  2. 用户选择登录或注册。

  3. 登录后,根据角色显示相应的菜单。

    • 用户菜单:浏览资源、搜索资源、借阅资源、查看借阅记录。

    • 管理员菜单:添加资源、删除资源、修改资源、查看所有借阅记录。

  4. 用户或管理员选择相应功能进行操作。

  5. 操作完成后返回主菜单或退出系统。

7. 非功能需求

  • 性能:系统应能高效处理并响应用户操作。

  • 安全:用户密码需要加密存储,确保数据安全。

  • 可扩展性:系统设计应易于扩展,以便将来增加更多功能。


命令行界面设计

1. 启动界面

当用户启动程序时,系统会显示欢迎信息并提供选择登录或注册的选项。

====================================
欢迎使用图书管理系统
====================================
1. 登录
2. 注册
3. 退出
请输入选择: 

2. 注册界面

用户选择注册时,系统提示输入用户名和密码。

====================================
用户注册
====================================
请输入用户名: 
请输入密码: 
确认密码: 
注册成功!
请按任意键返回主菜单...

3. 登录界面

用户选择登录时,系统提示输入用户名和密码。

====================================
用户登录
====================================
请输入用户名: 
请输入密码: 
登录成功!(或 显示登录失败信息)

4. 主菜单界面

根据登录用户的角色,显示不同的菜单选项。

4.1 用户菜单
====================================
用户主菜单
====================================
1. 浏览资源
2. 搜索资源
3. 借阅资源
4. 查看借阅记录
5. 退出登录
请输入选择: 
4.2 管理员菜单
====================================
管理员主菜单
====================================
1. 浏览资源
2. 搜索资源
3. 添加资源
4. 删除资源
5. 修改资源
6. 查看所有借阅记录
7. 退出登录
请输入选择: 

5. 功能操作界面

5.1 浏览资源

显示所有资源的列表。

====================================
浏览资源
====================================
ID    类型    标题       作者      出版日期
------------------------------------
1     图书    Java编程   张三      2020-01-01
2     杂志    科学世界   李四      2021-05-10
3     报纸    每日新闻   王五      2022-03-15
====================================
请按任意键返回主菜单...
5.2 搜索资源

提示用户输入搜索关键字并显示搜索结果。

====================================
搜索资源
====================================
请输入关键字: Java
搜索结果:
ID    类型    标题       作者      出版日期
------------------------------------
1     图书    Java编程   张三      2020-01-01
====================================
请按任意键返回主菜单...
5.3 借阅资源

提示用户输入要借阅的资源ID并确认借阅。

====================================
借阅资源
====================================
请输入资源ID: 1
借阅成功!
请按任意键返回主菜单...
5.4 查看借阅记录

显示用户的借阅记录。

====================================
查看借阅记录
====================================
ID    类型    标题       借阅日期   归还日期
------------------------------------
1     图书    Java编程   2023-05-01 2023-05-15
====================================
请按任意键返回主菜单...
5.5 添加资源(管理员)

提示管理员输入新资源的信息。

====================================
添加资源
====================================
请选择资源类型:
1. 图书
2. 杂志
3. 报纸
请输入选择: 1
请输入标题: 
请输入作者: 
请输入出版日期 (yyyy-MM-dd): 
资源添加成功!
请按任意键返回主菜单...
5.6 删除资源(管理员)

提示管理员输入要删除的资源ID并确认删除。

====================================
删除资源
====================================
请输入资源ID: 1
资源删除成功!
请按任意键返回主菜单...
5.7 修改资源(管理员)

提示管理员输入要修改的资源ID和新的信息。

====================================
修改资源
====================================
请输入资源ID: 1
请输入新的标题: 
请输入新的作者: 
请输入新的出版日期 (yyyy-MM-dd): 
资源修改成功!
请按任意键返回主菜单...
5.8 查看所有借阅记录(管理员)

显示所有用户的借阅记录。

====================================
查看所有借阅记录
====================================
用户   ID    类型    标题       借阅日期   归还日期
------------------------------------
user1  1     图书    Java编程   2023-05-01 2023-05-15
user2  2     杂志    科学世界   2023-06-10 2023-06-24
====================================
请按任意键返回主菜单...

6. 退出登录

用户或管理员选择退出登录时,返回到初始的登录/注册界面。

====================================
您已退出登录。
请按任意键返回主菜单...

7. 退出系统

用户在初始界面选择退出时,系统结束运行。

====================================
感谢使用图书管理系统,再见!
====================================

这个设计涵盖了所有主要功能的命令行界面展示,并且简洁明了,用户和管理员都可以方便地进行操作。


评论