⛳️ 项目需求
为某图书馆开发一个迷你图书管理系统,实现图书的管理,包括如下功能:
(1)新增图书
(2)查看图书
(3)删除图书
(4)借出图书
(5)归还图书
(6)退出图书系统
⛳️ 覆盖知识
程序基本概念、变量 、数据类型、流程控制、顺序、选择 、循环、跳转语句、数组、变量、类、方法等
⛳️ 开发思路
(1)明确需求
(2)编码顺序
1)、数据初始化
2)、循环完成各种图书管理操作
3)、菜单切换
(3)测试
⛳️ 开发步骤
❤️ 1、数据初始化
(1)设计一个包含图书信息的类:Book类
(2)设计一个图书信息操作的方法类:BookMethod类
(3)设计一个图书管理系统测试类:MyBookSystem类
(4)在MyBookSystem类中初始化对象数组和相关数据
// 初始化Book数组 Book[] books=new Book[6]; // 初始化第一本本图书 books[0]=new Book("罗马假日", 1, 1, 15); // 初始化第一本本图书 books[1]=new Book("白雪公主", 0, 0, 12); // 初始化第一本本图书 books[2]=new Book("葫芦兄弟", 0, 0, 30);
❤️ 2、BookMethod类中定义各种方法
欢迎使用迷你图书管理器方法
新增图书方法
查看图书方法
删除图书方法
借出图书方法
归还图书方法
退出图书方法
例子:
//欢迎使用迷你图书管理器方法 public static void useBookSystem() { // 输出欢迎菜单 System.out.println("欢迎使用迷你图书管理器"); System.out.println("-------------------------"); 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("-------------------------"); }
❤️ 1、Book类(全部代码)
package cn.bdqn.demo05; public class Book { //定义属性 private String name; private int state; private int date; private int count; //添加无参构造 public Book() { super(); } //添加有参构造 public Book(String name, int state, int date, int count) { super(); this.name = name; this.state = state; this.date = date; this.count = count; } //添加get/set方法 public String getName() { return name; } public void setName(String name) { this.name = name; } public int getState() { return state; } public void setState(int state) { this.state = state; } public int getDate() { return date; } public void setDate(int date) { this.date = date; } public int getCount() { return count; } public void setCount(int count) { this.count = count; } }
❤️ 2、BookMethod类(部分代码)
页面底部有全部代码分享链接
package cn.bdqn.demo05; import java.util.Scanner; public class BookMethod { // 定义一个静态的Scanner static Scanner inputsc =new Scanner(System.in); // static String bookName; // 欢迎使用迷你图书管理器方法 public static void useBookSystem() { // 输出欢迎菜单 System.out.println("欢迎使用迷你图书管理器"); System.out.println("-------------------------"); 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("-------------------------"); } // 新增图书方法 public static void addBook(Book[] books){ System.out.println("-->新增图书\n"); System.out.println("请输入图书名称:"); String bookName = inputsc.next(); System.out.println(bookName); // 判断添加书是否成功 boolean flag2 = false; // 循环查找图书馆里的可存放书的地方 for (int i = 0; i < books.length; i++) { //逻辑部分 } if (!flag2) { System.out.println("抱歉,新增《" + bookName + "》失败!货架已满!"); } System.out.println("*****************************************"); } // 查看图书方法 public static void lookBook(Book[] books){ System.out.println("-->查看图书\n"); System.out.println("序号\t状态\t名称\t借出日期\t借出次数"); for (int i = 0; i < books.length; i++) { if (books[i] != null) { //逻辑部分 } } System.out.println("*****************************************"); } // 删除图书方法 public static void delBook(Book[] books){ System.out.println("-->删除图书\n"); System.out.println("请输入要删除图书的名称:"); String delete = inputsc.next(); boolean flag3 = false; int index = -1; // 记录要删除图书的位置 for (int i = 0; i < books.length; i++) { // 逻辑部分 } // 根据记录下来的删除图书的位置进行删除工作 if (index != -1) { for (int j = index; j < books.length; j++) { if (j != books.length - 1) { books[j].setName(books[j + 1].getName()); books[j].setState(books[j + 1].getState()); books[j].setDate(books[j + 1].getDate()); } books[books.length - 1].setName(null); } } if (!flag3) { System.out.println("没有找到匹配信息!"); } System.out.println("*****************************************"); } // 借出图书方法 public static void lendBook(Book[] books){ System.out.println("-->借出图书\n"); System.out.print("请输入图书名称:"); String want = inputsc.next(); // 要借出的图书名称 for (int i = 0; i < books.length; i++) { //逻辑部分 } System.out.println("*****************************************"); } // 归还图书方法 public static void returnBook(Book[] books){ System.out.println("-->归还图书\n"); int charge = 0; // 租金 System.out.print("请输入归还图书名称:"); String want = inputsc.next(); for (int i = 0; i < books.length; i++) { //逻辑部分 } System.out.println("*****************************************"); } }
❤️ 3、 MyBookSystem类(全部代码)
package cn.bdqn.demo05; import java.util.*; /** * 图书管理系统类MyBookMgr * * @author Administrator * */ public class MyBookSystem { public static void main(String[] args) { Scanner input = new Scanner(System.in); // 是否退出系统,false代表退出系统 boolean flag = true; // 初始化Book数组 Book[] books=new Book[6]; // 初始化第一本本图书 books[0]=new Book("罗马假日", 1, 1, 15); // 初始化第一本本图书 books[1]=new Book("白雪公主", 0, 0, 12); // 初始化第一本本图书 books[2]=new Book("葫芦兄弟", 0, 0, 30); int num = -1; // 循环操作 do { // 定义一个BookMethod操作类,将操作方法定义在BookMethod类中,然后调用 // 欢迎菜单方法 BookMethod.useBookSystem(); System.out.println("请选择:"); int choose = input.nextInt(); switch (choose) { case 1: // 新增图书 BookMethod.addBook(books); break; case 2: // 查看图书 BookMethod.lookBook(books); break; case 3: // 删除图书 BookMethod.delBook(books); break; case 4: // 借出图书 BookMethod.lendBook(books); break; case 5: // 归还图书 BookMethod.returnBook(books); break; case 6: // 退出图书 flag = false; break; default: flag = false; break; } if (flag) { System.out.println("输入0返回:"); num = input.nextInt(); } else { break; } } while (num == 0); System.out.println("谢谢使用!"); input.close(); } }