java实现图书馆管理系统2.0

在这里插入图片描述
Book类

/**
 * 
 */
package com.gem.demo.book;

/**
 *
 * Description:
 *
 * @author HadwinLing
 *
 * @date 2020年1月16日上午11:49:23
 *
 * @version 0.0.1 
 *
 */
public class Book {
	private String bno;
	private String bname;
	private String author;
	private double price;
	private String mark;
	
	//构造方法
	public Book() {
		
	}

	/**
	 * @param bno
	 * @param bname
	 * @param author
	 * @param price
	 * @param mark
	 */
	public Book(String bno, String bname, String author, double price, String mark) {
		
		this.bno = bno;
		this.bname = bname;
		this.author = author;
		this.price = price;
		this.mark = mark;
	}

	/**
	 * @return the bno
	 */
	public String getBno() {
		return bno;
	}

	/**
	 * @param bno the bno to set
	 */
	public void setBno(String bno) {
		this.bno = bno;
	}

	/**
	 * @return the bname
	 */
	public String getBname() {
		return bname;
	}

	/**
	 * @param bname the bname to set
	 */
	public void setBname(String bname) {
		this.bname = bname;
	}

	/**
	 * @return the author
	 */
	public String getAuthor() {
		return author;
	}

	/**
	 * @param author the author to set
	 */
	public void setAuthor(String author) {
		this.author = author;
	}

	/**
	 * @return the price
	 */
	public double getPrice() {
		return price;
	}

	/**
	 * @param price the price to set
	 */
	public void setPrice(double price) {
		this.price = price;
	}

	/**
	 * @return the mark
	 */
	public String getMark() {
		return mark;
	}

	/**
	 * @param mark the mark to set
	 */
	public void setMark(String mark) {
		this.mark = mark;
	}
	//sout();调用
	public String toString() {
		return this.bno+"\t"+this.bname+"\t"+this.author+"\t"+this.price+"\t"+this.mark;
	}
	

}


Menu

/**
 * 
 */
package com.gem.demo.book;

import java.util.Scanner;


/**
 *
 * Description:
 *
 * @author HadwinLing
 *
 * @date 2020年1月16日上午11:48:54
 *
 * @version 0.0.1 
 *
 */
public class Menu {
	private Book[] books;//null
	private int size;//真实书籍的个数
	private Scanner input=new Scanner(System.in);
	public Menu() {
		books=new Book[5];//容器大小
		Book b1=new Book("b001", "红楼梦", "曹雪芹", 30, "四大名著");
		Book b2=new Book("b002", "三国演义", "罗贯中", 30, "四大名著");
		Book b3=new Book("b003", "水浒传", "施耐庵", 30, "四大名著");
		Book b4=new Book("b004", "三体", "刘慈欣", 30, "名著");
		Book b5=new Book("b005", "西游记", "吴承恩", 30, "名著");
	
		
		books[0]=b1;
		books[1]=b2;
		books[2]=b3;
		books[3]=b4;
		books[4]=b5;
		
		size=5;
	}
		public void printMenu() {
			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 void printTitle() {
			System.out.println("书籍编号\t书籍名称\t作者\t价格\t简介");
		}
		/**
		 * 浏览功能
		 * 遍历数组 ,打印所有书籍信息
		 */
		public void findAll() {
			printTitle();
			for(int i=0;i<size;i++) {
				System.out.println(books[i]);
			}
		}
		/**
		 * 查找书籍
		 */
	public void findBook() {
		System.out.println("请输入编号:");
		String bno=input.next();
		//根据输入的bno进行查询
		Book book=getBook(bno);
		if(book!=null) {
			printTitle();
			System.out.println(book);
		}else {
			System.out.println("改编号书籍不存在!");
		}
		
	}
	/**
	 * 判断是否找到书籍
	 */
	private Book getBook(String bno) {
		for(int i=0;i<size;i++) {
			if(bno.equals(books[i].getBno())) {
				//找到了
				return books[i];//方法结束
			}
		}
		
		return null;//没有找到书籍
	}
	/**
	 * 增加书籍
	 */
	public void addBook() {
		System.out.println("请输入编号");
		String bno=input.next();
		System.out.println("请输入书名");
		String bname=input.next();
		System.out.println("请输入作者");
		String author=input.next();
		System.out.println("请输入价格");
		double price=input.nextDouble();
		System.out.println("请输入简介");
		String mark=input.next();
		//新书籍对象创建
		Book book=new Book(bno, bname, author, price, mark);
		//扩容
		extend();
		//放在数组容器中
		books[size++]=book;
		
		System.out.println("上架成功");
	}
	private void extend() {
		if(size>=books.length) {
			//需要扩容
			Book[] newBooks=new Book[books.length*2];//新的书籍数组  null
			for(int i=0;i<books.length;i++) {
				newBooks[i]=books[i];
			}
			books=newBooks;
			
		}
	}
	/**
	 * 更新书籍
	 */
	public void updateBook() {
		System.out.println("请输入书籍编号");
		String bno=input.next();
		Book book=getBook(bno);
		if(book!=null) {
			//可以编辑
			System.out.println("请输入书名");
			String bname=input.next();
			System.out.println("请输入作者");
			String author=input.next();
			System.out.println("请输入价格");
			double price=input.nextDouble();
			System.out.println("请输入简介");
			String mark=input.next();
			//更新
			book.setAuthor(author);
			book.setBname(bname);
			book.setMark(mark);
			book.setPrice(price);
			
			
			System.out.println("更新成功");
		}else {
			System.out.println("改编号书籍不存在,不能编辑!");
		}
		
	}
	/**
	 *删除书籍 
	 */
	
	public void deleteBook() {
		System.out.println("请要删除的书籍编号:");
		String bno=input.next();
		for(int i=0;i<size;i++) {
			if(bno.equals(books[i].getBno())) {
				//要删除的书籍找到了
				//i位置开始,j==i,books[j]=books[j+1];
				for(int j=i;j<size-1;j++) {
					books[j]=books[j+1];
				}
				//size=3
				//book[size-2]==books[size-1]  books[size]
				books[--size]=null;
				System.out.println("删除成功!");
				return;//结束方法
			}
		}
		System.out.println("输入编号有误,删除失败");
		
	}

}


Test测试类

/**
 * 
 */
package com.gem.demo.book;

import java.util.Scanner;



/**
 *
 * Description:
 *
 * @author HadwinLing
 *
 * @date 2020年1月16日上午11:50:07
 *
 * @version 0.0.1 
 *
 */
public class Test {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
			Menu menu=new Menu();
			//接收键盘输入数据
			Scanner input=new Scanner(System.in);
			boolean flag=true;
			while(flag) {
				//打印主菜单
				menu.printMenu();
				int op=input.nextInt();
				switch (op) {//key   数据类型  String char  int   short byte 枚举类
				case 1:
					menu.findAll();
					break;
				case 2:
					menu.findBook();
					break;
				case 3:
					menu.addBook();
					break;
				case 4:
					menu.updateBook();
					break;
				case 5:
					menu.deleteBook();
					break;
				case 6:
					System.out.println("确认退出?Y/N");
					String result=input.next();
					//equalsIgnoreCase  忽略大小写 比较值
					if("y".equalsIgnoreCase(result)) {
						flag=false;
					}
					break;
				default:
					System.out.println("输入有误,重新选择");
					break;
				}
			}
			System.out.println("*******谢谢使用********");
			
		}
	}

数组扩容

/**
	 * 数组扩容
	 */
	private void extend() {
		if(size>=books.length) {
			//需要扩容
			Book[] newBooks=new Book[books.length*2];//新的书籍数组  null
			for(int i=0;i<books.length;i++) {
				newBooks[i]=books[i];
			}
			books=newBooks;
			
		}
	}
发布了42 篇原创文章 · 获赞 12 · 访问量 6117

猜你喜欢

转载自blog.csdn.net/Alingyuzi/article/details/104002327