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

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

  
C++ Forum :: FAQ - C++/CLI ::  C++/CLI Lehrgang: Lagerverwaltung     Zeige alle Beiträge auf einer Seite Auf Beitrag antworten
Autor Nachricht
chaosoverlord
Mitglied

Benutzerprofil
Anmeldungsdatum: 18.08.2011
Beiträge: 1
Beitrag chaosoverlord Mitglied 15:12:53 18.08.2011   Titel:              Zitieren

Hallo
Machst du zufällig grad einen Lehrgang der C++/CLI beinhaltet?
Hatte da auch mal an so einer Aufgabe gesessen.
Wenn noch Fragen sind kannst dich ja per Mail melden.

Hier mal der komplette Code dafür:

C++/CLI:
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
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
#include "stdafx.h"
 
using namespace System;
 
//Maximale Kistenanzahl
const Int32 Maxzahl=3;
 
 
struct Kiste {
        Int32 kistennummer;
        Int32 breite;
        Int32 hoehe;
        Int32 laenge;
        };
 
 
//Funktionsprototypen
Void anlegen(Kiste *);
Void loeschen(Kiste *);
Void aendern(Kiste *);
Void anzeigen(Kiste *);
Void auflisten(Kiste *);
Int32 volumen(Kiste *, Int32);
 
 
int main(array<System::String ^> ^args)
{
    Int32 eingabe;
    Boolean fortsetzen=true;
 
    Kiste grossekiste[Maxzahl];
 
    //Werte auf 0 setzen
    for(Int32 zaehler=0; zaehler<Maxzahl; zaehler++) {
        grossekiste[zaehler].kistennummer=0;
        grossekiste[zaehler].breite=0;
        grossekiste[zaehler].hoehe=0;
        grossekiste[zaehler].laenge=0;
    }
 
    //Hauptmenue
    while(fortsetzen==true) {
 
        Console::Clear();
        Console::WriteLine("Bitte wählen Sie eine Funktion aus");
        Console::WriteLine("1 - Neue Kiste anlegen");
        Console::WriteLine("2 - Kiste löschen");
        Console::WriteLine("3 - Kiste ändern");
        Console::WriteLine("4 - Kiste anzeigen");
        Console::WriteLine("5 - Liste aller Kisten anzeigen");
        Console::WriteLine("9 - Programm beenden\n");
        Console::Write("Ihre Auswahl: ");
 
        eingabe=Convert::ToInt32(Console::ReadLine());
 
        switch (eingabe) {
            case 1 : anlegen(grossekiste);
                break;
            case 2 : loeschen(grossekiste);
                 break;
            case 3 : aendern(grossekiste);
                 break;
            case 4 : anzeigen(grossekiste);
                 break;
            case 5 : auflisten(grossekiste);
                 break;
            case 9 :fortsetzen=false;
                 break;
            default : Console::WriteLine("Falsche Eingabe");
        }
    }
 
    return 0;
}
 
 
//Funktionen
Void anlegen(Kiste anlegen[Maxzahl]) {
    Int32 nummer;
    Boolean stop=false;
 
 
    Console::WriteLine("\nWelche Kiste soll neu angelegt werden?");
    Console::Write("Bitte geben Sie eine Nummer fuer die Kiste ein: ");
    nummer=Convert::ToInt32(Console::ReadLine());
    if(nummer==0) {
        Console::WriteLine("Ungueltige Kistennummer");
        stop=true;
        Console::ReadLine();
    }
 
    if(stop==false) {
        for(Int32 zaehler=0; zaehler<Maxzahl; zaehler++) {
            if(anlegen[zaehler].kistennummer==nummer){
                Console::WriteLine("Kiste schon vorhanden");
                Console::ReadLine();
                stop=true;
            }
        }
    }
 
    if(stop==false){
            for(Int32 zaehler1=0; zaehler1<Maxzahl; zaehler1++){
                if(anlegen[zaehler1].kistennummer==0){
                    anlegen[zaehler1].kistennummer=nummer;
                    Console::WriteLine("\nBitte geben Sie die Kistendaten ein:");
                    Console::Write("\nBreite: ");
                    anlegen[zaehler1].breite=Convert::ToInt32(Console::ReadLine());
                    Console::Write("Hohehe: ");
                    anlegen[zaehler1].hoehe=Convert::ToInt32(Console::ReadLine());
                    Console::Write("Laenge:");
                    anlegen[zaehler1].laenge=Convert::ToInt32(Console::ReadLine());
                    Console::ReadLine();
                    break;
                }
            }
    }
};
 
 
Void loeschen(Kiste lKiste[Maxzahl]) {
    Int32 nummer2;
    Boolean treffer=false;
 
    Console::WriteLine("\nWelche Kiste soll gelöscht werden?");
    Console::Write("Bitte geben Sie die Nummer der Kiste ein: ");
    nummer2=Convert::ToInt32(Console::ReadLine());
    for(Int32 i=0; i<Maxzahl; i++) {
        if(lKiste[i].kistennummer==nummer2) {
            lKiste[i].kistennummer=0;
            lKiste[i].breite=0;
            lKiste[i].hoehe=0;
            lKiste[i].laenge=0;
            treffer=true;
            break;
        }
    }
    if (treffer==false) {
            Console::WriteLine("Kiste nicht vorhanden!");
            Console::ReadLine();
        }
};
 
 
Void aendern(Kiste bKiste[Maxzahl]){
    Int32 nummer3;
    Boolean treffer=false;
 
    Console::Write("\nWelche Kiste möchten Sie aendern?: ");
    nummer3=Convert::ToInt32(Console::ReadLine());
 
    if(nummer3==0) {
        Console::WriteLine("Ungueltige Kistennummer");
        treffer=true;
        Console::ReadLine();
    }
 
    if(treffer==false) {
        for(Int32 i=0; i<Maxzahl; i++) {
                if (bKiste[i].kistennummer==nummer3){
                    Console::WriteLine("\nBitte geben Sie die neuen Kistendaten ein.");
                    Console::Write("\nBreite: ");
                    bKiste[i].breite=Convert::ToInt32(Console::ReadLine());
                    Console::Write("Hoehe: ");
                    bKiste[i].hoehe=Convert::ToInt32(Console::ReadLine());
                    Console::Write("Laenge: ");
                    bKiste[i].laenge=Convert::ToInt32(Console::ReadLine());
                    Console::ReadLine();
                    treffer=true;
                    break;
                }
        }
    }
               
    if (treffer==false) {
        Console::WriteLine("Kiste nicht vorhanden");
        Console::ReadLine();
    }
};
 
 
Void anzeigen(Kiste akiste[Maxzahl]) {
    Int32 nummer4;
    Boolean treffer=false;
 
    Console::Write("\nWelche Kiste möchten Sie azeigen?: ");
    nummer4=Convert::ToInt32(Console::ReadLine());
 
    if(nummer4==0) {
        Console::WriteLine("Ungueltige Kistennummer");
        treffer=true;
        Console::ReadLine();
    }
 
    if(treffer==false) {
        for(Int32 i=0; i<Maxzahl; i++) {
            if (akiste[i].kistennummer==nummer4){
                Console::WriteLine("\nKistennummer\tBreite\tHoehe\tLaenge\tVolumen");
                Console::WriteLine("{0}\t\t{1}\t{2}\t{3}\t{4}", akiste[i].kistennummer, akiste[i].breite, akiste[i].hoehe, akiste[i].laenge, volumen(akiste, i));
                Console::ReadLine();
                treffer=true;
            }
        }
    }
           
    if (treffer==false) {
        Console::WriteLine("Kiste nicht vorhanden");
        Console::ReadLine();
    }
};
 
 
Void auflisten(Kiste alles[Maxzahl]) {
    Boolean nobox=true;
    Int32 a=0;
    Int32 b=0;
 
    Console::Clear();
    Console::WriteLine("Kistennummer\tBreite\tHoehe\tLaenge\tVolumen");
    for(Int32 u=0; u<Maxzahl; u++) {
        if(alles[u].kistennummer!=0) {
            Console::WriteLine("{0}\t\t{1}\t{2}\t{3}\t{4}", alles[u].kistennummer, alles[u].breite, alles[u].hoehe, alles[u].laenge, volumen(alles, u));
            b++;
            //begrenzung der kistendaten auf 20 zeilen pro seite
            if(b==20){
                Console::Write("\nMit Enter zur nächsten seite zu blaettern");
                b=0;
                Console::ReadLine();
                Console::Clear();
                Console::WriteLine("Kistennummer\tBreite\tHoehe\tLaenge\tVolumen");
            }
        nobox=false;
 
        }
    }
       
 
    while (nobox==true) {
            if (alles[a].kistennummer==0) {
                a++;
                if(a<Maxzahl && alles[(Maxzahl-1)].kistennummer==0) {
                    Console::WriteLine("\nKeine Kiste vorhanden");
                    nobox=false;
                }
            }
    }  
 
    Console::Write("\nEnter-Taste druecken fuer Hauptmenue");
    Console::ReadLine();
};
 
 
Int32 volumen(Kiste vkiste[Maxzahl], Int32 zaehler) {
    Int32 v;
    v=vkiste[zaehler].breite*vkiste[zaehler].hoehe*vkiste[zaehler].laenge;
    return v;
}
Werbeunterbrechung
champman
Mitglied

Benutzerprofil
Anmeldungsdatum: 12.08.2007
Beiträge: 83
Beitrag champman Mitglied 18:28:29 20.08.2011   Titel:              Zitieren

Lieben Dank Chaosoverlord. Hast mit dem Lehrgang den Nagel auf den Kopf getroffen.

Werde mich diese Woche ein wenig mit Deinem Code auseinandersetzen und mit bei Dir melden, wenn ich noch Fragen habe. Schließlich möchte ich auch verstehen und nicht abpinnen.

In der ersten, schnellen Durchsicht ist mir eine Kleinigkeit aufgefallen, aber dazu dann in der nächsten Woche. Jetzt habe ich erst mal Weekend.

cahmpman
C++ Forum :: FAQ - C++/CLI ::  C++/CLI Lehrgang: Lagerverwaltung   Auf Beitrag antworten

Zeige alle Beiträge auf einer Seite




Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Sie können keine Beiträge in dieses Forum schreiben.
Sie können auf Beiträge in diesem Forum nicht 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.