2014-12-09 5 views
0

Я пытаюсь разработать программу, которая рассчитывает уровень моря до 2100 года. На основании исследования я обнаружил, что уровень моря будет 2,5 фута (это 30 дюймов) - 6,5 ноги (что составляет 78 дюймов). Моя программа просит пользователя ввести, в каком году они хотят рассчитать, сколько сантиметров уровень моря поднялся, но я хочу, чтобы информация была случайным числом в год между 0,3488 и 0,9069 дюйма, потому что это средние значения в год, которые сделают уровень моря 2,5 фута и 6,5 фута. Поэтому мой вопрос заключается в том, как я могу генерировать случайные числа за каждый год ввода пользователем, поэтому я могу рассчитать, насколько уровень моря поднялся, а затем выводить его в количестве галлонов.Проект уровня моря на море

/takes the input from the user of all the way up to which year 
    /they want to know the number of inches/ gallons the sea level has risen 
    /using reiman summs and a chart 
/
/
    /*******************************************************************************/ 
import java.util.Random; 
import java.util.Scanner; 

    public class CalcProject 
    { 

    public static void main(String[] args) 
    { 
    //variables for the program 
    int year; 
    int numOfYears; 
    double leastRise = .3488; //y = .3488x , x is the inches of rainfall 
    double highRise = .9069; //y= .9069x , x is the inches of rainfall 
    double seaLevel1; 
    double seaLevel2; 


    //Describing what the program does to the user 
    System.out.println("This program caluclates the number of gallons/inches" + 
        "the sea level will rise based on your input." + "\n"); 

    //Asking for the users year they want to calculate 
    System.out.println("Please enter which year you wish to know how much the water level will have   risen since 2014"); 

    Scanner scan = new Scanner(System.in); 
    year = scan.nextInt(); 

    if(year <= 2014 || year > 2100)  
    { 
    do 
    { 
     System.out.println("Please enter a valid year between 2015 and 2100"); 
     year = scan.nextInt(); 

    } while((year <= 2014 || year > 2100)); 

    } 

    //puts the year into a number of years from 2014 
    numOfYears = year-2014; 
    System.out.println("The number of years between now and the year you chose is: " +      numOfYears); 

    //uses the least inches of sealevel 
    seaLevel1 = numOfYears * leastRise; 
    System.out.println("The total sealevel in inches is " + seaLevel1 + " for " + year); 

    //uses the most inches of seaLevel 
    seaLevel2 = numOfYears * highRise; 
    System.out.println("The total sealevel in inches is " + seaLevel2 + " for " + year); 

    //calculating radnom numbers for each year 

ответ

0

Вот простой способ обработки странных случайных чисел.

int numOfYears; 
double leastRise = .3488; 
double highRise = .9069; 
double seaLevel3 = 0; 

int i = 0; 
while (i < numOfYears) { 
    double rand = Math.random(); 
    if (rand >= leastRise && rand <= highRise) { 
     // rand is some sea level value representing a year 
     seaLevel3 += rand; 
     i++; 
    } 
} 
System.out.println("The total sealevel in inches is " + seaLevel3 + " for " + year); 
+0

Wow Большое вам спасибо! Это, я думаю, вопрос, и я не уверен, если вам разрешено делать это, но есть ли способ, которым я могу использовать исчисление в этой программе, например, область под кривой или, может быть, последовательность какого-то типа? – gainz

+0

@jay должно быть. Проверьте библиотеку Math. Это очень неопределенный вопрос, поэтому мы, вероятно, помогли бы вам больше, если вы более конкретно о том, что вы хотите сделать. –

Смежные вопросы