Hvordan utvikle en enkel kalkulator med Java

Hvordan utvikle en enkel kalkulator med Java


Det finnes en rekke måter du kan gå om å lage en kalkulator program i Java. Denne artikkelen vil gi en kalkulator implementering som skal utføre operasjoner når forsynt med en streng som inneholder to operatører og en operasjon (for eksempel "2 + 2"), sammen med en enkel hoved metode for å tilveiebringe en konsoll kalkulator søknad. Imidlertid kan dette programmet være lett importeres til en swing-eller AWT-basert program eller et annet program som en aritmetisk utsagn må tolkes fra en streng.

Bruksanvisning

1 Opprett en ny Java pakke kalt kalkulator. Hvis du velger å gjøre dette med en dedikert IDE, vil det trolig være et alternativ for dette i \ "Fil \" -menyen. Ellers bare lage en mappe et sted på harddisken din som heter "kalkulator".

2 Lag \ "Calculator.java \" klasse og lage en klasse skjelett av det. Igjen, hvis du bruker en IDE, er det sannsynligvis en mulighet til å gjøre dette automatisk, men hvis du velger å bruke en teksteditor, oppretter en tom tekstfil med \ ". Java \" for filtypen og skrive følgende inni den:

pakke kalkulator

public class Kalkulator {
}

3 Erklærer noen variabler. Du vil ønske to \ "BigDecimals \" (som må importeres fra \ "java.math \" pakke) for operander og en Integer til drift type, samt noen konstanter å representere mulige operasjoner. Rediger filen slik at den ser slik ut:

pakke kalkulator

import java.math.BigDecimal

public class Kalkulator {

BigDecimal operatorOne

BigDecimal operatorTwo

Integer operationType

public final static Integer ADD = 0

public final static Integer SUB = 1

public final static Integer DIV = 2

public final static Integer MULT = 3


}

4 Erklærer metoder. Denne klassen vil bruke tre metoder. Selv om det kan sikkert klare seg med bare en, har mange kort, enkel å forstå metoder er bedre at det å ha færre og mer kompliserte metoder. Metodene vil bli kalt "boolean parseString (String s)", "private Integer determineOperationType (String s)" og "BigDecimal performCalculation ()".

Den \ "parseString \" metoden vil motta en streng som representerer en aritmetisk operasjon - for eksempel "2 + 2." \ "determineOperationType \" metoden skal brukes av \ "parseString \" å tolke driften delen av setningen . Metoden \ "performCalculation \" gjør regnestykket og returnerer svaret.

Sett inn følgende kode inn i klassen:

boolean parseString(String s) {
String[] operators = s.split(\"[ ]\")

try {
operatorOne = new BigDecimal(operators[0])

operatorTwo = new BigDecimal(operators[2])

operationType = determineOperationType(operators[1])

return true

} catch (NumberFormatException e) {
System.err.println(\"ERROR: Invalid operator.\")

return false

} catch (ArrayIndexOutOfBoundsException e) {
System.err.println(\"ERROR: Invalid number of arguments : \" + operators.length)

return false

}
}

privat Integer determineOperationType (String s) kaster NumberFormatException {
if (s.equals (\ & quot; + \ & quot;)) tilbake ADD

else if (s.equals(\"-\")) return SUB

else if (s.equals(\"/\")) return DIV

else if (s.equals(\"*\")) return MULT

else throw new NumberFormatException()

}

BigDecimal performCalculation () {
try {
if (operationType == ADD) {
tilbake operatorOne.add (operatorTwo)

} else if (operationType == SUB) {
return operatorOne.subtract(operatorTwo)

} else if (operationType == MULT) {
return operatorOne.multiply(operatorTwo)

} else if (operationType == DIV) {
return operatorOne.divide(operatorTwo)

} else return new BigDecimal(0)

} catch (ArithmeticException e) {
System.err.println(\"Arithmetic Exception occured. Most likely this is a division by zero.\")

return new BigDecimal(0)

}
}

5 Skriv en hovedmetode. Dette er et enkelt eksempel program for å bruke den nye \ "Calculator \" klassen, men i praksis vil du sannsynligvis ønske å importere din klasse som en del av en annen mer komplekst program. For at denne viktigste metoden til å fungere, men du må legge til en mer import uttalelse til toppen av klassen:

import java.util.scanner

\ "Scanner \" er en praktisk klasse designet for å gjøre det enklere å lese data fra konsollen. Legg til følgende viktigste metoden til klassen:

public static void main(String[] args) {
Calculator c = new Calculator()

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\\\"\")

Scanner scan = new Scanner(System.in)

String s = scan.nextLine()

boolean noError = c.parseString(s)

if (noError) {
BigDecimal bd = c.performCalculation()

System.out.println(bd.toPlainString())

}
}

Hint

  • Du har kanskje lagt merke til at koden ovenfor bruker \ "BigDecimal \" class å lagre operander og ikke float eller doble primitive datatyper. Det viser seg at små unøyaktigheter eksisterer i veien Java håndterer flottør og dobbel aritmetikk. Normalt er disse unøyaktigheter er små nok til å ikke saken, men i applikasjoner der små feil er uakseptable (når håndtere valuta eller i en kalkulator, for eksempel), den \ "BigDecimal \" class bør brukes i stedet.