2017-02-15 5 views
-2

Ich habe ein kleines Problem, einen Taschenrechner zu machen. Ich kann nicht in der Lage sein, den Gegenstandsnamen, nur Zahlen einzugeben. Außerdem braucht es nur den letzten Preis und die letzte Menge und multipliziert sie nicht die Gesamtheit. Update: habe ich die Änderungen an den Code über den Wert Ihrer und Pause, aber es sagt mir,2d Array-Rechner in C#

Fehler CS0029
kann nicht implizit Typen konvertieren 'string' in 'string [,]

Fehler CS0019
Operator '==' kann nicht auf operandstype'string angewendet werden [,]‘und 'int'

ich nicht scheinen kann, damit es funktioniert oder füge am Ende eine Liste hinzu. Jede Hilfe wäre willkommen.

int[] array; 
string[,] name = new string[100, 4]; 
decimal counter; 

decimal price; 
decimal subtotal; 
decimal tax; 
decimal total; 
decimal quantity; 

subtotal = 0; 
counter = 0; 

array = new int[5]; 
while (counter <= 10) 
{ 
    Console.Write("Item{0}", counter + 1); 
    Console.Write("  Enter item name: "); 
    name = Console.ReadLine(); 
    if (name == 0) 
     break; 
    Console.Write("  Enter price: "); 
    price = Convert.ToDecimal(Console.ReadLine()); 


    counter = counter + 1; 

    Console.Write("  Enter quantity: "); 
    quantity= Convert.ToInt32(Console.ReadLine()); 
    subtotal += price * quantity; 
} 
Console.WriteLine("-------------------"); 
Console.WriteLine("\nNumber of Items:{0}", counter); 
Console.WriteLine("Subtotal is {0}", subtotal); 
tax = subtotal * 0.065M; 
Console.WriteLine("Tax is {0}", tax); 
total = tax + subtotal; 
Console.WriteLine("Total is {0}", total); 
Console.WriteLine("Thanks for shopping! Please come again."); 
Console.Read(); 

Ich weiß auch, dass ich zu for (int counter = 0; counter < array.Length; counter++) im Code haben müssen, aber es wird nicht funktionieren. Vielen Dank für Ihre Zeit und Hilfe im Voraus.

+0

Ihre Namensvariable ist ein int, und Sie konvertieren die Konsoleneingabe in Integer, deshalb können Sie nur Zahlen für den Namen eingeben. Sie setzen auch Zwischensumme = "X" in der Schleife, so dass es immer auf die letzte Berechnung eingestellt wird. Sie sollten + = für eine laufende Zwischensumme verwenden. – Aaron

+0

Wo wird 'Array' verwendet? – ja72

+0

Ich habe versucht, es direkt vor der While-Schleife zu verwenden, aber ich bin mir ziemlich sicher, dass ich es falsch gemacht habe. – Shade

Antwort

-1

Vielleicht wird dieses Programm Ihnen helfen C# beim Lernen. Aber Sie müssen versprechen zu versuchen, zu verstehen, wie und warum es funktioniert. Verwenden Sie den Debugger auch, um zu sehen, wie sich jede Anweisung auf die in den Variablen gespeicherten Werte auswirkt.

class Program 
{ 
    static void Main(string[] args) 
    { 
     const int max_count = 10; 

     string[] name = new string[max_count]; 
     int[] quantity = new int[max_count]; 
     decimal[] price = new decimal[max_count]; 
     decimal subtotal = 0; 
     int count = 0; 
     // Enter Values 
     for(int i = 0; i<max_count; i++) 
     { 
      Console.Write("Item{0}", i+1); 
      Console.Write("\tEnter Item Name: "); 
      name[i]=Console.ReadLine(); 
      if(name[i].Length==0) 
      { 
       break; 
      } 
      Console.Write("\tEnter Price: "); 
      price[i]=decimal.Parse(Console.ReadLine()); 
      Console.Write("\tEnter Quantity: "); 
      quantity[i]=int.Parse(Console.ReadLine()); 
      subtotal+=quantity[i]*price[i]; 
      count+=1; 
     } 
     // Display Summary 
     Console.WriteLine("-------------------"); 
     Console.WriteLine("\nNumber of Items:{0}", count); 
     Console.WriteLine("Subtotal is {0}", subtotal); 
     decimal tax=subtotal*0.065M; 
     Console.WriteLine("Tax is {0}", tax); 
     decimal total=tax+subtotal; 
     Console.WriteLine("Total is {0}", total); 
     Console.WriteLine("Thanks for shopping! Please come again."); 
     Console.Read(); 
    } 
} 

Was Sie hier haben, ist eine Struktur (die Program) von Arrays. Es gibt drei Arrays, die jeweils einen anderen Typ des Wertes (string, int, decimal) speichern. Später sollten Sie lernen, ein einzelnes Array einer Struktur zu erstellen, die jeweils mehrere Werte enthält.

+0

Ok ich verstehe es jetzt ein wenig besser. Ich dachte an Array als etwas völlig anderes. Ich habe darüber nachgedacht als Werttyp und nicht als Variable. Danke für die Hilfe. – Shade

1

Sie versuchen, Name in eine Zahl zu konvertieren:

name = Convert.ToInt32(Console.ReadLine()); 
      if (name == 0) 
       break; 

Try "Convert.ToInt" wie folgt zu entfernen:

name = Console.ReadLine(); 
+0

Auch, Zwischensumme + = Preis * Menge; ' –