Avatar billede jerrymouse Nybegynder
29. maj 2002 - 09:32 Der er 23 kommentarer og
1 løsning

hvad har vi gjordt galt

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#define x 20
#define y 6

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;
      };
char xx,ch,valg;
int I, tal;
unsigned char max = 200;

FILE *fptr;

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

void slet (void);

void main (void)
{
textbackground(9);
fptr = fopen("data.dat","rb");
fread(kage,sizeof(kage),1,fptr);
fclose(fptr);
fptr = fopen("antal.dat","rb");
fread(antal,sizeof(antal),1,fptr);
fclose(fptr);

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();

if (valg == '1')
{
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);
ch = getch();
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);
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();
I++;
}
}
while (valg!=27);
}y(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);
}while(ch != 27);
}
Avatar billede -mundi- Nybegynder
29. maj 2002 - 09:34 #1
Der er ingen fejlmeddelelse ?
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 09:36 #2
nej Der er ingen fejl men vi kan ikke trykke 2. Den gider bare ikke
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 09:45 #3
og det ville vi godt have svar på hvorfor vi ikke kan trykke 2???
Avatar billede jpk Nybegynder
29. maj 2002 - 10:09 #4
Der er jo ikke lave nogen implementation for 2!!!

for 1 har i
if (valg == '1')
{
  ...
}

men i har jo ikke nogen
if (valg == '2')
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 10:11 #5
bin there don that, men ikke om det hjælp
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 10:15 #6
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#define x 20
#define y 6

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;
      };
char xx,ch,valg;
int I, tal;
unsigned char max = 200;

FILE *fptr;

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

void slet (void);

void main (void)
{
textbackground(9);
fptr = fopen("data.dat","rb");
fread(kage,sizeof(kage),1,fptr);
fclose(fptr);
fptr = fopen("antal.dat","rb");
fread(antal,sizeof(antal),1,fptr);
fclose(fptr);

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 active_eller_inactive: ");
gotoxy(x,y+7);
cprintf("Esc: Quit : ");
valg = getch();

if (valg == '1')
{
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);
ch = getch();
switch(ch)
{
case 'a':
case 'A':strcpy(kage[I].active_eller_inactive, "active");
case 'i':
case 'I':strcpy(kage[I].active_eller_inactive, "inactive");
}
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);
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();
I++;
}
}
while (valg!=27);

if (valg == '2')
{
clrscr();
gotoxy(x,y);
cprintf("Du kan nu bladre med + & - og slette med s : ");
}
while (valg!=27);

do
{
ch = getch();
switch(ch)
{
case '+':if(xx <I-1 ) xx++;break;
case '-':if(xx >0 )xx--;break;
case 's':slet;break;
}
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);
}while(ch != 27);
}
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 10:16 #7
nu ser den sådan ud , men det hjælp ikke
Avatar billede rocky2000 Nybegynder
29. maj 2002 - 10:28 #8
Jeg tror at i bliver nød til at dele dem op i viod's For dette ser MEGET forvirende ud
Avatar billede kamikaze Nybegynder
29. maj 2002 - 10:29 #9
Den er gal med logikken:
do
{
  // noget kode
  if (valg == '1')
  {
  }
}
while (valg!=27);
if (valg == '2')
{
  // noget kode
}

if (valg == '2') skal også være inden for while løkken. I kører i en while løkke så længe valg ikke er 27. Derinde tester i om valg er 1, og det er også derinde i skal teste om valg er 2...
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 10:29 #10
letter sagt en gjord rocky2000
Avatar billede kamikaze Nybegynder
29. maj 2002 - 10:31 #11
Derudover er den også gal med jeres switch:
switch(ch)
{
case 'a':
case 'A':strcpy(kage[I].active_eller_inactive, "active");
break; // <-- her skal indsættes break, ellers er der fall-through til 'i'
case 'i':
case 'I':strcpy(kage[I].active_eller_inactive, "inactive");
}
Avatar billede kamikaze Nybegynder
29. maj 2002 - 10:32 #12
(men der er i vist ikke nået til endnu :-)
Avatar billede soepro Nybegynder
29. maj 2002 - 10:33 #13
Du har såvidt din kode her er pastet korrekt, kun een if, nemlig på valg == '1', dvs. der er ingenting der kan reagere på 2. At du ingen fejl får, er sikkert fordi compileren kun given advarslen: unreachable code' - for den kode du har lavet til at vise et medlem ligger i en "turborg klamme" som aldrig bliver udført.

Jeg har to råd til dig:

1) Læg din kode til at oprette et nyt medlem i en separat funktion, f.eks. operetMedlem og kald den i stedet for at have koden liggende direkte. Det samme for vis af et medlem, f.eks. visMedlem.

2) Brug indrykning og kommentarer - det gør din kode lettere at læse, og rette om en måned.

Her er et bud på noget der burde virke:

#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#define x 20
#define y 6

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;
      };
char xx,ch,valg;
int I, tal;
unsigned char max = 200;

FILE *fptr;

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

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

void main (void)
{
  textbackground(9);
  fptr = fopen("data.dat","rb");
  fread(kage,sizeof(kage),1,fptr);
  fclose(fptr);
  fptr = fopen("antal.dat","rb");
  fread(antal,sizeof(antal),1,fptr);
  fclose(fptr);

  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 != '0x1B');
  return 0;
} // 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 = getch();
  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)) == 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);
} // visMedlem
Avatar billede kamikaze Nybegynder
29. maj 2002 - 10:36 #14
soepro >> nøjagtig :-)
Avatar billede soepro Nybegynder
29. maj 2002 - 10:36 #15
En skam man tager sig tid til at lave et ordentligt svar - når så pointene forsvinder inden man er færdig !
Avatar billede soepro Nybegynder
29. maj 2002 - 10:37 #16
kamikaze >> den oprindelige kode havde da en break i nævnte switch - den stod bare til sidst.
Avatar billede kamikaze Nybegynder
29. maj 2002 - 10:42 #17
soepro >> right, jeg har kun kigget på den sidst postede kode. Sorry mht. afvisning af dit svar - det var ellers 'lige til at spise'... (gode råd!)
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 10:49 #18
tak men den virker ikke helt den kommer med nogle fejlmeddelser
Avatar billede jerrymouse Nybegynder
29. maj 2002 - 10:51 #19
#include <stdio.h>
#include <conio.h>
#include <string.h>
#include <stdlib.h>
#include <dos.h>
#define x 20
#define y 6

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;
      };
char xx,ch,valg;
int I, tal;
unsigned char max = 200;

FILE *fptr;

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

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

void main (void)
{
  textbackground(9);
  fptr = fopen("data.dat","rb");
  fread(kage,sizeof(kage),1,fptr);
  fclose(fptr);
  fptr = fopen("antal.dat","rb");
  fread(antal,sizeof(antal),1,fptr);
  fclose(fptr);

  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 !='0x1B');
  return 0;
} // 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 = getch();
  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)) == 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);
} // visMedlem
Avatar billede soepro Nybegynder
29. maj 2002 - 11:06 #20
jerrymouse >> Denne her kører:

#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 jerrymouse Nybegynder
29. maj 2002 - 12:15 #21
den virker men nu kan jeg ikke  flippe på + - det ville jeg geren kunne
Avatar billede soepro Nybegynder
29. maj 2002 - 15:30 #22
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 (++I > antal[0].tal)
                  I = 0;
                break;
      case '-' : if (--I < 0)
                  I = antal[0].tal;
                break;
    };
  } while (tast !0 '\x1B');
} // visMedlem
Avatar billede soepro Nybegynder
29. maj 2002 - 15:31 #23
Oops - det er selvfølgelig xx du skal tælle op/ned i den sidste switch().
Avatar billede jerrymouse Nybegynder
30. maj 2002 - 08:11 #24
hvordan kommer den fulde kode til at se ud med de sidste ændringer
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