重庆10086手机话费充值、短信和彩信服务:详细功能介绍和代码实现
{"title":"需求分析\n\t重庆10086手机话费充值,及业务描述,充值时外地卡至少充值50元,本地至少20元,发送短信全国一角每条,彩信本地5角,外地一块每条,如果不符合要求不能进行充值\n思路分析\n1、创建手机号类(Cq10086)分析实体类中需要哪些属性,如:(本人手机号(cell_phone_number),对方手机号(cell_phone_number_friend分别实现get,set方法)\n2、有哪几种业务(如:发送短信,发送彩信,话费充值),这三种业务中短信费用是固定不变的,而充值与彩信发送根据不同的地区收费的标准,与冲值的金额不同,所以我们可以使用抽象类(CqAbsert)完成(如:我们须要建立两个未实现方法分别为(发送彩信(multimedia_message_money)话费充(supplement_money),一个实现方法(发送短信message_money())\n3、创建抽象类的实现类并继承抽象类(CqAbsert),分别实现相应的方法;\n4、创建一个测试类,在测试类中传入一个构造属性让用户选择业务类型,然后在构造方法中可以使用Switch语句进行判断,如当为0时冲值,1时发送短信,2时发送彩信。业务分别有如下几种\n1、如果进行充值,判断手机号归属地,外地至少冲值50元,本地至少充值20元。\n2、如果发送彩信,判断手机号归属地,外地扣除彩信费1元,本地扣除彩信费5角。\n3、如果发送短信,可以直接调用实现类中发送短信的方法即可,也可做相应判断。\n注:\n1、为了让我们写的程序封装性更好,在测试类中采用抽象类指向实现类,不要直接得到实现类的对象.\n2、要做好相应判断,如外地冲值话费时至少50元,如果用户输入的金额小于50元,冲值失败。电话号码11位,只能输入数字\n技术要求:使用控制台输入。\n使用scala语言写一个代码内容:scala\nimport scala.io.StdIn\n\n// 手机号类\nclass Cq10086(val cellPhoneNumber: String, val cellPhoneNumberFriend: String) {\n // 验证手机号是否合法\n def isValidPhoneNumber(phoneNumber: String): Boolean = {\n phoneNumber.matches("\\d{11}")\n }\n\n // 充值业务\n def recharge(): Unit = {\n // 判断手机号归属地\n val isLocal = cellPhoneNumber.take(3) == "023"\n val rechargeAmount = if (isLocal) 20 else 50\n\n // 输入充值金额\n print("请输入充值金额:")\n val amount = StdIn.readInt()\n\n if (amount >= rechargeAmount) {\n println("充值成功")\n } else {\n println("充值失败")\n }\n }\n\n // 发送彩信业务\n def sendMultimediaMessage(): Unit = {\n // 判断手机号归属地\n val isLocal = cellPhoneNumber.take(3) == "023"\n val multimediaMessageFee = if (isLocal) 0.5 else 1.0\n\n // 扣除彩信费用\n println(s"扣除彩信费用:${multimediaMessageFee}元")\n }\n\n // 发送短信业务\n def sendMessage(): Unit = {\n // 调用实现类中发送短信的方法\n val sender = new CqAbsertImpl()\n sender.sendMessage()\n }\n}\n\n// 抽象类\nabstract class CqAbsert {\n // 发送彩信\n def sendMultimediaMessage(): Unit\n\n // 充值话费\n def recharge(): Unit\n\n // 发送短信\n def sendMessage(): Unit = {\n println("发送短信成功")\n }\n}\n\n// 抽象类的实现类\nclass CqAbsertImpl extends CqAbsert {\n override def sendMultimediaMessage(): Unit = {\n println("发送彩信成功")\n }\n\n override def recharge(): Unit = {\n println("充值成功")\n }\n}\n\n// 测试类\nobject Main {\n def main(args: Array[String]): Unit = {\n // 输入手机号和对方手机号\n print("请输入手机号:")\n val phoneNumber = StdIn.readLine()\n print("请输入对方手机号:")\n val friendPhoneNumber = StdIn.readLine()\n\n // 创建手机号对象\n val cq10086 = new Cq10086(phoneNumber, friendPhoneNumber)\n\n // 输入业务类型\n print("请选择业务类型(0-充值,1-发送短信,2-发送彩信):")\n val businessType = StdIn.readInt()\n\n businessType match {\n case 0 => cq10086.recharge()\n case 1 => cq10086.sendMessage()\n case 2 => cq10086.sendMultimediaMessage()\n case _ => println("无效的业务类型")\n }\n }\n}\n
原文地址: https://www.cveoy.top/t/topic/pwIW 著作权归作者所有。请勿转载和采集!