【Java期末】基于swing的图书管理系统(含GUI界面)

诚接计算机专业编程任务(C语言、C++、Python、Java、HTML、JavaScript、Vue等)10/15R

如有需要请私信我

本文资源下载地址:https://download.csdn.net/download/weixin_47040861/88687190icon-default.png?t=N7T8https://download.csdn.net/download/weixin_47040861/88687190

———————————————————————————————————————————

1.题目要求

用Java编写一段代码,要求采用图形用户界面,图书信息包括:图书名称、图书编号、单价、作者、存在状态(可借/借出)、借书人姓名、性别、学号。
要求包含以下功能描述:
1.添加新图书
2.删除图书
3.办理借书
4.办理还书
5.查询图书
6.展示图书信息

2.实现效果

项目的主函数保存在图中所示位置:

【Java期末】基于swing的图书管理系统(含GUI界面)_第1张图片

启动项目后会生成一个主界面,界面中包含6个按钮,分别对应6个功能

【Java期末】基于swing的图书管理系统(含GUI界面)_第2张图片

下面来展示每个页面。

1.添加图书页面

【Java期末】基于swing的图书管理系统(含GUI界面)_第3张图片【Java期末】基于swing的图书管理系统(含GUI界面)_第4张图片

在该页面中用户需要输入添加的图书信息,注意这里图书编号是唯一的,若输入的编号存在则会弹出提示,当输入内容均不为空时点击添加按钮,若添加成功则会弹出成功提示框,添加的内容可以点击“图书信息”按钮查看。

【Java期末】基于swing的图书管理系统(含GUI界面)_第5张图片

2.删除图书页面

【Java期末】基于swing的图书管理系统(含GUI界面)_第6张图片 【Java期末】基于swing的图书管理系统(含GUI界面)_第7张图片

该页面需要用户输入图书编号和名称,根据这两条信息匹配需要删除的图书,当信息为空或不匹配时会弹出提示框,匹配成功则会提示成功删除。

3.办理借书

【Java期末】基于swing的图书管理系统(含GUI界面)_第8张图片【Java期末】基于swing的图书管理系统(含GUI界面)_第9张图片

根据用户输入的图书编号匹配图书,并查询该图书是否可借,若不可借则给予相应提示,若可借则提示成功。

4.办理还书

【Java期末】基于swing的图书管理系统(含GUI界面)_第10张图片【Java期末】基于swing的图书管理系统(含GUI界面)_第11张图片

根据用户输入的图书编号和还书人姓名匹配信息,若匹配不成功则提示错误,若匹配则提示成功并修改数据。

5.查询图书

【Java期末】基于swing的图书管理系统(含GUI界面)_第12张图片【Java期末】基于swing的图书管理系统(含GUI界面)_第13张图片

根据用户输入的查询关键字提取数据库中的信息,若未输入关键词则提示,关键字可以匹配多条符合条件的信息,匹配的信息最终会以表格的形式显示在新窗口中

【Java期末】基于swing的图书管理系统(含GUI界面)_第14张图片

6.图书信息

【Java期末】基于swing的图书管理系统(含GUI界面)_第15张图片

单击按钮显示详细的图书信息。

3.实现思路

1.添加图书

  1. 生成一个包含图书名称、图书编号、图书价格、图书作者等输入字段的窗口。
  2. 用户在这些字段中输入新图书的相关信息。
  3. 当用户点击“添加”按钮时,程序会执行以下操作:
    • 从输入框中获取用户输入的图书名称、编号、价格和作者。
    • 检查输入的图书编号是否已经存在于 Books 列表中。如果已经存在相同的编号,将弹出消息框提示用户,并中止添加操作。
    • 如果所有的输入框都不为空(即用户输入了所有必要的信息),则创建一个新的字符串 newBookInfo 包含了新图书的完整信息,格式为:图书名称 图书编号 图书价格 图书作者 可借
    • 将这个新的图书信息字符串 newBookInfo 添加到 Books 列表中。
    • 将更新后的 Books 列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。
    • 弹出消息框提示用户图书添加成功,并关闭添加图书的窗口。

2.删除图书

  1. 生成一个包含图书编号和图书名称输入字段的窗口以及一个“删除”按钮。
  2. 用户在这些字段中输入要删除的图书的编号和名称。
  3. 当用户点击“删除”按钮时,程序会执行以下操作:
    • 从输入框中获取用户输入的图书编号和图书名称。
    • 遍历 Books 列表中的每个元素(每个元素都代表一本书的信息)。
    • 对于每个元素,分别提取该书的编号和名称。
    • 如果用户输入的图书编号和名称与某本书的编号和名称完全匹配,则将该书从 Books 列表中删除,并将 bookDeleted 设置为 true
    • 如果成功删除了书籍,则将更新后的 Books 列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。
    • 弹出消息框提示用户图书删除成功,并关闭删除图书的窗口。
    • 如果未找到与用户输入匹配的图书信息,则弹出消息框提示用户未找到匹配的图书信息。

3.办理借书

  1. 生成一个包含借书编号、借书人姓名、借书人性别和借书人学号等输入字段的窗口,以及一个“确认”按钮。
  2. 用户在这些字段中输入要借阅书籍的相关信息。
  3. 当用户点击“确认”按钮时,程序会执行以下操作:
    • 从输入框中获取用户输入的借书编号、借书人姓名、借书人性别和借书人学号。
    • 检查所有输入框是否都不为空。
    • 遍历 Books 列表中的每本书籍,查找是否存在与用户输入的借书编号匹配的且状态为“可借”的图书。
    • 如果找到匹配的图书且状态为“可借”,则将该图书的状态改为“借出”,并添加借书人姓名、性别和学号的信息到该书籍信息的末尾。
    • 将更新后的 Books 列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。
    • 弹出消息框提示用户借书成功,并关闭借书窗口。
    • 如果未找到与用户输入匹配的可借图书或找到的图书状态不是“可借”,则弹出消息框提示用户未找到匹配的图书信息或该图书不可借。

4.办理还书

  1. 生成一个包含输入图书编号和还书人姓名的窗口,以及一个“还书”按钮。
  2. 用户在这两个输入框中输入要归还的图书的编号和还书人姓名。
  3. 当用户点击“还书”按钮时,程序会执行以下操作:
    • 从输入框中获取用户输入的图书编号和还书人姓名。
    • 遍历 Books 列表中的每本书籍,查找是否存在与用户输入的图书编号和还书人姓名匹配的且状态为“借出”的图书。
    • 如果找到匹配的图书且状态为“借出”,则将该图书的状态改为“可借”。
    • 将更新后的 Books 列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。
    • 弹出消息框提示用户还书成功,并关闭还书窗口。
    • 如果未找到与用户输入匹配的“借出”图书或未找到匹配的图书信息,则弹出消息框提示用户未找到匹配的图书信息或请检查输入。

5.查询图书

  1. 生成一个窗口包含一个标签(提示用户输入要查询的书名或编号)、一个输入框和一个查询按钮。
  2. 用户在输入框中输入要查询的书名或编号。
  3. 当用户点击“查询”按钮时,程序会执行以下操作:
    • 获取用户在输入框中输入的内容。
    • 检查输入内容是否为空。如果为空,则弹出消息框提示用户输入查询关键字。
    • 如果输入内容不为空,则调用 displaySearchResults() 方法来展示与输入内容相关的图书信息。

displaySearchResults() 方法实现了以下功能:

  • 创建一个新的窗口 resultFrame 来显示查询结果。
  • 定义了一个表格 JTable 用于展示查询结果。
  • 根据用户输入的内容,在 Books 列表中查找包含输入内容的书籍信息,并将匹配的书籍信息添加到表格中。
  • 如果找不到与输入内容匹配的图书信息,则弹出消息框提示用户未找到匹配的图书信息。
  • 如果找到了匹配的图书信息,则在新窗口中展示查询结果表格。

6.图书信息

  1. 创建一个名为 "图书信息" 的新窗口 bookInfoFrame,用于展示图书信息。
  2. 定义了包含图书信息的表格。使用 DefaultTableModel 创建一个空的表格模型,并定义了表格的列名。
  3. 遍历 Books 列表中的每本书籍,并将每本书的信息添加到表格中。
  4. 将表格放置到一个滚动面板 JScrollPane 中,以便可以滚动查看全部内容。
  5. 将滚动面板添加到 bookInfoFrame 窗口中,并设置窗口大小、位置,并使窗口可见。

你可能感兴趣的:(java,开发语言)