Portal > Foren > Java > Allgemeine Java-Programmierung > Kleines Rechenprogramm über Eingabeaufforderung
Antwort
 
Themen-Optionen
Alt 25.10.2005, 23:23 Nach oben    #1
Neuer Benutzer
 
Registriert seit: 23.06.2005
Beiträge: 11
Standard Kleines Rechenprogramm über Eingabeaufforderung

Hallo Gemeinde,

ich möchte mir ein kl. Rechenprog unter der Eingabeaufforderung in Win programmieren.

So weit bin ich jetzt gekommen. Ich weiss ich weiss vile zu umständlich :confused:

Code:
import java.io.*;
 
 public class JCalcS {
 	   public static void main(String echo[]){
 
		System.out.println("Es stehen folgende Rechenregel zur Verfuegung:\n +, \n-, \n *, \n (geteilt), \n Modulo ");
 
 
 
 		 // 1. Zahl einlesen und ausgeben:
 
 		System.out.println("Geben Sie die 1. Zahl ein:");
 
 		BufferedReader eingabe1 = new BufferedReader(new InputStreamReader(System.in));
 		String zeile1="";
 
 		try{  zeile1 = eingabe1.readLine();
 		}
 		catch(IOException e){ }
 		System.out.println("1. Zahl: --------> " + zeile1 + "\n");
 
 
 
 		// 2. Zahl einlesen und ausgeben:
 
 		System.out.println("Geben Sie die 2. Zahl ein:");
 
 		BufferedReader eingabe2 = new BufferedReader(new InputStreamReader(System.in));
 		String zeile2="";
 
 		try{  zeile2 = eingabe2.readLine();
 		}
 		catch(IOException e){ }
 		System.out.println("2. Zahl: --------> " + zeile2 + "\n");
 
 
 		// Operand einlesen und ausgeben:
 		System.out.println("Geben Sie den Operand ein:");
 
 		BufferedReader operand = new BufferedReader(new InputStreamReader(System.in));
 		String zeile3="";
 
 		try{  zeile3 = operand.readLine();
 		}
 		catch(IOException e){ }
 		System.out.println("Operand: --------> " + zeile3 + "\n");
 
 		switch(zeile3) {
			case '+': System.out.println("Ergebniss: " +(zeile1+zeile2));
					 break;
			case '-': System.out.println("Ergebniss: " +(zeile1-zeile2));
					 break;
			case '*': System.out.println("Ergebniss: " +(zeile1*zeile2));
					 break;
			case '/': System.out.println("Ergebniss: " +(zeile1/zeile2));
					 break;
		/*	case 'mod': System.out.println("Ergebniss: " +(zeile1zeile2));
					 break; */
 			default :  System.out.println("ungültige Option");
 
 	}
jetzt bekomme ich immer eine Fehlermeldung. Ich denke das hängt damit zusam,men. Das ich bei meinem switch-case Statement einen String als Parameter mitgebe (zeile3).

Wie kann ich das Problem lösen ?


mfg
trivial
trivial ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.10.2005, 23:38 Nach oben    #2
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 433
Standard

Hi,

bevor ich mir das näher anschaue, wäre es nett, wenn Du die Fehlermeldung auch rüberreichst. Gerade bei Java kann man da meist viel herauslesen.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.10.2005, 23:46 Nach oben    #3
kalkulon
Gast
 
Beiträge: n/a
Standard

Code:
import java.io.*;

public class JCalcS {
	public static void main(String echo[]) {

		System.out
		 	.println("Es stehen folgende Rechenregel zur Verfuegung:\n +, \n-, \n *, \n (geteilt), \n Modulo ");

		// 1. Zahl einlesen und ausgeben:

		System.out.println("Geben Sie die 1. Zahl ein:");

		BufferedReader eingabe1 = new BufferedReader(new InputStreamReader(
				System.in));
		String zeile1 = "";

		try {
			zeile1 = eingabe1.readLine();
		} catch (IOException e) {
		}
		System.out.println("1. Zahl: --------> " + zeile1 + "\n");

		// 2. Zahl einlesen und ausgeben:

		System.out.println("Geben Sie die 2. Zahl ein:");

		BufferedReader eingabe2 = new BufferedReader(new InputStreamReader(
				System.in));
		String zeile2 = "";

		try {
			zeile2 = eingabe2.readLine();
		} catch (IOException e) {
		}
		System.out.println("2. Zahl: --------> " + zeile2 + "\n");

		// Operand einlesen und ausgeben:
		System.out.println("Geben Sie den Operand ein:");

		BufferedReader operand = new BufferedReader(new InputStreamReader(
				System.in));
		
		char zeichen = 0;

		try {
			
			
			zeichen = operand.readLine().trim().charAt(0);
			
		}
		catch (IOException e) {
		}
		
		
		int a = 0, b = 0;
		
		try
		{
			a = Integer.parseInt(zeile2);
			b = Integer.parseInt(zeile2);
		}
		catch(NumberFormatException e)
		{
			
		}
		System.out.println("Operand: --------> " + zeichen + "\n");

		switch (zeichen) {
		case '+':
			System.out.println("Ergebniss: " + (a + b));
			break;
		case '-':
			System.out.println("Ergebniss: " + (a - b));
			break;
		case '*':
			System.out.println("Ergebniss: " + (a * b));
			break;
		case '/':
			System.out.println("Ergebniss: " + (a / b));
			break;
		/*	case 'mod': System.out.println("Ergebniss: " +(zeile1zeile2));
		 break; */
		default:
			System.out.println("ungültige Option");
		}
	}
}
hatte dann kein bock mehr hast irgendwie mit zeichenketten gerechnet habe ich erst gerade gesehen. Ist zwar jetzt auch unsauber am im primzip ...
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.10.2005, 23:53 Nach oben    #4
Neuer Benutzer
 
Registriert seit: 23.06.2005
Beiträge: 11
Standard

der screenshot nach der Fehlermeldung.

nachdem ich javac JCalcS.java eingegeben habe:





mfg

trivial
trivial ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.10.2005, 23:55 Nach oben    #5
kalkulon
Gast
 
Beiträge: n/a
Standard

guck dir mal das an was ich gepostet habe funktioniert im prinzip, lässt sich zumindest ausführen.... ähm mod habe ich übersehen, ... vllt machste einfach case m
 
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 25.10.2005, 23:58 Nach oben    #6
Neuer Benutzer
 
Registriert seit: 23.06.2005
Beiträge: 11
Standard

danke kalkulon, das ist fast gut. Es lässt sich compilieren.
Ich muss aber nochmal über die Rechenregeln gehen.

MAn rechnet auch nicht mit Zeichenketten, oder ?

mfg
trivial
trivial ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.10.2005, 19:09 Nach oben    #7
Oliver O.
 
Benutzerbild von Xean
 
Registriert seit: 17.08.2005
Beiträge: 426
Standard

Ach außerdem würde ich bei a und bei b ein double verwenden... sonst ist bei / dass ergebniss meistens 0 oder 1
Xean ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 26.10.2005, 20:05 Nach oben    #8
Neuer Benutzer
 
Registriert seit: 23.06.2005
Beiträge: 11
Standard Kleine Änderung

.... double statt int bei z1 und z2, aber wenn ich bei o auch double nehme
bringt er mir einen Fehler beim compilieren !
Wie kann ich einen String/char typ-casten ?


Hallo Gemeinde,

kann mir einer sagen, wieso ich nach der Eingabeaufforderung von:
"java JCalckurz 3 + 4"
immer
"Ungueltige Option" zurück bekomme?
Beim Compilieren mekkert er nicht rum.

hier mal der Code:
Code:
import java.lang.*;


public class JCalckurz{
	   public static void main(String args[])
	   {



		double z1 = 0;
		int o =  0;
		double z2 = 0;

		try
				{
					z1 = Integer.parseInt(args[0]);
				 o = Integer.parseInt(args[1]);
					z2 = Integer.parseInt(args[2]);
				}
		catch(NumberFormatException e)
		{

			 // Was könnte hier drinstehen ?

		}

		switch (o) {
			case '+': System.out.println("Ergbnis: "+(z1+z2));
					  break;

			case '-': System.out.println("Ergbnis: " +(z1+z2));
					  break;

			case '*': System.out.println("Ergbnis: " +(z1+z2));
					  break;

			case '/': System.out.println("Ergbnis: " +(z1+z2));;
					  break;

			case '%': System.out.println("Ergbnis: " +(z1+z2));;
					  break;

			default : System.out.println("Ungueltige Option");
			}
		}

}


Vielen Dank für Eure Hilfe

mfg
trivial
trivial ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.10.2005, 11:31 Nach oben    #9
Neuer Benutzer
 
Registriert seit: 23.06.2005
Beiträge: 11
Standard Es passt

Hallo Gemeinde,

Vielen Dank Allen für die Hilfsleistungen.
Jetzt passt's wie ich es wollte

Code:
import java.lang.*;


public class JCalckurz{
	   public static void main(String args[])
	   {



		double z1 = 0;
		char o =  0;
		double z2 = 0;

		try
				{
					z1 = Integer.parseInt(args[0]);
					o  = args[1].charAt(0);
					z2 = Integer.parseInt(args[2]);
				}
		catch(NumberFormatException e)
		{

			 // Was könnte hier drinstehen ?

		}

		switch (o) {
			case '+': System.out.println("Ergbnis: "+(z1+z2));
					  break;

			case '-': System.out.println("Ergbnis: " +(z1-z2));
					  break;

			case '*': System.out.println("Ergbnis: " +(z1*z2));
					  break;

			case '/': System.out.println("Ergbnis: " +(z1/z2));;
					  break;

			case '%': System.out.println("Ergbnis: " +(z1%z2));;
					  break;

			default : System.out.println("Ungueltige Option");
			}
		}

}


mfg
trivial
trivial ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 27.10.2005, 14:06 Nach oben    #10
Sym
Chefkoch-Mod
 
Benutzerbild von Sym
 
Registriert seit: 30.05.2004
Beiträge: 433
Standard

Hi,

schön! Auch schön, dass Du die Lösung noch mal gepostet hast. In Deinem Catchblock könnte z.B. stehen, dass der Anwender eine Meldung bekommt, in der steht, dass er eine falsche Eingabe gemacht hat.
__________________
Denk mal darüber nach...

Lars

ACHTUNG: wenn ich von Klassen spreche, könnte ich auch deren Instanzen meinen.
www.linuxforen.de +++ www.macuser.de +++ www.mrunix.de +++ www.lmprojects.de
Sym ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Kleines Testprojekt mit Zeichenfehlern Prophet Allgemeine Java-Programmierung 4 21.05.2006 17:06
Kleines PHP-Script gesucht sparrow Gesuche 4 26.03.2006 19:45
Kleines Smarty-Problem Chr!s PEAR, PECL und Frameworks 3 14.03.2006 23:34
kleines feines soap tutorial für php5 robo47 Literatur 5 24.01.2006 16:10
Problem mit Eingabeaufforderung spoon Allgemeine Java-Programmierung 6 29.04.2005 10:42


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:15 Uhr.


Powered by vBulletin® Version 3.7.3 (Deutsch)
Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44