主函数Test方法,负责调用
public class Test {
public static void main(String[] args) {
Manage menu1=new Manage();
menu1.Init();
menu1.menu();
//menu1.Look();
}
}
Book方法负责存放图书属性
public class Book {
//图书名
String name;
//图书借书状态
String state;
//借书次数
int time;
}
Manege方法负责图书的各种管理
import java.util.Scanner;
public class Manage {
private static final String DelBookName = null;
Scanner input=new Scanner(System.in);
//初始化数组
Book[] book=new Book[30];
//用size控制图书数量
int size=0;
//初始化图书是否借出
boolean state = false;
//数组下标
int index;
//图书管理菜单
public void menu(){
String in="Y";
boolean flag=true;
while(flag){
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(" 7、退出");
System.out.println(" 8、排行榜");
System.out.println("请输入你的选择:");
int select=input.nextInt();
switch(select){
case 1:
//查看图书
Look();
break;
case 2:
//添加图书
Add();
break;
case 3:
//删除图书
Del();
break;
case 4:
//借阅图书
Borrow();
break;
case 5:
//归还图书
Return();
break;
case 6:
//修改图书信息
Update();
break;
case 7:
//系统退出
System.out.println("你已经退出图书管理系统,欢迎下次登陆");
System.exit(0);
break;
case 8:
//排行榜
Arrange();
break;
default:
System.out.println("没有该选项");
}
System.out.println("是否继续:(Y/N)");
in=input.next();
if (in.equalsIgnoreCase("Y")) {
flag=true;
}else{
flag=false;
}
}
}
//初始化三本书
public void Init(){
//创建第一本书空间
book[0]=new Book();
//初始化第一本书
book[0].name="三国演义";
book[0].state="已借";//已借
book[0].time=51;
size++;
//创建第二本书空间
book[1]=new Book();
//初始化第二本书
book[1].name="西游记";
book[1].state="未借";//未借
book[1].time=22;
size++;
//创建第三本书空间
book[2]=new Book();
//初始化第三本书
book[2].name="水浒传";
book[2].state="未借";
book[2].time=12;
size++;
}
//1、查看图书
public void Look(){
System.out.println("查看图书");
System.out.println("书名 是否借出 借出次数");
//输出每本图书信息
for (int i = 0; i < size; i++) {
//用size来控制输出的图书
System.out.println(book[i].name+" "+book[i].state+" "+book[i].time);
}
}
//2、增加图书
public void Add(){
System.out.println("添加图书");
System.out.println("请输入图书名:");
//输入图书名
String inputBook=input.next();
//新建一个对象,保存新添入的图书
Book newBook=new Book();
//将输入的图书名赋值给新建的对象
newBook.name=inputBook;
//在数组中开辟一个空间存放新书
book[size]=newBook;
book[size].state="未借";
System.out.println("添加图书成功!!");
//存放完后size++
size++;
}
//判断图书是否存在,
//如果找到,返回存放图书的下标;如果未找到,返回-1;
public int Search(String inputNameBook){
//从第一本书开始找,找到最后一本书的存放位置
for (int i = 0; i < size; i++) {
if (book[i].name.equals(inputNameBook)) {
//找到想删除图书的下标
return i;
//return 可以退出整个方法
}
}
//如果未找到,返回-1
return -1;
}
//3、删除图书
public void Del(){
System.out.println("删除图书");
System.out.println("请输入需要删除的图书名:");
String delNameBook=input.next();
//接收图书是否找到的信号
int index=Search(delNameBook);
//如果此书存在,查看图书状态
if(index!=-1){
//如果图书处于未借,可以进行删除
if(book[index].state=="未借"){
//进行删除
book[index]=null;
System.out.println("成功删除!!");
//每删除一本书,size都要减1
size--;
//如果想删除图书的下一位不为空,则进行移位
while(book[index+1]!=null){
//后一本图书向前移动
book[index]=book[index+1];
index++;
}
}else{//如果处于已借,提示不能借出
System.out.println("此书借出,不能删除!!");
}
}else{
//此书不存在
System.out.println("此书不存在");
}
}
//4、借阅图书
public void Borrow(){
System.out.println("借阅图书");
System.out.println("请输入需要借阅的图书名:");
String delNameBook=input.next();
//接收图书是否找到的信号
int index=Search(delNameBook);
//如果书库里有这本书
if(index!=-1){
//如果该书未借出,可以借阅
if(book[index].state=="未借"){
//将需借阅的图书下标改为已借阅
book[index].state="已借";
//借阅次数加1
book[index].time++;
System.out.println("借阅成功!!");
}else{
//如果该书借出,不可以借出
System.out.println("该书已借出,不能再次借阅!");
}
}else{
//如果这本书不存在
System.out.println("该书不存在,不能借阅");
}
}
//5、归还图书
public void Return(){
System.out.println("归还图书");
System.out.println("请输入需要归还的图书名:");
String delNameBook=input.next();
//接收图书是否找到的信号
int index=Search(delNameBook);
//如果书库里有这本书
if(index!=-1){
//如果该书已借出,可以借阅
if(book[index].state=="已借"){
//将需借阅的图书下标改为未借
book[index].state="未借";
System.out.println("归还成功!!");
}else{
//如果该书未借,不可以还书
System.out.println("该书未借出,不能再次归还!");
}
}else{
//如果这本书不存在
System.out.println("该书不存在,无法归还");
}
}
//6、修改图书信息
public void Update(){
System.out.println("修改图书信息");
System.out.println("请输入需要修改的图书名:");
String updateNameBook=input.next();
//由于借阅次数和图书状态不用改变,所以需改变的只有图书名
//查找图书是否存在,不存在则返回-1,存在返回图书索引
int index=Search(updateNameBook);
//如果书库里有这本书
if(index!=-1){
System.out.println("你想修改为的图书名");
String updateName=input.next();
if(book[index].name.equals(updateName)){
System.out.println("输入的图书名重复");
}else{
//可以修改图书名
book[index].name=updateName;
System.out.println("修改成功");
}
}else{
//如果这本书不存在
System.out.println("该书不存在,无法修改图书名");
}
}
//8、排行榜
public void Arrange(){
System.out.println("图书排行榜");
//按图书借出次数排列
System.out.println("书名 是否借出 借出次数");
//冒泡排序
for (int i = 0; i < size-1; i++) {
for (int j = 0; j <size-i-1; j++) {
if(book[j].time<book[j+1].time){
Book temp=book[j];
book[j]=book[j+1];
book[j+1]=temp;
}
}
}
for (int i = 0; i < size; i++) {
System.out.println(book[i].name+" "+book[i].state+" "+book[i].time);
}
}
}