Datenstrukturen:

marvellous

Mitglied
soo bin grad an einer prüfungsaufgabe:

a) Für die Realisierung eines Workflow-Management-Tools soll eine Datenstruktur für
die eingehenden Aufträge (Bestellungen) einer Weinhandlung in der Programmiersprache
C entworfen werden. Eine Bestellung muss die folgenden Daten
beinhalten:
- Auftragsnummer
- Bestelldatum mit Jahr, Monat, Tag (definieren Sie dazu einen neuen
Strukturtyp Datum)
- Lieferdatum (gleicher Typ wie Bestelldatum)
- Kundennummer
- Kundenkennung (max. 40 Zeichen)
- Verkaeufername (maximal 12 Zeichen)
- Liste für maximal 100 Zeiger auf Bestellposition
Eine Bestellposition soll folgende Komponenten besitzen:
- Weinsorte (maximal 30 Zeichen)
- Jahrgang
- Anzahl der Flaschen
- Preis einer Flasche in € und Cent
Die Datentypen sind passend zu wählen, damit kein überflüssiger Speicher belegt
wird!




int Auftragsnummer;
struct bestelldatum
{unsigned int jahr, monat, tag;};
struct lieferdatum
{unsigned int jahr, monat, tag;};
int kundennummer;
char kundenkennung[40];
char verkauefername[12];
struct bestellposition
{char weinsore[30];
int jahrgang;
int Anzal;
int preis;
}

ich habs halt mal so angefangen..ist das denn überhaupt der richtige weg?
bin froh über jede antwort:)
 
Hi

Zuerst einmal würde ich die Bestellungen auch in eine Struktur verpacken.

Und dann schreibt die Angabe, es soll kein überflüssiger Speicher belegt werden, klingt nach "keinen Speicher verschwenden!"

Für die Auftragsnummer wäre unsigned int wahrscheinlich passender, da keine Firma ihre Aufträge mit negativen Zahlen durchnummeriert.

Beim Bestelldatum reichen für Tag und Monat jeweils ein char (am besten auch unsigned), da die ja nie über 31/12 gehen können und ein unsigned char bis 255 kommt.
Für das Jahr würde ich ein unsigned short nehmen. 0 bis 65535 sollte für die Jahre wohl reichen.

Lieferdatum: Die Angabe verlangt einen Typ "Datum" ohne Betsell- oder Liefer-.
Warum machst du das Ganze nocheinmal?
Benenn das Bestelldatum einfach in Datum um und lass das Lieferdatum dafür weg.

Die Kundennummer könnte genau wie die Auftragsnummer ein unsigned vertragen.

Kundenkennung und Verkäufername sind in Ordnung.

Bei der Bestellposition:
Weinsorte ist in Ordnung, könnte aber noch ein t im Namen brauchen (Weinsore)

Für den Jahrgang reicht wie beim Datum.Jahr ein unsigned short

Anzahl auf jedenfall auch unsigned (wer bestellt schon -3 Flaschen Wein?)
Und ich bin zwar nicht der geborene Gastronom, aber gibts Bestellungen von mehr als 60000 Weinflaschen auf einmal?
Wenn nicht, reicht auch ein short statt int.

Und der Preis könnte Cent auch noch brauchen.
Nimm float.

Gruß
 
ok also is die aufgabe nicht so schwer danke..komisch dafür sind 20 minuten angesetzt..wobei für richtig programmieraufgaben meist viel weniger zeit zur verfügung steht :S
 
C++:
struct datum
{
	unsigned short jahr;
	unsigned char tag,monat;
};

struct best_position
{
	unsigned short menge;
	float einzelpreis;
	unsigned short jahrgang;
	char sorte[30];
};

struct bestellung
{
	unsigned int auftragnr,kundennr;
	struct datum bestdatum,lieferdatum;
	char kundenname[40],verkname[12];
	struct best_position positionen[100];
};

Dafür hab ich mit Angabenlesen ca. 3 Minuten gebraucht...programmiere aber auch schon länger.

Und was ist daran eigentlich kein richtiges Programmieren?
Sowas gehört eben auch dazu.
 
ja klar:D aber ich bin ein anfänger..bei den anderen sachen musst du dir halt immer erstmal richtig überlegen was du schritt für schritt machen willst :P

danke für deine hilfe:)
 
Zurück