Impression de graphiques pour afficher des données en Java à l'aide d'astérisques. Si les déclarations?


Ceci est une tâche dans mon cours Java où nous devons utiliser des méthodes pour résoudre des problèmes. J'ai fait la plupart de celui-ci, mais j'ai des problèmes.

Affectation:

Les graphiques aident à afficher les données. Créer un tableau similaire à celui illustré ci-dessous. Les nombres générés doivent être créés sous forme de nombres aléatoires entre $10,000 et 4 40,000. Les chiffres et le graphique indiquent les ventes d'un grossiste au cours du mois d'octobre. Notez qu'ils ne sont pas ouverts sept jours par semaine. (Dimanche est le jour de leur fermeture, et les dimanches tombent les 1er, 8, 15, 22 et 29 octobre de l'année en question. Le graphique est généré en ce que chaque étoile représente 1 000 sales en ventes.

Votre graphique ne ressemblera pas exactement à ceci car les nombres aléatoires seront générés différemment dans chaque programme. Imprimez les dates dans les colonnes comme indiqué (justifié à droite). En outre, les lundis ont toujours des ventes de plus de 30 000 $et les mardis ont toujours des ventes de plus de 20 000$. Les samedis ont toujours des ventes inférieures à $15,000.

Exemple de sortie:

Day Daily   Sales Graph
2   37081   *************************************
3   28355   ****************************
4   39158   ***************************************
5   24904   ************************
6   28879   ****************************
7   13348   *************

9   38791   **************************************
10  32564   ********************************
11  23867   ***********************
12  18154   ******************
13  25830   ***********************
14  14092   **************

16  36861   ************************************
17  26207   ************************
18  10921   **********
19  16573   ****************
20  33423   *********************************
21  12766   ************

23  33770   *********************************
24  28823   **************************
25  38883   **************************************
26  20959   ******************
27  16262   ****************
28  13269   *************

30  33557   *********************************
31  22579   **********************

J'en ai la plupart ici:

import java.util.*;
public class Prog310t
{
    public static Integer randomNumbers (int minNumber, int maxNumber)
    {
        Random gen = new Random();
        return (gen.nextInt(maxNumber - minNumber + 1) + minNumber);
    }

    public static String starLine (int numberOfAsterisks)
    {
        String stars = "";
        for (int i = 0; i < numberOfAsterisks; i++)
            stars = stars + "*";
        return stars;
    }

    public static void main (String args [])
    {
        int randomNumber;
        System.out.println("Day\tDaily\tSales Graph");
        for (int x = 2; x <= 31; x++)
        {
            if (x == 8 || x == 15 || x == 22 || x == 29)
            {
                System.out.println();
            }
            if (x == 2 || x == 9 || x == 16 || x == 23 || x == 30)
            {
                randomNumber = randomNumbers(30000, 40000);
                System.out.println(x + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
            }
            if (x == 3 || x == 10 || x == 17 || x == 24 || x == 31)
            {
                randomNumber = randomNumbers(20000, 40000);
                System.out.println(x + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
            }
            if (x == 7 || x == 14 || x == 21 || x == 28)
            {
                randomNumber = randomNumbers(10000, 15000);
                System.out.println(x + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
            }
        }
    }
}

Comment pourrais-je le faire sortir les autres jours? Il ne sort que les dimanches (blancs), les Lundis, Mardis et samedis. Comment puis-je le faire sortir les autres jours sans avoir à mettre chaque numéro de jour?

Author: Bad Wolf, 2013-01-07

1 answers

Utilisez une boucle for pour les jours, qui ne permet que 31 jours, imbriquée dans une boucle for pendant des semaines. Vérifiez les jours de spécialité et générez le nombre aléatoire basé sur le jour.

import java.util.*;
public class Prog310t
{
    public static Integer randomNumbers (int minNumber, int maxNumber)
    {
        Random gen = new Random();
        return (gen.nextInt(maxNumber - minNumber + 1) + minNumber);
    }

    public static String starLine (int numberOfAsterisks)
    {
        String stars = "";
        for (int i = 0; i < numberOfAsterisks; i++)
            stars = stars + "*";
        return stars;
    }

    public static void main (String args [])
    {
        int days = 1;
        for(int week = 0; week < 5; week++){
            for(int day = 1; day < 8 && days < 32; day++){
                int randomNumber = 0;
                    if(day==1){
                        randomNumber = 0;
                    }else if(day == 2){
                        randomNumber = randomNumbers(30000, 40000);
                    }else if(day==3){
                        randomNumber = randomNumbers(20000, 40000);
                    }else if(day==7){
                        randomNumber = randomNumbers(10000, 15000);
                    }else{
                        randomNumber = randomNumbers(10000, 40000);
                    }
                System.out.println(days + "\t" + randomNumber + "\t" + starLine(randomNumber / 1000));
                days++;
            }
        }
    }
}
 2
Author: Kevin Bowersox, 2013-01-06 22:10:24