tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
3
ZUGRIFFE
463
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von MacMo
    MacMo MacMo ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    9
    Hey,

    seit Beginn des neuen Schuljahres habe ich Informatik gewählt, wo wir uns mit Java beschäftigten. hatten bisher 3 Doppelstunden und in der letzten Stunde haben wir ein Arbeitsblatt mit 4 Aufgaben bekommen. Die ersten drei waren kein Problem und der erste Teil der vierten auch nicht. Hier mal die Aufgabe:

    4) Erstellen Sie ein Stimmenzähler für eine Wahl. Diese soll aus den in Hessen
    regierenden Parteien bestehen und jeweils eine Stimme für die jeweilige Partei
    hochzählen. Für jede Partei muss es also einen Button und ein Label geben.
    Erweitern Sie das Programm, so dass auch noch die Stimmenanzahl in Prozent
    erscheint.
    Es ist keine Hausaufgabe oder ähnliches, aber mich interessiert gerade brennend wie ich das mit den Prozenten zustande bekommen.

    Mit meinem bisherigen Code ist es so, wenn ich zum Beispiel auf den Button für die SPD klicke, bekommt die SPD eine Stimme, die Gesamtstimmen sind ebenfalls 1, dann hat die SPD auch 100 %. Klicke ich noch mal auf SPD, hat sie auch noch 100 Prozent, so soll es ja auch sein. Aber klicke ich nun auf den Button für CDU, bekommt die CDU auch eine Stimme, die Gesamtstimmen sind nun 3 (2xSPD, 1xCDU), aber dann steht hinter SPD und CDU jeweils 0.

    Falls es noch von Interesse ist, wir programmieren mit NetBeans 6.1 und ich verwende Mac OS X Leopard mit Java 6.

    Hier mein Code:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    
     public void Stimmen() {
            // TODO add your handling code here:
           gesamtStimmen = npdAnzahl+linkeAnzahl+b90Anzahl+fdpAnzahl+cduAnzahl+spdAnzahl;
           
           String ausgabeGesamt = Hilfsfunktionen.int2string(gesamtStimmen);
           stimmenGesamt.setText(ausgabeGesamt);
        }
        
        public void Prozent() {
            // TODO add your handling code here: 
            
            String eingabeStimmenGesamt = stimmenGesamt.getText();
            int eingabeStimmenZahl = Hilfsfunktionen.string2int(eingabeStimmenGesamt);
            
            int spdProzent = (spdAnzahl/eingabeStimmenZahl)*100;
            int cduProzent = (cduAnzahl/eingabeStimmenZahl)*100;
            int fdpProzent = (fdpAnzahl/eingabeStimmenZahl)*100;
            int b90Prozent = (b90Anzahl/eingabeStimmenZahl)*100;
            int linkeProzent = (linkeAnzahl/eingabeStimmenZahl)*100;
            int npdProzent = (npdAnzahl/eingabeStimmenZahl)*100;
            
            String prozentAusgabeSPD = Hilfsfunktionen.int2string(spdProzent);
            String prozentAusgabeCDU = Hilfsfunktionen.int2string(cduProzent);
            String prozentAusgabeB90 = Hilfsfunktionen.int2string(b90Prozent);
            String prozentAusgabeFDP = Hilfsfunktionen.int2string(fdpProzent);
            String prozentAusgabeLinke = Hilfsfunktionen.int2string(linkeProzent);
            String prozentAusgabeNPD = Hilfsfunktionen.int2string(npdProzent);
            
            prozentSPD.setText(prozentAusgabeSPD);
            prozentCDU.setText(prozentAusgabeCDU);
            prozentFDP.setText(prozentAusgabeFDP);
            prozentB90.setText(prozentAusgabeB90);
            prozentLinke.setText(prozentAusgabeLinke);
            prozentNPD.setText(prozentAusgabeNPD);
            
            
            
        }
        
        
        
        private void spdButtonMouseClicked(java.awt.event.MouseEvent evt) {                                       
            // TODO add your handling code here:
            
            spdAnzahl = spdAnzahl+1;
            
            String ausgabeSPD = Hilfsfunktionen.int2string(spdAnzahl);
            anzahlSPD.setText(ausgabeSPD);
            
            Stimmen();
            Prozent();
        }                                      
     
        private void cduButtonMouseClicked(java.awt.event.MouseEvent evt) {                                       
            // TODO add your handling code here:
            
            cduAnzahl = cduAnzahl+1;
            
            String ausgabeCDU = Hilfsfunktionen.int2string(cduAnzahl);
            anzahlCDU.setText(ausgabeCDU);
            
            Stimmen();
            Prozent();
        }                                      
     
    private void fdpButtonMouseClicked(java.awt.event.MouseEvent evt) {                                       
    // TODO add your handling code here:
        
        fdpAnzahl = fdpAnzahl+1;
        
        String ausgabeFDP = Hilfsfunktionen.int2string(fdpAnzahl);
        anzahlFDP.setText(ausgabeFDP);
        
        Stimmen();
        Prozent();
    }                                      
     
    private void b90ButtonMouseClicked(java.awt.event.MouseEvent evt) {                                       
    // TODO add your handling code here:
        
        b90Anzahl = b90Anzahl+1;
        
        String ausgabeB90 = Hilfsfunktionen.int2string(b90Anzahl);
        anzahlB90.setText(ausgabeB90);
        
        Stimmen();
        Prozent();
    }                                      
     
    private void linkeButtonMouseClicked(java.awt.event.MouseEvent evt) {                                         
    // TODO add your handling code here:
        
        linkeAnzahl = linkeAnzahl+1;
        
        String ausgabeLinke = Hilfsfunktionen.int2string(linkeAnzahl);
        anzahlLinke.setText(ausgabeLinke);
        
        Stimmen();
        Prozent();
    }                                        
     
    private void npdButtonMouseClicked(java.awt.event.MouseEvent evt) {                                       
    // TODO add your handling code here:
        
        npdAnzahl = npdAnzahl+1;
        
        String ausgabeNPD = Hilfsfunktionen.int2string(npdAnzahl);
        anzahlNPD.setText(ausgabeNPD);
        
        Stimmen();
        Prozent();
    }                                      
     
    private void formMouseClicked(java.awt.event.MouseEvent evt) {                                  
    // TODO add your handling code here:
        
        
    }                                 
        
        /**
         * @param args the command line arguments
         */
        public static void main(String args[]) {
            java.awt.EventQueue.invokeLater(new Runnable() {
                public void run() {
                    new WahlFenster().setVisible(true);
                }
            });
        }
        
        // Variables declaration - do not modify                     
        private javax.swing.JLabel anzahlB90;
        private javax.swing.JLabel anzahlCDU;
        private javax.swing.JLabel anzahlFDP;
        private javax.swing.JLabel anzahlLinke;
        private javax.swing.JLabel anzahlNPD;
        private javax.swing.JLabel anzahlSPD;
        private javax.swing.JButton b90Button;
        private javax.swing.JLabel b90Variable;
        private javax.swing.JButton cduButton;
        private javax.swing.JLabel cduVariable;
        private javax.swing.JButton fdpButton;
        private javax.swing.JLabel fdpVariable;
        private javax.swing.JButton linkeButton;
        private javax.swing.JLabel linkeVariable;
        private javax.swing.JButton npdButton;
        private javax.swing.JLabel npdVariable;
        private javax.swing.JLabel prozentB90;
        private javax.swing.JLabel prozentCDU;
        private javax.swing.JLabel prozentFDP;
        private javax.swing.JLabel prozentLabel;
        private javax.swing.JLabel prozentLinke;
        private javax.swing.JLabel prozentNPD;
        private javax.swing.JLabel prozentSPD;
        private javax.swing.JButton spdButton;
        private javax.swing.JLabel spdVariable;
        private javax.swing.JLabel stimmenGesamt;
        private javax.swing.JLabel stimmenLabel;
        // End of variables declaration                   
        
        // Eigene Variablen
        
        int spdAnzahl = 0;
        int cduAnzahl = 0;
        int fdpAnzahl = 0;
        int b90Anzahl = 0;
        int linkeAnzahl = 0;
        int npdAnzahl = 0;
        int gesamtStimmen = 0;
    }

    Schon mal Danke für jegliche Hilfe.

    Gruß,
    Moritz
     

  2. #2
    xanadoo xanadoo ist offline Mitglied Gold
    Registriert seit
    Mar 2005
    Beiträge
    119
    Das lieg an den Datentypen in deiner Rechnung

    Wenn der Datentyp der Anzahl Stimmen int ist, dann gibt die Rechnung von deinem Beispiel (1 von 3 Simmen) 1 / 3 = 0.
    Denn wenn 2 Operanten int sind, so ist das Ergebniss auch ein int.
    Somit wird dass 0.333... auf 0 abgerundet.
     

  3. #3
    TheJadix TheJadix ist offline Mitglied Gold
    Registriert seit
    Sep 2005
    Ort
    Bremerhaven
    Beiträge
    220
    Hallo,

    das ist eben das Problem bei Integern ! Die haben keine Nachkommastellen !

    2 durch 3 mal 100 = 0

    weil

    2 durch 3 = 0 mal 100 = 0

    mach einfach

    2 mal 100 durch 3 = 66 !

    oder arbeite mit float oder double !

    Gruß Jadix
     
    Signatur ? ? ? So ein Humbug ! ! !

  4. #4
    Avatar von MacMo
    MacMo MacMo ist offline Rookie
    Registriert seit
    Aug 2007
    Beiträge
    9
    Aah, super, vielen Dank jetzt funktioniert es!

    Gruß,
    Moritz
     

Ähnliche Themen

  1. Antworten: 10
    Letzter Beitrag: 06.03.10, 20:51
  2. Zahlen gesamt drehen
    Von quidnovi im Forum PHP
    Antworten: 4
    Letzter Beitrag: 28.09.05, 00:41
  3. Zahlen zu definierten zahlen wandeln
    Von speedyggg im Forum PHP
    Antworten: 2
    Letzter Beitrag: 26.09.05, 06:50
  4. Antworten: 3
    Letzter Beitrag: 01.05.04, 15:01
  5. Antworten: 3
    Letzter Beitrag: 02.11.01, 23:07