Scala图书管理系统

news/2024/12/26 3:51:54/

项目创建并实现基础UI

package org.appimport scala.io.StdInobject Main {def main(args: Array[String]): Unit = {var running = truewhile (running) {println("欢迎来到我的图书管理系统,请选择")println("1.查看所有图书")println("2.查询图书")println("3.登录")println("4.离开")// 获取用户的操作val choice = StdIn.readLine().trimchoice match {case "1" => println("查看所有图书")//TODO 查看所有图书case "2" => println("查询图书")case "3" => println("登录")//TODO 登录之后,应该要展示不同的UIcase "4" =>running = falseprintln("感谢您的使用,下次再见")case _ => println("无效的选择")}}}
}

经典的三层结构

       

改造代码实现UI层
LibrarayPresentation

package org.app
package uiimport org.app.service.BookServiceimport scala.io.StdInclass LibrarayPresentation {//显示游客的菜单private val BookService=new BookService()def showVisitorMenu(): Unit = {var running = truewhile (running) {println("欢迎来到我的图书管理系统,请选择")println("1.查看所有图书")println("2.查询图书")println("3.登录")println("4.离开")// 获取用户的操作val choice = StdIn.readLine().trimchoice match {case "1" => println("查看所有图书")//TODO 查看所有图书//调用业务逻辑层的方法val results=BookService.searchBook("")if(results.nonEmpty) {results.foreach(println)}else{println("没有找到图书")}case "2" => println("查询图书")case "3" => println("登录")//TODO 登录之后,应该要展示不同的UIcase "4" =>running = falseprintln("感谢您的使用,下次再见")case _ => println("无效的选择")}}}//显示管理员的菜单//显示登录用户的菜单def showMenu(): Unit = {showVisitorMenu()}
}
BookService
package org.app
package serviceimport models.BookModelimport org.app.dao.BookDAO
import scala.collection.mutable.ListBuffer
class BookService {private val bookDAO = new BookDAO()//查询所有的图书
//  def searchBook(query:String):图书列表List=(book对象)def searchBook(query:String):ListBuffer[BookModel]={//从文本文件中读取基本信息,并保存在列表bookDAO.loadBooks()}}
BookDAO
package org.app
package daoimport 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()) {println(line)val Array(id, name, author, available) = line.split(",")books += BookModel(id.toInt, name, author, available.toBoolean)}//关闭连接source.close()books}
}
BookModel
package org.app
package models//图书类
// id 书名,作者,状态
case class BookModel (id: Int, name: String, author: String, available: Boolean) {}
Main 
package org.appimport org.app.ui.LibrarayPresentationimport scala.io.StdInobject Main {def main(args: Array[String]): Unit = {val m = new LibrarayPresentation()m.showMenu()}
}


http://www.ppmy.cn/news/1558162.html

相关文章

STM32在bootloader跳转到application时设置MSP

1. 简介 在做bootloader 跳转到application时&#xff0c;经常会看到设置MSP的操作__set_MSP(*(__IO uint32_t*) APPLICATION_ENTRY);。 1.1 MSP的作用 在STM32微控制器中&#xff0c;MSP&#xff08;Main Stack Pointer&#xff0c;主堆栈指针&#xff09;是一个非常重要的…

《第十二部分》1.STM32之RTC实时时钟介绍---BKP实验

本章将介绍一种计数计时的外设 RTC实时时钟-----Whappy STM32提供了4中时钟来源&#xff01; 函数名功能作用void BKP_DeInit(void);复位备份区域寄存器配置&#xff0c;将备份域的所有寄存器恢复到默认状态。void BKP_TamperPinLevelConfig(uint16_t BKP_TamperPinLevel);配置…

遥感影像目标检测:从CNN(Faster-RCNN)到Transformer(DETR

我国高分辨率对地观测系统重大专项已全面启动&#xff0c;高空间、高光谱、高时间分辨率和宽地面覆盖于一体的全球天空地一体化立体对地观测网逐步形成&#xff0c;将成为保障国家安全的基础性和战略性资源。未来10年全球每天获取的观测数据将超过10PB&#xff0c;遥感大数据时…

如何使用vscode解决git冲突

在使用VSCode时&#xff0c;遇到Git冲突是很常见的情况。Git冲突是指当多个人同时修改同一个文件的同一行或相邻行时&#xff0c;Git无法自动决定应该保留哪一个修改&#xff0c;需要手动解决这个冲突。 要解决Git冲突&#xff0c;可以按照以下步骤操作&#xff1a; 1. 打开V…

概率论 期末 笔记

第一章 随机事件及其概率 利用“四大公式”求事件概率 全概率公式与贝叶斯公式 伯努利概型求概率 习题 推导 一维随机变量及其分布 离散型随机变量&#xff08;R.V&#xff09;求分布律 利用常见离散型分布求概率 连续型R.V相关计算 利用常见连续型分布的计算 均匀分布 正态…

centos server系统新装后的网络配置

当前状态&#xff1a; ping www.baidu.com报错 1、检查IP ip addr show记录要编辑的网卡 link/ether 后的XX:XX:XX:XX:XX:XX号 2、以em1为例&#xff1a; vi /etc/sysconfig/network-scripts/ifcfg-em1&#xff0c;新增如下行&#xff1a; HWADDRXX:XX:XX:XX:XX:XX(具体值…

【kubernetes】资源管理方式

目录 1. 说明2. 命令式对象管理3. 命令式对象配置4. 声明式对象配置5. 三种方式的对比 1. 说明 1.在Kubernetes&#xff08;k8s&#xff09;中&#xff0c;资源管理是一个核心功能&#xff0c;它允许用户通过操作资源来管理Kubernetes集群。2.Kubernetes将所有的内容都抽象为资…

TipTap编辑器:现代化的富文本编辑解决方案

简介 TipTap是一个基于 ProseMirror 的现代化富文本编辑器框架。它具有模块化、可扩展和响应式的特点&#xff0c;特别适合用于Vue、React等现代前端框架中。 主要特点 1. 模块化设计 import { Editor } from tiptap/core import StarterKit from tiptap/starter-kitconst …