Η εργασία είναι ατομική και ...

fairieshourglassΛογισμικό & κατασκευή λογ/κού

9 Ιουν 2012 (πριν από 5 χρόνια και 13 μέρες)

371 εμφανίσεις

- 1-

Πανεπιστήμιο Αιγαίου

Τμήμα Πολιτισμικής Τεχνολογίας & Επικοινωνίας
Αντικειμενοστραφής Προγραμματισμός Ι
∆ιδάσκων: ∆αμιανός Γαβαλάς
Θέμα: Υλοποίηση ενός αριθμητικού υπολογιστή σε Java
Ημερομηνία παράδοσης: Τετάρτη 28.12.2011
 
(Η εργασία είναι ατομική και προαιρετική!!!!

 
1. Απαιτήσεις εργασίας 
 
Να  δημιουργήσετε  μια  αριθμητικού  υπολογιστή  (calculator)  στη  γλώσσα 
προγραμματισμού  Java,  χρησιμοποιώντας  το  περιβάλλον  ανάπτυξης  εφαρμογών  (IDE) 
NetBeans. 
 
Το παραθυρικό περιβάλλον του κειμενογράφου θα μοιάζει με το παρακάτω: 
 
 
 
O  τίτλος  του  παραθύρου  θα  αναγράφει  το  ονοματεπώνυμο  και  τον  Α.Μ.  σας.  Επίσης,  θα 
έχει  ένα  μενού  (JMenuBar)  με  μία  ομάδα  επιλογών  (JMenu):  File.  Στην  ομάδα  File  θα 
συμπεριλαμβάνεται αποκλειστικά η επιλογή (JMenuItem) Exit με shortcut Alt‐F4 η οποία θα 
προκαλεί τερματισμό της εφαρμογής. Κάτω από την ομάδα File υπάρχει ένα πεδίο κειμένου 
(textfield  στο  οποίο  θα  εμφανίζονται  τα  αποτελέσματα  των  αριθμητικών  πράξεων.  Όλα  τα 
υπόλοιπα γραφικά στοιχεία είναι πλήκτρα (buttons). 
 
Ο calculator θα εκτελεί απλές αριθμητικές πράξεις (πρόσθεση, αφαίρεση, πολλαπλασιασμό, 
διαίρεση και ύψωση σε δύναμη (‘^’). Οι βασικές λειτουργίες είναι οι παρακάτω: 
 Το πάτημα οποιουδήποτε αριθμητικού ψηφίου έχει ως αποτέλεσμα την εμφάνισή του 
στο  τέλος  της  συμβολοσειράς  του  πεδίου  κειμένου  (π.χ.  αν  κάποια  δεδομένη  στιγμή 
εμφανίζεται  στο  πεδίο  κειμένου  η  συμβολοσειρά  “12+56”  και  πατηθεί  το  πλήκτρο  ‘3’, 
- 2-

τότε η συμβολοσειρά θα πρέπει να αντικατασταθεί από την “12+563”. Το ίδιο ισχύει και 
για το πλήκτρο ‘.’ 
 Αντίστοιχα  θα  λειτουργεί  και  το  πάτημα  των  πλήκτρων  των  αριθμητικών  τελεστών  (+,‐
,*,/,^).  Εφόσον  όμως  στη  συμβολοσειρά  εμφανίζεται  ήδη  κάποιος  αριθμητικός 
τελεστής,  τότε  το  πάτημα  κάποιου  άλλου  θα  έχει  ως  αποτέλεσμα  πρώτη  την  εκτέλεση 
της  αριθμητικής  πράξης,  π.χ.  αν  εμφανίζεται  η  συμβολοσειρά  “12+56”  και  πατηθεί  το 
πλήκτρο ‘*’, τότε η συμβολοσειρά θα αντικατασταθεί από την “68*”. 
 Το πάτημα του πλήκτρου ‘=’ έχει ως αποτέλεσμα την εκτέλεση της αριθμητικής πράξης, 
π.χ.  αν  εμφανίζεται  η  συμβολοσειρά  “12+56”  και  πατηθεί  το  πλήκτρο  ‘=’,  τότε  η 
συμβολοσειρά θα αντικατασταθεί από την “68”. 
 Τέλος, τo πάτημα του πλήκτρου ‘C’ θα έχει ως αποτέλεσμα τη διαγραφή του τελευταίου 
χαρακτήρα που εμφανίζεται στο πεδίο κειμένου. 
 
Επιπλέον οδηγίες: 
 
 Για την ύψωση σε δύναμη θα σας φανεί χρήσιμη η μέθοδος Math.pow(vasi, ekthetis) 
 Πιθανόν  να  χρειαστεί  να  χρησιμοποιήσετε  μεθόδους  χειρισμού  συμβολοσειρών  στη 
Java (δηλαδή μεθόδους της κλάσης String). Παραδείγματα χρήσης τέτοιων μεθόδων θα 
βρείτε στη σελίδα: http://www.java‐forums.org/java‐tutorials/2289‐java‐string.html
 
 Για  να  υπολογιστεί  η  τιμή  μιας  αριθμητικής  παράστασης  στη  Java  (όπως  η  «4+5»  ή 
«7/8») υπάρχουν διάφοροι τρόποι, π.χ. 
o Χρήση  της  κλάσης  ScriptEngine,  όπως  εξηγείται  στη  σελίδα:

http://stackoverflow.com/questions/2605032/using‐eval‐in‐java
 
o Κατά  προτίμηση,  μπορεί  να  γίνει  χρήση  της  κλάσης  java.util.StringTokenizer 
(δείτε  ένα  παράδειγμα  χρήσης  της: 
http://www.kodejava.org/examples/15.html
)  για  να  διαχωριστούν  οι 
αριθμητικοί  όροι  της  παράστασης  (π.χ.  ‘4’  και  ‘5’  στην  παράσταση  «4+5»)  από 
τον  αριθμητικό  τελεστή  π.χ.  ‘+’  στην  παράσταση  «4+5»)  ώστε  εν  συνεχεία  να 
εκτελεστεί η κατάλληλη πράξη (π.χ. πρόσθεση στην παράσταση «4+5»). 
 Εφόσον  χρειαστεί  να  μετατρέψετε  μεταβλητές  ενός  τύπου  σε  κάποιον  άλλο 
τύπο,  συμβουλευτείτε  τη  σελίδα:  http://www.rgagnon.com/javadetails/java‐
0004.html
 
 
2. Βαθμολόγηση εργασίας 
Η  εργασία  σας  θα  βαθμολογηθεί  με  βάση  το  κατά  πόσο  ικανοποιεί  τις  απαιτήσεις 
και προδιαγραφές που αναλύθηκαν στην προηγούμενη ενότητα. 
Θα συνεκτιμηθούν: 
 Το να δώσετε εύγλωττα και περιγραφικά ονόματα στις μεταβλητές σας 
 Η σωστή στοίχιση του κώδικα 
 Η παρουσία σχολίων 
Η  παράδοση  της  εργασίας  είναι  προαιρετική  και  θα  δώσει  ένα  bonus  στη 
βαθμολογία  έως  και  2  μονάδες  στην  τελική  βαθμολογία  του  μαθήματος.  Φυσικά, 
για  να  «περάσει»  κάποιος/α  το  μάθημα  θα  πρέπει  να  βαθμολογηθεί  με  βαθμό 
μεγαλύτερο ή ίσο του 5 στις γραπτές εξετάσεις. 
- 3-

Σε  περίπτωση  που  εμφανιστούν  κρούσματα  αντιγραφών,  θα  υπάρξει  αρνητική 
βαθμολογία όλων των εμπλεκομένων. 
 
3.  Οδηγίες για την παράδοση της εργασίας: 
Καταληκτική  ημερομηνία  για  την  παράδοση  της  εργασίας  είναι  η 
Τετάρτη
28.12.2011
.  Η  εργασία  είναι  ατομική
!  Η  παράδοση  θα  γίνει  ηλεκτρονικά.  Θα 
επισυνάψετε αποκλειστικά τα java αρχεία που θα δημιουργήσετε. 
 
Η  παράδοση  της  εργασίας  θα  πρέπει  να  γίνει  με  αποστολή  email
  στο  διδάσκοντα 
(dgavalas@aegean.gr
).  Στο  email  θα  πρέπει  να  επισυνάψετε  (attachment)  τα  java 
αρχεία και το subject του μηνύματος
 θα πρέπει να είναι της μορφής: 
 
<Ονοματεπώνυμο>, Α.Μ.: ......., Αντικειμενοστραφής Προγραμματισμός Ι: εργασία 
 
Το  email  αυτό  θα  πρέπει  να  το  «κοινοποιήσετε»  και  στον  εαυτό  σας  (cc: 
ctxxxxxx@ct.aegean.gr
) και να μη
 το σβήσετε από τη λίστα των αποσταλμένων email 
σας (‘Sent Items’). 
 
 
Καλή επιτυχία!