Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 无法完成此计划_Java - Fatal编程技术网

Java 无法完成此计划

Java 无法完成此计划,java,Java,我是编程新手,所以我不能完成这个程序。 我需要创建一个快餐店,询问顾客的姓名、选择、数量、电话号码,以及他们是否想点其他东西。 我设法从客户那里获取输入,但唯一的问题是,如果客户选择订购其他产品,我无法确定是否要添加小计。比如,如果他们总共有10美元,然后再订购10美元,我该如何添加总数并显示账单? 如果我不能解释我自己,我道歉。 以下是我迄今为止所做的: import java.util.*; public class KFC { public void display_menu()

我是编程新手,所以我不能完成这个程序。 我需要创建一个快餐店,询问顾客的姓名、选择、数量、电话号码,以及他们是否想点其他东西。 我设法从客户那里获取输入,但唯一的问题是,如果客户选择订购其他产品,我无法确定是否要添加小计。比如,如果他们总共有10美元,然后再订购10美元,我该如何添加总数并显示账单? 如果我不能解释我自己,我道歉。 以下是我迄今为止所做的:

import java.util.*;
public class KFC 
{
    public void display_menu() 
    {
        System.out.println("**********WELCOME TO XYZ**********");
        System.out.println("MAY I KNOW WHAT WOULD YOU LIKE?");
        System.out.println("1.OMG Burger:-");
        System.out.println("2.OMG Roller:-");
        System.out.println("3.Chicken Snacker:-");
        System.out.println("Please enter your choice");
    }

    public void question()
    {
        System.out.println("Would you like to have something else?");
        System.out.println("To place another order enter 9.");
        System.out.println("To check out enter 0.");
        Scanner q = new Scanner(System.in);  

        switch (q.nextInt()) 
        {
        case 0:
            break;

        case 9:System.out.println ("Please proceed.");
        new KFC();
        break;
        default:System.out.println ( " option" );
        break;
        }
    }


    public KFC() 
    {
        Scanner sc = new Scanner(System.in);
        display_menu();

        switch (sc.nextInt()) 
        {
        case 1:int a,b,Rate;String s;
        double e,t,f,g;
        float m;
        System.out.println("OMG Burger");
        System.out.println("Enter The Quantity");
        b=sc.nextInt();
        System.out.println("Enter Your Name");
        s=sc.next();
        System.out.println("Enter Your Mobile Number");
        m=sc.nextFloat();
        Rate=49;
        t=(5.0/100.0)*Rate;
        e=b*Rate;
        f=t*b;
        g=e+f;
        question();
        System.out.println("***********KFC**********");
        System.out.println("Name:"+s);
        System.out.println("Mobile Number:"+m);
        System.out.println("Choice:OMG Burger");
        System.out.println("Quantity:"+b);
        System.out.println("Rate:$"+Rate);
        System.out.println("Tax:"+f);
        System.out.println("Total price:$"+g);
        System.out.println("PLEASE VISIT AGAIN. HAVE A NICE DAY!!!");
        break;
        case 2:  System.out.println("OMG Roller");
        System.out.println("Enter The Quantity");
        b=sc.nextInt();
        System.out.println("Enter Your Name");
        s=sc.next();
        System.out.println("Enter Your Mobile Number");
        m=sc.nextFloat();
        Rate=59;
        t=(5.0/100.0)*Rate;
        e=b*Rate;
        f=t*b;
        g=e+f;
        question();
        System.out.println("***********KFC**********");
        System.out.println("Name:"+s);
        System.out.println("Mobile Number:"+m);
        System.out.println("Choice:OMG Roller");
        System.out.println("Quantity:"+b);
        System.out.println("Rate:$"+Rate);
        System.out.println("Tax:"+f);
        System.out.println("Total price:$"+g);
        System.out.println("PLEASE VISIT AGAIN. HAVE A NICE DAY!!!");
        break;
        case 3:   System.out.println("Chicken Snacker");
        System.out.println("Enter The Quantity");
        b=sc.nextInt();
        System.out.println("Enter Your Name"); 
        s=sc.next();
        System.out.println("Enter Your Mobile Number");
        m=sc.nextFloat();
        Rate=40;
        t=(5.0/100.0)*Rate;
        e=b*Rate;
        f=t*b;
        g=e+f;
        question();
        System.out.println("***********KFC**********");
        System.out.println("Name:"+s);
        System.out.println("Mobile Number:"+m);
        System.out.println("Choice:Chicken Snacker");
        System.out.println("Quantity:"+b);
        System.out.println("Rate:$"+Rate);
        System.out.println("Tax:"+f);
        System.out.println("Total price:$"+g);
        System.out.println("PLEASE VISIT AGAIN. HAVE A NICE DAY!!!");
        break;
        default:
            System.out.println ( "Unrecognized option" );
            break;
        }
    }

    public static void main (String[]args)
    {
        new KFC();
    }
}

最初,您为新客户创建新的肯德基实例…现在当同一客户再次下订单时,您创建新的肯德基实例,而不是使用相同的实例。.bcoz您将您的逻辑放在构造函数中,这是完全错误的。正如oguzhand指出的,这无助于合计

构造函数用于初始化类的实例。它通常用于创建新对象,通常带有指定初始状态的参数或有关对象的其他重要信息

来自官方Java教程:

类包含用于从中创建对象的构造函数 班级蓝图。 有关构造函数的更多信息

1)因此,不要在构造函数中编写逻辑……将其写入方法并调用该方法
2)正如RC和oguzhand指出的,您应该为变量指定有意义的名称,并且应该使用很少的全局变量。例如

String customerName; 
long customerContactNo; 
long totalPrice; 
int burgerQuantity; 
int rollerQuantity;

其他人已经提出的观点: 1) 使用一些有意义的名称命名变量 2) 不要在构造函数中执行您的工作

似乎您正试图编写一个程序来解决问题,而不是编写一组类。在使用Java时,您应该创建一个面向对象的问题解决方案

首先问问你自己你有多少东西。每个订单有多少客户?一个订单中有多少菜单项?由于单个客户可以订购多个菜单项,因此您应该为以单个订单订购的菜单项创建一个类

到目前为止,我看到至少要编写三个不同的类: 1) 代表餐厅工作日的课程; 2) 表示订单的类;和 3) 表示订单中的项目的类


要获得订单的小计,只需迭代OrderItem对象,询问每个对象的成本,然后将其添加到变量中。将值存储在Order类的一个字段中(或在需要时重新计算并返回),这样就可以继续了。

在每种情况下打印客户的所有详细信息是一种不好的做法使用您的案例计算不同项目的金额,并生成一个用于添加金额的全局变量,在你的情况下,你是限制你的每一项成本,这就是为什么你没有得到适当的结果给上帝。因此,让我们从1/用有意义的名称命名变量(不再是a、b、c等)2/使用适当的大小写(变量名称以小写字母开头)3/正确的缩进开始。完成后,发布更新的代码。关于你的问题,你认为新的肯德基()做什么?