软件测试--详细判断电话号码

在这里插入图片描述


软件测试作业--电话号码

本文章全手工,业务自我感觉还行,还缺少许多我不知道的业务,但大体的手机号码和座机的大致路线都有,到手机地点的有一个例子,百度了许多文章才总结出来的。代码没用什么高级知识,勿喷,就是用了4个多小时完成的,从找资料到编写基础java代码,然后一一进行测试,分享出来,希望对大家有用。

一、作业要求

  1. 首先输入1-15位。
  2. 要求判断出电话号码的类型。
  3. 对于座机,要求输出座机号码地点。
  4. 对于手机,要求输出手机号码的种类。
  5. 输出增加手机的地点。(加分)
  6. 判断国外的电话号码。(加分)

二、需求分析

根据作业的要求,可以大致解析出下面5点需求,先去网上找资料,将需求逐一完善,对于软件测试就是需要考虑尽肯能多的测试用例。

1、电话号码类型

电话号码可分为手机号码和座机号码。

  • 对国内的座机分析,暂时以0或8开头的号码为座机号码,假定除去座机号码,其它皆为手机号码,在从手机号中细分即可。

  • 这里分析不是很全面,展开来分析,是一个很大很大的工程量,这里根据作业需求推动来进行。

2、座机号码地点

座机格式:区号+电话号码

中国大陆国际区号是86;香港特别行政区区号852;澳门特别行政区区号853;台湾省区号886。

这里我以江西省为例,其它的可以参考下 中国城市电话区号对照表。
新余市 0790 南昌市 0791 九江市 0792 上饶市 0793 临川市 0794
宜春市 0795 吉安市 0796 赣州市 0797 景德镇 0798 萍乡市 0799
鹰潭市 0701

->中国城市电话区号对照表

中国城市电话区号对照表 (buyiju.com)

<-

3、手机号码的种类

常用运营商

**中国移动号段:**134(0-8)、135、136、137、138、139、147、150、151、152、157、158、159、172、178、182、183、184、187、188、195、197、198

**中国联通号段:**130、131、132、145、155、156、166、175、176、185、186、196

**中国电信号段:**133、149、153 、180 、181 、189、173、177、190、191、193、199

**中国广电号段:**192

虚拟运营商号段

**联通:**167、170(4,7,8,9)、171

**电信:**162、170(0,1,2)

**移动:**165、170(3,5,6)

物联网号段

**联通:**1400、146

**电信:**1410

**移动:**1440、148

卫星电话号段

**电信:**1349、174(00-05)

**工信部应急通信:**174(06-12)

**海事卫星通信:**1749

其它号段

**电信服务服务号码:**10

**国际对方付费电话:**108

**电信服务中心:**10000

**联通服务中心:**100001

**特种开头:**11(如:110-报警、114-查号、119-火警)

**民用特殊号码:**12(如:120-急救电话、121-天气预报、122-交通事故告警)

4、手机地点

由于每一个地区都有自己的运营商,运营商下有独特号段,举一个地区都是很大的工程量。

这里以江西省宜春市的中国移动182号段的一部分为例,其它的可以参考下 方的手机号段网。
1829640 1829641 1829650 1829651 1829652 1829653 1829654 1829655 1829656 1829657 1829658 1829659 1829694 1829695

->江西宜春手机号段

江西宜春手机号段大全 - 手机号段网 (uutool.cn)

<-

5、国外号码

中国常用号码 —> 11位

美国、德国印度、瑞士、荷兰、比利时、法国、澳大利亚等 —> 10位

新西兰、泰国等 —> 9位

新加坡 —> 8位

加拿大 —> 7位

6、测试用例

  1. 对格式验证,输入的是数字。
  2. 对号码字数验证,输入的是1-15位。
  3. 对其它各种位数的号码一一测试。
  4. 对正确的号码验证,临界值等。

三、代码编写

将上述需求依次用java代码在主类进行编写,测试,因为只是作业,不是业务,就有点对用户不友好性,没输到对应的格式就只好重新运行了,大体的手机号码和座机的大致路线都有,百度了许多文章才总结出来的。

package softwaretest;

import java.util.ArrayList;
import java.util.Scanner;
import java.util.regex.Pattern;

public class phoneTest {
    public static void main(String[] args) {
        /*
        * 1. 首先输入1-15位
        * */
        Scanner sc =  new Scanner(System.in);
        System.out.println("          判断电话号码            ");
        System.out.print("请重新输入"+"1-15"+"位电话号码:");
        String str = sc.nextLine();
        for (int i = 0; i < str.length(); i++) {
            if(str.charAt(i) < '0' || str.charAt(i) > '9'){
                System.out.print("格式错误,输入的不是数字");
                return;
            }else {
                continue;
            }
        }
        while (true){
            if(str.length() <= 1 || str.length() >= 15){//暗含判断是否为空
                System.out.print("输入的位数不符合,请重新输入"+"1-15"+"位电话号码:");
                str = sc.nextLine();
            } else {
                break;
            }
        }
        /*
        * 2.要求判断出电话号码的类型。
        * 电话号码可分为手机号码和座机号码
        * */
        //座机号码--以0或8开头--仅仅分析国内
        if(str.charAt(0) == '0'){ // 0开头是国内省份
            String s = str.substring(0,4);
            /*
            * 3.对于座机,要求输出座机号码地点。
            * */
                switch (s){
                    case "0790":
                        System.out.println("江西省新余市");
                        return;
                    case "0791":
                        System.out.println("江西省南昌市 ");
                        return;
                    case "0792":
                        System.out.println("江西省九江市 ");
                        return;
                    case "0793":
                        System.out.println("江西省上饶市 ");
                        return;
                    case "0794":
                        System.out.println("江西省临川市 ");
                        return;
                    case "0795":
                        System.out.println("江西省宜春市");
                        return;
                    case "0796":
                        System.out.println("江西省吉安市");
                        return;
                    case "0797":
                        System.out.println("江西省赣州市");
                        return;
                    case "0798":
                        System.out.println("江西省景德镇");
                        return;
                    case "0799":
                        System.out.println("江西省萍乡市 ");
                        return;
                    case "0701":
                        System.out.println("江西省鹰潭市");
                        return;
                    default:
                        System.out.println("其它省份还在开发中……");
                        return;
            }
        } else if (str.charAt(0) == '8') { // 8开头的是国际区号或行政区或台湾省
            if (str.charAt(1)  == '6') {
                System.out.println("中国国际区号");
                return;
            }
            String s = str.substring(0, 3);
            switch (s) {
                case "852":
                    System.out.println("香港特别行政区");
                    return;
                case "853":
                    System.out.println("澳门特别行政区");
                    return;
                case "886":
                    System.out.println("台湾省");
                    return;
                default:
                    System.out.println("没有该省份的号码");
                    return;
            }
        }

        /*
        * 4. 对于手机,要求输出手机号码的种类。
        *    标准的手机号
        * */
        if(str.length() == 11) {
            //手机号码--以1开头
            if (str.charAt(0) == '1') {
                String s = str.substring(0, 3);
//                中国移动特殊第4位数
                if ("134".equals(s)) {
                    for (int i = 0; i < 9; i++) {
                        if (str.charAt(3) == i + '0') {
                            System.out.println("中国移动");
                            return;
                        }
                    }
                }
//           移动运营商
                String a[] = {"135", "136", "137", "138", "139", "147", "150", "151", "152", "157", "158", "159", "172", "178", "182", "183", "184", "187", "188", "195", "197", "198"};
//           江西省宜春市的中国移动182号段
                String b[] = {"9640", "9641", "9650", "9651", "9652", "9653", "9654", "9655", "9656", "9657", "9658", "9659", "9694", "9695"};
                String s1 = str.substring(3, 7);
                for (int i = 0; i < a.length; i++) {
                    if (a[i].equals(s)) {
                        if (s.equals("182")) {
                            /*
                            * 5.手机地点仅仅以江西省宜春市的中国移动182号段为例
                            * */
                            for (int j = 0; j < b.length; j++) {
                                if (b[j].equals(s1)) {
                                    System.out.println("中国移动 江西省宜春市");
                                    return;
                                }
                                if(j == b.length - 1){
                                    System.out.println("中国移动");
                                    return;
                                }
                            }
                        } else {
                            System.out.println("中国移动");
                            return;
                        }
                    }
                }
//                中国联通
                String c[] = {"130", "131", "132", "145", "155", "156", "166", "175", "176", "185", "186", "196"};
                for (int i = 0; i < c.length; i++) {
                    if(c[i].equals(s)){
                        System.out.println("中国联通");
                        return;
                    }
                }

//                中国电信
                String d[] = {"133","149","153 ","180 ","181 ","189","173","177","190","191","193","199"};
                for (int i = 0; i < d.length; i++) {
                    if(d[i].equals(s)){
                        System.out.println("中国电信");
                        return;
                    }
                }

                String s2 = str.substring(0, 4);

//                虚拟运营商
//                中国联通虚拟运营商
                if(s.equals("167") || s.equals("171") || s2.equals("1704") || s2.equals("1707") || s2.equals("1708") || s2.equals("1709")){
                    System.out.println("中国联通虚拟运营商");
                    return;
                }
//                中国电信虚拟运营商
                if(s.equals("162") || s2.equals("1700") || s2.equals("1701") || s2.equals("1702")){
                    System.out.println("中国电信虚拟运营商");
                    return;
                }
//                中国移动虚拟运营商
                if(s.equals("165") || s2.equals("1703") || s2.equals("1705") || s2.equals("1706")){
                    System.out.println("中国移动虚拟运营商");
                    return;
                }

//                物联网号段
//                中国联通虚拟运营商
                if(s.equals("146") || s2.equals("1400")){
                    System.out.println("中国联通虚拟运营商");
                    return;
                }
//                中国移动虚拟运营商
                if(s.equals("148") || s2.equals("1440")){
                    System.out.println("中国移动虚拟运营商");
                    return;
                }
//                中国电信虚拟运营商
                if(s2.equals("1410")){
                    System.out.println("中国电信虚拟运营商");
                    return;
                }

                String s3 = str.substring(0,5);

//                电信卫星电话
                if(s3.equals("17400") || s3.equals("17401") || s3.equals("17402") || s3.equals("17403") || s3.equals("17404") || s3.equals("17405") || s2.equals("1349")){
                    System.out.println("电信卫星电话");
                    return;
                }

//                工信部应急卫星通信电话
                if(s3.equals("17406") || s3.equals("17407") || s3.equals("17408") || s3.equals("17409") || s3.equals("17410") || s3.equals("17411") || s3.equals("17412")){
                    System.out.println("工信部应急卫星通信电话");
                    return;
                }

//                海事卫星通信电话
                if(s2.equals("1749")){
                    System.out.println("海事卫星通信电话");
                    return;
                }

                System.out.println("其它手机号有待完善...");
                return;
            }else {
                System.out.print("根据您输入的,可以判断是判断手机号,但格式输入错误");
                return;
            }
        }

        /*
        * 6.判断国外的电话号码
        * */
        /*
         * 电话号码位数为10
         * */
        if(str.length() == 10){
            System.out.println("美国、德国印度、瑞士、荷兰、比利时、法国、澳大利亚等");
            return;
        }

        /*
         * 电话号码位数为9
         * */
        if(str.length() == 9){
            System.out.println("新西兰、泰国等 ");
            return;
        }

        /*
         * 电话号码位数为8
         * */
        if(str.length() == 8){
            System.out.println("新加坡");
            return;
        }
        if(str.length() == 8){
            System.out.println("加拿大");
            return;
        }

        /*
        * 电话号码位数为3
        * */
        if(str.length() == 3){
            String s = str.substring(0,3);
//                民用特殊号码
            if(s.equals("120")){
                System.out.println("急救电话");
                return;
            }
            if(s.equals("121")){
                System.out.println("天气预报");
                return;
            }
            if(s.equals("122")){
                System.out.println("交通事故告警");
                return;
            }

//        特种开头
            if(s.equals("110")){
                System.out.println("报警");
                return;
            }
            if(s.equals("114")){
                System.out.println("查号");
                return;
            }
            if(s.equals("119")){
                System.out.println("火警");
                return;
            }

//        国际对方付费电话
            if(s.equals("108")){
                System.out.println("国际对方付费电话");
                return;
            }
        }

        /*
         * 电话号码位数为2
         * */
        if(str.length() == 2){
            String s2 = str.substring(0,2);
//        电信服务服务号码
            if(s2.equals("10")){
                System.out.println("电信服务服务号码");
                return;
            }
        }

        /*
         * 电话号码位数为5
         * */
        if(str.length() == 5){
            String s3 = str.substring(0,5);
//        电信服务中心
            if(s3.equals("10000")){
                System.out.println("电信服务中心");
                return;
            }
        }

        /*
         * 电话号码位数为6
         * */
        if(str.length() == 6){
            String s4 = str.substring(0,6);
//        联通服务中心
            if(s4.equals("100001")){
                System.out.println("联通服务中心");
                return;
            }
        }

        System.out.println("其它号码还未完善...");
        return;
    }
}

记录每一个学习瞬间

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
全球RPA市场收入将继续以强劲的速度增长,根据KeyBanc Capital Markets的数据,全球RPA市场在10年内将出现高达千亿美元商机。在企业数字化转型的浪潮中,RPA以符合大势所趋的优势成为各个行业的首选技术。 那么,RPA究竟能在哪些行业发挥价值?我们翻译并整理了RPA的行业应用,一共61个,最全的RPA应用送给各位RPA爱好者。 总体来看可以归纳为五个方面: 1、常见业务流程与活动 2、商业职能活动(营业额、客户关系管理) 3、业务支持活动(技术支持、技术、财务、人力资源、运营、采购流程) 4、行业特定活动(银行业、保险、电信、零售) 5、供个人使用的RPA应用,例如数字助理 常见业务流程与活动 1-报价到收款 企业销售运营方面出问题会导致客户投诉或由于笔误而不得不降价销售。销售运营流程的全面自动化可以杜绝这些错误,并为客户提供高效服务。由于自动化处理销售的速度快于人工处理,因此客户能更早收到发票,从而提早回款,改善企业现金流。 2-采购到付款 采购到付款流程涉及从多个系统(例如企业资源计划(ERP)、客户关系管理(CRM)、银行、供应商、物流公司)提取发票和付款数据,由于并非所有系统都能提供简单的集成方法,因此通常涉及某些形式的人工劳动。RPA机器人可以弥补集成方面的空白。基于它们在前端工作的特性提供一种简便的方法自动实现集成。 借助全自动的采购付款程序,客户可以确保遵循采购最佳实践,并且确保所有交易都只有一个真实来源。 3-客户熟悉产品流程 大多数B2C业务都有客户熟悉产品流程,这对于减少客户流失并启用产品至关重要。使用OCR和认知自动化,即使在依赖旧系统的公司中,大多数客户熟悉产品的流程也可以立即完成,从而大大改善客户体验。 我们看到一家大型银行在客户熟悉产品流程中实现了直通式处理(STP),并将产品熟悉周期从20天缩短到5分钟。 众多业务职能中其它常见的活动 我们在上面列出了可以应用RPA的一些主要的端到端流程,但也有其他应用场景。RPA为团队提供了自动化的“瑞士军刀”,随着自动化机会的出现,有需求的团队将更多的借助自动化。 其他使用RPA的领域包括: 4-数据迁移和输入 传统系统仍在企业中发挥关键职能。例如,传统计费系统需要与其他系统对接,并且此类系统可能不具有从API中提取相关数据的能力。在这种情况下,员工可以使用CSV等格式手动迁移数据,RPA能代替这样的体力劳动和可能带来的文书错误。 另外,RPA可以帮助集成应用程序,并允许进行更全面的分析。 5-数据更新 包括人力资源,客户服务和市场营销在内的大多数部门通常都需要更新不断变化的客户/人员或者其他数据。设置自动化程序从表单或电子邮件中自动更新相关数据可以确保部门访问最新且正确的数据。 6-数据验证 大多数数据验证控件都可以嵌入到数据库中。但是,有一些数据验证任务更适合用RPA自动化,例如将数据与公共数据进行交叉比对。 7-从PDF,扫描的文档和其他格式中提取数据 屏幕抓取,OCR(光学字符识别)和基本的模式识别技术可从几乎任何格式提取数据,从而减少了录入数据的需求。 8-定期报告的编写和分发 企业需要用定期报告来告知管理人员并确保团队了解工作进度。虽然这类报告每周或者每月发送一次也不是很费力,但也会分散员工注意力。 RPA解决方案能轻松自动生成报告、分析其内容,然后根据这些内容以电子邮件的形式发送给相关人员。 9-生成大量电子邮件 人工很难生成那些来自多个系统数据的大量电子邮件。同时,如果企业又涉及很多这方面的邮件,那么就需要考虑自动化了。 商业职能活动 市场营销 10-销售线索培养 潜在客户通过各种渠道获得,比如来自LinkedIn,线索收集表和供应商。 销售 销售人员的精力应该主要用在销售业务本身以及与客户建立关系上,但是在大多数组织中,他们的大部分时间都花在了运营活动上。 对此,RPA提供了一种自动化这些活动的方法: 11-创建和交付发票 CRM和会计系统都需要同样的销售数据。机器人可以更新会计记录,从正确的电子邮件帐户准备和交付发票,不需要手动复制数据。 12-更新CRM 将互动信息更新到CRM是一项费时且无成效的工作,因为Salesforce的行为需要充当与客户互动的真实来源。有一类新兴的解决方案允许公司将电子邮件、电话和其他通信数据集成到CRM中。如果找不到适合您正在使用的CRM系统的解决方案,还可以编写一个简单的”机器人“软件来使用客户联系数据更新CRM记录。 13-更新计分卡 在HR和CRM系统之间缺乏集成的公司可以利用RP
系统名称:宜萱.net sql2005网络考试系统V1.0免费版 后台管理地址:http://网站名称/admin/login.aspx 用户名/密码:admin/admin 考生考试地址://网站名称/default.aspx 用户名/密码:0020/0020 使用说明:  1>.系统运行环境:IIS .net2.0框架 sql2005  2>.SQL2005版数据库备份在文件夹App_Data下,还原即可.  3>.根目录下找到Web.Config文件修改数据库用户名,密码.   4>.后台进入需要版本号请与官方联系!联系方式见下面.   5>.前台测试考试:一个号只允许考试一次,如要重考请进入后台删除考试成绩或将该考生设为重考. 系统简介:   一个基于BS结构的局域网式的网络化考试软件,没有客户端、不需要任何插件,只要有网络浏览器,就可通过网络登录考试系统,操作简单。  该软件运行稳定、操作简单、界面清晰、功能完备,具体特点如下: 1. 后台数据系统实现插、删、改等操作 1>.基本信息管理 主要包括考生信息管理(可以实现对参加考试的人员进行添加,修改,删除,等基本信息维护.) 考生工种的维护,可以实现对工种种类进行添加,修改,删除等操作; 考生单位信息的维护,同样后台管理员也可以对考生单位进行添加修改 删除等操作.即完善了考生的信息又便于根据工种,单位等条件查找考生的考试结果记录. 2>. 考题类型为判断题、单选题和多选题。题量大,包括范围广,适合不同的考生,考试期数管理可添加,修改,删除考试期数,每一期可以设置不同的题目种类,题目个数,三种考试类型(判断题,单选题,多选题)所占的比例, 题量;每小题分数,考试时间,及格分数. 2. 考试系统两个特有功能模块的实现,一是试题抽取,生成试卷;二是试卷批改,成绩统计。 1>. 为参加考试的学员提供在线答题,考试界面显示考生照片,可以方便监考老师核对考生是否存在作弊现象,保证考试严肃、公正的进行; 2>.考生登录考试系统,通过身份验证后,开始进行抽题。抽题时,根据考试系统预定义试卷模板规则(试卷模板规则主要包括——考试时间;卷面总分;试卷包含题型、题量;每小题分数等),随机抽取试题,使每位考生抽取的试卷都是随机的。 每个考生的考题不同,即使同一个考生在不同时间答同一专业的试卷,其考题内容也不相同。      系统设有考试倒计时器,限定答题时间,考生需在限定的时间内完成考试,超出限定时间系统将自动收卷,每个考生的答卷都将被详细记录。 2>试卷批改,成绩统计 考生在考试结束交卷时,考试系统自动为该考生批改试卷,并统计出卷面成绩。 ① 判断、单项选择、多项选择的批改 由于上述题型的答案具有唯一性,所以可根据试题编号(topicid)在题库表中检索出标准答案,并与考生答案相比较,如果完全吻合则正确,否则错误。 3. 为了尽可能地降低考生考试的操作难度,本系统基本达到了考生只需使用鼠标点击试题答案即可完成考试的目的。 管理员在考试期间能及时了解到哪些考生参加了考试,也可以在考试结束以后轻松浏览到各考生的考试情况。 考试成绩可以按用户名和成绩高低进行排名。 4. 打印功能: 1>.考试成绩的打印 考试完毕,监考人员即时打印成绩单。 2>.考生试卷的打印 考生考试结束后可以查看考生成绩,可以浏览考生试卷,查看考试试卷情况,需要的话可以打印试卷. 联系QQ:250815182 电话:13403400974
软件的核心功能:探测淘宝店铺宝贝是否被淘宝网隐形降权。         2011年在研究淘宝排名的时候,发现很多奇怪的现象,很多宝贝销量很好但是却始终没有好的排名,这些宝贝并不是被降权的宝贝,用淘宝官方的搜索诊断显示都是正常的,很多卖家朋友打电话给客服,客服只是一直说这个宝贝是正常的!但是它明明是不正常的,所以开发出这个探测宝贝权重的软件,提出了“隐形降权”,可以肯定的是“隐形降权”确实是存在的,但是淘宝官方也是确实否认的!        其实我认为“隐形降权”这个东西很好理解,淘宝的宝贝数量过于庞大和超载,淘宝搜索引擎要想做好用户体验性还有规范卖家公平性,必然首先要“去噪”,过滤那些淘宝认为虚假交易或者类目放错或者虚假宝贝等等的宝贝,这些宝贝直接不参与搜索收录,称之为“降权”!而同时淘宝对于那些不是很确定的刷交易宝贝和转化率很差等等的宝贝,这些宝贝虽然参与了搜索排名,但是淘宝在计算权重数据的时候,必然进行减权惩罚,所以很多卖家发现自己的宝贝严重排在了小交易量宝贝的后面,或者出现在非常靠后的页面,在这里我就把它称作“隐形降权“吧。         以下是我在2011年12月发布软件时候所带的隐形降权的解释:         注意以下几个问题:        1、对于宝贝很多差不多上千宝贝的店铺 “降权宝贝”这个数据会出现问题,不用理会,这是淘宝的问题,淘宝的数据干扰!        2、不管什么情况下 隐形降权宝贝的数据是绝对正确的!        3、“隐形降权”这块出现负值,证明这个宝贝权重被降低了!正值的宝贝权重都没有问题,或者权重有加分!        4、隐形降权的宝贝,也就是负值的宝贝目前宝贝排名肯定不在最前面!        被隐形降权的宝贝,不可能排到最前面,隐形降权这个问题是比较恶心的,可以通俗的这样说降权宝贝是指被直接枪毙的(但是可以去申诉,有机会成功),隐形降权宝贝是犯罪嫌疑人,处于观察阶段(无法申诉),从某种意义上讲,隐形降权比降权更难受!        隐形降权一般和以下因素有关:        1、刷销量:有黑号参与(被淘宝判断有刷销量嫌疑,但是不完全确定,就关小黑屋);        2、转化率低;        3、支付宝使用率。        简单的说,就是这个宝贝权重被扣了很多分,要么想办法解决上面的因素,要么就是想办法给这个宝贝加分,有些宝贝隐形降权恢复了,基本是有干净的正常的自然流量注入和自然的成交了一段时间然后恢复了,也就是说被淘宝释放了,所以怎么办?刷的要么你能保证刷号干干净净那么继续,要么就停止刷;转化率这块自己内功继续做足,有把握能用干干净将号刷的话,可以刷转化率出来;支付宝使用率这块很简单,不要经常改价和被退换货,这个自己把握。想给宝贝加分要么搞转化率,要么搞老客户回头率,基本就这样,不能保证每个隐形降权宝贝都会回来!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

忆~遂愿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值