Dator > hur man kan utveckla en enkel kalkylator med java

  • hur man kan utveckla en enkel kalkylator med java


  • Det finns ett antal olika sätt du kan gå om att skapa en kalkylator program i Java . Denna artikel kommer att ge en kalkylator genomförandet som kommer att utföra operationer när de har en sträng som innehåller två operatörer och en operation ( till exempel " 2 + 2 " ) , tillsammans med en enkel huvudsakliga metod för att ge en konsol kalkylatorn . Men kan detta program enkelt importeras till en Swing-eller AWT -baserat program eller något annat program där en matematisk förklaring måste tolkas från en sträng .

    Du behöver :
    Java
    . Textredigerare eller Java Integrated Development Environment (IDE ) .


    1 .
    Skapa ett nytt Java paket som kallas miniräknare . Om du väljer att göra detta med en särskild IDE , kommer det förmodligen att bli ett alternativ för detta i " Arkiv " -menyn . Annars kan du bara skapa en mapp någonstans på din hårddisk som heter " Calculator ".
    2 .
    Skapa " Calculator. java " klass och skapa en klass skelett av det . Återigen, om du använder en IDE , det finns säkert en möjlighet att göra detta automatiskt, men om du väljer att använda en textredigerare , skapa helt enkelt en tom vanlig textfil med " . java " för filtillägget och skriver följande inuti :

    paketet kalkylator ,
    public class Calculator { }

    3

    Declare några variabler . Du kommer att vilja två " BigDecimals " ( som måste importeras från " java. math " paket ) för operander och ett heltal för drift typ , samt några konstanter för att representera möjliga verksamhet. Redigera dina fil så det ser ut så här :

    paketet kalkylator ,
    import java. math. BigDecimal ;

    public class Calculator {
    BigDecimal operatorOne ,
    BigDecimal operatorTwo ;
    heltal operationType ;

    offentliga slutlig statisk Integer ADD=0 ;
    offentliga slutlig statisk Heltal SUB=1 ;
    offentliga slutlig statisk Integer DIV=2 ,
    offentliga slutlig statisk Integer MULT=3 ; }

    4 .
    Deklarera metoder . Denna klass kommer att använda tre metoder . Även om det kan säkert klara dig med bara en , och har många korta , lätt att förstå metoder är bättre att ha färre , mer komplexa metoder . Metoderna kommer att kallas " boolean parseString ( String s ) "," privat Integer determineOperationType ( String s ) " och " BigDecimal performCalculation ()".

    " parseString " -metoden kommer att få en sträng som representerar en aritmetisk operation-" . 2 + 2 " till exempel Den " determineOperationType "-metoden kommer att användas av " parseString " att tolka driften del av meddelandet . Metoden " performCalculation " gör matten och returnerar svaret .

    Infoga följande kod i din klass :

    boolean parseString ( String s ) {
    String [ ] operatörer=s. split ( " [ ] " ) ;
    try {
    operatorOne=new BigDecimal ( operatörer [0 ] ) ;
    operatorTwo=new BigDecimal ( operatörer [2 ]) ;
    operationType=determineOperationType ( operatörer [1 ] ) ;
    return true ; }
    catch ( NumberFormatException e) {
    System . err. println ( "FEL : Ogiltig operatör . ");
    return false ; }
    catch ( ArrayIndexOutOfBoundsException e) {
    System. err. println ( "FEL : Ogiltigt antal argument : " + operators. length ) ,
    return false ; }

    }

    privat Integer determineOperationType ( String s ) kastar NumberFormatException {
    om ( s. equals ("+")) återvända ADD ,
    else if ( s. equals ("-")) återvända SUB ,
    else if ( s. equals ("/")) återvända DIV ,
    om annat ( s. lika ("*")) återvända MULT ;
    annat kasta nytt NumberFormatException () ; }



    BigDecimal performCalculation () {
    try {
    if ( operationType == ADD ) {
    återvända operatorOne. add ( operatorTwo ) ,
    } else if ( operationType == SUB ) {
    återvända operatorOne. subtract ( operatorTwo ) ,
    } else if ( operationType == MULT ) {
    återvända operatorOne. multiply ( operatorTwo ) ,
    } else if ( operationType == DIV ) {
    återvända operatorOne . klyftan ( operatorTwo ) ,
    } else return new BigDecimal (0 ) ; }
    catch ( ArithmeticException e) {
    System. err. println ( " Aritmetiska undantag inträffade Mest troligt är en division . med noll . ");
    return new BigDecimal (0 ) .
    } }

    5
    Skriv en main-metod . Detta är ett enkelt exempel för att använda ditt nya " Calculator " klass , men i praktiken kommer du förmodligen vill importera din klass som en del av en annan mer komplicerat program. För att denna huvudsakliga metod för att arbeta , dock behöver du lägga till ytterligare ett import-sats till toppen av din klass :

    import java . util. Scanner ;

    " Scanner "är en bekvämlighet klass för att göra det lättare att läsa data från konsolen . Lägg till följande huvudsakliga metod för att din klass :

    public static void main ( String [ ] args ) {
    Räknare C=new Calculator () ;
    System. out. println ( " Ange en sträng för att representera beräkningen utförs Placera ett mellanslag mellan varje token Till exempel : . \ " 2 + 2 \ " och \ " 2 +2 \ "");
    Scanna=new Scanner ( System. in ) ,
    String s=scan . nextLine () ;

    boolean noerror=c. parseString ( s) ,
    om ( noerror ) {
    BigDecimal BD=c. performCalculation () ;
    System . out. println ( bd. toPlainString ());
    } }

    tips och varningar


  • Du kanske har märkt att koden ovan använder " BigDecimal " klass för lagring av operander och inte flyta eller dubbla primitiva datatyper . Det visar sig att små felaktigheter finns i sättet Java hanterar float och dubbla aritmetik. Normalt är dessa felaktigheter är små nog att inte fråga , men i tillämpningar där små felaktigheter är oacceptabla (i samband med valuta eller i en miniräknare , till exempel ) , bör " BigDecimal " klass istället.

Previous:Vilka är fördelarna med Java uppgradera ? Next:hur man visar en aritmetisk operator i en fråga





Relaterade artiklar


  • hur man byter en cpu för en Mac mini 1,83
  • AMD Sempron SI-40 resultat
  • top chip beslutsfattare
  • ThinkPad W700 specifikationer
  • hur man fixar en Toshiba DVD-enhet
  • compaq 5wv280 specifikationer
  • hur man öppnar en länk på samma fönster när du använder frames
  • hur man fixar en hårddisk med stiften trycks in
  • Hur använder jag ett Hauppauge HVR 1250 TV-tuner?
  • hur du ansluter till trådlösa programvara i Windows 2000