Scala | List 图书信息管理系统

61 阅读3分钟

实训内容

图书馆书籍信息管理系统

内容要求:

使用scala编程,完成如下功能。

1.创建图书信息类,包含三个属性:书名,作者,价格

2.创建3本图书对象并添加到可变 List的尾部

3.创建1本图书对象并添加到可变 List的头部

4.创建1本图书对象并添加到可变 List的第3个位置

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

6.从列表中删除第2本书

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

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

9.展示全部的总的金额

分解代码

import scala.collection.mutable.ListBuffer

1.创建图书信息类,包含三个属性:书名,作者,价格

class Book(var bookName:String, var author:String , val price:Double){}

2.创建3本图书对象并添加到可变 List的尾部

val bookList:ListBuffer[Book] = ListBuffer()

val book1 = new Book("西游记","吴承恩",50.2)
val book2 = new Book("三国演义","罗贯中",54.2)
val book3 = new Book("红楼梦","曹雪芹",48.8)

bookList += book1
bookList += book2
bookList += book3

3.创建1本图书对象并添加到可变 List的头部

val book4 = new Book("凡人修仙传","忘语",30)
bookList.prepend(book4)

4.创建1本图书对象并添加到可变 List的第3个位置

bookList.insert(2,new Book("平凡的世界","路遥",50))

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

val searchName = "西游记"
var isExist = false
for (book <- bookList) {
  if (book.bookName == searchName) {
    isExist = true
  }
}
println(s"图书《$searchName》是否存在:$isExist")

6.从列表中删除第2本书

if (bookList.size >= 2) {
  bookList.remove(1)
}

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

val newBookList = bookList.sortWith((a:Book,b:Book) => {
  a.price > b.price
})

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

newBookList.foreach(book => {
  println(s"书名:${book.bookName}, 作者: ${book.author},价格: ${book.price}")
})

9.展示全部的总的金额

val total = bookList.map(_.price).sum
println(s"所有图书总金额:${total}元")

完整代码

import scala.collection.mutable.ListBuffer
// 1.创建图书信息类,包含三个属性:书名,作者,价格
class Book(var bookName:String, var author:String , val price:Double){}

object test {
  def main(args: Array[String]): Unit = {
    
    // 2.创建3本图书对象并添加到可变 List的尾部
    val bookList:ListBuffer[Book] = ListBuffer()

    val book1 = new Book("西游记","吴承恩",50.2)
    val book2 = new Book("三国演义","罗贯中",54.2)
    val book3 = new Book("红楼梦","曹雪芹",48.8)

    bookList += book1
    bookList += book2
    bookList += book3


    // 3.创建1本图书对象并添加到可变 List的头部
    val book4 = new Book("凡人修仙传","忘语",30)
    bookList.prepend(book4)

    // 4.创建1本图书对象并添加到可变 List的第3个位置
    bookList.insert(2,new Book("平凡的世界","路遥",50))

    // 5.按名称查询图书是否存在
    val searchName = "西游记"
    var isExist = false
    for (book <- bookList) {
      if (book.bookName == searchName) {
        isExist = true
      }
    }
    println(s"图书《$searchName》是否存在:$isExist")

    // 6.删除第2本书(索引1)
    if (bookList.size >= 2) {
      bookList.remove(1)
    }

    // 7.对于图书按价格从高到低排序。
    val newBookList = bookList.sortWith((a:Book,b:Book) => {
      a.price > b.price
    })

    // 8.遍历图书列表,并打印每本书的详细信息
    newBookList.foreach(book => {
      println(s"书名:${book.bookName}, 作者: ${book.author},价格: ${book.price}")
    })

    // 9.计算并展示总金额
    val total = bookList.map(_.price).sum
    println(s"所有图书总金额:${total}元")
  }

}

运行结果:

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