定义图书类Book,具有属性账号id,铭name.作者author和价格price,在创建图书对象时要求通过构造器进行创建,- -次性将四个属性全部赋值

1)要求账户属性是int型,名称是String型,作者是String型,价格是double,
请合理进行封装。
2)在Book类,添加toString方法,要求返回图书信息字符串,使用\t隔开各信息
3)要求定义一个图书馆Library 类,在图书馆类中添加一个集合用于保存多本图书
4)在图书馆类中要求能够新增图书
5)在图书馆类中要求可以查看所有添加过的图书

先定义Book类

public class Book {
    private int id;
    private String name;
    private String author;
    private int price;



    Book(int id, String name, String author, int price) {
        this.id = id;
        this.name = name;
        this.author = author;
        this.price = price;

    }
    public String toString() {
        return id+"\t"+name+"\t"+author+"\t"+price;
    }
/*
    public boolean equals(Object obj) {
        Book bk=(Book) obj;
        boolean b=this.id==(bk.id)&&this.name.equals(bk.author);
        System.out.println(b);
        return b;


    }
*/

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public int getPrice() {
        return price;
    }

    public void setPrice(int price) {
        this.price = price;
    }

在定义Library类

public class Library {
    public static void main(String[] args) {
        ArrayList list=new ArrayList();
        Scanner sc=new Scanner(System.in);
        //String ps="是";

        System.out.println("请选择是否输入你想添加的图书馆信息");

        boolean p;
        while ( p=sc.next().equals("是")) {
            System.out.println("请先输入账号id");
            int id = sc.nextInt();
            System.out.println("请先输入借书人姓名");
            String name = sc.next();
            System.out.println("请先输入书的作者");
            String author = sc.next();
            System.out.println("请先输入图书价格");
            int price = sc.nextInt();
            System.out.println("图书添加成功");
            System.out.println("请您决定是否继续添加");
            Book bk=new Book(id,name,author,price);
            list.add(bk);


        }

        System.out.println();
        System.out.println("查看图书信息");
        for (int i = 0; i < list.size(); i++) {
         
            System.out.println(list.get(i));
        }



    }

  • 1
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你编写这个程序。以下是代码实现: ```python class Book: def __init__(self, name, author): self.__name = name self.__author = author def __str__(self): return self.__name + " - " + self.__author def getName(self): return self.__name class Library: def __init__(self): self.__totalAmount = 0 self.__books = {} def getTotalAmount(self): return self.__totalAmount def getAvailable(self): return [book for book in self.__books if self.__books[book] > 0] def add(self, *books): for book in books: if book.getName() in self.__books: self.__books[book.getName()] += 1 else: self.__books[book.getName()] = 1 self.__totalAmount += 1 def lendBook(self, student, bookname): if bookname not in self.__books: return False if self.__books[bookname] > 0: self.__books[bookname] -= 1 return True else: return False def returnBook(self, bookname): if bookname not in self.__books: return False self.__books[bookname] += 1 return True class Student: def __init__(self, id, name): self.__id = id self.__name = name ``` 在这个程序中,我们定义了三个:`Book`、`Library` 和 `Student`。其中,`Book` 表示图书,`Library` 表示图书馆,`Student` 表示学生。 在 `Book` 中,我们定义了私有属性 `__name` 和 `__author`,并提供了初始化方法 `__init__`、文本化方法 `__str__` 和获取图书名称的方法 `getName`。 在 `Library` 中,我们定义了私有属性 `__totalAmount` 和 `__books`,分别表示图书总量和馆藏图书。我们提供了初始化方法 `__init__`、获取图书总量的方法 `getTotalAmount`、获取可借图书列表的方法 `getAvailable`、添加图书方法 `add`、借阅图书方法 `lendBook` 和归还图书方法 `returnBook`。 在 `Student` 中,我们定义了私有属性 `__id` 和 `__name`,分别表示学生的学号和姓名,并提供了初始化方法 `__init__`。 希望这个程序可以帮助你完成你的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值