今日练习

55 阅读2分钟

[四、实训内容]

步骤任务:

1. 使用case class创建图书信息类Book:包含四个属性:ID,书名,作者,价格,数量。

2. 创建一个名为bookList的可变List,它只能用来保存Book的实例。

3. 初始化三本不同的书(注意id不同就是不同的书),加入到bookList中。

4. 添加一本已经存在的书。此时应该去修改bookList中对应书目的数量,而不是去添加一条新数据。

5. 根据图书名称查询是否在列表中(通过遍历列表对比名称)

6. 删除指定书名的书

7. 删除指定ID的书

8. 对于图书按价格从高到低排序。

9. 遍历图书列表,并打印每本书的详细信息

10. 计算全部总的金额

package asfasdf

import scala.collection.mutable.ListBuffer
case class Book(name: String, author: String, price: Double)

object caseclass03 {
  def main(args: Array[String]): Unit = {
    // 初始化可变List(ListBuffer)
    val bookList = ListBuffer[Book]()

    // 2. 创建3本图书并添加到尾部
    val book1 = Book("Scala编程", "Martin Odersky", 89.0)
    val book2 = Book("Java核心技术", "Cay S. Horstmann", 79.0)
    val book3 = Book("Python入门到实践", "Eric Matthes", 69.0)
    bookList.append(book1, book2, book3)

    // 3. 创建1本图书并添加到头部
    val book4 = Book("数据结构与算法", "Thomas H. Cormen", 99.0)
    bookList.prepend(book4)

    // 4. 创建1本图书并添加到第3个位置(索引从0开始,第3位对应索引2)
    val book5 = Book("设计模式", "Erich Gamma", 85.0)
    bookList.insert(2, book5)

    // 5. 按书名查询是否存在(遍历比对名称)
    val targetName = "Scala编程"
    val isExist = bookList.exists(_.name == targetName)
    println(s"图书《$targetName》是否存在:$isExist")

    // 6. 删除第4本书(索引从0开始,第4位对应索引3)
    if (bookList.size > 3) {
      bookList.remove(3)
      println("已删除第4本书")
    }

    // 7. 按价格从高到低排序(生成新的有序List)
    val sortedBooks = bookList.sortBy(-_.price)

    // 8. 遍历排序后的列表,打印每本书详情
    println("\n排序后的图书列表:")
    sortedBooks.foreach(book => println(s"书名:${book.name},作者:${book.author},价格:${book.price}元"))

    // 9. 计算并展示总金额
    val totalAmount = sortedBooks.map(_.price).sum
    println(s"\n图书总金额:$totalAmount 元")
  }
}

运行结果:

屏幕截图 2025-12-03 151431.png