25. april 2002 - 00:04Der er
4 kommentarer og 2 løsninger
Tre funktioner
Hej, Jeg har lidt problemer med to funktioner jeg skal lave til et projekt, der er en adressebog, hvor name field er noeglen til min database.
De foerste funktion hedder addRecord med prototypen: int addRecord (record*&, char[],char[],char[], float); den skal tilfoeje en record til slutningen af en list og vil ikke lave en ny hvis den alllerede eksisterer med samme navn.
int isRecordInList (record *, char[]); checker for duplicater, altsaa records hvor vedkommende har identisk navn.
int deleteRecord(record *&, char name[]); vil slette foerste matchende record baseret paa navnet, hvis der er duplicater.
Haaber at der en der kan hjaelpe mig paa vej med disse funktioner:)
int addRecord (record*&, char[],char[],char[], float);
Jeg går ud fra at record peger på den første record i din list.
De resterende 4 parameter må være felterne i en adrese record. Jeg går ud fra at den første char[] er navne feltet.
Du skal iterere gennem listen for at finde ud af, om den nye record allerede findes. hvis den findes, gør du ingenting, hvis ikke , så indsætter du en ny.
int addRecord (record*&, char[] navn ,char[],char[], float) {
if (!isRecordInList(record,navn)) { // Navn kunne ikke blive fundet i listen, tilføj ny record ptr = record; while (ptr) { ptr = ptr->next; } // TODO: // ptr peger nu på den sidste record i listen. // alloker en ny record, og link den til listen. } }
Hej, Jeg takker for dit svar laffe. Ja, jeg maa hellere poste noget kode, saa i har noget at gaa udfra. Men foerst og fremmest har jeg svaert ved at genneskue hvordan add og deltefunktionerne haenger sammen. Er i skole lige nu, saa jeg vil poste det senere med haab om at i har mod paa at kigge paa det. Tak!
nedenstaaende er min loesning til add og delete funktionerne. Jeg har ikke tilfoejet: int addRecord (record*&, char[],char[],char[], float); int deleteRecord(record *&, char name[]); int isRecordInList (record *, char[]); da jeg er i tvivl om det. Her er den struct jeg har brugt i opgaven, bare saa det giver lidt mere mening. Det hele skal give en adresse bog. Haaber der er en der kan hjaelpe. struct record { char name[32]; char address[80]; char telno[15]; float gpa; record *next; };
void main () { record *start;
bool addRecord(record *post) { record *last; if (start == NULL)
first = post; else {
last = start; while (last->next != NULL) last = last->next; last->next = post; }; post->next = NULL; return true; }
bool deleteRecord(record *post) { record *last, *current; last = NULL; current = start; while (current != NULL) { if (strncpy(current->navn, post->navn, sizeof(current->navn)-1) == 0) { if (last == NULL) start = current->next; else last->next = current->Next; return true; }; last = current; current = current->next; } return false; } }
tror jeg lukker spoergsmaalet, da jeg har stillet det for kludret. Tak for din hjaelp laffe - du lidt points for det :)
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.