【java类与对象】图书借阅

题目

编写三个类,图书类、学生类和测试类,可以处理简单的书籍借阅情况,包括借书和还书等。图书类的数据成员包括书名、书号和借书学生等;方法包括借书、还书和显示书籍信息等。学生类的数据成员包括姓名、学号和所借书籍等;方法包括显示学生信息等。测试类是一个应用程序,在该程序中创建图书类和学生类对象,完成图书的借阅和归还。
 

图书类

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文件处理】图书借阅(增加图书信息存储)

  • 6
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值