题目
编写三个类,图书类、学生类和测试类,可以处理简单的书籍借阅情况,包括借书和还书等。图书类的数据成员包括书名、书号和借书学生等;方法包括借书、还书和显示书籍信息等。学生类的数据成员包括姓名、学号和所借书籍等;方法包括显示学生信息等。测试类是一个应用程序,在该程序中创建图书类和学生类对象,完成图书的借阅和归还。
图书类
package Homework002;
public class Books {
//数据成员
private String name;
private String number;
private String stuName;
private int borrowed;//是否被借出
//构造方法
public Books(String name,String number)
{
this.name=name;
this.number=number;
this.borrowed=0;
}
//一般方法
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public String getName() {
return name;
}
//借书
public void lend(String stuName)
{
this.stuName=stuName;
this.borrowed=1;
}
//还书
public void Return()
{
borrowed=0;
}
//显示书籍信息
public void display()
{
System.out.println("图书信息");
System.out.print("书名:"+name+"\n书号:"+number+"\n借阅情况:");
if(borrowed==0)
System.out.println("未借出");
else
System.out.println("已借出\n"+"借书学生:"+stuName);
}
}
学生类
package Homework002;
public class Student {
private String stuName;
private String stuNumber;
private String bookName[];
private int bNumber;//借阅书籍数目
public Student(String s,String n)
{
stuName=s;
stuNumber=n;
bNumber=0;
bookName=new String [10];
}
//借书
public void borrrow(String bookName)
{
this.bookName[bNumber]=bookName;
bNumber+=1;
}
//还书
public void Return(String b)
{
for(int i=0;i<bNumber;i++)
{
if(bookName[i]==b)
{
for(int j=i;j<bNumber;j++)
{
bookName[j]=bookName[j+1];
}
}
}
bNumber-=1;
}
//显示
public void display()
{
System.out.println("学生信息");
System.out.print("学生姓名:"+stuName+"\n学号:"+stuNumber+"\n");
if(bNumber!=0)
{
System.out.print("借阅书籍:");
for(int i=0;i<bNumber;i++)
System.out.print("《"+bookName[i]+"》");
System.out.print("\n");
}
}
}
测试类
package Homework002;
import javax.swing.JOptionPane;
public class Test {
public static void main(String[] args) {
//input
String stuName=JOptionPane.showInputDialog("Please input student name:");
String stuNo=JOptionPane.showInputDialog("Please input student number:");
Student s=new Student(stuName,stuNo);
Books[] b=new Books[3];
b[0]=new Books("Gone with the wind","001");
b[1]=new Books("The Mocking Bird","002");
b[2]=new Books("Harry Potter","003");
//借书
b[0].lend(stuName);
b[1].lend(stuName);
b[2].lend(stuName);
s.borrrow(b[0].getName());
s.borrrow(b[1].getName());
s.borrrow(b[2].getName());
//显示
s.display();
System.out.print("\n");
for(Books book:b)
{
book.display();
System.out.print("\n");
}
//还书
b[0].Return();
b[1].Return();
s.Return(b[0].getName());
s.Return(b[1].getName());
//显示
s.display();
System.out.print("\n");
for(Books book:b)
{
book.display();
System.out.print("\n");
}
}
}
P.s
若想把每次的图书借阅数据存在文件中,详见第二版【java文件处理】图书借阅(增加图书信息存储)