书籍信息管理

一、 实体类

/**
 * 
 */
package com.jiangli.day06.task;

/**
 *
 * Description:
 *
 * @author bychengyiliu
 *
 * @date 2020年1月15日 下午3:54:37
 *
 * @version 0.0.1   javaBean 模式   实体类
 * 	
 */
	public class Book {
		static int count;	//用来定义数组被使用的具体的大小
		private String bno;	//书编号
		private String bname;	//书名
		private String author;	//书的作者
		private int price;	//书的价格
		
		public Book(String bname,String bno,String author,int price){
			this.bname = bname;
			this.bno = bno;
			this.author = author;
			this.price = price;
			count++;	//创建新对象时候并计算该数组的实际使用大小,,避免出现空指针异常
		}

		public static int getCount() {
			return count;
		}

		public static void setCount(int count) {
			Book.count = count;
		}

		public String getBname() {
			return bname;
		}

		public void setBname(String bname) {
			this.bname = bname;
		}

		public String getBno() {
			return bno;
		}

		public void setBno(String bno) {
			this.bno = bno;
		}

		public String getAuthor() {
			return author;
		}

		public void setAuthor(String author) {
			this.author = author;
		}

		public int getPrice() {
			return price;
		}

		public void setPrice(int price) {
			this.price = price;
		}
		
	}

二、菜单功能页

/**
 * 
 */
package com.jiangli.day06.task;

import java.util.Scanner;

/**
 *
 * Description:
 *
 * @author bychengyiliu
 *
 * @date 2020年1月15日 下午3:42:55
 *
 * @version 0.0.1 显示界面(菜单功能页)
 * 	
 */
	public class Interface {
		public static void Interface() {
			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-6:");
			System.out.println("**********************************");
		}
		
	}

三、信息处理类(增删改查)

/**
 * 
 */
package com.jiangli.day06.task;

import java.util.Scanner;

/**
 *
 * Description:
 *
 * @author bychengyiliu
 *
 * @date 2020年1月15日 下午4:02:45
 *
 * @version 0.0.1 
 * 	
 */
	public class BookInfoDeal {
		//输出所有书籍信息
		public static void BookInfoDeal(Book [] books) {
			System.out.println("*************当前书籍信息如下所示*************");
			System.out.println("\t"+"编号\t"+"书名\t"+"作者\t"+"价格\t");
			for (int i = 0; i < Book.count; i++) {
				System.out.println("\t"+books[i].getBno()+"\t"+books[i].getBname()+"\t"+books[i].getAuthor()+"\t"+books[i].getPrice());
			
			}
			System.out.println("**********************************************");
		}
		//添加书籍
		public static Book[] addBooks(Book [] books) {
				Book[] book = new Book[Book.count+1];	//创建新数组,避免加入新书之后长度不够
				System.out.println("请输入书名:");
				String bname = getScanner ().next();
				System.out.println("请输入书的编号:");
				String bno = getScanner ().next();
				System.out.println("请输入书的作者:");
				String author = getScanner ().next();
				System.out.println("请输入书的价格:");
				int price = getScanner ().nextInt();
				if(Book.count==0) {
					book[0] = new Book(bname, bno, author, price);
				}else {
					for (int i = 0; i <Book.count; i++) {
						book[i]=books[i];
					}
					book[Book.count] = new Book(bname, bno, author, price);
				}
				return book;
			}
		//查找书籍(根据编号查找)
		public static void findBook(Book[] books) {
			
			if (Book.count==0) {
				System.out.println("暂时无书籍可供你查找");
			}else {		
				System.out.println("请输入你要查找的书籍的编号:");
				String bno = getScanner ().next();
				for (int i = 0; i < Book.count; i++) {
					if (books[i].getBno().equals(bno)) {
						System.out.println("\t"+"编号\t"+"书名\t"+"作者\t"+"价格\t");
						System.out.println("\t"+books[i].getBno()+"\t"+books[i].getBname()+"\t"+books[i].getAuthor()+"\t"+books[i].getPrice());
						return;
					}
				}	
			}
			System.out.println("未找到您输入的编号的书籍!");
		}
		//下架书籍(根据编号删除)
		public static Book[] deleteBook(Book[] books) {
			
			if (Book.count==0) {
				System.out.println("暂时无书籍,无法下架");
			}else {
				System.out.println("请输入你要下架的书籍的编号:");
				String bno = getScanner ().next();				
				for (int i = 0; i < Book.count; i++) {
					if (books[i].getBno().equals(bno)) {
						Book[] books2 = new Book[Book.count-1];
						int k=-1;
						//删除元素后,重新赋值给新数组
						for (int j = 0; j < Book.count; j++) {
							if (i!=j) {
								books2[++k] = books[j];
							}
						}
						Book.count-=1;//返回数组的长度
						return books2;
					}
											
				}				
					System.out.println("未找到您输入的编号的书籍,删除失败!");			
								
			}
				return books;
		}		
		//修改书籍信息(按照书籍编号查找,更新所有信息)
		public static void modifyBookInfo(Book[] books) {
			
			if (Book.count==0) {
				System.out.println("暂时无书籍,无法修改信息");
			}else {	
				System.out.println("请输入你要更新的书籍的编号:");
				String bnos = getScanner ().next();
				for (int i = 0; i < Book.count; i++) {
					if (books[i].getBno().equals(bnos)) {
						System.out.println("请输入修改后的书名:");
						String bname = getScanner ().next();
						books[i].setBname(bname);
						System.out.println("请输入修改后的书的编号:");
						String bno = getScanner ().next();
						books[i].setBno(bno);
						System.out.println("请输入修改后的书的作者:");
						String author = getScanner ().next();
						books[i].setAuthor(author);
						System.out.println("请输入修改后的书的价格:");
						int price = getScanner ().nextInt();
						books[i].setPrice(price);
						return ;
					}
				}
				System.out.println("未找到你输入的编号的书籍信息");
			}
		}
		public static Scanner getScanner () {
				return new Scanner(System.in);
			}
		public static int getInput() {
			return getScanner ().nextInt();
		}
	}

四、测试类

/**
 * 
 */
package com.jiangli.day06.task;

/**
 *
 * Description:
 *
 * @author bychengyiliu
 *
 * @date 2020年1月15日 下午4:12:31
 *
 * @version 0.0.1 
 * 	
 */
public class BookTest {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Book[] books = new Book[100];
		boolean key = true;
		while(key) {
			Interface.Interface();
			int input = BookInfoDeal.getInput();
			switch (input) {
			case 1:		
				BookInfoDeal.BookInfoDeal(books);	//查看所有书籍信息
				break;
			case 2:		
				books = BookInfoDeal.addBooks(books);	//添加书籍
				break;
			case 3:		
				BookInfoDeal.findBook(books);	//查找书籍
				break;
			case 4:		
				books = BookInfoDeal.deleteBook(books);	//书籍下架
				break;
			case 5:		
				BookInfoDeal.modifyBookInfo(books);	//修改信息
				break;
			case 6:		
				System.out.println("程序已经退出!");	//退出
				key = false;
				break;
			default:
				System.out.println("输入错误,请重新输入!");
				break;
			}

		}
	}

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
图书管理系统设计” 1、问题描述 定义图书类,属性有:书名出版社、ISBN 号、作者、库存、价格等信息和相关的 对属性做操作的行为。 主要完成对图书的销售、统计和图书的简单管理。 2、功能要求 (1)销售功能。购买书籍时,输入相应的 ISBN 号,并在书库中查找该书的相关信息。 如果有库存,输入购买的册数,进行相应计算。如果库存不够,给出提示信息,结束购 买。 (2)图书简单管理功能。 添加功能:主要完成图书信息的添加,要求 ISBN 号唯一。当添加了重复的编号时,则 提示数据添加重复并取消添加。 查询功能:可按书名、ISBN 号、作者出版社进行查询。若存在相应信息,输出所查 询的信息,若不存在该记录,则提示“该标题不存在! ” 。 修改功能:可根据查询结果对相应的记录进行修改,修改时注意 ISBN 号的唯一性。 删除功能:主要完成图书信息的删除。输入要删除的 ISBN 号,根据编号删除该物品的 记录,如果该编号不在物品库中,则提示“该编号不存在” 。 (3)统计功能。 输出当前书库中所有图书的总数及详细信息;可按书的价格、库存作者出版社进 行统计,输出统计信息时,要按从大到小进行排序。 (7)图书存盘:将当前程序中的图书信息存入文件中。 (8)读出信息:从文件中将图书信息读入程序
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值