当前位置: 首页 > article >正文

Scala项目(一)

1,创建dao,models,service,ui等软件包

2,在各软件包下创建scala类

软件包dao里的代码

package org.app
package dao

import models.BookModel

import scala.collection.mutable.ListBuffer

//图书,数据操作
class BookDAO {
  //加载图书,从文件中读入
  def loadBooks(): ListBuffer[BookModel] = {
    val books = new ListBuffer[BookModel]()
    val source =scala.io.Source.fromFile("books.txt")
    for (line <- source.getLines()){
      val Array(id, name, author,available) = line.split(",")
      //
       books += BookModel(id.toInt, name, author, available.toBoolean)
    }
    //关闭连接
    source.close()
    books
  }
}

软件包models里的代码

package org.app
package models

//图书类
//id,书名,作者,available:是否外借
case class BookModel(id:Int,name:String,author:String,available:Boolean) {


}

软件包service代码

package org.app
package service

import org.app.dao.BookDAO
import org.app.models.BookModel

import scala.collection.mutable.ListBuffer



//图书业务逻辑层
class BookService {
    private val bookDAO = new BookDAO()
  //查询所有图书
//  def searchBooks(query: String): List[Book对象] = {
def searchBooks(query: String): ListBuffer[BookModel] = {
  //从文本文件中读取书本信息,并保存列表中,返回
    bookDAO.loadBooks()

}
}

ui软件包里的代码

package org.app
package UI

import org.app.service.BookService

import scala.io.StdIn

class Library {
  private val BookService = new BookService()


  def showMenu(): Unit = {
    showVisitorMenu()
  }

  def showVisitorMenu(): Unit = {
    var running = true
    while (running) {
      println("欢迎来到我的图书馆系统,请选择")
      println("1.查看所有图书")
      println("2.查询图书")
      println("3.登录")
      println("4.离开")

      //获取用户的操作
      val choice = StdIn.readLine().trim
      choice match {
        case "1" =>
          println("查看所有图书")
          //TODO 查看所有图书
         val results = BookService.searchBooks("")
          if (results.nonEmpty){
            results.foreach(println)
          }else{
            println("没有找到图书")
          }
        case "2" => println("查询图书")
        case "3" => println("登录")
        case "4" =>
          running = false
          println("感谢你的使用,下次再见")
        case _ => println("无效的选择")
      }
    }
  }
}

src目录下的代码

package org.app

import org.app.UI.Library

import scala.io.StdIn

object Main {
  def main(args: Array[String]): Unit = {
    val m = new Library()
    m.showMenu()


  }

}

在项目下新建文件books.txt复制一些书籍作者,书籍名称,是否外借。

最后在软件包ui里的scala中调用代码。


http://www.kler.cn/a/444472.html

相关文章:

  • gpu硬件架构
  • Fastdfs V6.12.1集群部署(arm/x86均可用)
  • 数智化转型是什么?
  • *【每日一题 基础题】 [蓝桥杯 2023 省 B] 飞机降落
  • docker简单命令
  • springboot453工资信息管理系统(论文+源码)_kaic
  • 3D和AR技术在电商行业的应用有哪些?
  • Flask框架入门与实战
  • meta-llama/Llama-3.2-1B 微调记录
  • 数据库设计范式:全面解析与实践指南
  • 【大模型】GraphRAG技术原理
  • Springboot 整合 Java DL4J 打造自然语言处理之智能写作助手
  • 防止私接小路由器
  • git remote -v(--verbose)显示你的 Git 仓库配置的远程仓库的详细信息
  • multiprocessing包详解【Python】
  • websocket服务端开发模式-应用开发-页面端修改
  • Google guava 最佳实践 学习指南之08 `BiMap`(双向映射)
  • CSS系列(23)-- 可访问性实践详解
  • Type-C厂家的环保测试:保障绿色科技的未来
  • LeetCode 1925 统计平方和三元组的数目
  • 启动springboot项目时报错Web server failed to start. Port 8080 was already in use.
  • Pytorch | 对比Pytorch中的十种优化器:基于CIFAR10上的ResNet分类器
  • 美创科技完成新一轮融资!
  • Linux-Profile工具
  • java全栈day19--Web后端实战(java操作数据库3)
  • mac uniapp 转为微信小程序开发