Προς το περιεχόμενο

συμβολα στην Java


glaer

Προτεινόμενες αναρτήσεις

Δημοσ.

Γεια σας, ασχολουμαι με μια εργασια που εχω να κανω για την σχολη και εχω κολλησει σε ενα σημειο.

Η εργασια μας ζητα να υλοποιησουμε μια εφαρμογη client-server με tcp sockets. Ο client ζηταει απο τον χρηστη να επιλεξει ενα συμβολο μιας πραξης +,-,/,* και να δωσει και 2 αριθμους και ο server στη συνεχεια να υπολογισει το result.

Το προβλημα που εχω ειναι τα συμβολα +,-,/,* τι τυπου να τα βαλω?Δοκιμασα ως String αλλα κατι δεν παει καλα.Και οταν ερθει η ωρα ο server να ελεγξει τι συμβολο εχει για να επιλεξει την πραξη που πρεπει να κανει η συνθηκη θα ειναι if (symbol==+)? Δεν μου την παιρνει σωστη αυτη την εκφραση.

Δημοσ.

Να φανταστώ η λύση Επέλεξε το αντιστοιχο νούμερο για κάθε πράξη δε σου αρκεί ;

 

του στύλ

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);
       }
     } 
   } 

Δημοσ.

φιλε μου να σ πω οτι δν εχω ασχοληθει πολυ απλα θα προσπαθησω να δωσω μια απαντηση.Αμα στειλεις απο τον 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

}

Δημοσ.

Ευχαριστω και τους δυο παιδια. Vlaaad εχεις δικιο για το θεμα που μου λες.Μου βγαζει λαθη δεν ξερω.

Αρχειοθετημένο

Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.

  • Δημιουργία νέου...