Java循环点菜题

Python018

Java循环点菜题,第1张

import java.util.Scanner

import java.util.Map

import java.util.HashMap

import  java.util.Random

public class Test {

    public static void main(String[] args) {

            Random random = new Random()

        Scanner scan = new Scanner(System.in)

        //存储菜名和数量的集合

        Map<String,Integer> map = new HashMap<String,Integer>()

        while(true) {

            String name

            int number

            System.out.println("请输入菜名:")

            name = scan.next()

            //如果输入内容为 start 则跳出循环

            if(name.equalsIgnoreCase("start")) {

                break

            }

            System.out.println("请输入 " + name + " 的数量:")

            //判断输入内容是否可以转为 int

            if(scan.hasNextInt()) {

                number = scan.nextInt()

            }

            else {

                scan.next()

                System.out.println("参数不合法")

                continue

            }

            System.out.println("您点了 " + number + " 份 " + name)

            //如果菜名重复,则会自动替换之前的数据,HashMap 的 key 是不允许重复的

            map.put(name,number)

        }

        String[] names = map.keySet().toArray(new String[]{})

        for(int i = 0  i < names.length  i ++) {

            // Random 随机生成价格,范围 0 - 99

            System.out.println(map.get(names[i]) + " 份 " + names[i] + " 已上菜,价格:" + random.nextInt(100) + " 元")

    try {

            //休眠 1000 毫秒

                Thread.sleep(1000)

            }

            catch(InterruptedException e) {

                e.printStackTrace()

            }

        }

    }

}

import java.util.*

public class s {

static int x,xx,y,yystatic double sum=0

public static void main(String[] args)

{

String answer="y"double h=0

Scanner input=new Scanner(System.in)

System.out.println("请输入客户数:")

int m=input.nextInt()

int n=m*3

tostring()

do

{

order()

h+=(s(x,xx))+(d(y,yy))

System.out.println("是否继续:")

answer=input.next()

if(answer.equals("n"))

break

}while(true)

System.out.println(h+n)

}

static void tostring()

{

System.out.println("菜单")

System.out.println("食品:")

System.out.println("1咖喱牛肉饭¥40.00")

System.out.println("2寿司套餐¥65.00")

System.out.println("3扬州市消防3米¥45.00")

System.out.println("4沙朗牛排和意大利面¥72.00")

System.out.println("5鸡肉蔬菜卷¥42.00")

System.out.println("饮料:")

System.out.println("21软饮料¥10.00")

System.out.println("22红葡萄酒¥15.00")

System.out.println("23啤酒¥15.00")

}

static double s(int f,int x)

{

double p=0

switch(f)

{

case 1:p=40.00break

case 2:p=65.00break

case 3:p=45.00break

case 4:p=72.00break

case 5:p=42.00break

}

sum=p*x

return sum

}

static double d(int f,int x)

{

double p=0

switch(f)

{

case 21:p=10.00break

case 22:p=15.00break

case 23:p=15.00break

}

sum=p*x

return sum

}

static void order()

{

Scanner input=new Scanner(System.in)

System.out.println("请选择食品:")

x=input.nextInt()

System.out.println("请选择份数:")

xx=input.nextInt()

System.out.println("请选择饮料:")

y=input.nextInt()

System.out.println("请选择瓶数:")

yy=input.nextInt()

}

}

加分!!!!!

这个很简单的啦,新建一个类专门放这些数据。

class Order

{

int id

String name

double price

}

//在main方法中,新建存放数据的数组

Scanner scan=new Scanner(System.in)

Order[] list=new Order[5]

for(int i=0i<list.size()i++)

{

    list[i]=new Order()

    //为每一个数据赋值,通过键盘或者预设,这个你自己决定喽

    list[i].id=i+1

    list[i].name=scan.next()

    list[i].price=scan.nextDouble()

}

//不知道你是怎么安排业务逻辑的,我举个例子

double allPrice=0

System.out.println("Input the id of food")

//循环...这里不好明写,输入id

int now=scan.nextInt()

allPrice+=list[now-1].id

//循环结束,输出

System.out.println(allPrice)