Scala 实现重庆 10086 手机话费充值业务
// 创建手机号类 class Cq10086(val cellPhoneNumber: String, val cellPhoneNumberFriend: String)
// 创建抽象类 abstract class CqAbsert { // 发送短信费用 def messageMoney(): Double
// 发送彩信费用 def multimediaMessageMoney(): Double
// 话费充值 def supplementMoney(): Unit }
// 创建抽象类的实现类并继承抽象类 class CqImpl extends CqAbsert { override def messageMoney(): Double = { 0.1 // 全国发送短信费用为一角 }
override def multimediaMessageMoney(): Double = { 0.5 // 本地发送彩信费用为五角 }
override def supplementMoney(): Unit = { // 判断归属地 // 假设本地归属地为重庆(判断前七位) val localPrefix = "023"
// 获取用户输入的金额
println("请输入充值金额:")
val input = scala.io.StdIn.readLine().toDouble
// 判断充值金额是否符合要求
if (input < 50 && !cellPhoneNumber.startsWith(localPrefix)) {
println("外地卡至少充值50元")
} else if (input < 20 && cellPhoneNumber.startsWith(localPrefix)) {
println("本地卡至少充值20元")
} else {
println("充值成功")
}
} }
// 创建一个测试类 object Cq10086Test { def main(args: Array[String]): Unit = { // 用户选择业务类型:0-充值,1-发送短信,2-发送彩信 println("请选择业务类型:0-充值,1-发送短信,2-发送彩信") val serviceType = scala.io.StdIn.readInt()
// 创建实现类对象
val cqImpl = new CqImpl()
// 根据业务类型进行相应操作
serviceType match {
case 0 => cqImpl.supplementMoney()
case 1 => cqImpl.messageMoney()
case 2 => cqImpl.multimediaMessageMoney()
case _ => println("无效的业务类型")
}
} }
原文地址: https://www.cveoy.top/t/topic/pyOT 著作权归作者所有。请勿转载和采集!