Avatar billede 0410af Nybegynder
15. august 2001 - 09:30 Der er 16 kommentarer og
1 løsning

Hashing og hashtabeler

Hej,
jeg skal laver 3 tabeler, 1.menu, 2.indrediens, 3.vare. de tabeler skal oprettes og vi skal så bruge hashing for at kunne søge på key-værdierne. er der nogen som kan hjælpe mig med et køre klare program som har 2 tabeler som bare kan skiftes ud med min, eller kan hjælpe mig frem til noget. tak.
Avatar billede perfi Nybegynder
15. august 2001 - 11:21 #1
Hva\'
For 60 point må du vist hellere kigge lidt i dine bøger.
(:perfi
Avatar billede 0410af Nybegynder
15. august 2001 - 11:37 #2
ok, så får i hvad i vil
Avatar billede mickni33 Nybegynder
15. august 2001 - 13:42 #3
det lyder som et helt skole projekt hva?
Avatar billede 0410af Nybegynder
15. august 2001 - 17:03 #4
Hvis I kan hjælpe så er det fedt, ellers spar mig for jeres smarte kommenter.
Avatar billede mickni33 Nybegynder
15. august 2001 - 17:16 #5
Hva er din email ?
Men det er meget kode så måske er det ikke til at læse
Avatar billede 0410af Nybegynder
15. august 2001 - 17:21 #6
min e-mail er: schoolpw2@yahoo.com.au   

jeg vil meget gerne se på den kode, måske kan jeg bruge noget af det. men jeg ser først på den imorgen.

tak
Avatar billede mickni33 Nybegynder
15. august 2001 - 17:31 #7
er sendt
Avatar billede mickni33 Nybegynder
15. august 2001 - 17:34 #8
oooops fik mailen retur. email adressen findes ikke
Avatar billede mickni33 Nybegynder
15. august 2001 - 17:35 #9
prøver igen
Avatar billede mickni33 Nybegynder
15. august 2001 - 17:38 #10
Nu tror jeg den var der manglede .au
Avatar billede 0410af Nybegynder
16. august 2001 - 10:58 #11
tak, jeg må desvære bruge mere tid på din program for at se hvad der forgår ind, på min egen. men du skal have tak for hjælpen, derfor får du kun 400 point, håber du er tilfreds.
Avatar billede mickni33 Nybegynder
16. august 2001 - 11:05 #12
det er ok
Avatar billede mickni33 Nybegynder
16. august 2001 - 13:07 #13
du har ikke afvist/accepterede vores svar endnu :-)
Avatar billede 0410af Nybegynder
16. august 2001 - 13:46 #14
chek denne hash jeg har lavet, jeg mængler kun at kalde min funktion show(), jeg prøver med t.show(), men får fejl, hvad gør jeg?

#include <fstream.h>
#include <iostream>
#include <string>
#include <stdio.h>
#include <errno.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <fcntl.h>
#define MODULUS 41
fstream ifile;
struct tuple
{
    long key;
    char kolo1[40];
    char kolo2[40];
    int maengde;
    int antal;
};


int hash(char * t)
{
long m=1;

for(int i=0; i < strlen(t); i++)
{
    m*=int(t[i]);
}
      return m % MODULUS;     
}
void show()
{
    int i;
    tuple r;
    while(!ifile.eof())
    {
        for(i=1; i<=100;i++)
        {
            ifile.read(&r, sizeof(r)*i);
            cout<<r.key;
            cout<<r.kolo1;
            cout<<r.kolo2;
            cout<<r.maengde;
        }
    }
}           


int readInt() /* read an integer for stdin. Delimiter is \':\' */
{
  int i = 0;
  char c;
  while ((cin.get(c)) && (isdigit(c)!=0))
    i=i*10 + c - \'0\';
  return(i);
}

int readstring(char *s, int n) /* read a string from stdin. n is the length of the receiving string.
      Delimiter : */
{
  int i;
  char c;
  for (i=0; i<n; i++)
    s[i]=\'\\0\';
  i =0;
  while ((cin.get(c)) && (c==\' \' || isalpha(c) != 0 || c==\'æ\' || c==\'Æ\' || c==\'ø\' || c==\'Ø\'
        || c==\'å\' || c== \'Å\')) {
    s[i]=c;
    ++i;
  }
  s[i] = \'\\0\';
  return(i);


int main(int argc, char* argv[])

  int afslut;

  struct tuple t;

  fstream ifile(\"ingrid.txt\", ios::app); /* open file in append mode */

// cout<<\"while loekken\\n\";
  while (afslut!= 0)
  {
    cout<<\"Indtast navn paa ingrediens\\n\";
    readstring(t.kolo1, sizeof(t.kolo1));
 
    t.key = hash(t.kolo1);
    cout<<\"noegle tildelt\\n\"<<t.key<<\"\\n\";
 
    cout <<\"indtast mængdeenhed:\"<<\"\\n\";
    readstring(t.kolo2, sizeof(t.kolo2));
 
    cout<<\"Indtast maengde\\n\";
    t.maengde=readInt();
 
    cout<<\"Skriver til fil\\n\"; 
    ifile.write(&t, sizeof(t));
    cout<<\"Tast 0 for at slutte\\n\";
    afslut = readInt();
  }
     
      ifile.close();
 
  exit(0);
 
  }
Avatar billede 0410af Nybegynder
16. august 2001 - 13:46 #15
du får din point nu.
Avatar billede mickni33 Nybegynder
16. august 2001 - 13:51 #16
show() er en fri funktion så du behøver ikke kalde den med .show() men bare show();
Avatar billede mickni33 Nybegynder
16. august 2001 - 13:55 #17
Det ser flot ud men det er jo rent C. Prøv at lave det om til Klasser/C++  når/hvis du får det til at virke.
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester