Hallo Leute,
ich arbeite momentan an einem Warenwirtschafts- und Verwaltungssystem, dass ich für die UNI in einem Projekt erstellen muss. Ich komme an einer Teilaufgabe nicht weiter und würde gerne um Hilfe bitten. Das Programm schreibe ich auf einem Unix System in der Konsole. Das Programm hänge ich in den Anhang. Ich bin offen für weitere Anmerkungen bzw. Verbesserungen.
Ich muss mein Hauptprogramm um zwei neue Menüpunkte erweitern "Kunden suchen" und "Produkt suchen". Dafür brauche ich vier neue Funktionen für den Umgang mit Strings.
Die Funktion int equal (char x[], char y[]); soll zwei Zeichenketten solange vergleichen, bis eine Zeichenkette zuende ist oder bis eine Ungleichheit auftritt.
Die Funktion int einlesen (char[x], int laenge); soll in einer Schleife solange Buchstaben von der Tastatur in ein char Array schreiben, bis ein"\n" eingegeben wird oder die Länge "laenge" erreicht wird. Dafür soll man mit "getc()" gearbeitet werden. Diese Funktion soll dann alle scanf()-Aufrufe für Strings ersetzen.
Die Funktion int suche_kunde(Kunde* k, int akt_anz); soll in meiner Kundendatenbank nach einem einzugebenden Namen oder Vornamen suchen. Mit einlesen() und eqaul() soll nach dem Kunden gesucht werden und akt_anz soll den Wert mit der aktuellen Anzahl von Einträgen in der Datenbank übergeben.
Die Funktion suche_produkt(Produkt* p, int akt_anz); soll entsprechend das gleiche wie die vorherige Funtkion für meine Produkte erledigen.
Ich bin leider nach mehreren versuchen dies in mein Programm einzubauen gescheitert und bitte daher um Hilfe.
Danke schonmal
wwsmain.c :
#include <stdio.h>
#include "wwsdek.h“
int main() {
menue:
printf( "\n**************************\n"
"* Warenwirtschaftssystem *"
"**************************");
printf( "\nOptionen:\n\n"
"1: Neues Produkt eingeben\n"
"2: Neuen Kunden eingeben\n"
"3: Produkt ausgeben\n"
"4: Kunden ausgeben\n"
"5: Produktliste\n"
"6: Kundenliste\n"
"7: Produkt suchen\n"
"8: Kunden suchen\n\n"
"Auswahl: ");
scanf("%i", &auswahl);
switch (auswahl) {
case 1 :
printf( "\n**********************\n"
"* WWS Produkteingabe *"
"**********************");
printf("\nWie viele Produkte moechten Sie hinzufuegen: ");
scanf("%i", &m);
m = m + 1;
produkteingabe();
goto menue; break;
case 2 :
printf( "\n*********************\n"
"* WWS Kundeneingabe *\n"
"*********************\n");
printf("\nWie viele Kunden moechten Sie hinzufuegen: ");
scanf("%i", &n);
n = n + 1;
kundeneingabe();
goto menue; break;
case 3 :
printf( "\n**********************\n"
"* WWS Produkteingabe *"
"**********************");
printf("\nBitte geben Sie die Produkt-ID ein: ");
scanf("%i", &o);
produktausgabe();
goto menue; break;
case 4 :
printf( printf( "\n*********************\n"
"* WWS Kundenausgabe *\n"
"*********************\n");
printf( "\nBitte geben Sie die Kunden-ID ein: ");
scanf("%i", &i);
kundenausgabe();
goto menue; break;
case 5 :
printf( "\n********************\n"
"* WWS Produktliste *\n"
"********************\n");
produktliste();
goto menue; break;
case 6 :
printf( "\n*******************\n"
"* WWS Kundenliste *\n"
"*******************\n");
kundenliste();
goto menue; break;
case 7 :
goto menue; break;
case 8 :
goto menue; break;
case 0 :
exit(0); break;
default : return -1;
}
return 0;
}
Alles anzeigen
wwsdek.c :
#include "wwsdek.h"
void produkteingabe() {
for (o=1; o<m; o++) {
printf("\nBitte geben Sie die Produkt-ID fuer das %d Produkt ein: ", o);
scanf("%d", &meineProdukte[o].produktid);
printf("Produktname: ");
scanf("%s", meineProdukte[o].produktname);
printf("Preis: ");
scanf("%i", &meineProdukte[o].preis);
printf("Anzahl: ");
scanf("%i", meineProdukte[o].anzahl);
meineProdukte[o].gesamtpreis = meineProdukte[o].preis * meineProdukte[o].anzahl
}
}
void kundeneingabe() {
for (i=1; i<n; i++) {
printf("\nBitte geben Sie die Kunden-ID fuer den %d Kunden ein: ", i);
scanf("%d", &meineKunden[i].kundenid);
printf("\nNachname eingeben: ");
scanf("%s", meineKunden[i].name);
printf("Vorname eingeben: ");
scanf("%s", meineKunden[i],vorname);
}
}
void produktausgabe() {
if (meineProdukte[o].produktid == o) {
printf( "\n\n==============================\n"
"| %i |\n"
"| Produktname: %s |\n"
"| Einzelpreis: %6.2lf |\n"
"| Gesamtpreis: %6.2lf |\n"
"| Anzahl: %i |\n"
"================================\n"
,meineProdukte[o].produktid, meineProdukte[o].produktname, meineProdukte[o].preis, meineProdukte[o].gesamtpreis, meineProdukte[o].anzahl);
}
else {
printf("\nDiese Produkt-ID exestiert nicht!\n");
}
}
void kundenausgabe() {
if (meineKunden[i].kundenid == i) {
printf( "\n================================\n"
"| Kunden-ID: %i |\n"
"| Name: %s |\n"
"| Vorname: %s |\n"
"================================\n"
, meineKunden[i].kundenid, meineKunden[i].name, meineKunden[i].vorname);
}
else {
printf("\nDiese Kunden-ID exestiert nicht!\n");
}
}
void produktliste() {
for (o=1; o<m; o++) {
printf( "\nProdukt-ID: %i\n"
"Produktname: %s\n"
"Einzelpreis: %6.2lf\n"
"Gesamtpreis: %6.2lf\n"
"Anzahl: %i\n"
, meineProdukte[o].produktid, meineProdukte[o].produktname, meineProdukte[o].preis, meineProdukte[o].gesamtpreis, meineProdukte[o].anzahl
)
}
}
void kundenliste() {
for (i=1; i<n; i++) {
printf( "\nKunden-ID: %i\n"
"Name: %s\n"
"Vorname: %s\n"
, meineKunden[i].kundenid, meineKunden[i].name, meineKunden[i].vorname);
}
}
/*
int equal(char x[] char y[]) {
}
int einlesen(char x[], int laenge) {
}
int suche_kunde(Kunde* k, int akt_anz) {
}
int suche_produkt(Produkt* p, int akt_anz) {
}
*/
Alles anzeigen
wwsdek.h :
int auswahl, o, m, i, n;
void produkteingabe();
void kundeneingabe();
void produktausgabe();
void kundenausgabe();
void produktliste();
void kundenliste();
typedef struct Einprodukt {
int produktid;
char produktname[26];
double preis;
int anzahl;
double gesamtpreis;
} Produkt;
Produkt meineProdukte[20]
typedef struct Einkunde {
int kundenid;
char name[28];
char vorname[28];
} Kunde;
Kunde meineKunden[20];
Alles anzeigen
wwsmakefile.c :