Hallo Dominik ...,
Na, da muss ich mich jetzt aber recht herzlichen bedanken ... für diese "freundliche Begrüßung"!
Sorry, habe ich aber leider nicht gesehen bzw. gelesen, dass "durchgehende Kleinschreibung" nicht erwünscht ist. Kann ich persönlich zwar nicht nachvollziehen, wo da das Problem liegt, aber man muss sich eben den Regeln beugen ... *fg*
Also lassen wir das, ab jetzt alles in korrekter
Rechtschreibung!
xxxAlso nachbessern bittexxx
Kannst du haben
:
xxxHallo!
Ich bin neu hier und hoffe bei Euch Hilfe zu finden. Studiere im ersten Semester Mechatronik in DA und habe bisher nicht viel Erfahrung mit dem Programmieren. Soweit bin ich immer gut selber klar gekommen nur manchmal da haberts doch noch an mangelnder Praxis & fehlendem Wissen ... hoffentlich kommt das noch!
Haben eine Praktikumsaufgabe bekommen, bei der eine "Mitarbeiterdatenbank" anzulegen ist. Eigentlich garnicht so schwierig, wenn man nicht mit Zeigern & verketteten Listen arbeiten müsste! die Elemente der Datenbank sind vorwärts & rückwärts zu verketten, dies soll über die Funktion "Eingabe" - respektive "Erstellen" erfolgen. Zwei weitere Funktionen sollen das hinzufügen von Datensätzen und die Ausgabe der erstellten Datensätze ermöglichen. Habe meine "Vorab" Version mal angehängt.
Ich weiß noch nicht, ob´s klappt ... denn ich erhalte einen Compiler-Fehler .."Funktionstil Initialisierung scheint eine Funktionsdefinition zu sein" ... na Super: SOLL JA AUCH EINE SEIN!
Aber Spass bei Seite, ich weiß nicht wo der Fehler liegt?! *grübel*
Vermutlich wird noch so einiges nicht stimmen, aber ich komme ja nicht weiter. Vermutlich stimmt bei den Zeigern auch was nicht bzw. der Übergabe des Zeigers "panfang" an die anderen Funktionen.
Wäre prima, wenn sich das mal jemand anschauen würde!
Schonmal vielen dank &
Gruß aus Mainhattan
PITxxx
Alles klar?!
Ist zwar Offtopic, aber die Bemerkung kann ich mir einfach nicht verkneifen ...!
xxxAnsonsten wo sind Deine Lösungsversuche zu sehen?xxx
In der angefügten *.zip Datei.
xxxDu bekommst hier keine fertige Lösung auf dem Präsentierteller vorgelegt, sondern bestenfalls Unterstützung bei der Lösung.xxx
Nochmal danke für die Blumen. Das habe ich auch überhaupt nicht verlangt. Daher habe ich meinen Versuch ja auch angehängt.
xxxImmer diese faulen Studenten, sogar zu faul unsere Netiquette zu beachten.xxx
Nebenbei bemerkt ist das ja schon fast unverschämt.
Ich bitte NOCHMALS vielmals um Entschuldigung! Und hoffe, das ich jetzt nicht "de-registriert" werde.
Um nun entgültig alle Unklarheiten zu beseitigen, werde ich den Quellcode im Folgenden schriftlich "nachreichen" ...:
Code:
#include <iostream.h>
#include <conio.h>
#include <iomanip.h>
struct S_GebTag
{ int Tag;
int Monat;
int Jahr;
};
struct St_mitarb
{ char Name[20];
char Vorname[20];
S_GebTag mitarb;
St_mitarb *pvor;
St_mitarb *prueck;
};
St_mitarb *panfang;
void Erstellen(St_mitarb *panfang);
void Einfuegen(St_mitarb *panfang);
void Ausgabe(St_mitarb *panfang);
void main()
{
St_mitarb *panfang;
Erstellen(panfang);
Einfuegen(panfang);
Ausgabe(panfang);
};
void Erstellen(*panfang)
{
cout << "Programmteil I, Datenbank erstellen\n\n\n";
St_mitarb *pstart=0,*preferenz=0, *panfang=0;
char again;
pstart = new St_mitarb;
pstart->prueck = 0;
pstart->pvor = 0;
preferenz = pstart;
panfang = pstart;
cout << "Bitte geben Sie den Nachnamen ein: ";
cin >> pstart->Name;
cout << "Bitte geben Sie den Vornamen ein: ";
cin >> pstart->Vorname;
cout << "Bitte geben Sie nachfolgend das Geburtsdatum an (TT.MM.JJJJ) \n\n";
cout << "Tag: ";
cin >> pstart->mitarb.Tag;
cout << "Monat: ";
cin >> pstart->mitarb.Monat;
cout << "Jahr: ";
cin >> pstart->mitarb.Jahr;
cout << endl;
cout << "Weiteren Mitarbeiter anlegen? j/n: ";
cin >> again;
cout << endl;
if(again == 'j')
{
do
{
pstart = new St_mitarb;
preferenz->pvor = pstart;
pstart->prueck = pstart;
preferenz = pstart;
preferenz->pvor = 0;
cout << "Bitte geben Sie den Nachnamen ein: ";
cin >> pstart->Name;
cout << "Bitte geben Sie den Vornamen ein: ";
cin >> pstart->Vorname;
cout << endl;
cout << "Bitte geben Sie nachfolgend das Geburtsdatum an (TT.MM.JJJJ) \n\n";
cout << "Tag: ";
cin >> pstart->mitarb.Tag;
cout << "Monat: ";
cin >> pstart->mitarb.Monat;
cout << "Jahr: ";
cin >> pstart->mitarb.Jahr;
cout << endl;
cout << "Weiteren Mitarbeiter anlegen? j/n: ";
cin >> again;
cout << endl;
}
while(again=='j');
}
preferenz->pvor = 0;
preferenz = panfang;
}
void Einfuegen(*panfang)
{
cout << "Programmteil II, in Datenbank einfügen\n\n\n";
St_mitarb *pstart=0,*preferenz=0;
char name[20];
cout <<" Nach welchem Nachnamen soll eingefuegt werden?";
cin >> name;
preferenz=panfang;
pneu=anfang;
St_mitarb *peinfuegen;
do
{
if(preferenz->Name == name)
{
peinfuegen = new St_mitarb;
peinfuegen->pvor=preferenz->pvor;
preferenz->pvor=peinfuegen;
cout << "Bitte geben Sie den Nachnamen ein: ";
cin >> peinfuegen->Name;
cout << "Bitte geben Sie den Vornamen ein: ";
cin >> peinfuegen->Vorname;
cout << endl;
cout << "Bitte geben Sie nachfolgend das Geburtsdatum an (TT.MM.JJJJ) \n\n";
cout << "Tag: ";
cin >> peinfuegen->mitarb.Tag;
cout << "Monat: ";
cin >> peinfuegen->mitarb.Monat;
cout << "Jahr: ";
cin >> peinfuegen->mitarb.Jahr;
cout << endl;
}
preferenz = preferenz->pvor;
}
while(preferenz!=NULL);
}
void Ausgabe(panfang)
{
St_mitarb *pneu, *preferenz, *panfang;
preferenz = panfang
cout <<"Ausgabe vorwaerts ...\n\n";
while(preferenz!=NULL)
{
cout << "Nachname: \t"
cout<< preferenz->Name<<endl;
cout << "Vornamen: \t";
cin >> preferenz->Vorname << endl;
cout << "Geburtsdatum ...\n";
cout << "Tag: \t";
cout << pstart->mitarb.Tag << endl;
cout << "Monat: ";
cin << pstart->mitarb.Monat << endl;
cout << "Jahr: ";
cout << pstart->mitarb.Jahr << endl << endl;
preferenz=preferenz->pvor;
}
cout << endl;
cout <<"Ausgabe rueckwaerts ...\n";
do
{
cout << "Nachname: \t"
cout<< preferenz->Name<<endl;
cout << "Vornamen: \t";
cin >> preferenz->Vorname << endl;
cout << "Geburtsdatum ...\n";
cout << "Tag: \t";
cout << pstart->mitarb.Tag << endl;
cout << "Monat: ";
cin << pstart->mitarb.Monat << endl;
cout << "Jahr: ";
cout << pstart->mitarb.Jahr << endl << endl;
pneu=pneu->prueck;
}
while( pneu!=NULL);
}
Also dann, auf ein Neues!