Echo]6[
08-09-2006, 10:04
Hallo!
Ich habe ein hier kleines Programm indem ich Artikel eingeben und mir nachher auch anzeigen lassen kann. Doch nun möchte ich gerne bei der Ausgabe (Menüpunkt 2), dass die Artikel nach der Artikelnr. sortiert werden, aber ich bekomme es einfach nicht hin. Ich hoffe ihr könnt mir helfen! :)
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
struct _Artikel
{
char _cName[31];
int _nNummer;
long _lLagerbestand;
double _lfPreis;
bool _bGefuellt;
};
void main()
{
struct _Artikel Artikel[10];
int _nMenu = 0;
bool _bEingabe = false;
bool _bWeitereEingabe = true;
char _cWahl;
while(_nMenu != 5)
{
fflush(stdin);
printf("================Lagerverwaltung================\n");
printf("Zur Eingabe von Artikeln bitte \"1\" eingeben\n");
printf("Zur Ausgabe der Artikel bitte \"2\" eingeben\n");
printf("Zum weitere Artikel eingeben bitte \"3\" eingeben\n");
printf("Zum Artikel Loeschen bitte \"4\" eingeben\n");
printf("Zum Beenden des Programms bitte \"5\" eingeben\n");
printf("\n%s", "Eingabe: ");
scanf("%d",&_nMenu);
if(_nMenu == 1)
{
for(int i=0;i<=9;i++)
{
if(_bWeitereEingabe == true)
{
printf("\n--Artikel-- %li",i+1);
printf("\nBitte geben Sie den Artikelnamen ein\n");
scanf("%s", &Artikel[i]._cName);
printf("Bitte geben Sie den Artikelnummer ein\n");
scanf("%d", &Artikel[i]._nNummer);
printf("Bitte geben Sie den Lagerbestand ein\n");
scanf("%li", &Artikel[i]._lLagerbestand);
printf("Bitte geben Sie den Preis ein\n");
scanf("%lf", &Artikel[i]._lfPreis);
Artikel[i]._bGefuellt = true;
printf("\n%s", "Weiteren Artikel eingeben (j/n): ");
scanf("%s", &_cWahl);
if(_cWahl == 'j')
{
_bWeitereEingabe = true;
}
else if(_cWahl == 'n')
{
printf("\n%s", "");
_bWeitereEingabe = false;
}
else
{
printf("\n%s", "Bitte \"j\" oder \"n\" eingeben!");
}
}
_bEingabe = true;
}
}
else if(_nMenu == 2)
{
if(_bEingabe == true)
{
for(int j=0;j<=9;j++)
{
if(Artikel[j]._bGefuellt == true)
{
printf("\nArtikel %li\n",j+1);
printf("***********");
printf("\nArtikelname: %s", Artikel[j]._cName);
printf("\nArtikelnummer: %d", Artikel[j]._nNummer);
printf("\nLagerbestand: %li", Artikel[j]._lLagerbestand);
printf("\nPreis des Aritkels: %lf", Artikel[j]._lfPreis);
printf("\n\n");
}
}
}
else
{
printf("\n%s", "Es muss erst eine Eingabe gemacht werden!\n\n\n");
}
}
else if(_nMenu == 3)
{
_bWeitereEingabe = true;
for(int k=0;k<=9;k++)
{
if(Artikel[k]._bGefuellt != true)
{
if(_bWeitereEingabe == true)
{
printf("\n--Artikel-- %li",k+1);
printf("\nBitte geben Sie den Artikelnamen ein\n");
scanf("%s", &Artikel[k]._cName);
printf("Bitte geben Sie den Artikelnummer ein\n");
scanf("%d", &Artikel[k]._nNummer);
printf("Bitte geben Sie den Lagerbestand ein\n");
scanf("%li", &Artikel[k]._lLagerbestand);
printf("Bitte geben Sie den Preis ein\n");
scanf("%lf", &Artikel[k]._lfPreis);
Artikel[k]._bGefuellt = true;
printf("\nWeiteren Artikel eingeben (j/n): ");
scanf("%s", &_cWahl);
if(_cWahl == 'j')
{
_bWeitereEingabe = true;
}
else if(_cWahl == 'n')
{
printf("\n%s", "");
_bWeitereEingabe = false;
}
else
{
printf("\nBitte \"j\" oder \"n\" eingeben!");
}
}
}
}
}
else if(_nMenu == 5)
{
exit(0);
}
else
{
printf("\n%s", "Bitte nur \"1\",\"2\", \"3\", \"4\" oder \"5\" eingeben");
}
}
}
Ich habe ein hier kleines Programm indem ich Artikel eingeben und mir nachher auch anzeigen lassen kann. Doch nun möchte ich gerne bei der Ausgabe (Menüpunkt 2), dass die Artikel nach der Artikelnr. sortiert werden, aber ich bekomme es einfach nicht hin. Ich hoffe ihr könnt mir helfen! :)
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
struct _Artikel
{
char _cName[31];
int _nNummer;
long _lLagerbestand;
double _lfPreis;
bool _bGefuellt;
};
void main()
{
struct _Artikel Artikel[10];
int _nMenu = 0;
bool _bEingabe = false;
bool _bWeitereEingabe = true;
char _cWahl;
while(_nMenu != 5)
{
fflush(stdin);
printf("================Lagerverwaltung================\n");
printf("Zur Eingabe von Artikeln bitte \"1\" eingeben\n");
printf("Zur Ausgabe der Artikel bitte \"2\" eingeben\n");
printf("Zum weitere Artikel eingeben bitte \"3\" eingeben\n");
printf("Zum Artikel Loeschen bitte \"4\" eingeben\n");
printf("Zum Beenden des Programms bitte \"5\" eingeben\n");
printf("\n%s", "Eingabe: ");
scanf("%d",&_nMenu);
if(_nMenu == 1)
{
for(int i=0;i<=9;i++)
{
if(_bWeitereEingabe == true)
{
printf("\n--Artikel-- %li",i+1);
printf("\nBitte geben Sie den Artikelnamen ein\n");
scanf("%s", &Artikel[i]._cName);
printf("Bitte geben Sie den Artikelnummer ein\n");
scanf("%d", &Artikel[i]._nNummer);
printf("Bitte geben Sie den Lagerbestand ein\n");
scanf("%li", &Artikel[i]._lLagerbestand);
printf("Bitte geben Sie den Preis ein\n");
scanf("%lf", &Artikel[i]._lfPreis);
Artikel[i]._bGefuellt = true;
printf("\n%s", "Weiteren Artikel eingeben (j/n): ");
scanf("%s", &_cWahl);
if(_cWahl == 'j')
{
_bWeitereEingabe = true;
}
else if(_cWahl == 'n')
{
printf("\n%s", "");
_bWeitereEingabe = false;
}
else
{
printf("\n%s", "Bitte \"j\" oder \"n\" eingeben!");
}
}
_bEingabe = true;
}
}
else if(_nMenu == 2)
{
if(_bEingabe == true)
{
for(int j=0;j<=9;j++)
{
if(Artikel[j]._bGefuellt == true)
{
printf("\nArtikel %li\n",j+1);
printf("***********");
printf("\nArtikelname: %s", Artikel[j]._cName);
printf("\nArtikelnummer: %d", Artikel[j]._nNummer);
printf("\nLagerbestand: %li", Artikel[j]._lLagerbestand);
printf("\nPreis des Aritkels: %lf", Artikel[j]._lfPreis);
printf("\n\n");
}
}
}
else
{
printf("\n%s", "Es muss erst eine Eingabe gemacht werden!\n\n\n");
}
}
else if(_nMenu == 3)
{
_bWeitereEingabe = true;
for(int k=0;k<=9;k++)
{
if(Artikel[k]._bGefuellt != true)
{
if(_bWeitereEingabe == true)
{
printf("\n--Artikel-- %li",k+1);
printf("\nBitte geben Sie den Artikelnamen ein\n");
scanf("%s", &Artikel[k]._cName);
printf("Bitte geben Sie den Artikelnummer ein\n");
scanf("%d", &Artikel[k]._nNummer);
printf("Bitte geben Sie den Lagerbestand ein\n");
scanf("%li", &Artikel[k]._lLagerbestand);
printf("Bitte geben Sie den Preis ein\n");
scanf("%lf", &Artikel[k]._lfPreis);
Artikel[k]._bGefuellt = true;
printf("\nWeiteren Artikel eingeben (j/n): ");
scanf("%s", &_cWahl);
if(_cWahl == 'j')
{
_bWeitereEingabe = true;
}
else if(_cWahl == 'n')
{
printf("\n%s", "");
_bWeitereEingabe = false;
}
else
{
printf("\nBitte \"j\" oder \"n\" eingeben!");
}
}
}
}
}
else if(_nMenu == 5)
{
exit(0);
}
else
{
printf("\n%s", "Bitte nur \"1\",\"2\", \"3\", \"4\" oder \"5\" eingeben");
}
}
}