Muss für die Schule dieses Programm schreiben , bin aber völlig überfordert.
Programmierprojekt "Kontakte":
1.Folgende Datenfelder sollen mindestens implementiert werden : Name , Vorname ,E-Mail
2.Die Datei , in der die Daten gespeichert werden , soll ausgewählt und ggf. neu angelegt werden können.
3.Das Programm soll 1000 Datensätze verarbeiten können.
4.Folgende Features sind Menügesteuert einzubauenatei wählen,Datensätze sotiert tabellarisch ausgeben, Datensatz löschen , Datensatz anhängen , Datensatz ändern, Datenfeldinhalt suchen , Programmende.
5.Die Features sollen in eigenen Funktionen implementiert werden die aus dem Menü "main" aufgerufen werden.
mach dich schlau:
* klassen (member, methoden, konstuktoren)
* dateien, cout, cin (lesen, schreiben)
* das programm in teilprobleme zerlegen. diese einzeln entwickeln und testen.
* besser im unterricht aufpassen oder alles auf den lehrer schieben.
konkrete fragen wird dir hier gerne jeder beantworten. aber deine hausaufgaben wirste schon selbst machen müssen.
__________________
entropie erfordert keine wartung
1.Das Grundlegende kann ich ja :P also cout , cin etc.
2.Der Quelltext ist zu lang für mygully glaube ich :P, also angefangen hab ich schon
3.Es liegt wirrklich am Lehrer. !
running = false;
start=false;
clrscr();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n" ;
cout<<"³ E N D E ³\n";
cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n" ;
cout<<"Programm wird beendet...."<<endl;
Sleep(5000);
exit(0);
}
//------------------------------------------------------------------------------
void Neu()
{
clrscr();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n" ;
cout<<"³ N E U E D A T E I ³\n";
cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n" ;
cout<<"Bitte geben Sie den Dateinamen(.dat) ein: ";
cin>>Datei;
cout<<"Die Datei "<<Datei<<" wird erstellt";
Sleep(3000);
start=false;
running=true;
main2();
}
//------------------------------------------------------------------------------
void Waehlen()
{
clrscr();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n" ;
cout<<"³ D A T E I W \x8E H L E N ³\n";
cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n" ;
cout << "Welche Datei wollen sie oeffnen?(.dat anhaengen)";
cin>>Datei;
Liste=fopen(Datei,"r");
if(Liste==NULL)
{
cout<<"Fehler beim Anlegen der Datei !\n";
cout<<"Bitte erstellen Sie im Hauptmen\x81 eine neue Datei!\n";
Sleep(3000);
}
else
{
cout<<"Datei gefunden!";
Sleep(3000);
start=false;
running=true;
main2();
}
}
//------------------------------------------------------------------------------
void loeschen()
{
clrscr();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n";
cout<<"³ D A T E I L \x99 S C H E N ³\n";
cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n";
fclose(Liste);
char befehl[50];
cout<<"Welche Datei wollen Sie l\x94schen\n";
gets(Datei);
strcpy(befehl, "del ");
strcat(befehl, Datei);
system(befehl);
cout<<"Die Datei "<<Datei<<" wurde gel\x94scht!"<<endl;
Sleep(3000);
}
void Ausgabe()
{ clrscr();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n" //Rahmen mit Überschrift
<<"³ D A T E N A U S G E B E N ³\n"
<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÙ\n";
fflush(stdin);
fclose(Liste);
i=0;
Liste= fopen(Datei,"r+b");
cout<<"Vorname\t\tNachname\t\tE-Mail"<<endl;
for(i;(filesize(Liste)/sizeof(Satz))>i;i++) //solange die Anzahl von Datensätzen>i ist
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
fread(&Name,sizeof(Name),1,Liste); //falls Datei doch vorhanden, auslesen
cout<<setw(10)<<Name.Vorname<<" ³"
<<setw(15)<<Name.Name<<" ³"
<<setw(25)<<Name.Mail<<" ³"
<<setw(30)<<Name.ICQ<< endl;
}
void Append()
{
clrscr();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n";
cout<<"³ D A T E N E I N G E B E N ³\n";
cout<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ\n";
fflush(stdin);
fclose(Liste);
Liste=fopen(Datei,"ab"); // Öffnen der Binärdatei zum Schreiben
while(weiter=='j') // Wenn noch nichts drin, etwas reinschreiben:
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"\nVorname: "; gets(Name.Vorname);
cout<<"\Nachname: "; gets(Name.Name);
cout<<"E-Mail: "; gets(Name.Mail);
cout<<"ICQ: "; gets (Name.ICQ);
cout<<"Noch einen (j/n)?\n"; weiter=getch(); i++;
fwrite(&Name,sizeof(Satz),1,Liste); // am Schluss wegschreiben
}
weiter='j';
}
void Suchen()
{
char Wahl3;
fflush(stdin);
fclose(Liste);
clrscr();
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÄÄ¿\n"
<<"³ D A T E N S U C H E N ³\n"
<<"ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ� �ÄÄÄÄÄÄÄÄÄÄÄÙ\n";
/*cout<<"1. Nach Vornamen suchen\n"
<<"2. Nach Nachnamen suchen\n"
<<"3. Nach E-Mail suchen\n"
<<"4. Nach ICQ-Nummer suchen\n"
<<"5.Nach Datensatznummer suchen\n";
Wahl3=getch(); */
Liste=fopen(Datei,"r+b");
while(weiter=='j') // Jetzt bestimmte Daten holen
{
SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HA NDLE), 14);
cout<<"\nWelchen Eintrag wollen Sie sehen? Nummer (1-" <<filesize(Liste)/sizeof(Satz)<<"): "; // ermittelt Zahl der Daten
cin >> i;
fseek(Liste,sizeof(Satz)*(i-1),SEEK_SET); // richtige Stelle suchen
fread(&Name,sizeof(Satz),1,Liste); // Struktur 1x lesen
cout<<Name.Vorname<<Name.Name<<"E-Mail:"<<Name.Mail<<Name.ICQ<<endl;
cout<<"Datensatz neu schreiben (j/n)?"; weiter=getch(); fflush(stdin);
if(weiter=='j')
{
cout<<"\nVorname: "; gets(Name.Vorname);
cout<<"Nachname: "; gets(Name.Name);
cout<<"E-Mail: "; gets(Name.Mail);
cout<<"ICQ: "; gets(Name.ICQ);
fseek(Liste,sizeof(Satz)*(i-1),SEEK_SET);
fwrite(&Name,sizeof(Satz),1,Liste);
}
cout<<"\nNoch einen (j/n)?"; weiter=getch();
}
}
long filesize(FILE *stream) // findet die Länge der Datei in Byte heraus
{
long curpos, length;
curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;
}
Soweit ich weiß war in diesem Abschnitt der Fehler :
long filesize(FILE *stream) // findet die Länge der Datei in Byte heraus
{
long curpos, length;
curpos = ftell(stream);
fseek(stream, 0L, SEEK_END);
length = ftell(stream);
fseek(stream, curpos, SEEK_SET);
return length;
}
Nur so nebenbei:
Wenn du ein Adressbuch schreibst, schreit das geradezu nach Klassen, und bei C++ verlangt dein Lehrer das wahrscheinlich auch und das ist von den Methoden her C++ aber von der Strucktur her C-code .
__________________
Meine Rechtschreibfehler dürft ihr gerne behalten.
------------------------------------------------------------
Füttere keine Trolle!->Also unterstütz auch nicht Appel.