scala图书管理系统【ui】软件包

LibrarayPresentation

package org.apppackage ui

import org.app.modeis.{BookModel, UserModel}

import org.app.service.{BookService, UserService}

import scala.io.StdIn

import scala.io.StdIn.readLine

class LibrarayPresentation {

private val BookService = new BookService()

private val UserService = new UserService()

//辅助方法,输入图书信息,返回一个BookModel

private def inputBookInfo():BookModel={

println("请输入图书的名称:")

val name=readLine().trim

println("请输入图书的作者:")

val author=readLine().trim

println("请输入图书是否可以外接(true/false):")

val available=StdIn.readBoolean()

BookModel(0,name,author,available)

}

// 显示游客的菜单

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" =>

// 调用业务逻辑层的方法

val results = BookService.searchBooks("")

if(results.nonEmpty){

results.foreach(println)

} else {

println("没有找到图书")

}

case "2" =>

val query = readLine("请输入查询关键字(书名,作者):").trim

val results = BookService.searchBooks(query)

if(results.nonEmpty){

println("=======查询图书的结果:=======")

results.foreach(println)

} else {

println("没有找到图书")

}

case "3" =>

println("请输入用户名:")

val username = StdIn.readLine().trim

println("请输入密码:")

val password = StdIn.readLine().trim

// 调用Service的方法,进行登录

val userOpt = UserService.authenticateUser(username, password)

if(userOpt.isEmpty){

println("用户名或密码错误")

} else {

println("登录成功")

val user = userOpt.get

user.role match {

case "管理员" => showAdminMenu(user)

case "普通用户" => showUserMenu(user)

}

}

case "4" =>

running = false

println("感谢你的使用,下次再见")

case _ => println("无效的选择")

}

}

}

// 显示管理员的菜单

def showAdminMenu(user:UserModel): Unit = {

var running = true

while (running) {

println(s"欢迎管理员:${user.username},来到我的图书管理系统, 请选择")

println("1. 添加图书")

println("2. 查询图书")

println("3. 添加用户")

println("4. 退出")

// 获取用户的操作

val choice = StdIn.readLine().trim

choice match {

case "1" =>

val book=inputBookInfo()

BookService.addBook(book)

println(s"图书《${book.name}》添加成功")

case "2" => println("查询图书")

case "3" =>

val username=StdIn.readLine("请输入用户名:")

if (UserService.addUser(username)){

println("用户添加成功")

}else{

println("用户添加失败")

}

case "4" => running = false

case _ => println("无效的选择")

}

}

}

// 显示登录用户的菜单

def showUserMenu(user:UserModel): Unit = {

var running = true

while (running) {

println(s"欢迎用户:${user.username},来到我的图书管理系统, 请选择")

println("1. 借阅图书")

println("2. 查询借阅图书")

println("3. 还书")

println("4. 退出")

// 获取用户的操作

val choice = StdIn.readLine().trim

choice match {

case "1" =>

try {

val id = readLine("请输入图书的ID:").toInt

BookService.borrowBook(user.username, id)

} catch {

case e:Exception =>

println(e)

println("输入的图书ID无效")

}

case "2" => println("查询借阅图书")

//

val borrowRecords=BookService.queryBorrwRecords(user.username)

if(borrowRecords.isEmpty){

println("没有借阅记录")

}else{

println("查询结果,一共接了几本,换了?本,?本为归还")

for (record <- borrowRecords){

println(record)

val returnDate=record.returnDate.getOrElse("未归还")

println(s"借阅日期:{record.borrowDate}.归还日期:returnDate")

}

}

case "3"=>

try {

val id = readLine("请输入要归还的图书的ID:").toInt

if(BookService.returnBook(user.username, id)){

println("归还图书成功")

}else{

println("归还图书失败")

}

} catch {

case e: Exception =>

println(e)

println("输入的图书ID无效")

}

case "4" => running = false

case _ => println("无效的选择")

}

}

}

def showMenu(): Unit = {

showVisitorMenu()

}

}

大数据

相关推荐
暴躁小师兄数据学院几秒前
【WEB3.0零基础转行笔记】基础知识篇-第二讲:以太坊基础
笔记·web3·区块链
tq108610 分钟前
别为问题预设答案
笔记
半夏知半秋11 分钟前
lua5.5版本新特性学习
开发语言·笔记·学习
浅念-15 分钟前
C语言文件操作
c语言·c++·经验分享·笔记·学习
The森18 分钟前
万字长文外加示例:进入内核理解Linux 文件描述符(fd) 和 “一切皆文件” 理念
linux·经验分享·笔记
1104.北光c°19 分钟前
【黑马点评项目笔记 | 商户查询缓存篇】基于Redis解决缓存穿透、雪崩、击穿三剑客
java·开发语言·数据库·redis·笔记·spring·缓存
崎岖Qiu22 分钟前
【计算机网络 | 第一篇】计算机网络概述
笔记·学习·计算机网络
wdfk_prog22 分钟前
[Linux]学习笔记系列 --[drivers]mmc]mmc
linux·笔记·学习
xian_wwq29 分钟前
【学习笔记】一文读懂一次和二次调频
笔记·学习·储能·调频
三水不滴34 分钟前
23种设计模式
经验分享·笔记·设计模式