简单的火锅点餐

简单的火锅点餐

主要知识点:字典、分割

写一个程序实现输出菜单以及价格的火锅点餐功能。(锅底只能一份)

示例1:
输入:番茄锅,肥牛 5,虾滑 2,土豆 1,面条 3
输出:
点餐:番茄锅,5份肥牛,2份虾滑,1份土豆,3份面条
总价:286

示例2:
输入:菌汤锅,肥牛,面条
输出:
点餐:菌汤锅,1份肥牛,1份面条
总价:68


代码

import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;

public class HotPot {
    public static void main(String[] args) {
        // 初始化菜单
        final Map<String, Integer> potDict = new HashMap<String, Integer>(){{
            put("番茄锅",25);
            put("菌汤锅",29);
            put("麻辣锅",33);
        }};

        final Map<String, Integer> mealDict = new HashMap<String, Integer>(){{
            put("肥牛",35);
            put("虾滑",32);
            put("土豆",10);
            put("面条",4);
        }};
        // 展示菜单
        System.out.println("--- 锅底菜单 ---");
        for(Map.Entry item : potDict.entrySet()) {
            System.out.println(item.getKey() + " --- " + item.getValue());
        }
        System.out.println("---------------\n");

        System.out.println("--- 菜品菜单 ---");
        for(Map.Entry<String, Integer> item : mealDict.entrySet()) {
            System.out.println(item.getKey() + " ---- " + item.getValue());
        }
        System.out.println("---------------\n");


        // 点餐
        Scanner sc = new Scanner(System.in);
        System.out.println("请点餐:");
        String[] myHotPot = sc.nextLine().split(",|,");

        // 菜单字典化 {菜品=份数}
        Map<String, Integer> myMenu = new HashMap<String, Integer>();
        for (int i = 0; i < myHotPot.length; i++){
            String[] meal = myHotPot[i].split(" ");
            if (meal.length<2){
                // 无数量显示,默认为1份
                myMenu.put(meal[0],1);
            }else {
                myMenu.put(meal[0],Integer.parseInt(meal[1]));
            }
        }
//        System.out.println(myMenu);

        int total = 0;  // 总价
        // 锅底
        total += potDict.get(myHotPot[0]);
        System.out.print("点餐:" + myHotPot[0]);

        // 菜品 数量*单价
        for (Map.Entry<String, Integer> item : myMenu.entrySet()) {
            if (mealDict.containsKey(item.getKey())) {
                total += mealDict.get(item.getKey()) * item.getValue();
                System.out.print("," + item.getValue() + "份" + item.getKey());
            }
        }

        System.out.println("\n总价:" + total);
    }
}

运行结果:

--- 锅底菜单 ---
菌汤锅 --- 29
番茄锅 --- 25
麻辣锅 --- 33
---------------

--- 菜品菜单 ---
虾滑 ---- 32
肥牛 ---- 35
土豆 ---- 10
面条 ---- 4
---------------

请点餐:
番茄锅,肥牛 5,虾滑 2,土豆 1,面条 3
点餐:番茄锅,2份虾滑,5份肥牛,1份土豆,3份面条
总价:286
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值