Java顺序表怎么实现图书管理系统
发表于:2025-11-07 作者:千家信息网编辑
千家信息网最后更新 2025年11月07日,这篇文章主要讲解了"Java顺序表怎么实现图书管理系统",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java顺序表怎么实现图书管理系统"吧!一、简介实
千家信息网最后更新 2025年11月07日Java顺序表怎么实现图书管理系统
这篇文章主要讲解了"Java顺序表怎么实现图书管理系统",文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习"Java顺序表怎么实现图书管理系统"吧!
一、简介
实现此项目的目的是巩固并理解前面的知识点:类,抽象类,封装,继承,多态,接口等
二、核心需求
管理端
查阅书籍
增加书籍
删除书籍
打印书籍列表
退出系统
用户端
查询书籍
借阅书籍
归还书籍
打印书籍列表
退出系统
三、类的设计
1. 创建图书类
图书类中包含图书的名称,价格,类型,作者和是否被借出等信息,并生成构造方法,Getter()和Setter()方法,toString方法(注意成员变量应该尽可能使用private关键字修饰)
public class Book { private String name; private double price; private String type; private String author; private boolean isBorrowed; public Book(String name, double price, String type, String author) { this.name = name; this.price = price; this.type = type; this.author = author; } public String getName() { return name; } public void setName(String name) { this.name = name; } public double getPrice() { return price; } public void setPrice(double price) { this.price = price; } public String getType() { return type; } public void setType(String type) { this.type = type; } public String getAuthor() { return author; } public void setAuthor(String author) { this.author = author; } public boolean isBorrowed() { return isBorrowed; } public void setBorrowed(boolean borrowed) { isBorrowed = borrowed; } @Override public String toString() { return "Book{" + "name='" + name + '\'' + ", price=" + price + ", type='" + type + '\'' + ", author='" + author + '\'' + ", 状态:" +((isBorrowed) ? "已借出":"未借出")+ '}'; }}2. 创建图书列表类
图书列表类用于存放图书,我们可以先在列表中初始化几本书以方便后续测试
public class BookList { private Book[] books = new Book[10]; private int usedSize; public BookList(){ books[0] = new Book("三国演义",19,"小说","罗贯中"); books[1] = new Book("水浒传",29,"小说","施耐庵"); books[2] = new Book("西游记",39,"小说","吴承恩"); usedSize = 3; } public int getUsedSize() { return usedSize; } public void setUsedSize(int usedSize) { this.usedSize = usedSize; } public Book getBook(int pos){ return books[pos]; } public void setBook(int pos,Book book) { books[pos] = book; }}3. 创建用户类
创建一个用户类并将其定义为抽象类,再创建普通用户类和管理员类继承于用户类:
创建用户类并定义为抽象类:
public abstract class User { protected String name; protected IOperation[] iOperations; public abstract int menu(); public void doWork(int choice, BookList bookList){ iOperations[choice].work(bookList); } public User(String name) { this.name = name; }}创建管理员用户类:
public class AdminUser extends User{ public AdminUser(String name) { super(name); this.iOperations = new IOperation[]{ new ExitOperation(), new FindOperation(), new AddOperation(), new DisplayOperation(), new DelOperation() }; } @Override public int menu(){ System.out.println("===========管理员菜单============"); System.out.println("您好, 管理员 "+this.name+":"); System.out.println("欢迎来到图书馆!"); System.out.println("1. 查找图书"); System.out.println("2. 新增图书"); System.out.println("3. 显示图书"); System.out.println("4. 删除图书"); System.out.println("0. 退出系统"); System.out.println("================================="); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); return choice; }}创建普通用户类:
public class NormalUser extends User{ public NormalUser(String name) { super(name); this.iOperations = new IOperation[]{ new ExitOperation(), new DisplayOperation(), new FindOperation(), new BorrowOperation(), new ReturnOperation(), }; } @Override public int menu(){ System.out.println("===========普通用户菜单============"); System.out.println("您好,用户 "+this.name+":"); System.out.println("欢迎来到图书馆!"); System.out.println("1. 显示图书"); System.out.println("2. 查找图书"); System.out.println("3. 借阅图书"); System.out.println("4. 归还图书"); System.out.println("0. 退出系统"); System.out.println("================================="); Scanner scanner = new Scanner(System.in); int choice = scanner.nextInt(); return choice; }}4. 创建操作相关的类
首先创建一个接口用于实现多态:
public interface IOperation { void work(BookList bookList);}创建添加书籍类:
public class AddOperation implements IOperation{ public void work(BookList bookList) { Scanner scanner = new Scanner(System.in); System.out.println("请输入图书名称:"); String name = scanner.nextLine(); System.out.println("请输入价格:"); double price = scanner.nextDouble(); System.out.println("请输入类型:"); String type = scanner.next(); System.out.println("请输入作者:"); String author = scanner.next(); Book book = new Book(name,price,type,author); int usedSize = bookList.getUsedSize(); bookList.setBook(usedSize,book); bookList.setUsedSize(++usedSize); System.out.println("添加图书成功!"); }}创建查找书籍类:
public class FindOperation implements IOperation{ public void work(BookList bookList){ System.out.println("请输入书名:"); Scanner scanner = new Scanner(System.in); String name = scanner.next(); for(int i=0;i创建借阅书籍类:
public class BorrowOperation implements IOperation { public void work(BookList bookList) { System.out.println("请输入你要借阅的书籍:"); Scanner scanner = new Scanner(System.in); String name = scanner.next(); int i = 0; for (i = 0; i < bookList.getUsedSize() - 1; i++) { Book book = bookList.getBook(i); if (name.equals(book.getName()) && !book.isBorrowed()) { book.setBorrowed(true); System.out.println("借阅成功!"); return; } if (name.equals(book.getName()) && book.isBorrowed()) { System.out.println("该书籍已被借出"); return; } } System.out.println("找不到你要借阅的书籍!"); }}创建归还书籍类:
public class ReturnOperation implements IOperation{ public void work(BookList bookList){ System.out.println("请输入你要归还的书籍:"); Scanner scanner = new Scanner(System.in); String name = scanner.next(); int i=0; for(i=0;i创建删除书籍类:
public class DelOperation implements IOperation{ public void work(BookList bookList) { System.out.println("请输入要删除的书名:"); Scanner scanner = new Scanner(System.in); String name = scanner.next(); int index = 0; int i = 0; for(i=0;i=bookList.getUsedSize()) { System.out.println("找不到这本书"); return; } int j = 0; for (j = index;j< bookList.getUsedSize()-1;j++){ Book book = bookList.getBook(j+1); bookList.setBook(j,book); } bookList.setBook(bookList.getUsedSize()-1, null); bookList.setUsedSize(bookList.getUsedSize()-1); System.out.println("删除成功!"); }} 创建打印书籍列表类:
public class DisplayOperation implements IOperation{ public void work(BookList bookList){ int usedSize = bookList.getUsedSize(); for (int i=0;i退出系统类:
public class ExitOperation implements IOperation{ public void work(BookList bookList){ System.out.println("退出系统!"); System.exit(0); }}主函数类:
public class Main { public static User work(){ System.out.println("请输入您的姓名:"); Scanner scanner = new Scanner(System.in); String name = scanner.nextLine(); System.out.println("请输入身份: 1-> 管理员登录 0-> 用户登录"); int choice = scanner.nextInt(); if(choice==1){ return new AdminUser(name); } return new NormalUser(name); } public static void main(String[] args) { BookList bookList = new BookList(); User user = work(); while (true) { int choice = user.menu(); user.doWork(choice, bookList); } }}感谢各位的阅读,以上就是"Java顺序表怎么实现图书管理系统"的内容了,经过本文的学习后,相信大家对Java顺序表怎么实现图书管理系统这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是,小编将为大家推送更多相关知识点的文章,欢迎关注!
图书
书籍
用户
系统
管理
输入
借阅
管理员
管理系统
顺序
成功
普通
小说
方法
学习
多态
您好
书名
价格
作者
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
云服务器租赁费用入账
传奇4国际服服务器显示维护中
阿里水冷服务器
软件开发中框架都那些种
上海运营网络技术哪家便宜
零基础学软件开发从哪里开始
服务器读取不了信息怎么回事
安徽网游服务器托管
怎么进阿里云服务器
12TB存储服务器租赁
电信五区服务器剑三
国泰安重大违规数据库
软件开发每天头疼的事情
数据库附加不成功错误948
安全平台服务器
北京易抉择互联网科技有限公司
会数据库 编程的财务人员
云端服务器的IP
湘潭网络安全和信息化委员会
外网刷不到cs1.6服务器
数据库排序的语句
中国工商银行软件开发中心年终奖
网络安全教育周的标语
企业网络安全包含哪些工作
gsm网络安全类的书籍
徐州动能服务器多少钱
四川云服务器
智能化服务器供应商
命运神界不同服务器加好友
数据库宕机