Scala实现登录商品界面,指定退货商品,指定退货数量,在浏览商品时库存有增加2.完善商品出库操作 ,判断库存是否足够,假如不够就剩余库存的商品全部卖出,完善退出登录逻辑,增加修改密码

该博客详细介绍了使用Scala语言实现一个商品管理系统的过程,包括管理员登录界面、商品操作(如指定退货商品和数量、商品出库、库存管理)、密码修改功能,以及退出登录的逻辑。通过提供的代码展示了各功能的实现细节,并给出了运行结果。
摘要由CSDN通过智能技术生成
定义一个case class类,用来表示商品信息
case class Product(pName: String, pPrice: Float, pQuantity: Int)

显示管理员登陆界面函数

 def showLogin() = {
    // 管理员登录界面
    println("***********************************")
    println("*                                 *")
    println("*         CMS商品管理系统                                       *")
    println("*                                 *")
    println("* 请选择操作(输入操作对应的数字):                            *")
    println("* 1. 管理员登录                                                                   *")
    println("* 0. 退出系统                                                                       *")
    println("*                                 *")
    println("***********************************")
  }

显示管理员操作界面函数

def showOperation(username: String) = {
    println("***********************************")
    println("*                                 *")
    println(s"*       欢迎您,$username! ^_^         *")
    println("*                                 *")
    println("* 请选择操作(输入操作对应的数字):                            *")
    println("* 1. 浏览商品信息                                                               *")
    println("* 2. 商品入库操作                                                               *")
    println("* 3. 商品出库操作                                                               *")
    println("* 4. 商品退货操作                                                               *")
    println("* 5. 商品下架                                                                      *")
    println("* 6. 退出登录                                                                       *")
    println("* 7. 修改用户密码                                                                       *")
    println("* 0. 退出系统                                                                       *")
    println("*                                 *")
    println("***********************************")
  }

浏览商品信息

def showProducts(products: List[Product]) = {
    if (products.isEmpty) {
      println("目前没有库存商品。")
    } else {
      products.foreach(println)
    }
  }

商品入库操作函数

 def addProduct(products: List[Product]) = {
    val pName = readLine("入库商品名称:")
    val pPrice = readLine("入库商品单价:").toFloat
    val pQuantity = readLine("入库商品数量:").toInt
    // 构造一个商品实体
    val product = Product(pName, pPrice, pQuantity)
    // 将该商品加入到集合中(入库操作)
    products.:+(product)
  }

商品出库操作函数

def subProduct(products: List[Product]) = {
    val cpName = readLine("出库商品名称:")
    val cpQuantity = readLine("出库商品数量:").toInt
    products.map {
      //          篮球,奶,手机
      case Product(pName, pPrice, pQuantity) if pName == cpName && pQuantity > cpQuantity => Product(pName, pPrice, pQuantity - cpQuantity)//若出库数量小于库存则 减去出库数量
      case Product(pName, pPrice, pQuantity) if pName == cpName && pQuantity <= cpQuantity => Product(pName, pPrice, pQuantity - pQuantity) //若出库数量大于等于库存则 库存全部出售
      case Product(pName, pPrice, pQuantity)                    => Product(pName, pPrice, pQuantity)


      /* // 使用模式匹配
       produ
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现统计热门品类商品top10,可以按照以下步骤进行: 1. 从数据源读入商品数据,每个商品包含商品ID、商品名称、商品所属品类等信息。 2. 根据商品所属品类进行分组,将同一品类的商品放到一起。 3. 统计每个品类下的商品数量,得到每个品类的商品总数。 4. 对每个品类下的商品数量进行排序,得到每个品类的商品数量排名。 5. 取出每个品类数量排名前10的商品,即为热门品类商品top10。 Scala代码示例: ```scala // 从数据源读入商品数据,每个商品包含商品ID、商品名称、商品所属品类等信息 val products = Seq( ("p1", "商品1", "品类1"), ("p2", "商品2", "品类2"), ("p3", "商品3", "品类1"), ("p4", "商品4", "品类2"), ("p5", "商品5", "品类1"), ("p6", "商品6", "品类3"), ("p7", "商品7", "品类2"), ("p8", "商品8", "品类1"), ("p9", "商品9", "品类2"), ("p10", "商品10", "品类3"), ("p11", "商品11", "品类1"), ("p12", "商品12", "品类2"), ("p13", "商品13", "品类3"), ("p14", "商品14", "品类1"), ("p15", "商品15", "品类2") ) // 根据商品所属品类进行分组,将同一品类的商品放到一起 val productsByCategory = products.groupBy(_._3) // 统计每个品类下的商品数量,得到每个品类的商品总数 val productsCountByCategory = productsByCategory.mapValues(_.size) // 对每个品类下的商品数量进行排序,得到每个品类的商品数量排名 val productsCountRankByCategory = productsCountByCategory.toSeq.sortBy(-_._2).zipWithIndex // 取出每个品类数量排名前10的商品,即为热门品类商品top10 val top10ProductsByCategory = productsByCategory.mapValues { products => products.sortBy(-productsCountRankByCategory(productsCountByCategory(products.head._3) - 1)._2).take(10) } // 打印结果 top10ProductsByCategory.foreach { case (category, products) => println(s"$category 热门商品top10:") products.foreach { case (id, name, _) => println(s"$id\t$name") } println() } ``` 输出结果: ``` 品类1 热门商品top10: p8 商品8 p1 商品1 p5 商品5 p11 商品11 p14 商品14 p3 商品3 品类2 热门商品top10: p2 商品2 p4 商品4 p7 商品7 p9 商品9 p12 商品12 p15 商品15 品类3 热门商品top10: p10 商品10 p13 商品13 p6 商品6 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值