Avatar billede jerrymouse Nybegynder
29. maj 2002 - 12:59 Der er 7 kommentarer og
1 løsning

hvordan finder jeg medlemmerne og hvordan fliipper jeg

  Du er her : Eksperten : Programmering : C/C++ : hvordan finder jeg medlemmerne og hvordan fliipper jeg :



hvordan finder jeg medlemmerne og hvordan fliipper jeg    30 point fra jerrymouse
hvordan finder jeg medlemmer og hvordanb flipper ejg på
'+' '-'

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <time.h>
#include <dos.h>
#define x 20
#define y 6
#define delay(x) sleep(x/1000)

struct kort{
        char navn[30];
        char adresse[40];
        char postnummer[5];
        char telefonnummer[16];
        char cprnr[12];
        char active_eller_inactive[10];
        char password[5];
        char indmeldelsesdato[12];
        char antal;
        };

struct antaltype
      {
      int tal;
      };
int xx, ch, valg;
int I, tal;
unsigned char iMax = 200;

FILE *fptr;

kort kage[200];
antaltype antal[1];

void opretMedlem(void);
void visMedlem(void);
void slet (void);

void main (void)
{
  textbackground(9);
  if ((fptr = fopen("data.dat","rb")) != NULL)
  {
    fread(kage,sizeof(kage),1,fptr);
    fclose(fptr);
  }
  else
    memset(kage, 0, sizeof(kage));

  if ((fptr = fopen("antal.dat","rb")) != NULL)
  {
    fread(antal,sizeof(antal),1,fptr);
    fclose(fptr);
  }
  else
    memset(antal, 0, sizeof(antal));

  I = antal[0].tal;

  textcolor(RED);
  textbackground(BLACK);
  clrscr();
  gotoxy(x-4,y);
  cprintf ("Velkommen til Blockbuster Movie club");
  delay (3000);

  do
  {
    clrscr();
    gotoxy(x,y-1);
    cprintf("Indtast valg: ");
    gotoxy(x,y+1);
    cprintf("Menu: ");
    gotoxy(x,y+3);
    cprintf("1: Tilf&#8250;ge ny medlem: ");
    gotoxy(x,y+4);
    cprintf("2: Se & slet medlems data: ");
    gotoxy(x,y+5);
    cprintf("3: se password: ");
    gotoxy(x,y+7);
    cprintf("Esc: Quit : ");
   
    valg = getch();
    switch (valg)
    {
      case '1'  : // Opret medlem
                  opretMedlem(); break;
      case '2'  : // Vis medlem
                  visMedlem(); break;
      case 'x1B': // ESC - afslut
                  break;
      default    : // Ugyldig taste - ignorer.
                  putch('a'); /* Beep */
    };
  } while (valg != 'x1B');
  return;
} // main

void opretMedlem(void)
{
  clrscr();
  gotoxy(x,y-5);
  cprintf("Indtast navn: ");
  gets(kage[I].navn);
  gotoxy(x,y-4);
  cprintf("Indtast cprnr:");
  gets(kage[I].cprnr);
  gotoxy(x,y-3);
  cprintf("Indtast postnummer:");
  gets(kage[I].postnummer);
  gotoxy(x,y-2);
  cprintf("Active_eller_Inactive ?: ");
  // gets(kage[I].active_eller_inactive); Laver du ikke dette vha. getch()

  ch = getche();
  switch(ch)
  {
    case 'a':
    case 'A':strcpy(kage[I].active_eller_inactive, "active");break;
    case 'i':
    case 'I':strcpy(kage[I].active_eller_inactive, "inactive");break;
  }
  gotoxy(x,y-1);
  cprintf("Indtast adresse :");
  gets(kage[I].adresse);
  gotoxy(x,y);
  cprintf("Indtast telefonnummer :");
  gets(kage[I].telefonnummer);
  gotoxy(x,y+1);
  cprintf("Indtast password :");
  gets(kage[I].password);
  gotoxy(x,y+2);
  cprintf("Indtast indmeldelsesdato :");
  gets(kage[I].indmeldelsesdato);
 
  // Opdater kartoteker.
  antal[0].tal=I;
  fptr = fopen("data.dat","wb");
  fwrite(kage,sizeof(kage),1,fptr);
  fclose(fptr);
  fptr = fopen("antal.dat","wb");
  fwrite(antal,sizeof(antal),1,fptr);
  fclose(fptr);
  delay(2000);
  clrscr();
 
  // Næste medlem skal have næste ledige nummer.
  I++;
} // opretMedlem

void visMedlem(void)
{
  char tXX[4] = "";

  // Noget kode til at læse medlems-nummer og checke at det er ok.
  clrscr();
  gotoxy(x, y-2);
  cprintf("Angiv medlemsnummer: ");
  gets(tXX);
  if ((xx = atoi(tXX) - 1) == 0)
    return;

  // Vis medlemmet
  clrscr();
  gotoxy(x,y-6);
  cprintf("Nr: %d",xx+1);
  gotoxy(x,y-5);
  cprintf("navn: %1s",kage[xx].navn);
  gotoxy(x,y-4);
  cprintf("adresse: %2s",kage[xx].adresse);
  gotoxy(x,y-3);
  cprintf("telefonnummer: %3s",kage[xx].telefonnummer);
  gotoxy(x,y-2);
  cprintf("cprnr: %4s",kage[xx].cprnr);
  gotoxy(x,y-1);
  cprintf("postnummer: %5s",kage[xx].postnummer);
  gotoxy(x,y);
  cprintf("active_eller_inactive: %6s",kage[xx].active_eller_inactive);
  gotoxy(x,y+1);
  cprintf("password: %7s",kage[xx].password);
  gotoxy(x,y+2);
  cprintf("indmeldelsesdato: %8s",kage[xx].indmeldelsesdato);
  gotoxy(x,y+3);
  cprintf("antal: %9s",kage[xx].antal);

  getch();
} // visMedlem 
Avatar billede foodear Praktikant
29. maj 2002 - 13:01 #1
Du må kun have ét spørgsmål med samme emne ad gangen luk venligst et af dine spørgsmål..
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 13:25 #2
undskyld men okey jeg vil helst vide hvordan jeg for den tíl at flippe på
+/- tasterne
Avatar billede soepro Nybegynder
29. maj 2002 - 15:33 #3
Lav f.eks. denne ændring til visMedlem:

void visMedlem(void)
{
  char tXX[4] = "";
  int  tast;

  // Noget kode til at læse medlems-nummer og checke at det er ok.
  clrscr();
  gotoxy(x, y-2);
  cprintf("Angiv medlemsnummer: ");
  gets(tXX);
  if ((xx = atoi(tXX) - 1) == 0)
    return;

  // Vis medlemmet
  do
  {
    clrscr();
    gotoxy(x,y-6);
    cprintf("Nr: %d",xx+1);
    gotoxy(x,y-5);
    cprintf("navn: %1s",kage[xx].navn);
    gotoxy(x,y-4);
    cprintf("adresse: %2s",kage[xx].adresse);
    gotoxy(x,y-3);
    cprintf("telefonnummer: %3s",kage[xx].telefonnummer);
    gotoxy(x,y-2);
    cprintf("cprnr: %4s",kage[xx].cprnr);
    gotoxy(x,y-1);
    cprintf("postnummer: %5s",kage[xx].postnummer);
    gotoxy(x,y);
    cprintf("active_eller_inactive: %6s",kage[xx].active_eller_inactive);
    gotoxy(x,y+1);
    cprintf("password: %7s",kage[xx].password);
    gotoxy(x,y+2);
    cprintf("indmeldelsesdato: %8s",kage[xx].indmeldelsesdato);
    gotoxy(x,y+3);
    cprintf("antal: %9s",kage[xx].antal);

    tast = getch();
    switch(tast)
    {
      case '+' : if (++xx > antal[0].tal)
                  xx = 0;
                break;
      case '-' : if (--xx < 0)
                  xx = antal[0].tal;
                break;
    };
  } while (tast !0 '\x1B');
} // visMedlem
Avatar billede soepro Nybegynder
29. maj 2002 - 15:40 #4
Og det var naturligvis et svar.

Find kan du f.eks. lave sådan her:

void findMedlem(void)
{
  char tNavn[sizeof(kage.navn)];
  gotoxy(x, y-3);
  cprintf("Indtast navn :");
  gets(tNavn);

  if (strcpy(tNavn, "") != 0)
  {
    for (xx = 0; xx < antal[0].tal; xx++)
    {
      if (strcmp(kage[xx].Navn, tNavn) == 0)
      {
        cprintf("Medlem fundet som nr. %d", xx);
        visMedlem(xx);
        return;
      }
    };

    cprintf("Medlem %s IKKE fundet.", tNavn);
  };
} // findMedlem

Sp skal du selvfølgelig ændre i visMedlem, sådan at medlemsnummeret tages som parameter:

void visMedlem(int xx)
{
  // Koden til at læse medlemsnummer skal ud !

  // Vis medlemmet.
  : oprindelige kode her.
}

og ændre switchen på '2' til:

case '2' : // Vis medlem
          clrscr();
          gotoxy(x, y-2);
          cprintf("Angiv medlemsnummer: ");
          gets(tXX);
          if ((xx = atoi(tXX) - 1) != 0)
            visMedlem(xx);
          break;
Avatar billede soepro Nybegynder
29. maj 2002 - 15:43 #5
Det rigtigste ville selvfølgelig så være igen at putte læsningen af medlemsnummeret ned i en selvstændig funktion også - det må være op til dig at gøre det !
Avatar billede jerrymouse Nybegynder
30. maj 2002 - 08:14 #6
tak for hjælpen men hvordan kommer deN FUNTION  til at se ud med den fulde kode
Avatar billede soepro Nybegynder
30. maj 2002 - 10:54 #7
jerrymouse >> Det kan du da sagtens selv regne ud ?!?

int laesMedlem(void)
{
  char tXX[4] = "";

  clrscr();
  gotoxy(x, y-2);
  cprintf("Angiv medlemsnummer: ");
  gets(tXX);
  return (xx = atoi(tXX) - 1);
}

og skal case'n på '2' ændres til:

case '2' : // Vis medlem
          if (laesMedlem(void) >= 0)
            visMedlem(xx);
          break;
Avatar billede jerrymouse Nybegynder
30. maj 2002 - 11:51 #8
ja selvfølig kna jeg det NOOT  jeg er total ny i der her *g*
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