Zum Inhalt springen

Struktrogramm in Java umsetzen?


IT-Kaetzchen

Empfohlene Beiträge

Hallo Leute.

Ich brauche eure Hilfe. Ich hab ein Struktogramm gefertigt. Die Aufgabe geht so:

Sie betreiben einen Shop für PC-Geräte und Spiele. Durch einen Bekannten wurden Sie auf ein

neues Spiel aufmerksam gemacht. Sie starten eine Marktanalyse aufgrund eines Fragebogens.

Darin fragen Sie nach dem Geschlecht, dem Alter und ob ein PC vorhanden ist.

Sie wollen das neue Spiel an männliche Jugendliche unter 21 Jahre, PC-Besitzer verkaufen. Es soll

ein Programm erstellt werden, dass den prozentualen Anteil ihrer Zielgruppe aus der

Marktbefragung ermittelt.

Ganz einfach eigentlich. So sieht mein Struktogramm aus (Variablendeklaration hab ich rausgelassen):

post-88919-14430449521689_thumb.jpg

Und ich weiß jetzt nicht wie ich in Java anfangen soll. Ich hab alle Variablen deklariert. Wie fang ich denn die Schleife an? Sie ist fußgesteuert, d.h. ich fange mit einem do {Anweisungen} an, in dem Fall meine ganzen If-Abfragen. Die sind kein Problem. Dann kommt ja das while (Bedingung).. Meine frage ist jetzt, wie schreib ich das, damit die Schleife aufhört wenn der letzte Fragebogen ausgefüllt wurde?

Muss ich in der Variablendeklaration eine maximale Anzahl an Fragebögen angeben? Die ist ja in der Aufgabenstellung nicht angegegeben.

Bitte seid nett zu mir ;D Ich bin blutige Anfängerin ;-)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wieso sollte er bei der 20. aufhören? Du willst ja eine Menge von x Fragebögen abarbeiten und danach das Ergebnis haben (x unbekannt).

Da hast du mehrere Möglichkeiten:

Wenn du irgendwoher weist was x ist , dann kannst du das so machen wie bei deinem Post davor. Dann durchläufst du die Schleife halt x-mal und am Ende gibst du das Ergebnis aus.

Ich dachte du hast sowas wie Frageboegen[] wobei die Menge unbekannt ist.

Dann könntest du sowas machen wie..


for(Fragebogen temp : Frageboegen) {

...

}

Dann macht er genau "Länge von Frageboegen"-Durchläufe durch die Schleife. Anders wenn du eine Do-While Schleife hast, musst du in der Schleife selbst eine Variable hochzählen:

do{


int x=0;

...

x++;

}while(x< abbruchvariable) 

Ich hoffe ich konnte dir etwas helfen.

mfg chris

Bearbeitet von hbspike
Link zu diesem Kommentar
Auf anderen Seiten teilen

SPOILER SPOILER

spoiler:foreach

public float auswertungFrageboegen(Frageboegen[] fb) {


int SummeGesamt = 0;

float Anteil = 0;

foreach(Fragebogen tempFb : fb) {


    if(tempFb.geschlecht == "m") {

        if(tempFb.alter <= 21) {

            if(tempFb.PcBesitzer == true) {

                SummeGesamt++;

            }

        }

    }

}

Anteil = (fb.length() / SummeGesamt)*100;

return Anteil;

}
do-while:

public float auswertungFrageboegen(Frageboegen[] fb) {


int SummeGesamt = 0;

int fb_pos = 0;

float Anteil = 0;

do{

	if(fb[fb_pos].geschlecht == "m") {

		if(fb[fb_pos].alter <= 21) {

			if(fb[fb_pos].PcBesitzer == true) {

				SummeGesamt++;

			}

		}

	}

		fb_pos++;

	//Das musst du einmal überprüfen. length() gibt dir die Anzahl an Elementen im Array, aber fb_pos beginnt bei 0 und nicht 1, also muss < und nicht <=

}while(fb_pos < fb-length()) 

Anteil = (fb.length() / SummeGesamt)*100;


return Anteil;

}

Bearbeitet von flashpixx
Code Color entfernt
Link zu diesem Kommentar
Auf anderen Seiten teilen

So.

Jetzt weis ich auch was du möchtest und hier ist ein fertiges Beispiel.

Bitte nur wenn du es selbst auch ausprobiert hast..


public static void test() {

		float SummeGesamt = 0;

	    int Alter = 0;

	    float SummeKunden = 0;

	    String Geschlecht;

	    boolean PCBesitzer;

	    float Anteil;

	    int Fragebögen = 0;


	    int choice = -1;


		    for (Fragebögen=0; Fragebögen<=24; Fragebögen++)

		    { 

		    	//0 = ja, 1 = nein, 2 = Abbrechen

		    	choice = JOptionPane.showConfirmDialog(null, "Bist du männlich?");

		    		if(choice == 0) {

		    			//die nächste Abfrage nach dem alter.

		    			choice = JOptionPane.showConfirmDialog(null, "Bist du nicht älter als 21?");

		    			if(choice == 0) {

			    			//die nächste Abfrage nach dem Pc.

			    			choice = JOptionPane.showConfirmDialog(null, "Besitzt du einen PC?");

			    			if(choice == 0) {

			    				SummeKunden++;

			    				SummeGesamt++;

			    			}

			    			else {


			    			}

			    		}

			    		else if(choice == 1) {

			    			SummeGesamt++;

			    		}

		    		}

		    		else if(choice == 1) {

		    			SummeGesamt++;

		    		}

		    }

		    Anteil = (SummeKunden/SummeGesamt) *100;

		    System.out.println(Anteil + "%");

    }

Bearbeitet von flashpixx
Code Color entfernt
Link zu diesem Kommentar
Auf anderen Seiten teilen

public static void main(String[] args) {

        double Summe = 0;

        double Stunden;

        double Total = 0;

        double Umsatz;

        int Mitarbeiter;

        int choice = -1;


        for (Mitarbeiter = 0; Mitarbeiter <= 10; Mitarbeiter++) {

            choice = JOptionPane.showConfirmDialog(null, "Sind sie Tellerwäscher?");

            if (choice == 0) {

                Stunden = Integer.parseInt(JOptionPane.showInputDialog("Gib bitte deine Stunden ein!"));

                Summe = Stunden * 9;

            } else if (choice == 1) {

                Stunden = Integer.parseInt(JOptionPane.showInputDialog("Gib bitte deine Stunden ein!"));

                Umsatz = Integer.parseInt(JOptionPane.showInputDialog("Gib bitte den Umsatz ein!"));

                Umsatz = Umsatz * 0.1;

                Summe = Stunden * 5 + Umsatz;

            } else {


            Total = Total + Summe;

        }}


        JOptionPane.showMessageDialog(null, "Sie haben " + Total + " ausgezahlt!");

    }

}

Sieht jemand meinen Fehler? Der rechnet nicht. Da kommt immer 0.0 raus....

Link zu diesem Kommentar
Auf anderen Seiten teilen

Gast runtimeterror

offtopic: Jedesmal wenn ich sehe, dass eine OO-Programmiersprache für die Implementierung eines Struktogramms eingesetzt wird, habe ich das Bedürfnis dem Aufgabensteller ein kohlebetriebene Mikrowelle zu schenken - sowas macht man einfach nicht!

Link zu diesem Kommentar
Auf anderen Seiten teilen

offtopic: Jedesmal wenn ich sehe, dass eine OO-Programmiersprache für die Implementierung eines Struktogramms eingesetzt wird, habe ich das Bedürfnis dem Aufgabensteller ein kohlebetriebene Mikrowelle zu schenken - sowas macht man einfach nicht!

So lange die jeweilige Sprache noch Primitive Datentypen hat schreit sie ja förmlich danach.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Dein Kommentar

Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...