"重庆10086手机话费充值系统Scala实现"\n\n"需求分析"\n"\t重庆10086手机话费充值, 及业务描述, 充值时外地卡至少充值50元, 本地至少20元, 发送短信全国一角每条, 彩信本地5角, 外地一块每条, 如果不符合要求不能进行充值"\n\n"思路分析"\n"1、创建手机号类(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"技术要求:使用控制台输入内容:以下是使用Scala语言编写的满足需求的代码:"\n\nscala\nimport scala.io.StdIn\n\n// 手机号类\nclass Cq10086(val cellPhoneNumber: String, val cellPhoneNumberFriend: String)\n\n// 抽象类\nabstract class CqAbstract {\n def sendMessage(): Unit\n\n def recharge(): Unit\n\n def sendMultimediaMessage(): Unit\n}\n\n// 实现类\nclass CqImpl extends CqAbstract {\n override def sendMessage(): Unit = {\n println("发送短信")\n }\n\n override def recharge(): Unit = {\n println("话费充值")\n }\n\n override def sendMultimediaMessage(): Unit = {\n println("发送彩信")\n }\n}\n\n// 测试类\nobject CqTest {\n def main(args: Array[String]): Unit = {\n val phoneNumber = StdIn.readLine("请输入本人手机号:")\n val friendPhoneNumber = StdIn.readLine("请输入对方手机号:")\n val cq10086 = new Cq10086(phoneNumber, friendPhoneNumber)\n \n val cqAbstract: CqAbstract = new CqImpl()\n\n val choice = StdIn.readLine("请选择业务类型(0-话费充值,1-发送短信,2-发送彩信):").toInt\n choice match {\n case 0 => cqAbstract.recharge()\n case 1 => cqAbstract.sendMessage()\n case 2 => cqAbstract.sendMultimediaMessage()\n case _ => println("输入错误,请重新选择业务类型")\n }\n }\n}\n\n\n在控制台输入本人手机号、对方手机号以及业务类型,程序会根据输入的业务类型进行相应的操作。


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

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