taschenrechner

Status
Nicht offen für weitere Antworten.

1984basti

Mitglied
hallo zusammen! wir müssen in der schule nen taschenrechner programmieren in java. wir haben das fach aber gerade einmal ein halbes jahr und noch nicht viel in java gelernt. mein problem sind die rechenfunktionen. die zahlenfelder hab ich schon fertig, hier ein beispiel:

Code:
if (e.getSource()==zwei)
{
    String text = anzeige.getText();
    anzeige.setText(text + "2");
}

aber wie schreibe ich die anweisungen für die felder "plus", "minus", "mal", und "durch"?

wäre nett wenn mir jemand helfen kann!
lg basti
 

EagleEye

Bekanntes Mitglied
wie soll der denn das berechnen wie ein "normaler" taschenrechner stück für stück oder soll er das alles mit einmal einlesen und dann alles berechnen und soll er die rechenregeln beachten?
 

EagleEye

Bekanntes Mitglied
noch vergessen wenn du auf einen button drückst ruf doch einfach ne methode auf die nen int übergeben bekommt und dann holste dir einfach den text ausm feld und hänge den wert hintenran geht einfacher
Code:
private void eingabe(int wert){
eingabefeld.setText(eingabefeld.getText()+wert);
}
 

1984basti

Mitglied
hatte ich erst, dürfen wir aber nicht!

das mit beachtung der rechenregeln ist zusatzaufgabe, muss aber nicht sein!
hier die datei die die berechnung durchführen soll


Code:
package aufgabe7;
import java.awt.*;

class Fenster extends Frame implements ActionListener		
{
	protected TextField anzeige; 
	protected Button nul, eins, zwei, drei, vier;
	protected Button fuenf, sechs, sieben, acht, neun;
	protected Button plus, minus, mal, durch, komma, gleich; 										
	protected Button beenden, loeschen;

	public Fenster (String titel)	
	{
		super (titel);			
		anzeige = new TextField ("0", 10);
		nul 	= new Button ("0");
		eins	= new Button ("1");
		zwei 	= new Button ("2");
		drei 	= new Button ("3");
		vier	= new Button ("4");
		fuenf 	= new Button ("5");
		sechs 	= new Button ("6");
		sieben 	= new Button ("7");
		acht 	= new Button ("8");
		neun 	= new Button ("9");
		plus 	= new Button ("+");
		minus 	= new Button ("-");
		mal 	= new Button ("*");
		durch 	= new Button ("/");
		komma 	= new Button (",");
		gleich 	= new Button ("=");
		beenden = new Button ("Beenden");
		loeschen= new Button ("Loeschen");

		Panel p1 = new Panel ();								
 			p1.setLayout (new GridLayout(4,4));
			p1.add (sieben);	p1.add (acht);
			p1.add (neun);		p1.add (plus);
			p1.add (vier);		p1.add (fuenf);
			p1.add (sechs);		p1.add (minus);
			p1.add (eins);		p1.add (zwei);
			p1.add (drei);		p1.add (mal);
			p1.add (nul);		p1.add (komma);
			p1.add (gleich);	p1.add (durch);
		Panel p2 = new Panel ();
			p2.setLayout(new BorderLayout());
			p2.add ("North", anzeige);
			this.setLayout (new BorderLayout());
		Panel p3 = new Panel ();
			p3.setLayout(new FlowLayout());
			p3.add (loeschen);	p3.add (beenden);			
		this.add ("Center", p1); 
		this.add ("North", p2); 
		this.add ("South", p3);
		
		nul.addActionListener		(this);
		eins.addActionListener		(this);
		zwei.addActionListener		(this);
		drei.addActionListener		(this);
		vier.addActionListener		(this);
		fuenf.addActionListener		(this);
		sechs.addActionListener		(this);
		sieben.addActionListener	(this);
		acht.addActionListener		(this);
		neun.addActionListener		(this);
		plus.addActionListener		(this);
		minus.addActionListener		(this);
		mal.addActionListener		(this);
		durch.addActionListener		(this);
		komma.addActionListener		(this);
		gleich.addActionListener	(this);
		beenden.addActionListener	(this);
		loeschen.addActionListener	(this);
		anzeige.addFocusListener	(new MyFocusListener());
		this.addWindowListener		(new MyWindowListener(true));

		this.setBackground (Color.blue);
		this.setSize (250,200);
		this.setVisible (true);
	} 																
	
	public void actionPerformed (ActionEvent e)					
	{															
		if (e.getSource()==beenden) 								
		{
			System.exit(0);			
		}
		if (e.getSource()==nul)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "0");
		}
		if (e.getSource()==eins)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "1");
		}
		if (e.getSource()==zwei)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "2");			
		}
		if (e.getSource()==drei)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "3");		
		}
		if (e.getSource()==vier)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "4");			
		}
		if (e.getSource()==fuenf)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "5");			
		}
		if (e.getSource()==sechs)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "6");			
		}
		if (e.getSource()==sieben)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "7");			
		}
		if (e.getSource()==acht)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "8");			
		}
		if (e.getSource()==neun)
		{
			String text = anzeige.getText();
			anzeige.setText(text + "9");			
		}
		if (e.getSource()==komma)
		{
			String text = anzeige.getText();
			anzeige.setText(text + ",");			
		}
		if (e.getSource()==loeschen)
		{
			anzeige.setText("0");
			durch.transferFocus();  					
		}
		if (e.getSource()==gleich)
		{
			double ergebnis, z1, z2;
			double temp = (new Double(anzeige.getText())).doubleValue();
		}
		if (e.getSource()==plus)
		{
		
		}
		if (e.getSource()==minus)
		{
		
		}
		if (e.getSource()==mal)
		{
		
		}
		if (e.getSource()==durch)
		{
		
		}
	}

	class MyFocusListener extends FocusAdapter	
	{												
		public void focusGained (FocusEvent e)
		{
			if (e.getSource()==anzeige)	
			{
				anzeige.setText("");
				durch.transferFocus();  					
			}
		}
	}
}
[/code]
 

EagleEye

Bekanntes Mitglied
was genau dürft ihr nicht
wenn du die rechenregeln nicht beachten mußt dann einfach ne variable anlegen die summe heißt und mit der addierste ..... den wert im text feld und speicherst ihn wieder in summe
 

1984basti

Mitglied
ja ich weiß nich wie ich das umsetzt kann...

mit wechen befehlen müsste dieser code denn dann gefüllt weren:

Code:
if (e.getSource()==plus) 
{ 
     ???    
}
 

EagleEye

Bekanntes Mitglied
na am besten eine globale variable double summe machen
dann einfach in der methode summe = summe + Double.parseDouble(anzeige.getText());
 

EagleEye

Bekanntes Mitglied
damit wandelt man einen string in eine double zahl um gib auch für die anderen bereiche
 
B

bygones

Gast
äh du willst nen taschenrechner machen und kennst nicht parseDouble (kennste parseInt) ??
mit den beiden Methoden erhählst du ein double bzw. ein int aus einem String (nur mit denen kannst du dann rechnen !!)
 
Status
Nicht offen für weitere Antworten.

Ähnliche Java Themen


Oben