import scala.io.StdIn // 手机号类 class Cq10086(private var cellPhoneNumber: String, private var cellPhoneNumberFriend: String) { def getLocalAreaCode(): String = cellPhoneNumber.substring(0, 3) }

// 抽象类 abstract class CqAbstractBase { def multimediaMessageMoney(cq: Cq10086): Unit def supplementMoney(cq: Cq10086): Unit def messageMoney(): Unit }

// 实现类 class CqImpl extends CqAbstractBase { override def multimediaMessageMoney(cq: Cq10086): Unit = { val localAreaCode = cq.getLocalAreaCode() if (localAreaCode == "023") { println("发送本地彩信,费用为0.5元") } else { println("发送外地彩信,费用为1元") } }

override def supplementMoney(cq: Cq10086): Unit = { val localAreaCode = cq.getLocalAreaCode() println("请输入充值金额:") val amount = StdIn.readDouble() if (localAreaCode == "023" && amount >= 20) { println("本地话费充值成功") } else if (localAreaCode != "023" && amount >= 50) { println("外地话费充值成功") } else { println("充值失败,金额不足") } }

override def messageMoney(): Unit = { println("发送短信,每条0.1元") } }

// 测试类 object CqMain { def main(args: Array[String]): Unit = { println("请输入您的手机号码:") var phoneNumber = "" do { phoneNumber = StdIn.readLine() if (!validPhoneNumber(phoneNumber)) { println("手机号码格式不正确,请重新输入:") } } while (!validPhoneNumber(phoneNumber))

println("请输入朋友的手机号码:")
var friendPhoneNumber = ""
do {
  friendPhoneNumber = StdIn.readLine()
  if (!validPhoneNumber(friendPhoneNumber)) {
    println("手机号码格式不正确,请重新输入:")
  }
} while (!validPhoneNumber(friendPhoneNumber))

val cq = new Cq10086(phoneNumber, friendPhoneNumber)
val cqImpl = new CqImpl()

println("请选择业务类型:")
println("1. 话费充值")
println("2. 发送短信")
println("3. 发送彩信")

val choice = StdIn.readInt()

choice match {
  case 1 => cqImpl.supplementMoney(cq)
  case 2 => cqImpl.messageMoney()
  case 3 => cqImpl.multimediaMessageMoney(cq)
  case _ => println("输入有误")
}

}

def validPhoneNumber(phoneNumber: String): Boolean = { val pattern = "^1[0-9]{10}$".r pattern.matches(phoneNumber) }

import scalaioStdIn 手机号类class Cq10086private var cellPhoneNumber String private var cellPhoneNumberFriend String def getLocalAreaCode String = cellPhoneNumbersubstring0 3 抽象类abstract class CqAbstrac

原文地址: https://www.cveoy.top/t/topic/hOBt 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录