用java设计图书管理系统,且满足以下要求: 1系统主控平台 2用户管理楧块 3借阅管理模块 4 书库管理模块 5读者管理模块,并给出代码

时间: 2024-03-24 17:39:09 浏览: 21
好的,以下是一个简单的Java图书管理系统的代码示例,实现了系统主控平台、用户管理模块、借阅管理模块、书库管理模块和读者管理模块: ```java import java.util.ArrayList; import java.util.Scanner; public class Main { public static void main(String[] args) { // 初始化图书馆 Library library = new Library(); // 初始化用户 Admin admin = new Admin("admin", "123456"); library.addUser(admin); // 登录界面 System.out.println("欢迎使用图书馆管理系统!"); Scanner scanner = new Scanner(System.in); User user = null; while (user == null) { System.out.print("请输入用户名:"); String username = scanner.nextLine(); System.out.print("请输入密码:"); String password = scanner.nextLine(); user = library.login(username, password); if (user == null) { System.out.println("用户名或密码错误,请重新输入!"); } } // 主菜单 while (true) { System.out.println("欢迎使用图书馆管理系统," + user.getUsername() + "!"); System.out.println("1.借书"); System.out.println("2.还书"); System.out.println("3.添加图书"); System.out.println("4.删除图书"); System.out.println("5.修改图书"); System.out.println("6.添加读者"); System.out.println("7.删除读者"); System.out.println("8.修改读者"); System.out.println("9.退出"); System.out.print("请输入选项:"); int choice = scanner.nextInt(); scanner.nextLine(); switch (choice) { case 1: // 借书 System.out.print("请输入书名:"); String bookName = scanner.nextLine(); System.out.print("请输入读者姓名:"); String readerName = scanner.nextLine(); Book book = library.searchBook(bookName); if (book == null) { System.out.println("图书馆中没有这本书!"); } else { Reader reader = library.searchReader(readerName); if (reader == null) { System.out.println("没有找到这位读者!"); } else { if (library.borrowBook(book, reader)) { System.out.println("借书成功!"); } else { System.out.println("借书失败!"); } } } break; case 2: // 还书 System.out.print("请输入书名:"); String bookName2 = scanner.nextLine(); System.out.print("请输入读者姓名:"); String readerName2 = scanner.nextLine(); Book book2 = library.searchBook(bookName2); if (book2 == null) { System.out.println("图书馆中没有这本书!"); } else { Reader reader2 = library.searchReader(readerName2); if (reader2 == null) { System.out.println("没有找到这位读者!"); } else { if (library.returnBook(book2, reader2)) { System.out.println("还书成功!"); } else { System.out.println("还书失败!"); } } } break; case 3: // 添加图书 System.out.print("请输入书名:"); String bookName3 = scanner.nextLine(); System.out.print("请输入作者:"); String author = scanner.nextLine(); System.out.print("请输入出版社:"); String press = scanner.nextLine(); Book newBook = new Book(bookName3, author, press); if (library.addBook(newBook)) { System.out.println("添加图书成功!"); } else { System.out.println("添加图书失败!"); } break; case 4: // 删除图书 System.out.print("请输入书名:"); String bookName4 = scanner.nextLine(); if (library.deleteBook(bookName4)) { System.out.println("删除图书成功!"); } else { System.out.println("删除图书失败!"); } break; case 5: // 修改图书 System.out.print("请输入书名:"); String bookName5 = scanner.nextLine(); Book book5 = library.searchBook(bookName5); if (book5 == null) { System.out.println("图书馆中没有这本书!"); } else { System.out.print("请输入新的作者(原作者:" + book5.getAuthor() + "):"); String newAuthor = scanner.nextLine(); System.out.print("请输入新的出版社(原出版社:" + book5.getPress() + "):"); String newPress = scanner.nextLine(); Book newBook5 = new Book(book5.getName(), newAuthor, newPress); if (library.modifyBook(book5, newBook5)) { System.out.println("修改图书成功!"); } else { System.out.println("修改图书失败!"); } } break; case 6: // 添加读者 System.out.print("请输入姓名:"); String readerName6 = scanner.nextLine(); System.out.print("请输入年龄:"); int age = scanner.nextInt(); scanner.nextLine(); Reader newReader = new Reader(readerName6, age); if (library.addReader(newReader)) { System.out.println("添加读者成功!"); } else { System.out.println("添加读者失败!"); } break; case 7: // 删除读者 System.out.print("请输入姓名:"); String readerName7 = scanner.nextLine(); if (library.deleteReader(readerName7)) { System.out.println("删除读者成功!"); } else { System.out.println("删除读者失败!"); } break; case 8: // 修改读者 System.out.print("请输入姓名:"); String readerName8 = scanner.nextLine(); Reader reader8 = library.searchReader(readerName8); if (reader8 == null) { System.out.println("没有找到这位读者!"); } else { System.out.print("请输入新的年龄(原年龄:" + reader8.getAge() + "):"); int newAge = scanner.nextInt(); scanner.nextLine(); Reader newReader8 = new Reader(reader8.getName(), newAge); if (library.modifyReader(reader8, newReader8)) { System.out.println("修改读者成功!"); } else { System.out.println("修改读者失败!"); } } break; case 9: // 退出 System.out.println("感谢使用图书馆管理系统,再见!"); System.exit(0); break; default: System.out.println("无效的选项,请重新输入!"); break; } } } } // 用户类 abstract class User { private String username; private String password; public User(String username, String password) { this.username = username; this.password = password; } public String getUsername() { return username; } public String getPassword() { return password; } } // 管理员类 class Admin extends User { public Admin(String username, String password) { super(username, password); } } // 读者类 class Reader extends User { private int age; public Reader(String username, int age) { super(username, "123456"); this.age = age; } public int getAge() { return age; } } // 图书类 class Book { private String name; private String author; private String press; private boolean borrowed; public Book(String name, String author, String press) { this.name = name; this.author = author; this.press = press; this.borrowed = false; } public String getName() { return name; } public String getAuthor() { return author; } public String getPress() { return press; } public boolean isBorrowed() { return borrowed; } public void setBorrowed(boolean borrowed) { this.borrowed = borrowed; } } // 图书馆类 class Library { private ArrayList<User> users; private ArrayList<Book> books; private ArrayList<Reader> readers; public Library() { this.users = new ArrayList<>(); this.books = new ArrayList<>(); this.readers = new ArrayList<>(); } public boolean addUser(User user) { return users.add(user); } public User login(String username, String password) { for (User user : users) { if (user.getUsername().equals(username) && user.getPassword().equals(password)) { return user; } } return null; } public boolean addBook(Book book) { return books.add(book); } public boolean deleteBook(String name) { Book book = searchBook(name); if (book == null) { return false; } else { return books.remove(book); } } public boolean modifyBook(Book oldBook, Book newBook) { int index = books.indexOf(oldBook); if (index == -1) { return false; } else { books.set(index, newBook); return true; } } public Book searchBook(String name) { for (Book book : books) { if (book.getName().equals(name)) { return book; } } return null; } public boolean borrowBook(Book book, Reader reader) { if (book.isBorrowed()) { return false; } else { book.setBorrowed(true); return true; } } public boolean returnBook(Book book, Reader reader) { if (book.isBorrowed()) { book.setBorrowed(false); return true; } else { return false; } } public boolean addReader(Reader reader) { return readers.add(reader); } public boolean deleteReader(String name) { Reader reader = searchReader(name); if (reader == null) { return false; } else { return readers.remove(reader); } } public boolean modifyReader(Reader oldReader, Reader newReader) { int index = readers.indexOf(oldReader); if (index == -1) { return false; } else { readers.set(index, newReader); return true; } } public Reader searchReader(String name) { for (Reader reader : readers) { if (reader.getUsername().equals(name)) { return reader; } } return null; } } ``` 请注意,这只是一个简单的示例,可能并不完美。在实际使用中,您需要根据具体需求进行修改和完善。

相关推荐

最新推荐

recommend-type

VF6.0工资管理系统课程设计

该设计为中型企业的工资管理系统,本系统设计共分为12个独立的模块,可以完成一些基本的工资管理操作查找、修改、输入输出、打印以及数据统计的功能 第一章. 工资管理系统需求分析与设计 4 1.系统功能需求简介 4 2...
recommend-type

电话簿管理系统(c语言课程设计)

电话簿管理系统(C语言课程设计) 本资源是关于电话簿管理系统的设计和实现,使用C语言作为开发语言。该系统的设计目的是为了训练读者的基本编程能力,了解管理信息系统的开发流程,熟悉C语言的文件和结构数组的...
recommend-type

C语言 酒店管理系统(课程设计报告)

包含酒店房间登记与计费管理系统,可以按天收费或按小时收费。系统主控平台,登记住房信息,查询房间的入住情况,查询当前费用,结账退房,退出系统
recommend-type

BMS的设计技术框架.pptx

电池管理系统(BMS)是电动汽车和储能系统中的关键组件,其主要任务是实时监测和管理电池的状态,确保电池组的安全运行和高效利用。本篇将详细介绍BMS的设计技术框架及其重要组成部分。 首先,BMS的功能主要包括...
recommend-type

MP3用户菜单显示界面系统的分析与设计

件系统分析与设计 在本课程设计中,我们将深入探讨MP3用户菜单显示界面系统,这一系统是MP3...通过对MP3工作原理的理解,结合硬件和软件设计,我们可以构建一个高效、易用的MP3播放器,满足用户对音乐欣赏的需求。
recommend-type

基于嵌入式ARMLinux的播放器的设计与实现 word格式.doc

本文主要探讨了基于嵌入式ARM-Linux的播放器的设计与实现。在当前PC时代,随着嵌入式技术的快速发展,对高效、便携的多媒体设备的需求日益增长。作者首先深入剖析了ARM体系结构,特别是针对ARM9微处理器的特性,探讨了如何构建适用于嵌入式系统的嵌入式Linux操作系统。这个过程包括设置交叉编译环境,优化引导装载程序,成功移植了嵌入式Linux内核,并创建了适合S3C2410开发板的根文件系统。 在考虑到嵌入式系统硬件资源有限的特点,通常的PC机图形用户界面(GUI)无法直接应用。因此,作者选择了轻量级的Minigui作为研究对象,对其实体架构进行了研究,并将其移植到S3C2410开发板上,实现了嵌入式图形用户界面,使得系统具有简洁而易用的操作界面,提升了用户体验。 文章的核心部分是将通用媒体播放器Mplayer移植到S3C2410开发板上。针对嵌入式环境中的音频输出问题,作者针对性地解决了Mplayer播放音频时可能出现的不稳定性,实现了音乐和视频的无缝播放,打造了一个完整的嵌入式多媒体播放解决方案。 论文最后部分对整个项目进行了总结,强调了在嵌入式ARM-Linux平台上设计播放器所取得的成果,同时也指出了一些待改进和完善的方面,如系统性能优化、兼容性提升以及可能的扩展功能等。关键词包括嵌入式ARM-Linux、S3C2410芯片、Mplayer多媒体播放器、图形用户界面(GUI)以及Minigui等,这些都反映出本文研究的重点和领域。 通过这篇论文,读者不仅能了解到嵌入式系统与Linux平台结合的具体实践,还能学到如何在资源受限的环境中设计和优化多媒体播放器,为嵌入式技术在多媒体应用领域的进一步发展提供了有价值的经验和参考。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

Python字符串为空判断的动手实践:通过示例掌握技巧

![Python字符串为空判断的动手实践:通过示例掌握技巧](https://img-blog.csdnimg.cn/72f88d4fc1164d6c8b9c29d8ab5ed75c.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBASGFyYm9yIExhdQ==,size_20,color_FFFFFF,t_70,g_se,x_16) # 1. Python字符串为空判断的基础理论 字符串为空判断是Python编程中一项基本且重要的任务。它涉及检查字符串是否为空(不包含任何字符),这在
recommend-type

box-sizing: border-box;作用是?

`box-sizing: border-box;` 是 CSS 中的一个样式属性,它改变了元素的盒模型行为。默认情况下,浏览器会计算元素内容区域(content)、内边距(padding)和边框(border)的总尺寸,也就是所谓的"标准盒模型"。而当设置为 `box-sizing: border-box;` 后,元素的总宽度和高度会包括内容、内边距和边框的总空间,这样就使得开发者更容易控制元素的实际布局大小。 具体来说,这意味着: 1. 内容区域的宽度和高度不会因为添加内边距或边框而自动扩展。 2. 边框和内边距会从元素的总尺寸中减去,而不是从内容区域开始计算。
recommend-type

经典:大学答辩通过_基于ARM微处理器的嵌入式指纹识别系统设计.pdf

本文主要探讨的是"经典:大学答辩通过_基于ARM微处理器的嵌入式指纹识别系统设计.pdf",该研究专注于嵌入式指纹识别技术在实际应用中的设计和实现。嵌入式指纹识别系统因其独特的优势——无需外部设备支持,便能独立完成指纹识别任务,正逐渐成为现代安全领域的重要组成部分。 在技术背景部分,文章指出指纹的独特性(图案、断点和交叉点的独一无二性)使其在生物特征认证中具有很高的可靠性。指纹识别技术发展迅速,不仅应用于小型设备如手机或门禁系统,也扩展到大型数据库系统,如连接个人电脑的桌面应用。然而,桌面应用受限于必须连接到计算机的条件,嵌入式系统的出现则提供了更为灵活和便捷的解决方案。 为了实现嵌入式指纹识别,研究者首先构建了一个专门的开发平台。硬件方面,详细讨论了电源电路、复位电路以及JTAG调试接口电路的设计和实现,这些都是确保系统稳定运行的基础。在软件层面,重点研究了如何在ARM芯片上移植嵌入式操作系统uC/OS-II,这是一种实时操作系统,能够有效地处理指纹识别系统的实时任务。此外,还涉及到了嵌入式TCP/IP协议栈的开发,这是实现系统间通信的关键,使得系统能够将采集的指纹数据传输到远程服务器进行比对。 关键词包括:指纹识别、嵌入式系统、实时操作系统uC/OS-II、TCP/IP协议栈。这些关键词表明了论文的核心内容和研究焦点,即围绕着如何在嵌入式环境中高效、准确地实现指纹识别功能,以及与外部网络的无缝连接。 这篇论文不仅深入解析了嵌入式指纹识别系统的硬件架构和软件策略,而且还展示了如何通过结合嵌入式技术和先进操作系统来提升系统的性能和安全性,为未来嵌入式指纹识别技术的实际应用提供了有价值的研究成果。