代写C语言、C++、Java、Python、HTML、JavaScript、vue、MySQL相关编程作业,
长期接单,信誉有保证,标价10-20每份,如有需要请加文章最下方QQ。
本文资源:https://download.csdn.net/download/weixin_47040861/88687190
1.题目要求
用Java编写一段代码,要求采用图形用户界面,图书信息包括:图书名称、图书编号、单价、作者、存在状态(可借/借出)、借书人姓名、性别、学号。
要求包含以下功能描述:
1.添加新图书
2.删除图书
3.办理借书
4.办理还书
5.查询图书
6.展示图书信息
2.实现效果
项目的主函数保存在图中所示位置:
启动项目后会生成一个主界面,界面中包含6个按钮,分别对应6个功能
下面来展示每个页面。
1.添加图书页面
在该页面中用户需要输入添加的图书信息,注意这里图书编号是唯一的,若输入的编号存在则会弹出提示,当输入内容均不为空时点击添加按钮,若添加成功则会弹出成功提示框,添加的内容可以点击“图书信息”按钮查看。
2.删除图书页面
该页面需要用户输入图书编号和名称,根据这两条信息匹配需要删除的图书,当信息为空或不匹配时会弹出提示框,匹配成功则会提示成功删除。
3.办理借书
根据用户输入的图书编号匹配图书,并查询该图书是否可借,若不可借则给予相应提示,若可借则提示成功。
4.办理还书
根据用户输入的图书编号和还书人姓名匹配信息,若匹配不成功则提示错误,若匹配则提示成功并修改数据。
5.查询图书
根据用户输入的查询关键字提取数据库中的信息,若未输入关键词则提示,关键字可以匹配多条符合条件的信息,匹配的信息最终会以表格的形式显示在新窗口中
6.图书信息
单击按钮显示详细的图书信息。
3.实现思路
1.添加图书
- 生成一个包含图书名称、图书编号、图书价格、图书作者等输入字段的窗口。
- 用户在这些字段中输入新图书的相关信息。
- 当用户点击“添加”按钮时,程序会执行以下操作:
- 从输入框中获取用户输入的图书名称、编号、价格和作者。
- 检查输入的图书编号是否已经存在于
Books
列表中。如果已经存在相同的编号,将弹出消息框提示用户,并中止添加操作。 - 如果所有的输入框都不为空(即用户输入了所有必要的信息),则创建一个新的字符串
newBookInfo
包含了新图书的完整信息,格式为:图书名称 图书编号 图书价格 图书作者 可借
。 - 将这个新的图书信息字符串
newBookInfo
添加到Books
列表中。 - 将更新后的
Books
列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。 - 弹出消息框提示用户图书添加成功,并关闭添加图书的窗口。
2.删除图书
- 生成一个包含图书编号和图书名称输入字段的窗口以及一个“删除”按钮。
- 用户在这些字段中输入要删除的图书的编号和名称。
- 当用户点击“删除”按钮时,程序会执行以下操作:
- 从输入框中获取用户输入的图书编号和图书名称。
- 遍历
Books
列表中的每个元素(每个元素都代表一本书的信息)。 - 对于每个元素,分别提取该书的编号和名称。
- 如果用户输入的图书编号和名称与某本书的编号和名称完全匹配,则将该书从
Books
列表中删除,并将bookDeleted
设置为true
。 - 如果成功删除了书籍,则将更新后的
Books
列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。 - 弹出消息框提示用户图书删除成功,并关闭删除图书的窗口。
- 如果未找到与用户输入匹配的图书信息,则弹出消息框提示用户未找到匹配的图书信息。
3.办理借书
- 生成一个包含借书编号、借书人姓名、借书人性别和借书人学号等输入字段的窗口,以及一个“确认”按钮。
- 用户在这些字段中输入要借阅书籍的相关信息。
- 当用户点击“确认”按钮时,程序会执行以下操作:
- 从输入框中获取用户输入的借书编号、借书人姓名、借书人性别和借书人学号。
- 检查所有输入框是否都不为空。
- 遍历
Books
列表中的每本书籍,查找是否存在与用户输入的借书编号匹配的且状态为“可借”的图书。 - 如果找到匹配的图书且状态为“可借”,则将该图书的状态改为“借出”,并添加借书人姓名、性别和学号的信息到该书籍信息的末尾。
- 将更新后的
Books
列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。 - 弹出消息框提示用户借书成功,并关闭借书窗口。
- 如果未找到与用户输入匹配的可借图书或找到的图书状态不是“可借”,则弹出消息框提示用户未找到匹配的图书信息或该图书不可借。
4.办理还书
- 生成一个包含输入图书编号和还书人姓名的窗口,以及一个“还书”按钮。
- 用户在这两个输入框中输入要归还的图书的编号和还书人姓名。
- 当用户点击“还书”按钮时,程序会执行以下操作:
- 从输入框中获取用户输入的图书编号和还书人姓名。
- 遍历
Books
列表中的每本书籍,查找是否存在与用户输入的图书编号和还书人姓名匹配的且状态为“借出”的图书。 - 如果找到匹配的图书且状态为“借出”,则将该图书的状态改为“可借”。
- 将更新后的
Books
列表中的所有图书信息写入到文件 "src/hello/Book.txt" 中。 - 弹出消息框提示用户还书成功,并关闭还书窗口。
- 如果未找到与用户输入匹配的“借出”图书或未找到匹配的图书信息,则弹出消息框提示用户未找到匹配的图书信息或请检查输入。
5.查询图书
- 生成一个窗口包含一个标签(提示用户输入要查询的书名或编号)、一个输入框和一个查询按钮。
- 用户在输入框中输入要查询的书名或编号。
- 当用户点击“查询”按钮时,程序会执行以下操作:
- 获取用户在输入框中输入的内容。
- 检查输入内容是否为空。如果为空,则弹出消息框提示用户输入查询关键字。
- 如果输入内容不为空,则调用
displaySearchResults()
方法来展示与输入内容相关的图书信息。
displaySearchResults()
方法实现了以下功能:
- 创建一个新的窗口
resultFrame
来显示查询结果。 - 定义了一个表格
JTable
用于展示查询结果。 - 根据用户输入的内容,在
Books
列表中查找包含输入内容的书籍信息,并将匹配的书籍信息添加到表格中。 - 如果找不到与输入内容匹配的图书信息,则弹出消息框提示用户未找到匹配的图书信息。
- 如果找到了匹配的图书信息,则在新窗口中展示查询结果表格。
6.图书信息
- 创建一个名为 "图书信息" 的新窗口
bookInfoFrame
,用于展示图书信息。 - 定义了包含图书信息的表格。使用
DefaultTableModel
创建一个空的表格模型,并定义了表格的列名。 - 遍历
Books
列表中的每本书籍,并将每本书的信息添加到表格中。 - 将表格放置到一个滚动面板
JScrollPane
中,以便可以滚动查看全部内容。 - 将滚动面板添加到
bookInfoFrame
窗口中,并设置窗口大小、位置,并使窗口可见。