如何在其他方法中使用随机生成的输出?

时间:2019-06-18 15:01:39

标签: java random

我试图解决以下问题:我有3家餐厅,每个餐厅提供4种食物,并分别定价。我应该创建一个程序来模拟每个餐厅在3个月内的销售额。

我应该能够得出以下结果:每个餐厅每月随机销售的商品数量(例如:第一家餐厅在第一个月内售出了第一件商品中的5件,依此类推)。根据这些随机值,显示每个餐厅每月的销售总额(收入),然后根据该值,将餐厅的销售总额从最大的排序到最小的排序。最后,所有餐厅中售出的商品总数及其各自的总收入(例如:售出第一件商品的100件,而该商品的100件的收入为...。)

您肯定会想到,我已经开始编写代码,但是我怀疑我做错了,主要是因为对值的操纵不当(例如:基于一个月的销售量得出的总收入确实与其各自的价格和销售数量不符)。我将向您展示代码,如果您能帮助我,我将不胜感激。

我的主要问题是:

  1. 我的方法好吗?我能解决这个问题吗? 2.为什么每种方法的输出值都不同? 3.如果有更好的方法,能否请您演示一下?

我创建了一个类“ Month”,其中包含变量“ restaurant,item1,item2,item3,item4”。它具有构造函数以及restaurant变量的setter和getter方法。我创建了四个方法,每个方法可以为我生成一个随机数的每个项目。我还创建了四种方法,根据这些方法的值可以计算出售出物品的总收入,从而可以计算出每件售出物品的总收入,然后创建一种方法来计算所有物品的总收入。前四种方法的值。问题是,正如我说的那样,它正在创建独立的结果,好像这些方法没有使用其他方法的值一样,而且我没有找到如何根据每个月的总收入对餐馆进行排序(即使我知道如何实现排序算法,但在这种情况下我做不到。此外,我还可以计算三个月内所有餐厅销售的每种商品的总和,而不是其收入。 类变量及其参数:

import java.util.Random;

public class Month {
    private String restaurant;
    private double item1;
    private double item2;
    private double item3;

public Month (String restaurant, double item1, double item2, double item3){
    this.restaurant=restaurant;
    this.item1=item1;
    this.item2=item2;
    this.item3=item3;
}

计算已售商品数量的方法:

public double item1Sold (){
    Random item1Quantity = new Random();
    double item1 = item1Quantity.nextInt(30)+1;

    return item1;
}

public double item2Sold (){
    Random item2Quantity = new Random();
    double item2 = item1Quantity.nextInt(30)+1;

    return item2;
}

public double item3Sold (){
    Random item3Quantity = new Random();
    double item3 = item3Quantity.nextInt(30)+1;

    return item3;
}

一种方法来计算一个餐馆一个月内出售的所有物品的总收入:

public double totalIncome (){
    double income = item1Price()+item2Price()+item3Price();

    return income;
}

根据已售商品数量的结果计算单独售出商品价格的方法:

public double item1Price (){
    double price = item1sales()*50.00;

    return price;
}

public double item2Price (){
    double price = item2sales()*40.00;

    return price;
}

public double item3Price (){
    double price = item3sales()*30.00;

    return price;
}

餐厅的设置者和获取者:

public String getRestaurant() {
    return restaurant;
}

public void setRestaurant(String restaurant) {
    this.restaurant = restaurant;
}

/**In the main class, I have created only one month ("m1") as an array, 
and each value of the array would be a restaurant, but I am almost sure 
this approach is wrong **/

public class Main {

public static void main(String[] args) {
    Month [] m1 = new Month[2];

    m1 [0] = new Month();
    m1 [0].setRestaurant("rest1");

    m1 [1] = new Month();
    m1 [1].setRestaurant("rest2");

    for (int i=0; i<2; i++)
        System.out.println(m1[i].getRestaurant()+m1[i].item1Sales());

很抱歉,很长的信息,但我必须提供详细信息。预先感谢。

0 个答案:

没有答案