IT-Kaetzchen Geschrieben 21. März 2013 Teilen Geschrieben 21. März 2013 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): 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 ;-) Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Blueshark Geschrieben 21. März 2013 Teilen Geschrieben 21. März 2013 Stell am Ende ne Frage ob es noch einen weiteren Fragebogen gibt ^^ Je nach Antwort ob ja oder nein gehts dann weiter oder nicht Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hbspike Geschrieben 21. März 2013 Teilen Geschrieben 21. März 2013 for...each? ansonsten nimmst du halt Fragebögen.length als termination der Schleife mit einer hochzählenden Variable.. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IT-Kaetzchen Geschrieben 21. März 2013 Autor Teilen Geschrieben 21. März 2013 Ähm. Die Schleife kenn ich nicht. Und das .length leider auch nicht. Ich hatte erst ein paar Unterrichtsstunden. Würde das denn gehen wenn ich in der Variablendeklaration schreibe int Fragebögen = 20 oder sowas? Also dass er halt bei der 20. Eingabe aufhört? Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IT-Kaetzchen Geschrieben 21. März 2013 Autor Teilen Geschrieben 21. März 2013 Ich seh gerade dass ich das mit einer Zählergesteuerten Schleife machen kann. Ich versuch das mal. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hbspike Geschrieben 21. März 2013 Teilen Geschrieben 21. März 2013 (bearbeitet) 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 21. März 2013 von hbspike Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IT-Kaetzchen Geschrieben 21. März 2013 Autor Teilen Geschrieben 21. März 2013 Ja ich versuch mal zu basteln ;-) Vielleicht schaff ichs ja Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hbspike Geschrieben 21. März 2013 Teilen Geschrieben 21. März 2013 (bearbeitet) 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 23. März 2013 von flashpixx Code Color entfernt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
hbspike Geschrieben 21. März 2013 Teilen Geschrieben 21. März 2013 (bearbeitet) 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 23. März 2013 von flashpixx Code Color entfernt Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IT-Kaetzchen Geschrieben 21. März 2013 Autor Teilen Geschrieben 21. März 2013 Ja ich war ganz nah dran hab die else if's ignoriert. Hast es ja gesehen. Vielen dank! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IT-Kaetzchen Geschrieben 21. März 2013 Autor Teilen Geschrieben 21. März 2013 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.... Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
IT-Kaetzchen Geschrieben 21. März 2013 Autor Teilen Geschrieben 21. März 2013 Hab das Problem gefunden! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Blueshark Geschrieben 21. März 2013 Teilen Geschrieben 21. März 2013 (bearbeitet) erzähl Bearbeitet 21. März 2013 von Blueshark Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gast runtimeterror Geschrieben 22. März 2013 Teilen Geschrieben 22. März 2013 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! Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
afo Geschrieben 26. März 2013 Teilen Geschrieben 26. März 2013 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. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
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.