Hypercell ein ] Hypercell aus ] Zeige Navigation ] Verstecke Navigation ]
c++.net  
   

Die mobilen Seiten von c++.net:
https://m.c-plusplus.net

  
C++ Forum :: C# und .NET ::  struct-Konstrukt in Array einlesen und an Methode übergeben     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
HeadBoard
Unregistrierter




Beitrag HeadBoard Unregistrierter 14:11:23 10.02.2018   Titel:   struct-Konstrukt in Array einlesen und an Methode übergeben            Zitieren

Hallo Gemeinde,

ich absolviere grad ein Studium (ILS) und habe zur Aufgabe, mit C# ein Lagerverwaltungsprogramm zu schreiben. Dazu soll eine struct gebaut werden, welches in ein Array eingelesen und über Methoden bearbeitet werden soll.

Leider sehe ich nix, außer dem Brett vor´m Kopf. Ich finde weder im Netz, noch in meiner Literatur eine Lösung für meinen Fehler.

Mein Code bisher :
C#:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
namespace CSHP04C___EA
{
    class Program
    {
        //die Struktur
        struct Kiste
        {
            public string id_kiste;
            public double breite;
            public double laenge;
            public double hoehe;
            public double volumen;
        }
 
        //die Methode zum Einlesen
        static Kiste Einlesen(int kistenNr)
        {
            Kiste akiste;
            Console.WriteLine("\nBitte Namen fuer Kiste {0} eingeben : ",kistenNr);
            akiste.id_kiste = Convert.ToString(Console.ReadLine());
            Console.WriteLine("\n\nDie Breite von Kiste {0} : ",kistenNr);
            akiste.breite = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Die Laenge von Kiste {0} : ",kistenNr);
            akiste.laenge = Convert.ToDouble(Console.ReadLine());
            Console.WriteLine("Die Hoehe von Kiste {0} : ",kistenNr);
            akiste.hoehe = Convert.ToDouble(Console.ReadLine());
            akiste.volumen = akiste.breite * akiste.laenge * akiste.hoehe;
            Console.WriteLine("\n\n\nDas Volumen von Kiste {0} :  {1} Liter. ",kistenNr, akiste.volumen);
            Console.WriteLine();
            return akiste;
        }
 
        //die Methode zum Auflisten
        static void Auflisten(Kiste[] liste)
        {
            foreach(Kiste element in liste)
            {
                Console.WriteLine("\nKiste {0} ", liste);
                Console.WriteLine("\nBeliebige Taste fuer Hauptmenue !!");
                Console.ReadKey();
            }
        }
 
        static void Main(string[] args)
        {
            int maximum = 2;
            Kiste[] kleineKiste = new Kiste[maximum];
            int anzahl = 0;
            char auswahl;
 
            bool repeat = true;
 
            //do -Schleife fuer Hauptmenue
            do
            {
                //das Auswahl-Menue
                Console.Clear();
                Console.WriteLine();
                Console.WriteLine("\n\t\t\t\t\t\t\t LAGERVERWALTUNG ");
                Console.WriteLine();
                Console.WriteLine(" 1 - Kiste anlegen ");
                Console.WriteLine(" 2 - Kiste auflisten ");
                Console.WriteLine(" 3 - Kiste suchen ");
                Console.WriteLine(" 4 - Kiste aendern ");
                Console.WriteLine(" 5 - Kiste loeschen \n");
                Console.WriteLine(" 0 - Programm beenden ");
                Console.WriteLine("\n\n Ihre Auswahl : ");
                auswahl = Convert.ToChar(Console.ReadLine());
 
                //der switch-Case
                switch (auswahl)
                {
                    //1 - Neuen Eintrag anlegen
                    case '1':
                        Console.Clear();
                        if (anzahl < kleineKiste.Length)
                        {
                            Einlesen(anzahl+1);
                            anzahl++;
                        }
                        else
                            Console.WriteLine("\nAlle Arrays belegt !!");
                        Console.WriteLine("\n\nBeliebige Taste fuer Hauptmenue !!");
                        Console.ReadKey();
                        break;
 
                    //2 - Eintraege auflisten
                    case '2':
                        Console.Clear();
                        if (anzahl == 0)
                        {
                            Console.WriteLine("\nEs sind noch keine Eintraege gespeichert !!");
                            Console.WriteLine("\n\nBeliebige Taste fuer Hauptmenue !! ");
                            Console.ReadKey();
                        }
                        else
                        {
                            Auflisten(kleineKiste);
                            Console.Write("\n\nBeliebige Taste fuer Menue !!");
                            Console.ReadKey();
                        }
                        break;



Die Ausgabe dazu :

Kiste CSHP04C___EA.Program+Kiste[]

Lege ich mehr Platzhalter an, kriege ich auch eine Fehlermedlung :

Unbehandelte Ausnahme: System.FormatException: Der Index, basierend auf 0 (null), muss größer als oder gleich Null sein, und kleiner als die Größe der Argumentenliste.
bei System.Text.StringBuilder.AppendFormatHelper(IFormatProvider provider, String format, ParamsArray args)
bei System.String.FormatHelper(IFormatProvider provider, String format, ParamsArray args)
bei System.IO.TextWriter.WriteLine(String format, Object arg0)
bei System.IO.TextWriter.SyncTextWriter.WriteLine(String format, Object arg0)
bei System.Console.WriteLine(String format, Object arg0)
bei CSHP04C___EA.Program.Auflisten(Kiste[] liste) in C:\Users\kiske\Documents\Visual Studio 2015\Projects\CSHP04C - EA\CSHP04C - EA\Program.cs:Zeile 47.
bei CSHP04C___EA.Program.Main(String[] args) in C:\Users\kiske\Documents\Visual Studio 2015\Projects\CSHP04C - EA\CSHP04C - EA\Program.cs:Zeile 107.


Kann mir jemand sagen, wo ich den Denkfehler habe?

Ich bedanke mich vielmals.

Mit bestem Gruß
shrotty
C++ Forum :: C# und .NET ::  struct-Konstrukt in Array einlesen und an Methode übergeben   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum antworten.
Sie können Ihre Beiträge in diesem Forum nicht bearbeiten.
Sie können Ihre Beiträge in diesem Forum nicht löschen.
Sie können an Umfragen in diesem Forum nicht mitmachen.

Powered by phpBB © 2001, 2002 phpBB Group :: FI Theme

c++.net ist Teilnehmer des Partnerprogramms von Amazon Europe S.à.r.l. und Partner des Werbeprogramms, das zur Bereitstellung eines Mediums für Websites konzipiert wurde, mittels dessen durch die Platzierung von Werbeanzeigen und Links zu amazon.de Werbekostenerstattung verdient werden kann.

Die Vervielfältigung der auf den Seiten www.c-plusplus.de, www.c-plusplus.info und www.c-plusplus.net enthaltenen Informationen ohne eine schriftliche Genehmigung des Seitenbetreibers ist untersagt (vgl. §4 Urheberrechtsgesetz). Die Nutzung und Änderung der vorgestellten Strukturen und Verfahren in privaten und kommerziellen Softwareanwendungen ist ausdrücklich erlaubt, soweit keine Rechte Dritter verletzt werden. Der Seitenbetreiber übernimmt keine Gewähr für die Funktion einzelner Beiträge oder Programmfragmente, insbesondere übernimmt er keine Haftung für eventuelle aus dem Gebrauch entstehenden Folgeschäden.