Problem mit Programm



  • hi,

    also um gleich aufn punkt zu kommen hab ich nen problem mit meinem programm.
    in dem programm soll man zuerst ein wert eingeben der in eine variable eingelesen wird.
    danach folgt eine kleine berechnung + ausgabe.
    nun kommt allerdings der knackpunkt, eigentlich will ich das nach der ausgabe sich das fenster nicht gleich wieder schließt, das ist allerdings der fall :(.
    wäre sehr dankbar für jede hilfe 🙂

    public class mwst
    {
    	public static void Main()
    	{
    
    		double dmwst, rnetto, rbrutto;
    		dmwst = 1.16;
    
    		Console.WriteLine("Bitte geben sie einen Nettobetrag ein.");
    		rnetto = Console.Read();
    		rbrutto = dmwst * rnetto;
    		Console.Write("Der Bruttobetrag ist: {0}.", rbrutto);
    		Console.ReadLine();
    
    	}
    }
    

    danke schonmal im vorraus 😉



  • Versuch es mal mit nem zweiten Console.ReadLine() nach dem ersten Aufruf.



  • Außerdem liest Console.Read() nur ein Zeichen ein, du solltest besser Console.ReadLine() verwenden und den String dann mit Convert.ToDouble() konvertieren.



  • jo danke das mit dem Console.ReadLine(); hat funktioniert :), vielen dank dafür.

    doch nun naht schon das zweite problem :/. und zwar hab ich nun das problem das er bei der rechnung irgendwas verbockt oO.
    als beispiel: ich gebe einen betrag von 100 ein, der wird ja dann mit der dmwst variable mal genommen um den bruttobetrag zu erhalten. alleridings kommt dabei nich wie geplant 116 heraus sondern : 56,84.

    programmcode ist hier:

    public class mwst
    {
        public static void Main()
        {
    
            double rnetto, rbrutto;
            const double dmwst = 1.16;
    
            Console.WriteLine("Bitte geben sie einen Nettobetrag ein.");
            rnetto = Console.Read();
            Console.ReadLine();
            rbrutto = dmwst * rnetto;
            Console.Write("Der Bruttobetrag ist: {0}.", rbrutto);
            Console.ReadLine();
    
        }
    }
    

    danke schonmal im vorraus 🙂



  • Du Solltest deine Werte noch vorher Convertieren. Und im Übrigen liest mans anders ein... :

    rnetto = double.Parse(Console.ReadLine());
    


  • kann leider net sagen was das genaue problem ist aber wenn ihr es wisst dann könntet ihr es mir ja sagen

    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;

    namespace TicketSystem
    {
    class Program
    {
    static void Main(string[] args)
    {
    double betrag,rest;
    int dauer; //--Variablen
    int auswahl = '0';
    do
    {

    Console.WriteLine("Parscheinsystem"); //--ausgabe der information
    Console.WriteLine(); //--ausgabe der information
    Console.WriteLine("50 cent pro viertel Stunde."); //--ausgabe der information
    Console.WriteLine("maximale dauer 1Std."); //--ausgabe der information
    Console.WriteLine("geben sie einen Betrag ein Max. 2 Euro"); //--ausgabe der information

    betrag = Convert.ToDouble(Console.ReadLine()); //--eingabe des betrags

    if (betrag > 2) //--ausgabe der information
    {
    Console.WriteLine("Maximaler Betrag ist 2 Euro");
    Console.WriteLine();
    Console.WriteLine("der Restbetrag wird ausgeben");
    }
    Console.WriteLine("gebe gewünschte parkdauer ein maximale eingabe 1Std"); //--auswahl der Parkdauerzeit
    Console.WriteLine("um Parkdauer zu erhöhen wähle");
    Console.WriteLine("1 ---> 15 Minuten 2 ---> 30 Minuten 3 ---> 45 Minuten 4 ---> 60 Minuten");
    dauer = Convert.ToInt16(Console.ReadLine());

    switch (dauer) //--vergleich der eingabe
    {
    case 1:
    rest = betrag - 0.5;
    Console.WriteLine("ihre parkdauer ist 15 Minuten lang");
    Console.WriteLine("Ihre Parkdauer endet um");
    Console.WriteLine();
    Console.WriteLine(rest);
    break;

    case 2:
    rest = betrag - 1;
    Console.WriteLine("Ihre Parkdauer ist 30 Minuten lang");
    Console.WriteLine("Ihre Parkdauer endet um");
    Console.WriteLine();
    Console.WriteLine(rest);
    break;

    case 3:
    rest = betrag - 1.5;

    Console.WriteLine("ihre Parkdauer ist 45 Minuten lang");
    Console.WriteLine("Ihre Parkdauer endet um ");
    Console.WriteLine();
    Console.WriteLine(rest);
    break;

    case 4:
    rest = betrag - 2;
    Console.WriteLine("ihre Parkdauer ist 60 Minuten lang");
    Console.WriteLine("Ihre Parkdauer endet um");
    Console.WriteLine();
    Console.WriteLine(rest);
    break;

    default:
    Console.WriteLine("falsche Parkdauer geld wird ausgegeben versuchen sie es erneut");

    }
    Console.WriteLine("möchten sich noch eine schein ausdrucken");
    Console.WriteLine();
    Console.WriteLine("Geben sie 'j' für einen neuen parkschein ein");
    auswahl =Convert.ToInt16(Console.ReadLine());
    }while (auswahl == '0');
    }

    }
    }



  • Und was war jetzt die Frage?



  • naja die frage ist warum das programm net geht
    habe keine ahnung davon kann nur c++



  • Wenn du jetzt noch die Güte hättest das Fehlverhalten etwas näher zu beschreiben...



  • Ich war mal so frei.

    using System;
    using System.Collections.Generic;
    using System.Text;
    
    namespace TicketSystem
    {
        class Program
        {
            static void Main(string[] args)
            {
                double betrag, rest;
                int dauer; //--Variablen 
                int auswahl = '0';
                do
                {
    
                    Console.WriteLine("Parscheinsystem"); //--ausgabe der information 
                    Console.WriteLine(); //--ausgabe der information 
                    Console.WriteLine("50 cent pro viertel Stunde."); //--ausgabe der information 
                    Console.WriteLine("maximale dauer 1Std."); //--ausgabe der information 
                    Console.WriteLine("geben sie einen Betrag ein Max. 2 Euro"); //--ausgabe der information 
    
                    betrag = Convert.ToDouble(Console.ReadLine()); //--eingabe des betrags 
    
                    if (betrag > 2) //--ausgabe der information 
                    {
                        Console.WriteLine("Maximaler Betrag ist 2 Euro");
                        Console.WriteLine();
                        Console.WriteLine("der Restbetrag wird ausgeben");
                    }
    
                    Console.WriteLine("gebe gewünschte parkdauer ein maximale eingabe 1Std"); //--auswahl der Parkdauerzeit 
                    Console.WriteLine("um Parkdauer zu erhöhen wähle");
                    Console.WriteLine("1 ---> 15 Minuten 2 ---> 30 Minuten 3 ---> 45 Minuten 4 ---> 60 Minuten");
                    dauer = Convert.ToInt16(Console.ReadLine());
    
                    switch (dauer) //--vergleich der eingabe 
                    {
                        case 1:
                            rest = betrag - 0.5;
                            Console.WriteLine("ihre parkdauer ist 15 Minuten lang");
                            Console.WriteLine("Ihre Parkdauer endet um");
                            Console.WriteLine();
                            Console.WriteLine(rest);
                            break;
    
                        case 2:
                            rest = betrag - 1;
                            Console.WriteLine("Ihre Parkdauer ist 30 Minuten lang");
                            Console.WriteLine("Ihre Parkdauer endet um");
                            Console.WriteLine();
                            Console.WriteLine(rest);
                            break;
    
                        case 3:
                            rest = betrag - 1.5;
                            Console.WriteLine("ihre Parkdauer ist 45 Minuten lang");
                            Console.WriteLine("Ihre Parkdauer endet um ");
                            Console.WriteLine();
                            Console.WriteLine(rest);
                            break;
    
                        case 4:
                            rest = betrag - 2;
                            Console.WriteLine("ihre Parkdauer ist 60 Minuten lang");
                            Console.WriteLine("Ihre Parkdauer endet um");
                            Console.WriteLine();
                            Console.WriteLine(rest);
                            break;
    
                        default:
                            Console.WriteLine("falsche Parkdauer geld wird ausgegeben versuchen sie es erneut");
                            break;//VERGESSEN! ! !
    
                    }
    
                    Console.WriteLine("möchten sich noch eine schein ausdrucken");
                    Console.WriteLine();
                    Console.WriteLine("Geben sie 'j' für einen neuen parkschein ein");
                    auswahl = Convert.ToInt16(Console.ReadLine());
                } 
                while (auswahl == '0');
            }
    
        }
    }
    
    break;
    

    nach

    default:
    

    vergessen

    using System.Linq;
    

    Kennt C# nicht.

    Gruß, Doug_HH



  • Doug_HH schrieb:

    using System.Linq;

    Kennt C# nicht.

    Doch, kennt C#

    using ist ein Schlüsselwort von C# um den Namensraum anzugeben. C# kann hier im bestenfall nur den Namensraum der referenziert wird nicht kennen.

    Linq hat in C# 3.0 Sprachelemente bekommen. Zu diesen gehört System.Linq (.Net 3.5)



  • @ kunndelbaer...

    Och ich wieder, dass ist bitter wieder aufs neue zu erfahren, das ich nicht mehr auf den neusten Stand bin. 🙂
    Mir hat man Windows 3.1 als Nachfolger von VISTA verkauft 😃
    Ich muss nachrüsten, glaube ich.

    Gruß, Doug_HH


Anmelden zum Antworten