进制转换器

项目分析

1. 

①打印主菜单。

②输出主菜单选项(小写转化为大写)(输入的验证)

2. 大小写的转化。

①输入需要转化的数

(必须要小于基数 需验证为字符串型)

(参数 :基数)

(返回值:一个通过验证过的数)

3. 进制的转化

转化的方式分两种:

①一种是十进制转化为其他进制。

②另一种是其他进制转化为十进制

public class C_201_4_12项目分析 {
    static int from;//待转换的进制
    static int to;//转换后的进制
         //主函数
    public static void main(String[] args) {
        while(true) {//函数一直在执行
            showMenu();
            boolean isExist = inputCommand();//输入你所打印的选项
            if(isExist){
                break;//选项合法跳出 不合法从新输入
            }
            String data = inputData(from);
            String result = convert(from,to,data);
            System.out.printf("%s(%d)→%s(%d)\n",data,from,result,to);
        }
    }
    /**
     * 功能:显示操作菜单
     */
    private static void showMenu(){
        System.out.println("*--------------------------------------------*");
        System.out.println("* A:十进制 => 二进制 B:二进制   => 十进制 *");
        System.out.println("* C:十进制 => 八进制 D:八进制   => 十进制 *");
        System.out.println("* E:十进制 => 十六进制    F:十六进制 => 十进制 *");
        System.out.println("* G:二进制 => 八进制 H:八进制   => 二进制 *");
        System.out.println("* I:二进制 => 十六进制    J:十六进制 => 二进制 *");
        System.out.println("* K:退出                                     *");
        System.out.println("*--------------------------------------------*");
    }

    /**输入选项
     * 功能:接收转换命令的输入
     * @return 是否是结束命令
     */
    private static boolean inputCommand(){
     Scanner scan = new Scanner(System.in);
        String command = scan.next().toUpperCase();//把大小写统一转化为大写
        switch(command)
        {
            case "A":
                from = 10;
                to = 2;
                break;
            case "B":
                from = 2;
                to = 10;
                break;
            case "C":
                from = 10;
                to = 8;
                break;
            case "D":
                from = 8;
                to = 10;
                break;
            case "E":
                from = 10;
                to = 16;
                break;
            case "F":
                from = 16;
                to = 10;
                break;
            case "G":
                from = 2;
                to = 8;
                break;
            case "H":
                from = 8;
                to = 2;
                break;
            case "I":
                from = 2;
                to = 16;
                break;
            case "J":
                from = 16;
                to = 2;
                break;
            case "K":
                return true;
            default:
                System.out.println("错误命令!");//如果输入不合法
                return inputCommand();
        }
        return false;
    }

    /**
     * 功能:接收待转换数据的输入,需验证
     * @param radix 进制(验证的依据)
     * @return 输入的数据
     */
    private static String inputData(int radix){
        Scanner scan = new Scanner(System.in);
        String data = null;
        boolean success = false;
        while (!success){
            System.out.printf("请输入一个%d进制数:", radix);
            data = scan.next();
            success = validate(from,data);
        }

        return data;
    }

    /**
     * 功能:进制转换
     * @param from 源进制
     * @param to 目标进制
     * @param data 待转换的数
     * @return 转换之后的结果
     */
    private static String convert(int from, int to, String data) {
        if(10 == from){
            return decimal2x(to,data);
        }
        if(10 == to) {
            return x2decimal(from, data);
        }
        return decimal2x(to,x2decimal(from,data));
    }

    /**
     * 功能:将其它进制转换为十进制
     * @param radix 进制
     * @param data 待转换的数据
     * @return 转换之后的结果
     */
    private static String x2decimal(int radix, String data){
        int num = 0;
        int len = data.length();
        for (int i=0; i<len; i++)
        {
            char ch = data.charAt(i);
            if (ch >= 'a')
            {
                num += (ch-'a'+10)*(int)Math.pow(radix,len-i-1);
            }
            else
            {
                num += (ch-'0')*(int)Math.pow(radix,len-i-1);
            }
        }
        return String.format("%d",num);
    }

    /**
     *功能:将十进制数转换为其它进制
     * @param radix 进制
     * @param data 待转换的数据
     * @return 转换之后的结果
     */
    private static String decimal2x(int radix, String data){
        String result = "";
        int d = Integer.parseInt(data);
        while(d != 0){
            int reminder = d%radix;
            d /= radix;
            result = reminder+result;//求商 取余,倒叙排列
        }
        return result;
    }

    /**
     * 功能:验证数据的合法性
     * @param radix 进制(验证的依据)
     * @param data 待验证的数据
     * @return 是否合法
     */
    private static boolean validate(int radix, String data){
        data = data.toLowerCase();
        for(int i=0; i<data.length(); i++){
            char ch = data.charAt(i);//拿到每一个字符
            if(!isDigit(radix, ch)){
                return false;
            }
        }     return true;
    }

    /**
     * 判断是否为合法字符
     * @param radix 进制(判断的依据)
     * @param ch 待判断的字符
     * @return 是否合法
     */
    private static boolean isDigit(int radix, char ch) {
        if(16 == from){
            return (ch>='0' && ch<='9') || (ch>='a' && ch<='f');
        }
        int n = ch-'0';
        return n>=0 && n<from;
    }
}



智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。
智慧旅游解决方案利用云计算、物联网和移动互联网技术,通过便携终端设备,实现对旅游资源、经济、活动和旅游者信息的智能感知和发布。这种技术的应用旨在提升游客在旅游各个环节的体验,使他们能够轻松获取信息、规划行程、预订票务和安排食宿。智慧旅游平台为旅游管理部门、企业和游客提供服务,包括政策发布、行政管理、景区安全、游客流量统计分析、投诉反馈等。此外,平台还提供广告促销、库存信息、景点介绍、电子门票、社交互动等功能。 智慧旅游的建设规划得到了国家政策的支持,如《国家中长期科技发展规划纲要》和国务院的《关于加快发展旅游业的意见》,这些政策强调了旅游信息服务平台的建设和信息化服务的重要性。随着技术的成熟和政策环境的优化,智慧旅游的时机已经到来。 智慧旅游平台采用SaaS、PaaS和IaaS等云服务模式,提供简化的软件开发、测试和部署环境,实现资源的按需配置和快速部署。这些服务模式支持旅游企业、消费者和管理部门开发高性能、高可扩展的应用服务。平台还整合了旅游信息资源,提供了丰富的旅游产品创意平台和统一的旅游综合信息库。 智慧旅游融合应用面向游客和景区景点主管机构,提供无线城市门户、智能导游、智能门票及优惠券、景区综合安防、车辆及停车场管理等服务。这些应用通过物联网和云计算技术,实现了旅游服务的智能化、个性化和协同化,提高了旅游服务的自由度和信息共享的动态性。 智慧旅游的发展标志着旅游信息化建设的智能化和应用多样化趋势,多种技术和应用交叉渗透至旅游行业的各个方面,预示着全面的智慧旅游时代已经到来。智慧旅游不仅提升了游客的旅游体验,也为旅游管理和服务提供了高效的技术支持。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值