Προγραμματισμός

* Γνώση Υπολογιστών >> Προγραμματισμός >> Προγραμματισμός Java

Πώς να αναπτύξετε μια απλή αριθμομηχανή με Java

Υπάρχουν διάφοροι τρόποι που μπορείτε να πάτε για τη δημιουργία ενός προγράμματος υπολογιστή σε Java . Αυτό το άρθρο θα παράσχει μια εφαρμογή υπολογιστή που θα εκτελέσει εργασίες όταν παρέχεται με ένα string που περιέχει δύο φορέων και μια λειτουργία ( για παράδειγμα , " 2 + 2 " ) , μαζί με μια απλή κύρια μέθοδος για να παρέχουν μια εφαρμογή κονσόλας αριθμομηχανή . Ωστόσο , αυτό το πρόγραμμα μπορεί εύκολα να εισαχθεί σε ένα Swing ή AWT - based εφαρμογή ή οποιαδήποτε άλλη εφαρμογή στην οποία πρέπει να ερμηνεύεται από ένα string μία αριθμητική δήλωση . Τα πράγματα που θα χρειαστείτε
Java
επεξεργαστή κειμένου ή Java ολοκληρωμένο περιβάλλον ανάπτυξης ( IDE )
Η Εμφάνιση Περισσότερες οδηγίες
Η

1 Δημιουργήστε ένα νέο πακέτο ονομάζεται Java αριθμομηχανή . Αν επιλέξετε να το κάνετε αυτό με ένα ειδικό IDE , θα υπάρξει πιθανώς μια επιλογή γι 'αυτό το μενού \\ "Αρχείο \\" . Διαφορετικά, απλά δημιουργήστε ένα φάκελο κάπου στο σκληρό σας δίσκο που ονομάζεται " Υπολογιστής ". 2

Δημιουργήστε το \\ " Calculator.java \\ " τάξη και να δημιουργήσει μια κατηγορία σκελετό της. Και πάλι , αν χρησιμοποιείτε ένα IDE , υπάρχει πιθανότατα μια επιλογή για να το κάνει αυτό αυτόματα , αλλά αν επιλέξετε να χρησιμοποιήσετε ένα πρόγραμμα επεξεργασίας κειμένου , απλά δημιουργήστε ένα κενό αρχείο απλού κειμένου με \\ " . Java \\ " για την επέκταση του αρχείου και να γράφουν τα ακόλουθα μέσα σε αυτό :

αριθμομηχανή πακέτο

GO Υπολογιστής δημόσια τάξη { }

εικόνων 3

αναγνωρίσει κάποιες μεταβλητές . Θα ήθελα δύο \\ " BigDecimals \\" (η οποία πρέπει να εισάγονται από το \\ πακέτο " java.math \\" ) για τελεστές σας και ένας ακέραιος για τον τύπο λειτουργίας , καθώς και ορισμένες σταθερές για να αντιπροσωπεύουν τις πιθανές λειτουργίες . Επεξεργαστείτε το αρχείο σας έτσι ώστε να μοιάζει με αυτό :

αριθμομηχανή πακέτο

GO java.math.BigDecimal εισαγωγής

GO ?
Υπολογιστής δημόσια τάξη {
BigDecimal operatorOne

GO BigDecimal operatorTwo

GO Ακέραιος operationType
GO

δημόσια τελικό στατική Ακέραιος ADD = 0

GO δημόσια τελικό στατική Ακέραιος SUB = 1

GO δημόσια τελικό στατική Ακέραιος DIV = 2

GO δημόσια τελικό στατική Ακέραιος MULT = 3

GO }
Η 4

κηρύξει μεθόδους . Η κατηγορία αυτή θα χρησιμοποιήσει τρεις μεθόδους . Αν και μπορεί πιθανώς να πάρετε κοντά με ένα μόνο , που έχει πολλές σύντομες , εύκολες στην κατανόηση των μεθόδων είναι ότι καλύτερο έχει λιγότερες , πιο πολύπλοκες μεθόδους . Οι μέθοδοι θα ονομάζεται " boolean parseString ( String s ) ", " ιδιωτική Ακέραιος determineOperationType ( String s ) " και " BigDecimal performCalculation ( ) " .

Το \\ " parseString \\ " ? - " . 2 + 2 " μέθοδος θα λάβετε ένα string που αντιπροσωπεύει μια αριθμητική πράξη , για παράδειγμα το \\ " determineOperationType \\ " μέθοδος θα πρέπει να χρησιμοποιείται από \\ " parseString \\ " για να ερμηνεύσει τη λειτουργία μέρος της δήλωσης . Η μέθοδος \\ " performCalculation \\ " κάνει τα μαθηματικά και επιστρέφει την απάντηση .

Εισάγετε τον παρακάτω κωδικό στο μάθημά σας :

boolean parseString ( String s ) {
String [ ] = φορείς s.split ( \\ " [ ] \\ " ) />
try {
operatorOne = νέα BigDecimal ( φορείς [ 0 ] )
GO operatorTwo = νέα BigDecimal ( φορείς [ 2 ] )

GO operationType = determineOperationType ( φορείς [ 1 ] )

αλήθεια GO
} αλιευμάτων ( NumberFormatException ε) {
System.err.println ( \\ " . ΣΦΑΛΜΑ : Μη έγκυρο φορέα \\" )
GO
return false

GO } αλιευμάτων ( ArrayIndexOutOfBoundsException ε) {
System.err.println ( \\ " ΣΦΑΛΜΑ : Μη έγκυρος αριθμός επιχειρήματα : \\ " + operators.length )

GO επιστρέψει false
GO

} }

ιδιωτικό ακέραιος determineOperationType ( String s ) ρίχνει NumberFormatException {
αν ( s.equals ( \\ " + \\" ) ) επιστροφή ADD

GO else if ( s.equals ( \\ " - \\" ) ) SUB επιστροφή

GO else if ( s.equals ( \\ " /\\ " ) )
DIV επιστροφή GO
? else if ( s.equals ( \\ " * \\" ) ) επιστρέφει MULT

GO άλλο ρίξει νέο NumberFormatException ( )

GO }

BigDecimal performCalculation ( ) { try

{ if ( operationType == ADD ) {
επιστρέψει operatorOne.add ( operatorTwo )

GO } else if ( operationType == SUB ) {
επιστρέψει operatorOne.subtract ( operatorTwo )
GO
} else if ( operationType == MULT ) {
επιστρέψει operatorOne.multiply ( operatorTwo )

GO } else if ( operationType == DIV ) { επιστρέψει operatorOne.divide ( operatorTwo )

GO } else επιστρέψει νέα BigDecimal ( 0 )

GO } αλιευμάτων ( ArithmeticException ε) {
System.err.println ( \\ " Αριθμητική Παρουσιάστηκε εξαίρεση . πιθανότατα πρόκειται για μια διαίρεση με το μηδέν . \\" )

GO επιστρέψει νέα BigDecimal ( 0 ) />

} }
5

Γράψτε μια κύρια μέθοδο . Αυτό είναι ένα απλό παράδειγμα του προγράμματος για την χρήση των νέων \\ " Υπολογιστής \\ " την τάξη σας , αν και στην πράξη μάλλον θα θέλετε να εισαγάγετε την τάξη σας ως μέρος ενός άλλου πιο σύνθετο πρόγραμμα . Για αυτήν την κύρια μέθοδο για να λειτουργήσει, όμως , θα πρέπει να προσθέσετε ένα ακόμη δήλωση εισαγωγής στην κορυφή της κατηγορίας σας :

java.util.Scanner εισαγωγής
GO

\\ " Scanner \\ " είναι μια κατηγορία ευκολία σχεδιαστεί ώστε να είναι ευκολότερη η ανάγνωση των δεδομένων από την κονσόλα . Προσθέστε την ακόλουθη κύρια μέθοδο για την τάξη σας :

δημόσια στατική άκυρη κύρια ( String [ ] args ) {
Υπολογιστής c = νέα Υπολογιστής ( )
? GO
System.out.println ( \\ "Εισάγετε ένα κορδόνι για να εκπροσωπήσει τον υπολογισμό που πραγματοποιείται Τοποθετήστε ένα κενό διάστημα ανάμεσα σε κάθε token για παράδειγμα : \\ \\ \\ . ". 2 + 2 \\ \\ \\ " και δεν \\ \\ \\ " 2 +2 \\ \\ \\ " \\ " )

GO Scanner σάρωσης = νέο σαρωτή ( System.in )
GO
String s = scan.nextLine ( )
GO

boolean noerror = c.parseString ( s )

GO αν ( noerror ) {
BigDecimal bd = c.performCalculation ( )

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

Η
εικόνων

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα