/*一、 创建一个用于图书管理的图书类。
(1)包含图书名称、ISBN编号 、作者、出版社、单价等属性;
(2)定义各属性的set XXXX、getXXXX方法,用于对成员变量的封闭;
(3)定义无参构造方法、带参构造方法;
(4)定义输出方法,用于输出图书对象的信息。
二、 利用图书类 ,设计新的图书库类,完成以下操作:
(1)成员变量:包含图书数组、图书数量两个属性;
(2)构造方法:以图书数量为参数,创建的图书库对象;
(3)成员方法:
功能:添加图书
功能:根据给定的图书ISBN编号查找图书
功能:按出版社顺序,对所有图书进行排序
功能:输出所有图书信息
*从文件导入:将指定文本文件中的图书信息,写入图书库类的图书集合中(追加,或全新添加)。
*导出到文件:将当前图书集合中的图书信息,写入指定的文本文件,以便于用户查看。(文本文件的内容是字符)
三、 利用图书库类,创建图书库管理类,使其能够通过菜单,进行图书库的管理。
(1) 设计主菜单(创建,导入,退出)
(2) 创建完成后,进入二级菜单(浏览,查找,添加,删除,排序,导出,退出)
其中的"导入"是指,从指定文件读入系统定义的图书库类对象中;
"导出"是指,将程序中的图书库类对象写入指定的文件中。
其它功能:也可以添加一个功能 ,将图书库类集合中的图书信息以文本的形式保存在文件中,用户可以直接读取文件中的文本信息。
*/
import java.util.Scanner;
import java.io.*;
class Book implements Serializable
{
private static final long serialVersionUID = 1L;
private String bookname;
private String number;
private String author;
private String press;
private String price;
public Book()
{
}
public Book(String bookname,String number,String author,String press,String price)
{
this.bookname=bookname;
this.number=number;
this.author=author;
this.press=press;
this.price=price;
}
public String getBookname()
{
return this.bookname;
}
public String getNumber()
{
return this.number;
}
public String getAuthor()
{
return this.author;
}
public String getPress()
{
return this.press;
}
public String getPrice()
{
return this.price;
}
public void setBookname(String bookname)
{
this.bookname=bookname;
}
public void setNumber(String number)
{
this.number=number;
}
public void setAuthor(String author)
{
this.author=author;
}
public void setPress(String press)
{
this.press=press;
}
public void setPrice(String price)
{
this.price=price;
}
public void speak()
{
System.out.println(this.bookname+" "+this.number+" "+this.author+" "+this.press+" "+this.price);
}
public String ToString()
{
return this.bookname+" "+this.number+" "+this.author+" "+this.press+" "+this.price;
}
}
class Library implements Serializable
{
Book[] array=new Book[100];
Book book=new Book();
int num=0;
public void add(String bookname,String number,String author,String press,String price)
{
array[num]=new Book(bookname,number,author,press,price);
num++;
}
public void seek(String number)
{
int i;
for(i=0;i<num;i++)
{
if(array[i].getNumber().equals(number))
{
System.out.println("图书 编码 作者 出版社 价格");
array[i].speak();
break;
}
}
if(i==(num+1))
{
System.out.println("查无此物");
}
}
public void paixu()
{
Book t=new Book();
int i,j;
for(i=0;i<num-1;i++)
{
for(j=1;j<num;j++)
{
if(array[i].getPress().compareTo(array[j].getPress())<0)
{
t=array[i];
array[i]=array[j];
array[j]=t;
}
}
}
}
public void look()
{
System.out.println("图书 编码 作者 出版社 价格");
for(int i=0;i<num;i++)
{
array[i].speak();
}
}
public void delete(String bookname)
{
int i;
for(i=0;i<num;i++)
{
if(array[i].getBookname().equals(bookname))
{
array[i]=array[num-1];
num=num-1;
System.out.println("删除成功");
}
}
if(i>=num)
System.out.println("删除失败");
}
public void daoru() throws Exception
{
System.out.println("开始读取");
FileInputStream fis =new FileInputStream("book.txt");
ObjectInputStream ois=new ObjectInputStream(fis);
book=(Book)ois.readObject();
ois.close();
fis.close();
System.out.println("读取成功");
}
public void daochu()throws Exception
{
FileOutputStream fos=new FileOutputStream("book1.txt");
ObjectOutputStream oos=new ObjectOutputStream(fos);
oos.writeObject(book);
fos.close();
oos.close();
System.out.println("导出成功!");
}
public void baocun()throws Exception
{
FileWriter fw=new FileWriter("图书管理.txt");
BufferedWriter bw=new BufferedWriter(fw);
for(int i=0;i<num;i++)
{
String line=array[i].ToString();
bw.write(line);
bw.newLine();
}
bw.close();
fw.close();
System.out.println("保存成功!");
}
}
class Menu implements Serializable
{
public void FirstMenu() throws Exception
{
Library library=new Library();
System.out.println("**********图书管理**********");
System.out.println("1、创建菜单");
System.out.println("2、导入 ");
System.out.println("3、退出");
System.out.println("****************************");
System.out.println("请输入你要操作的序号");
Scanner sc=new Scanner(System.in);
int a=sc.nextInt();
switch(a)
{
case 1:
System.out.println("请输入图书数量:");
int n=sc.nextInt();
System.out.println("请输入"+n+"个图书的信息:");
for(int i=1;i<=n;i++)
{
System.out.println("输入第"+i+"个图书名称:");
String bookname=sc.next();
System.out.println("输入第"+i+"个图书编码:");
String number=sc.next();
System.out.println("输入第"+i+"个图书作者:");
String author=sc.next();
System.out.println("输入第"+i+"个出版社:");
String press=sc.next();
System.out.println("输入第"+i+"个图书价格:");
String price=sc.next();
library.add(bookname,number,author,press,price);
}
SecondMenu();
case 2:
library.daoru();
SecondMenu();
case 3:
System.out.println("谢谢使用,再见!");
System.exit(0);
}
}
public void SecondMenu() throws Exception
{
Library li=new Library();
Scanner sc=new Scanner(System.in);
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("7、导入 ");
System.out.println("8、保存到文件");
System.out.println("9、退出" );
System.out.println("****************************" );
System.out.println("请输入你要操作的序号" );
int b=sc.nextInt();
switch(b)
{
case 1:
System.out.println("图书信息");
li.look();
break;
case 2:
System.out.println("输入要查看的图书编号:");
String number=sc.next();
li.seek(number);
break;
case 3:
System.out.println("请输入图书数量:");
int c=sc.nextInt();
System.out.println("请输入"+c+"个图书的信息:");
for(int i=1;i<=c;i++)
{
System.out.println("输入图书名称:");
String bookname=sc.next();
System.out.println("输入图书编码:");
number=sc.next();
System.out.println("输入图书作者:");
String author=sc.next();
System.out.println("输入出版社:");
String press=sc.next();
System.out.println("输入图书价格:");
String price=sc.next();
li.add(bookname,number,author,press,price);
}
break;
case 4:
System.out.println("输入要删除的图书名称");
String bookname=sc.next();
li.delete(bookname);
break;
case 5:
System.out.println("按图书出版社顺序排为:");
li.paixu();
li.look();
break;
case 6:
li.daochu();
break;
case 7:
li.daoru();
break;
case 8:
li.baocun();
break;
case 9:
System.exit(0);
}
}while(true);
}
}
class LibraryMenu implements Serializable
{
public static void main(String[] args) throws Exception
{
Menu me=new Menu();
me.FirstMenu();
}
}
黄小凡
慕粉2348509682
CAPRICE双子
相关分类