October 13
Ci sono un certo numero di modi si può andare sulla creazione di un programma di calcolatrice in Java. Questo articolo fornisce un'implementazione calcolatrice che eseguirà le operazioni quando fornito con una stringa contenente due operatori e un'operazione (ad esempio, "2 + 2"), oltre ad un semplice metodo principale per fornire una calcolatrice console. Tuttavia, questo programma può essere facilmente importato in un'applicazione basata su AWT forcellone o o qualsiasi altra applicazione in cui una dichiarazione aritmetica ha bisogno di essere interpretato da una stringa.
1 Creare un nuovo pacchetto Java chiamato calcolatrice. Se si sceglie di fare questo con un IDE dedicato, ci sarà probabilmente una opzione per questo nel menu \ "File \". In caso contrario, basta creare una cartella da qualche parte sul disco rigido chiamato "Calcolatrice".
2 Creare la classe \ "Calculator.java \" e creare uno scheletro classe di esso. Anche in questo caso, se si utilizza un IDE, vi è probabilmente una opzione per farlo automaticamente, ma se si sceglie di utilizzare un editor di testo, è sufficiente creare un file vuoto di testo con \ ". Java \" per l'estensione del file e scrivere le seguenti dentro:
calcolatrice pacchetto
ANDARE
public class Calculator {
}
3 Dichiarare alcune variabili. Si vuole due \ "BigDecimals \" (che deve essere importato dal "java.math \" pacchetto \) per le operandi e un intero per il tipo di operazione, così come alcune costanti per rappresentare le possibili operazioni. Modificare il file in modo che appaia in questo modo:
calcolatrice pacchetto
ANDARE
importazione java.math.BigDecimal
ANDARE
public class Calculator {
BigDecimal operatorOne
ANDARE
BigDecimal operatorTwo
ANDARE
Integer operationType
ANDARE
public final static Integer ADD = 0
ANDARE
public final static Integer SUB = 1
ANDARE
public final static Integer DIV = 2
ANDARE
public final static Integer MULT = 3
ANDARE
}
4 Dichiarare metodi. Questa classe userà tre metodi. Anche se probabilmente può cavarsela con un solo, avendo molti breve, facile da comprendere metodi è meglio che avere un minor numero di metodi, più complessi. I metodi saranno chiamati "parseString booleana (String s)", "private Integer determineOperationType (String s)" e "BigDecimal performCalculation ()".
Il metodo \ "parseString \" riceverà una stringa che rappresenta un'operazione aritmetica - per esempio "2 + 2" Il \ "determineOperationType \" metodo verrà utilizzato da \ "parseString \" per interpretare la parte di funzionamento della dichiarazione . Il metodo \ "performCalculation \" fa la matematica e restituisce la risposta.
Inserire il seguente codice nella tua classe:
boolean parseString(String s) {
String[] operators = s.split(\"[ ]\")
ANDARE
try {
operatorOne = new BigDecimal(operators[0])
ANDARE
operatorTwo = new BigDecimal(operators[2])
ANDARE
operationType = determineOperationType(operators[1])
ANDARE
return true
ANDARE
} catch (NumberFormatException e) {
System.err.println(\"ERROR: Invalid operator.\")
ANDARE
return false
ANDARE
} catch (ArrayIndexOutOfBoundsException e) {
System.err.println(\"ERROR: Invalid number of arguments : \" + operators.length)
ANDARE
return false
ANDARE
}
}
private Integer determineOperationType (String s) getta NumberFormatException {
if (s.equals (\ & quot; + \ & quot;)) ADD ritorno
ANDARE
else if (s.equals(\"-\")) return SUB
ANDARE
else if (s.equals(\"/\")) return DIV
ANDARE
else if (s.equals(\"*\")) return MULT
ANDARE
else throw new NumberFormatException()
ANDARE
}
BigDecimal performCalculation () {
provare {
if (OperationType == ADD) {
tornare operatorOne.add (operatorTwo)
ANDARE
} else if (operationType == SUB) {
return operatorOne.subtract(operatorTwo)
ANDARE
} else if (operationType == MULT) {
return operatorOne.multiply(operatorTwo)
ANDARE
} else if (operationType == DIV) {
return operatorOne.divide(operatorTwo)
ANDARE
} else return new BigDecimal(0)
ANDARE
} catch (ArithmeticException e) {
System.err.println(\"Arithmetic Exception occured. Most likely this is a division by zero.\")
ANDARE
return new BigDecimal(0)
ANDARE
}
}
5 Scrivi un metodo main. Questo è un semplice programma di esempio per utilizzare la nuova classe \ "Calcolatrice \", anche se in pratica probabilmente si vuole importare la classe come parte di un altro programma più complesso. Affinché questo metodo principale per lavoro, tuttavia, è necessario aggiungere più una dichiarazione di importazione per la parte superiore della classe:
importazione java.util.Scanner
ANDARE
\ "Scanner \" è una classe convenienza progettato per rendere più facile la lettura dei dati dalla console. Aggiungere il seguente metodo principale per la classe:
public static void main(String[] args) {
Calculator c = new Calculator()
ANDARE
System.out.println(\"Enter a string to represent the calculation being performed. Place a space between each token. For example: \\\"2 + 2\\\" and not \\\"2+2\\\"\")
ANDARE
Scanner scan = new Scanner(System.in)
ANDARE
String s = scan.nextLine()
ANDARE
boolean noError = c.parseString(s)
ANDARE
if (noError) {
BigDecimal bd = c.performCalculation()
ANDARE
System.out.println(bd.toPlainString())
ANDARE
}
}