Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Java: Lukujen käsittely

JRokka [27.11.2019 13:03:02]

#

Tämä laskee kolmesta luvusta aritmeettisen keskiarvon tai summan sekä suurimman luvun. Ohjelmaa voi muuttaa esimerkiksi laittamalla luvut itse eikä satunnaisesti.

Koodi

import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
import java.util.Random;

public class GUI_Luvut extends JApplet implements ActionListener {
    //Luodaan objektit.
    //Rivi 1
    JPanel rivi1 = new JPanel();
    JLabel teksti_1 = new JLabel("0");
    JLabel teksti_2 = new JLabel("0");
    JLabel teksti_3 = new JLabel("0");
    //Rivi 2
    JPanel rivi2 = new JPanel();
    JLabel tulos = new JLabel("0");
    JLabel tulos_2 = new JLabel("0");
    //Rivi 3
    JPanel rivi3 = new JPanel();
    JRadioButton rb1 = new JRadioButton("Summa");
    JRadioButton rb2 = new JRadioButton("Keskiarvo");
    JButton nappain = new JButton("Paina");
    public void init(){
        //Asetellaan objektit.
        GridLayout appletinAsettelu = new GridLayout(5,1,10,10);
        Container ruutu = getContentPane();
        ruutu.setLayout(appletinAsettelu);
        //Rivi 1.
        FlowLayout asettelu1 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi1.setLayout(asettelu1);
        rivi1.add(teksti_1);
        rivi1.add(teksti_2);
        rivi1.add(teksti_3);
        ruutu.add(rivi1);
        //Rivi 2
        FlowLayout asettelu2 = new FlowLayout(FlowLayout.CENTER,10,10);
        rivi2.setLayout(asettelu2);
        rivi2.add(tulos);
        rivi2.add(tulos_2);
        ruutu.add(rivi2);
        //Rivi 3
        FlowLayout asettelu3 = new FlowLayout(FlowLayout.CENTER, 10,10);
        rivi3.setLayout(asettelu3);
        rivi3.add(nappain);
        ButtonGroup bg = new ButtonGroup();
        bg.add(rb1);
        bg.add(rb2);
        rivi3.add(rb1);
        rivi3.add(rb2);
        ruutu.add(rivi3);
        setContentPane(ruutu);
        //Lisätään kuuntelija.
        nappain.addActionListener(this);
    }

    @Override
    public void actionPerformed(ActionEvent e) {
        String komento = e.getActionCommand();
        //Suoritetaan toiminto.
        if (komento.equals("Paina")){
            Random sattuma = new Random();
            //Luodaan muuttujat.
            int a = 0;
            int b = 0;
            int c = 0;
            int sm = 0; //Summa
            double ka = 0; //Keskiarvo
            //Arvotaan luvut.
            a = sattuma.nextInt(100);
            b = sattuma.nextInt(100);
            c = sattuma.nextInt(100);
            //Näytetään luvut.
            teksti_1.setText(String.valueOf(a));
            teksti_2.setText(String.valueOf(b));
            teksti_3.setText(String.valueOf(c));
            //Lasketaan summa tai keskiarvo valinnan mukaan.
            if (rb1.isSelected()){
                //Lasketaan summa.
                sm = a+b+c;
                tulos.setText("Summa: " + String.valueOf(sm));
            }
            else if (rb2.isSelected()){
                //Lasketaan aritmeettinen keskiarvo.
                ka = (a+b+c)/3.0;
                tulos.setText("Keskiarvo: " + String.valueOf(ka));
            }
            //Etsitään suurin luku.
            if (a > b && a > c){
                tulos_2.setText("Suurin luku: " + a);
            }
            else if (b > a && b > c){
                tulos_2.setText("Suurin luku: " + b);
            }
            else if (c > a && c > b){
                tulos_2.setText("Suurin luku: " + c);
            }
            else {
                tulos_2.setText("Suurinta lukua ei ole.");
            }
        }
    }
}

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta