*pling*
import java.io.*;
import java.util.regex.*;
/** Calculate 1.4 ; Einfacher Taschenrechner im Selbstbau.
* Dieser Taschenrechner ermöglicht es auf Konsolenebene zu addieren, subtrahieren, multiplizieren, dividieren, potenzieren
* und auch die Wurzeln aus einer gegeben Basiszahl zu ziehen.
*
* @author Philipp Maihoefer
* @version 1.4
*/
public class Calculate {
/**
*
* @return Gibt "number.trim" als getrimmten String zurück
*/
public static String eingabe(String input) {
Pattern p = Pattern.compile(input);
String number = new String();
boolean repeat = true;
while(repeat) {
try
{
BufferedReader in = new BufferedReader(new InputStreamReader(System.in));
number = in.readLine();
Matcher m = p.matcher(number);
repeat = !m.matches();
}
catch ( IOException ioe)
{
System.out.println(ioe);
}
}
return number.trim();
}
/**
*
* @param args Eingaben des Benutzers
*/
public static void main(String[] args) {
boolean repeat = true;
while (repeat) {
/**
* Eingabe der ersten Zahl
*/
System.out.println( "Erste Zahl? Basiszahl bei Potenzierung. \n Bei Quadratwurzel bitte \"q\" an die Zahl anhaengen." );
String strinGenA = eingabe("^[0-9]{1,}[\\.]?[0-9]?{1,}[q]?");
/**
* Überprüfung ob die Quadratwurzel gezogen werden soll.
*/
if(strinGenA.endsWith("q")) {
int length = strinGenA.length();
strinGenA = strinGenA.substring(0, length-1);
Double zahlDblA = Double.parseDouble(strinGenA.trim());
System.out.println(Math.sqrt(zahlDblA));
}
else {
Double zahlDblA = Double.parseDouble(strinGenA.trim());
/**
* Eingabe der zweiten Zahl
*/
System.out.println("Zweite Zahl? Oder Potenz?");
String strinGenB = eingabe("^[0-9]{1,}[\\.]?[0-9]?{1,}");
Double zahlDblB = Double.parseDouble(strinGenB.trim());
/**
* Eingabe der Rechenmethode
*/
System.out.println("Addieren(+) / Subtrahieren(-) / Multiplizieren(*) / Dividieren(
/ Potenzieren (p)?");
String StringOper = eingabe("[-:\\*\\+p]*");
System.out.println("Das Ergebnis ist:");
/**
* Überprüfung ob Division durch 0 gewünscht.
*/
if(StringOper.equals(":")&&zahlDblB.equals(0.0))
System.out.println("Division durch \"0\" nicht möglich.");
else {
/**
* Auswahl der Rechenmethode
*/
if(StringOper.equals("+"))
System.out.println(zahlDblA + zahlDblB);
else if(StringOper.equals("-"))
System.out.println(zahlDblA - zahlDblB);
else if(StringOper.equals("*"))
System.out.println(zahlDblA * zahlDblB);
else if(StringOper.equals(":"))
System.out.println(zahlDblA / zahlDblB);
else if(StringOper.equals("p"))
System.out.println(Math.pow(zahlDblA, zahlDblB));
else
System.out.println("Ungueltiger Operator. Kann die Berechnung nicht durchfuehren.");
}
}
/**
* Wiederholung gewünscht?
*/
System.out.println("Nochmal (j/n)?");
String StringRep = eingabe("[jn]");
if (StringRep.equals("n"))
repeat = false;
}
System.out.println("Vielen Dank! - Philipp Maihoefer '06");
}
}
---------------------------------
Ich wünsche mir einen Zeitsprung von plus drei Monaten!