glaer Δημοσ. 26 Ιουνίου 2011 Δημοσ. 26 Ιουνίου 2011 Γεια σας, ασχολουμαι με μια εργασια που εχω να κανω για την σχολη και εχω κολλησει σε ενα σημειο. Η εργασια μας ζητα να υλοποιησουμε μια εφαρμογη client-server με tcp sockets. Ο client ζηταει απο τον χρηστη να επιλεξει ενα συμβολο μιας πραξης +,-,/,* και να δωσει και 2 αριθμους και ο server στη συνεχεια να υπολογισει το result. Το προβλημα που εχω ειναι τα συμβολα +,-,/,* τι τυπου να τα βαλω?Δοκιμασα ως String αλλα κατι δεν παει καλα.Και οταν ερθει η ωρα ο server να ελεγξει τι συμβολο εχει για να επιλεξει την πραξη που πρεπει να κανει η συνθηκη θα ειναι if (symbol==+)? Δεν μου την παιρνει σωστη αυτη την εκφραση.
Technology fan Δημοσ. 26 Ιουνίου 2011 Δημοσ. 26 Ιουνίου 2011 Να φανταστώ η λύση Επέλεξε το αντιστοιχο νούμερο για κάθε πράξη δε σου αρκεί ; του στύλ 1) προσθεση. 2) πολλαπλασιασμός 3) αφαίρεση. 4) διαίρεση. Edit: Πιστεύω το παρακάτω παράδειγμα θα βοηθήσει σ αυτό που ψάχνεις με τον τρόπο που θέλεις. > import java.util.*; public class Calculate { public static void main(String[] args) { Scanner input=new Scanner(System.in); double num1; double num2; char operator; double result; System.out.println("Enter expressions such as 17 + 3 or 3.14159 * 4.7"); System.out.println("Use any of the operators +, -, *, /."); System.out.println("To end, enter a 0."); while (true){ System.out.println(); System.out.println("Enter Expression: "); num1 = input.nextDouble(); if (num1 == 0) break; operator = input.next().charAt(0); num2 = input.nextDouble(); switch (operator) { case '+': result = num1 + num2; break; case '-': result = num1 - num2; break; case '*': result = num1 * num2; break; case '/': result = num1 / num2; break; default: System.out.println("Unknown operator: " + operator); continue; } System.out.println("Result is " + result); } } }
Vlaaad Δημοσ. 26 Ιουνίου 2011 Δημοσ. 26 Ιουνίου 2011 φιλε μου να σ πω οτι δν εχω ασχοληθει πολυ απλα θα προσπαθησω να δωσω μια απαντηση.Αμα στειλεις απο τον client me string την πραξη θα πρεπει να περιμενει ο σερβερ string.Δες το λιγο αυτο το θεμα.Ισως πρεπει να κανει κατι τετοιο για να στειλεις την πραξη οπου εκει μεσα μπορεις να βαλεις και τους αριθμους > [b]CLIENT[/b] void sendMessage(String operation) { try{ out.writeObject(operation); out.flush(); System.out.println("operation: " + operation); } catch(IOException ioException){ ioException.printStackTrace(); } } [b]SERVER[/b] try{ operation = (String)in.readObject(); System.out.println("operation sent" + operation); kai paei legontas }
glaer Δημοσ. 26 Ιουνίου 2011 Μέλος Δημοσ. 26 Ιουνίου 2011 Ευχαριστω και τους δυο παιδια. Vlaaad εχεις δικιο για το θεμα που μου λες.Μου βγαζει λαθη δεν ξερω.
Vlaaad Δημοσ. 27 Ιουνίου 2011 Δημοσ. 27 Ιουνίου 2011 φιλε μ στειλε το μερος του κωδικα σου που παιζει το προβλημα να το κοιταξουμε
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.