Telefonbuch mit Liste
-
Das da ist eine C++- und C-Mutation!
-
SeppJ schrieb:
Bevor ich mir 100+ Zeilen Code auf gut Glück durchlese ein guter Vorschlag: Momentanes Buch (lass mich raten: von Jürgen Wolf?) wegschmeißen, std::string, std::vector und std::list angucken, Programm nochmal neu schreiben (wird dadurch automatisch viel kürzer und viel sauberer) und staunen wie einfach das war und wie gut das funktioniert.
Benutze kein Buch.
Dies ist eben eine Aufgabe, wo ich mit structs arbeiten soll.
Bis jetzt hat mir die Aufgabe zum bessern Verständnis von Pointern geholfen, aber eben. Irgendwie verliert er mir den Pointer 'begin' im beschriebenen Fall.Das da ist eine C++- und C-Mutation!
Das heisst?
-
wapplegraph schrieb:
Das da ist eine C++- und C-Mutation!
Das heisst?
Das bedeutet, wonach auch immer du lernst, hör auf damit! Das was du gelernt hast ist großer, gefährlicher Mist. Das liegt vermutlich nicht an dir, sondern am Lehrmaterial. Wenn du danach weiterlernst wirst du immer schlechter werden in C++.
-
SeppJ schrieb:
Das bedeutet, wonach auch immer du lernst, hör auf damit! Das was du gelernt hast ist großer, gefährlicher Mist. Das liegt vermutlich nicht an dir, sondern am Lehrmaterial. Wenn du danach weiterlernst wirst du immer schlechter werden in C++.
+1
EDIT: Wenn du nicht weisst, wo im Code du Müll machst:
struct tele { char vorname[100]; //std::string bitte char nachname[100]; //std::string bitte char nummer[100]; //Arithmerischer Typ bitte tele *next; //Weg damit }; tele *telefonbuch=0; //std::vector bitte void printBook(); void newEntry(); void newEntry() { //Vergiss es! }
Lieber so:
#include <string> #include <vector> #include <iostream> struct PhonebookEntry { std::string FirstName, LastName; unsigned long int Number; }; std::vector<PhonebookEntry> Phonebook; int main() { std::cout << "Hallo zu meinem Telephon-Buch-Programm\n\n"; //Code hier hin }
-
EOutOfResources schrieb:
char nummer[100]; //Arithmerischer Typ bitte
Bei dem Punkt muß ich widersprechen - Telefonnummern bestehen zwar hauptsächlich aus Ziffern, trotzdem macht es imho keinen Sinn, die als Zahl zu speichern.
-
CStoll schrieb:
EOutOfResources schrieb:
char nummer[100]; //Arithmerischer Typ bitte
Bei dem Punkt muß ich widersprechen - Telefonnummern bestehen zwar hauptsächlich aus Ziffern, trotzdem macht es imho keinen Sinn, die als Zahl zu speichern.
Jap, eine Telefonnummer würde ich auch als std::string machen.
Mach mal bei einemairthmerischenarithmetischen eine führende Null, was ja bei einer Telefonnummer sehr häufig vorkommen sollLg freeG
-
Ich hab einen Telefonpartner, da muss ich 19 oder 20 Ziffern eingeben, je nach dem was ich dem mitteilen will, auch deswegen würde ich zu std::string raten.
-
Hier, damit ihr euch das vorstellen könnt:
Telefonnummer Partner[hier 10] + Identnr.[5] + Gruppe[1] + Untergruppe[1] + prüfen[1] + Anzahl[1 oder 2]
-
SeppJ schrieb:
...std::string, std::vector und std::list angucken, Programm nochmal neu schreiben (wird dadurch automatisch viel kürzer und viel sauberer) und staunen wie einfach das war und wie gut das funktioniert.
Wenn der OP lernen möchte, wie eine verkettete Liste funktioniert, ist er - finde ich - nicht gut beraten selbige durch std::vector oder std::list zu ersetzen.
Zu allen anderen Anmerkungen: volle Zustimmung!
-
MassNerder schrieb:
Wenn der OP lernen möchte, wie eine verkettete Liste funktioniert
Dann sollte er eine Klasse schreiben, und nicht einen Node und ein paar Funktionen...