Java迷你图书管理器1.2-面向对象+I/O流

CSDN话题挑战赛第2期
参赛话题:Java技术分享

迷你图书管理器

author:luckyboy!

version:1.2

知识储备:变量、数据类型、选择结构、循环结构、数组 、面向对象、集合和I/O流

系统概述:为某图书馆开发一个迷你图书管理系统,实现图书的管理。

功能:

  • 新增图书
  • 查看图书
  • 删除图书
  • 借出图书
  • 归还图书
  • 退出图书系统

创建 .Java文件:Book类、MyBookMgr类、Test测试类

7fabc4433a204ed180fe6235e60f94f3.png 

阶段划分

  • 第一阶段:创建用来存储图书信息的Book类
  • 第二阶段:创建集合和初始化方法,将初始化图书信息加入到集合
  • 第三阶段:完成整体框架和退出功能
  • 第四阶段:完成将信息保存到文件中的方法
  • 第五阶段:完成将信息从文件中取出的方法
  • 第六阶段:完成新增图书功能
  • 第七阶段:完成查看图书功能
  • 第八阶段:完成删除图书功能
  • 第九阶段:完成借出图书功能
  • 第十阶段:完成归还图书功能

第一阶段:创建用来存储图书信息的Book类

import java.io.Serializable;

public class Book implements Serializable{
	

	// 图书名称
	private String name;
	// 借阅状态,0:可借阅 ;1:已借出
	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;
	}

	@Override
	public String toString() {
		return name + "\t" + state + "\t" + date
				+ "\t" + count;
	}
	
}

第二阶段:创建集合和初始化方法,将初始化图书信息加入到集合

public class MyBookMgr {
	Scanner in = new Scanner(System.in);
	

	// 初始化方法
	public void inti() {
		// 创建集合保存图书信息
		LinkedList<Book> list = new LinkedList<Book>();
		Book book1 = new Book("罗马假日", 1, 1, 15);
		Book book2 = new Book("白雪公主", 0, 0, 12);
		Book book3 = new Book("葫芦兄弟", 0, 0, 30);
		// 将图书信息保存到集合
		list.add(book1);
		list.add(book2);
		list.add(book3);
		writeBook(list);
	}
}

第三阶段:完成整体框架和退出功能

	// 整体框架开始方法
	public void start() {
		int num;
		// 输出欢迎语句,只输出一次
		System.out.println("欢迎使用迷你图书管理器");
		do {
			// 输出菜单,循环输出多次
			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("-------------------------");

			System.out.println("请选择(序号:1-6):");
			int choose = in.nextInt();
			// 如果用户输入1-6以外的数字没有此功能,重新输入
			while (choose < 1 || choose > 6) {
				System.out.println("此功能不存在,请重新输入!");
				choose = in.nextInt();
			}
			switch (choose) {
			// 新增图书
			case 1:
				newBook();
				break;

			// 查看图书
			case 2:
				lookBook();
				break;

			// 删除图书
			case 3:
				delBook();
				break;

			// 借出图书
			case 4:
				lendBook();
				break;

			// 归还图书
			case 5:
				returnBook();
				break;

			// 退出图书
			case 6:
				break;
			}
			// 如果用户选择退出程序,则跳出循环,结束程序
			if (choose == 6) {
				System.out.println("程序运行结束,感谢使用此程序!");
				break;
			}
			System.out.println("输入0返回:");
			num = in.nextInt();
			// 如果输入0以外的数字,则重新输入,只有功能6可以退出程序
			while (num != 0) {
				System.out.println("输入0返回,请重新输入:");
				num = in.nextInt();
			}
		} while (num == 0);
	}

第四阶段:完成将信息保存到文件中的方法

	//向Book文件中写入信息的方法
	@SuppressWarnings("resource")
	public boolean writeBook(LinkedList<Book> list){
		//创建输出流,再将集合中保存的信息存储到Book文件中
		OutputStream os;
		try {
			os = new FileOutputStream("Book.txt");
			ObjectOutputStream oos = new ObjectOutputStream(os);
			//将集合中保存的信息存储到Book文件中
			oos.writeObject(list);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}

第五阶段:完成将信息从文件中取出的方法

//从Book文件中读取信息保存到集合
	@SuppressWarnings("resource")
	public LinkedList<Book> readBook(){
		//创建输入流,再读取Book文件中的信息保存到集合
		InputStream is;
		try {
			is = new FileInputStream("Book.txt");
			ObjectInputStream ois = new ObjectInputStream(is);
			//读取Book文件中的信息
			Object object = ois.readObject();
			@SuppressWarnings("unchecked")
			//通过强制类型转换将信息保存到集合
			LinkedList<Book> list = (LinkedList<Book>)object;
			return list;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}
public class Test {

	public static void main(String[] args) {
		//实例化MyBookMgr类
		MyBookMgr my = new MyBookMgr();
		//调用MyBookMgr类中的inti初始化方法
		my.inti();
		//调用MyBookMgr类中的start整体框架开始方法
		my.start();
	}

}

第六阶段:完成新增图书功能

	//新增图书方法
	public void newBook() {
		//思路:实例化Book类,将新的图书信息添加到集合
		LinkedList<Book> list = readBook(); 
		System.out.println("-> 新增图书");
		System.out.println("请输入您要增加的图书:");
		String bookName = in.next();
		//实例化Book类
		Book book = new Book(bookName, 0, 0, 0);
		//将图书信息添加到集合
		list.add(book);
		writeBook(list);
		System.out.println("新增《"+bookName+"》成功!");
	}

第七阶段:完成查看图书功能

	//查看图书方法
	public void lookBook() {
		//思路:输出集合中的图书信息
		LinkedList<Book> list = readBook();
		System.out.println("-> 查看图书");
		System.out.println("序号\t图书名称\t状态\t时间\t次数");
		for (int i = 0; i < list.size(); i++) {
			//设置图书状态,1显示已借出,0显示可借阅
			String states = list.get(i).getState() == 0 ? "可借阅" : "已借出";
			//设置借出时间,0日不显示,其它已 数字+日 的形式显示
			String dates = list.get(i).getDate() == 0 ? "" : list.get(i).getDate() + "日";
			//设置借出次数,数字+次 的形式显示
			String counts = list.get(i).getCount() + "次";
			System.out.println((i+1) + "\t" + list.get(i).getName() + "\t" + states
					 + "\t" + dates + "\t" + counts);
		}
	}

第八阶段:完成删除图书功能

	//删除图书方法
	public void delBook() {
		/*
		 * 思路:
		 * 在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书可以删除,使用remove删除
		 * 在集合中匹配到用户输入的图书名称,图书状态为已借出,图书不能删除
		 * 在集合中没有匹配到用户输入的图书名称,提示图书不存在
		 */
		LinkedList<Book> list = readBook();
		System.out.println("-> 删除图书");
		//设置标志位,区分图书是否存在
		boolean flag = false;
		System.out.println("请输入您要删除的图书:");
		String bookName = in.next();
		for (int i = 0; i < list.size(); i++) {
			//在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书可以删除,使用remove删除
			if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 0){
				list.remove(i);
				writeBook(list);
				System.out.println("删除《"+ bookName + "》成功!");
				//图书存在,赋值true
				flag = true;
			}
			//在集合中匹配到用户输入的图书名称,图书状态为已借出,图书不能删除
			else if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 1){
				System.out.println("图书已借出,不能删除!");
				//图书存在,赋值true
				flag = true;
			}
		}
		//如果标志位flag等于false,表示图书u不存在,给出图示信息
		if(!flag){
			System.out.println("此图书不存在!");
		}
	}

第九阶段:完成借出图书功能

	//借出图书方法
	public void lendBook() {
		/*
		 * 图书状态可借阅,按照用户输入的图书名称借出指定图书,并判断输入的借出日期是否在1-31之间,否则重新输入日期。
		 * 图书状态已借出,给出相应提示
		 * 图书不存在,给出相应提示
		 * 
		 * 思路
		 * ->用户输入需要借出的图书
		 * ->判断图书是否存在
		 * ->图书存在,判断图书是否借出
		 * ->图书存在,可借阅,判断用户输入的借出日期
		 * ->图书存在,可借阅,借出日期正确,修改图书的状态,借出日期和借出次数加1
		 */
		LinkedList<Book> list = readBook();
		System.out.println("-> 借出图书");
		//设置标志位,区分图书是否存在
		boolean flag = false;
		System.out.println("请输入您要借出的图书:");
		String bookName = in.next();
		for (int i = 0; i < list.size(); i++) {
			//在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书可以借出
			if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 0){
				System.out.println("请输入借出日期(1-31):");
				int dates = in.nextInt();
				while(dates < 1 || dates > 31){
					System.out.println("借出日期需要大于等于1且小于等于31,请重新输入:");
					dates = in.nextInt();
				}
				//修改借出日期,图书状态,借出次数
				list.get(i).setDate(dates);
				list.get(i).setState(1);
				//图书借出次数加1
				int counts = list.get(i).getCount();
				list.get(i).setCount(counts);
				writeBook(list);
				System.out.println("借出《"+ bookName + "》成功!");
				//图书存在,赋值true
				flag = true;
			}
			//在集合中匹配到用户输入的图书名称,图书状态为已借出,图书不能借出
			else if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 1){
				System.out.println("图书已借出,不能重复借出!");
				//图书存在,赋值true
				flag = true;
			}
		}
		//如果标志位flag等于false,表示图书u不存在,给出图示信息
		if(!flag){
			System.out.println("此图书不存在!");
		}		
	}

第十阶段:完成归还图书功能

	//归还图书方法
	public void returnBook() {
		/*
		 * 用户归还已借出的图书并计算租金。如果用户输入的归还日期大于31或者小于借出日期,提示用户重新输入归还日期。
		 * 用户归还的图书未借出,给出相应提示。
		 * 用户归还的图书不存在,给出相应提示。
		 * 
		 * 思路:
		 * ->用户输入需要归还的图书
		 * ->判断图书是否存在
		 * ->判断图书是否借出
		 * ->判断用户输入的归还日期
		 * ->修改归还图书的状态,并计算出租金,租金 = 借出日期 - 归还日期
		 */
		// 创建集合保存图书信息
		LinkedList<Book> list = readBook();
		System.out.println("-> 归还图书");
		//设置标志位,区分图书是否存在
		boolean flag = false;
		System.out.println("请输入您要归还的图书:");
		String bookName = in.next();
		for (int i = 0; i < list.size(); i++) {
			//在集合中匹配到用户输入的图书名称,图书状态为已借出,图书可以归还
			if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 1){
				System.out.println("请输入借出日期(1-31):");
				int dates = in.nextInt();
				while(dates < list.get(i).getDate() || dates > 31){
					if(dates < list.get(i).getDate()){
						System.out.println("归还日期要大于借出日期,请重新输入:");
					}else{
						System.out.println("一个月最多31天,请重新输入:");
					}
					dates = in.nextInt();
				}
				//计算出租金,租金 = 归还日期 - 借出日期
				int price = dates - list.get(i).getDate();
				//修改归还图书的状态为可借阅,图示日期改为0
				list.get(i).setState(0);
				list.get(i).setDate(0);
				writeBook(list);
				System.out.println("归还《" + bookName + "》成功!");
				System.out.println("应付租金:"+price);
				//图书存在,赋值true
				flag = true;
			}
			//在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书不能归还
			else if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 0){
				System.out.println("图书未借出,不能归还!");
				//图书存在,赋值true
				flag = true;
			}
		}
		//如果标志位flag等于false,表示图书u不存在,给出图示信息
		if(!flag){
			System.out.println("此图书不存在!");
		}
	}

完整代码如下

Book类

import java.io.Serializable;

public class Book implements Serializable{
	

	// 图书名称
	private String name;
	// 借阅状态,0:可借阅 ;1:已借出
	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;
	}

	@Override
	public String toString() {
		return name + "\t" + state + "\t" + date
				+ "\t" + count;
	}
	
}

MyBookMgr类

import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.ObjectInputStream;
import java.io.ObjectOutputStream;
import java.io.OutputStream;
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.List;
import java.util.Scanner;


public class MyBookMgr {
	Scanner in = new Scanner(System.in);
	

	// 初始化方法
	public void inti() {
		// 创建集合保存图书信息
		LinkedList<Book> list = new LinkedList<Book>();
		Book book1 = new Book("罗马假日", 1, 1, 15);
		Book book2 = new Book("白雪公主", 0, 0, 12);
		Book book3 = new Book("葫芦兄弟", 0, 0, 30);
		// 将图书信息保存到集合
		list.add(book1);
		list.add(book2);
		list.add(book3);
		writeBook(list);
	}

	//向Book文件中写入信息的方法
	@SuppressWarnings("resource")
	public boolean writeBook(LinkedList<Book> list){
		//创建输出流,再将集合中保存的信息存储到Book文件中
		OutputStream os;
		try {
			os = new FileOutputStream("Book.txt");
			ObjectOutputStream oos = new ObjectOutputStream(os);
			//将集合中保存的信息存储到Book文件中
			oos.writeObject(list);
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		return false;
	}
	
	//从Book文件中读取信息保存到集合
	@SuppressWarnings("resource")
	public LinkedList<Book> readBook(){
		//创建输入流,再读取Book文件中的信息保存到集合
		InputStream is;
		try {
			is = new FileInputStream("Book.txt");
			ObjectInputStream ois = new ObjectInputStream(is);
			//读取Book文件中的信息
			Object object = ois.readObject();
			@SuppressWarnings("unchecked")
			//通过强制类型转换将信息保存到集合
			LinkedList<Book> list = (LinkedList<Book>)object;
			return list;
		} catch (FileNotFoundException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		} catch (ClassNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		
		return null;
	}
	
	// 整体框架开始方法
	public void start() {
		int num;
		// 输出欢迎语句,只输出一次
		System.out.println("欢迎使用迷你图书管理器");
		do {
			// 输出菜单,循环输出多次
			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("-------------------------");

			System.out.println("请选择(序号:1-6):");
			int choose = in.nextInt();
			// 如果用户输入1-6以外的数字没有此功能,重新输入
			while (choose < 1 || choose > 6) {
				System.out.println("此功能不存在,请重新输入!");
				choose = in.nextInt();
			}
			switch (choose) {
			// 新增图书
			case 1:
				newBook();
				break;

			// 查看图书
			case 2:
				lookBook();
				break;

			// 删除图书
			case 3:
				delBook();
				break;

			// 借出图书
			case 4:
				lendBook();
				break;

			// 归还图书
			case 5:
				returnBook();
				break;

			// 退出图书
			case 6:
				break;
			}
			// 如果用户选择退出程序,则跳出循环,结束程序
			if (choose == 6) {
				System.out.println("程序运行结束,感谢使用此程序!");
				break;
			}
			System.out.println("输入0返回:");
			num = in.nextInt();
			// 如果输入0以外的数字,则重新输入,只有功能6可以退出程序
			while (num != 0) {
				System.out.println("输入0返回,请重新输入:");
				num = in.nextInt();
			}
		} while (num == 0);
	}
	
	//新增图书方法
	public void newBook() {
		//思路:实例化Book类,将新的图书信息添加到集合
		LinkedList<Book> list = readBook(); 
		System.out.println("-> 新增图书");
		System.out.println("请输入您要增加的图书:");
		String bookName = in.next();
		//实例化Book类
		Book book = new Book(bookName, 0, 0, 0);
		//将图书信息添加到集合
		list.add(book);
		writeBook(list);
		System.out.println("新增《"+bookName+"》成功!");
	}

	//查看图书方法
	public void lookBook() {
		//思路:输出集合中的图书信息
		LinkedList<Book> list = readBook();
		System.out.println("-> 查看图书");
		System.out.println("序号\t图书名称\t状态\t时间\t次数");
		for (int i = 0; i < list.size(); i++) {
			//设置图书状态,1显示已借出,0显示可借阅
			String states = list.get(i).getState() == 0 ? "可借阅" : "已借出";
			//设置借出时间,0日不显示,其它已 数字+日 的形式显示
			String dates = list.get(i).getDate() == 0 ? "" : list.get(i).getDate() + "日";
			//设置借出次数,数字+次 的形式显示
			String counts = list.get(i).getCount() + "次";
			System.out.println((i+1) + "\t" + list.get(i).getName() + "\t" + states
					 + "\t" + dates + "\t" + counts);
		}
	}

	//删除图书方法
	public void delBook() {
		/*
		 * 思路:
		 * 在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书可以删除,使用remove删除
		 * 在集合中匹配到用户输入的图书名称,图书状态为已借出,图书不能删除
		 * 在集合中没有匹配到用户输入的图书名称,提示图书不存在
		 */
		LinkedList<Book> list = readBook();
		System.out.println("-> 删除图书");
		//设置标志位,区分图书是否存在
		boolean flag = false;
		System.out.println("请输入您要删除的图书:");
		String bookName = in.next();
		for (int i = 0; i < list.size(); i++) {
			//在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书可以删除,使用remove删除
			if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 0){
				list.remove(i);
				writeBook(list);
				System.out.println("删除《"+ bookName + "》成功!");
				//图书存在,赋值true
				flag = true;
			}
			//在集合中匹配到用户输入的图书名称,图书状态为已借出,图书不能删除
			else if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 1){
				System.out.println("图书已借出,不能删除!");
				//图书存在,赋值true
				flag = true;
			}
		}
		//如果标志位flag等于false,表示图书u不存在,给出图示信息
		if(!flag){
			System.out.println("此图书不存在!");
		}
	}

	//借出图书方法
	public void lendBook() {
		/*
		 * 图书状态可借阅,按照用户输入的图书名称借出指定图书,并判断输入的借出日期是否在1-31之间,否则重新输入日期。
		 * 图书状态已借出,给出相应提示
		 * 图书不存在,给出相应提示
		 * 
		 * 思路
		 * ->用户输入需要借出的图书
		 * ->判断图书是否存在
		 * ->图书存在,判断图书是否借出
		 * ->图书存在,可借阅,判断用户输入的借出日期
		 * ->图书存在,可借阅,借出日期正确,修改图书的状态,借出日期和借出次数加1
		 */
		LinkedList<Book> list = readBook();
		System.out.println("-> 借出图书");
		//设置标志位,区分图书是否存在
		boolean flag = false;
		System.out.println("请输入您要借出的图书:");
		String bookName = in.next();
		for (int i = 0; i < list.size(); i++) {
			//在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书可以借出
			if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 0){
				System.out.println("请输入借出日期(1-31):");
				int dates = in.nextInt();
				while(dates < 1 || dates > 31){
					System.out.println("借出日期需要大于等于1且小于等于31,请重新输入:");
					dates = in.nextInt();
				}
				//修改借出日期,图书状态,借出次数
				list.get(i).setDate(dates);
				list.get(i).setState(1);
				//图书借出次数加1
				int counts = list.get(i).getCount();
				list.get(i).setCount(counts);
				writeBook(list);
				System.out.println("借出《"+ bookName + "》成功!");
				//图书存在,赋值true
				flag = true;
			}
			//在集合中匹配到用户输入的图书名称,图书状态为已借出,图书不能借出
			else if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 1){
				System.out.println("图书已借出,不能重复借出!");
				//图书存在,赋值true
				flag = true;
			}
		}
		//如果标志位flag等于false,表示图书u不存在,给出图示信息
		if(!flag){
			System.out.println("此图书不存在!");
		}		
	}

	//归还图书方法
	public void returnBook() {
		/*
		 * 用户归还已借出的图书并计算租金。如果用户输入的归还日期大于31或者小于借出日期,提示用户重新输入归还日期。
		 * 用户归还的图书未借出,给出相应提示。
		 * 用户归还的图书不存在,给出相应提示。
		 * 
		 * 思路:
		 * ->用户输入需要归还的图书
		 * ->判断图书是否存在
		 * ->判断图书是否借出
		 * ->判断用户输入的归还日期
		 * ->修改归还图书的状态,并计算出租金,租金 = 借出日期 - 归还日期
		 */
		// 创建集合保存图书信息
		LinkedList<Book> list = readBook();
		System.out.println("-> 归还图书");
		//设置标志位,区分图书是否存在
		boolean flag = false;
		System.out.println("请输入您要归还的图书:");
		String bookName = in.next();
		for (int i = 0; i < list.size(); i++) {
			//在集合中匹配到用户输入的图书名称,图书状态为已借出,图书可以归还
			if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 1){
				System.out.println("请输入借出日期(1-31):");
				int dates = in.nextInt();
				while(dates < list.get(i).getDate() || dates > 31){
					if(dates < list.get(i).getDate()){
						System.out.println("归还日期要大于借出日期,请重新输入:");
					}else{
						System.out.println("一个月最多31天,请重新输入:");
					}
					dates = in.nextInt();
				}
				//计算出租金,租金 = 归还日期 - 借出日期
				int price = dates - list.get(i).getDate();
				//修改归还图书的状态为可借阅,图示日期改为0
				list.get(i).setState(0);
				list.get(i).setDate(0);
				writeBook(list);
				System.out.println("归还《" + bookName + "》成功!");
				System.out.println("应付租金:"+price);
				//图书存在,赋值true
				flag = true;
			}
			//在集合中匹配到用户输入的图书名称,图书状态为可借阅,图书不能归还
			else if(list.get(i).getName().equals(bookName) && list.get(i).getState() == 0){
				System.out.println("图书未借出,不能归还!");
				//图书存在,赋值true
				flag = true;
			}
		}
		//如果标志位flag等于false,表示图书u不存在,给出图示信息
		if(!flag){
			System.out.println("此图书不存在!");
		}
	}

}

Test测试类

public class Test {

	public static void main(String[] args) {
		//实例化MyBookMgr类
		MyBookMgr my = new MyBookMgr();
		//调用MyBookMgr类中的inti初始化方法
		my.inti();
		//调用MyBookMgr类中的start整体框架开始方法
		my.start();
	}
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值