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()

}

}

大数据

相关推荐
nenchoumi31194 分钟前
Swift 6 学习笔记(二)The Basics
笔记·学习·swift
村头的猫2 小时前
建站SEO优化之站点地图sitemap
前端·经验分享·笔记
蜉蝣之翼❉2 小时前
games101 hw1
笔记·图形渲染
码小文4 小时前
MCU、MPU、GPU、Soc、DSP、FPGA、CPLD……它们到底是什么?
笔记·单片机·嵌入式硬件·学习·ic常识
摆烂z4 小时前
机器学习-黑马笔记
人工智能·笔记·机器学习
汇能感知4 小时前
光谱相机叶绿素荧光成像技术的原理
经验分享·笔记·科技
饭碗、碗碗香4 小时前
【开发常用命令】:docker常用命令
linux·运维·笔记·学习·docker·容器
万变不离其宗_87 小时前
echarts使用笔记
前端·笔记·echarts
蒙奇D索大8 小时前
【11408学习记录】考研数学核心突破:矩阵本质、系统信息与向量空间基
笔记·学习·线性代数·考研·矩阵·改行学it
wb1899 小时前
全局搜索正则表达式grep
运维·笔记·ubuntu·云计算