请对图书馆系统中的CatalogItem类、Book类和Recording类进行改造,实现其code属性的自动编码。具体要求如下:
Book实例的编号从B001开始,每次新增一个实例,编号自动加一,即按照B002,B003的顺序依次自动生成编号;
Recording实例的编号从R001开始,每次新增一个实例,编号自动加一,即按照R002,R003的顺序依次自动生成编号;
编写测试类Main,以“类型(B/R)-名字-年份-书的作者/影音资料的表演者-图书的页数/影音资料的格式”的形式添加图书或影音资料对象,以空行结束输入。结束输入后,分别按照图书和影音资料的编号从小到大的顺序分类输出每项资料的信息。每一行输出一条信息,输出格式为“编号-名字-年份-是否可借(available/disavailable)-书的作者/影音资料的表演者-图书的页数/影音资料的格式”。
注:请使用Collection.sort()方法实现按照资料编号的排序。
输入格式:
每行一种资料的信息,格式为“类型(B/R)-名字-年份-书的作者/影音资料的表演者-图书的页数/影音资料的格式”。空行表示输入结束。
输出格式:
按照编号从小到大排序分别输出图书和影音资料信息,每行表示一种资源,格式为“编号-名字-年份-是否可借(available/disavailable)-书的作者/影音资料的表演者-图书的页数/影音资料的格式”。
输入样例:
B-book1-2000-1111-200
R-recording1-2001-1111-cd
B-book2-2000-2222-200
R-recording2-2001-2222-cd
输出样例:
B001-book1-2000-available-1111-200
B002-book2-2000-available-2222-200
R001-recording1-2001-available-1111-cd
R002-recording2-2001-available-2222-cd
import java.util.ArrayList;
import java.util.Scanner;
import java.util.StringTokenizer;
class Book{
String name="";
String year="" ;
String writer="";
String page="";
String num="";
Book(String ininame,String iniyear ,String iniwriter,String inipage,int ininum)
{
name=ininame;
year=iniyear;
writer=iniwriter;
page=inipage;
num=setNum(ininum);
}
String setNum(int ininum)
{
if(ininum/100!=0)
{
return "B"+ininum;
}
else if(ininum/10!=0)
{
return "B"+"0"+ininum;
}
else
{
return "B"+"00"+ininum;
}
}
public String toString()
{
return num+"-"+name+"-"+year+"-"+"available"+"-"+writer+"-"+page;
}
}
class Vadio{
String name="";
String year="" ;
String writer="";
String format="";
String num="";
Vadio(String ininame,String iniyear ,String iniwriter,String iniformat,int ininum)
{
name=ininame;
year=iniyear;
writer=iniwriter;
format=iniformat;
num=setNum(ininum);
}
String setNum(int ininum)
{
if(ininum/100!=0)
{
return "R"+ininum;
}
else if(ininum/10!=0)
{
return "R"+"0"+ininum;
}
else
{
return "R"+"00"+ininum;
}
}
public String toString()
{
return num+"-"+name+"-"+year+"-"+"available"+"-"+writer+"-"+format;
}
}
public class Main {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner in=new Scanner(System.in);
ArrayList<Book> book=new ArrayList<Book>();
ArrayList<Vadio> vadio=new ArrayList<Vadio>();
String label;
String name;
String year;
String writer;
String last;
int numberBook=0;
int numberVadio=0;
while(in.hasNext())
{
String s=in.nextLine();
String t[]=s.split("[-]");
label=t[0];
if(label.equals("B"))
{
numberBook++;
name=t[1];
year=t[2];
writer=t[3];
last=t[4];
Book a=new Book(name, year, writer,last,numberBook);
book.add(a);
}
else
{
numberVadio++;
name=t[1];
year=t[2];
writer=t[3];
last=t[4];
Vadio b=new Vadio(name, year, writer,last,numberVadio);
vadio.add(b);
}
}
for(Book x:book)
{
System.out.println(x);
}
for(Vadio y:vadio)
{
System.out.println(y);
}
in.close();
}
}