consolebooktypegetter.java

来自「图书馆借阅系统小样例」· Java 代码 · 共 58 行

JAVA
58
字号
package booksystem.console;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

import booksystem.BookType;
import booksystem.IBookTypeGetter;

//控制台取得图书类型的类,实现取得图书类型接口
public class ConsoleBookTypeGetter implements IBookTypeGetter {

	@Override
	public BookType getBookType() {
		List<BookType> booktypes = null;
		// 打开图书类别配置文件,并读入所有类别信息
		File booktypesfile = new File("BookTypes.txt");
		try {
			FileInputStream fis = new FileInputStream(booktypesfile);
			Scanner filescanner = new Scanner(fis);
			booktypes = new ArrayList<BookType>();
			while (filescanner.hasNext()) {
				String str = filescanner.nextLine();
				BookType bt = new BookType();
				bt.setName(str.split(",")[0]);
				bt.setPricePerDay(Double.parseDouble(str.split(",")[1]));
				booktypes.add(bt);
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
		// 输出所有类别,供管理员选择
		System.out.println("请选择图书类型:");
		for (int i = 0; i < booktypes.size(); i++) {
			if (i > 0)
				System.out.print("/");
			System.out.print(i + ":" + booktypes.get(i).getName());
		}
		System.out.println();
		// 接收管理员的选择
		Scanner consolescanner = new Scanner(System.in);
		int typeindex = 0;
		do {
			System.out.print("请输入类别编号:");
			typeindex = consolescanner.nextInt();
			if (typeindex < 0 || typeindex > booktypes.size() - 1)
				System.out.println("类别编号必须在0和" + (booktypes.size() - 1) + "之间");
		} while (typeindex < 0 || typeindex > booktypes.size() - 1);
		// 返回管理员选择的图书类别
		return booktypes.get(typeindex);
	}

}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?