Beiträge anzeigen

Diese Sektion erlaubt es ihnen alle Beiträge dieses Mitglieds zu sehen. Beachten sie, dass sie nur solche Beiträge sehen können, zu denen sie auch Zugriffsrechte haben.


Nachrichten - Spirit

Seiten: [1]
1
Allgemeines Fernschule Weber Forum / Re: Linksammlung
« am: Februar 27, 2006, 03:23:33 »
Hi Andreas

Ich kann auch ein link anbitten für techniker die Reparatur-Tips in Unterhaltungselektronik brauchen!

   http://www.technik-spezis.de

Ist teilweise noch im aufbau, doch die Datenbank mit tips ist rissen groß :wink:

Beispiel: Über 7000 Geräte von SONY u.s.w

MfG Andreas

2
Hi Alex

Ich Schlisse mich auch an und gebe meine T-Nummer zu unterstützung :lol:. Bin schon in der Prüfung, auch wenn es mir nichts mehr bringt :-( finde ich deine Iniziatiwe gut  :hail

MfG Andreas

3
Programmieren / Re: Ein kleines Rechen Programm in C geschrieben
« am: Dezember 14, 2005, 00:45:36 »
Hi
und hier ein kleines Datenbankprogramm von mir :-P


#include <iostream>
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>
#include <time.h>
#include <dos.h>

#define A_STR_MAX 50  //
#define B_STR_MAX 50

struct person_ds {
   char name[A_STR_MAX];
   char vname[A_STR_MAX];
   char strasse[A_STR_MAX];
   int  plz;
   char stadt[A_STR_MAX];
   int  tel;
   int  fax;
   int  p_id;
};
int pers_count;            //Koëè÷åñòâî Àäðåñîø
struct person_ds *adrs;      //Óêàçàòåëü ía ïåðåìåííóþ Àäðåñîø


struct buch_ds {
   char name[B_STR_MAX];
   char autor[B_STR_MAX];
   char isbn[15];           //ïðèìåð: 3-8272-6812-5
   char info[200];
   int  vorrat;
   int  b_id;
};
int buch_count;            //Koëè÷åñòâî Kíèã
struct buch_ds *buchr;      //Óêàçàòåëü ía ïåðåìåííóþ Kíèã

//ñòðóêòóðà àíòðàãà
struct auftrag_ds {
   int  p_id;
   int  b_id;
   int  outzahl;
   char outdatum[11];
   char indatum[11];
   int  auftrag_id;
};

int aufraege_count;            //Koëè÷åñòâî àíòðàãîâ
struct auftrag_ds *aufraege;   //Óêàçàòåëü ía ïåðåìåííóþ àíòðàãîâ

    /*  Binäre Suche nach String s in adrs                    */
   /*                                                        */
  /*  zurueckgeliefert wird die Position an der s           */
 /*    gefunden wurde oder ( falls s nicht in der Liste ist) */
/*  die Position des nächstgrösseren Elements             */
int p_BinSuche( char s[50] )
{
   int unten=0, oben=pers_count, mitte;
   if ( strcmp(s, adrs[unten].name)<=0 )
      //Wenn s keiner oder gleich ...[0].name ist
      return 0;
   else
   {
      while( oben - unten > 1 )
      {
         mitte = (oben-unten)/2;
         if ( strcmp(s, adrs[unten+mitte].name) == 0 )
         {
            unten += mitte;
            oben = unten;
         }
         if ( strcmp(s, adrs[unten+mitte].name) > 0 )
            unten += mitte;
         else
            oben = unten + mitte;
      }
      if ( strcmp(s, adrs[oben-1].name) == 0 )
         oben--;
      return oben;
   }
}

    /*  Binäre Suche nach String s in buchr                    */
   /*                                                        */
  /*  zurueckgeliefert wird die Position an der s           */
 /*    gefunden wurde oder ( falls s nicht in der Liste ist) */
/*  die Position des nächstgrösseren Elements             */
int b_BinSuche( char s[50] )
{
   int unten=0, oben=buch_count, mitte;
   if ( strcmp(s, buchr[unten].name)<=0 )
      //Wenn s keiner oder gleich ...[0].name ist
      return 0;
   else
   {
      while( oben - unten > 1 )
      {
         mitte = (oben-unten)/2;
         if ( strcmp(s, buchr[unten+mitte].name) == 0 )
         {
            unten += mitte;
            oben = unten;
         }
         if ( strcmp(s, buchr[unten+mitte].name) > 0 )
            unten += mitte;
         else
            oben = unten + mitte;
      }
      if ( strcmp(s, buchr[oben-1].name) == 0 )
         oben--;
      return oben;
   }
}

    /*  Suche nach Zahl s in aufraege                   */
   /*                                                        */
  /*  zurueckgeliefert wird die Position an der s           */
 /*    gefunden wurde oder ( falls s nicht in der Liste ist) */
/*  die Position des letzten Elements             */
int a_Suche( int s )
{
   int unten=0, oben=aufraege_count, mitte;
   for ( mitte = unten; mitte < oben; mitte++ )
      if ( s == aufraege[mitte].auftrag_id )
         return mitte;
   return oben;
}

    /*  Suche nach Zahl s in adrs                   */
   /*                                                        */
  /*  zurueckgeliefert wird die Position an der s           */
 /*    gefunden wurde oder ( falls s nicht in der Liste ist) */
/*  die Position des letzten Elements             */
int p_IDSuche( int s )
{
   int unten=0, oben=pers_count, mitte;
   for ( mitte = unten; mitte < oben; mitte++ )
      if ( s == adrs[mitte].p_id )
         return mitte;
   return oben;
}

    /*  Suche nach Zahl s in buchr                   */
   /*                                                        */
  /*  zurueckgeliefert wird die Position an der s           */
 /*    gefunden wurde oder ( falls s nicht in der Liste ist) */
/*  die Position des letzten Elements             */
int b_IDSuche( int s )
{
   int unten=0, oben=buch_count, mitte;
   for ( mitte = unten; mitte < oben; mitte++ )
      if ( s == buchr[mitte].b_id )
         return mitte;
   return oben;
}

// Vergleich zweier Adressen nach dem Namen
// für qsort
int p_vgl( const void* p1,const void* p2 )
{
   struct person_ds* adr1,*adr2;
   adr1=( struct person_ds* )p1;
   adr2=( struct person_ds* )p2;
   return strcmp( adr1->name, adr2->name );
}

// Vergleich zweier Buecher nach dem Namen
// für qsort
int b_vgl( const void* b1,const void* b2 )
{
   struct buch_ds* buch1,*buch2;
   buch1=( struct buch_ds* )b1;
   buch2=( struct buch_ds* )b2;
   return strcmp( buch1->name, buch2->name );
}

// Vergleich zweier Aufträde nach dem Namen
// für qsort
int a_vgl( const void* a1,const void* a2 )
{
   struct auftrag_ds* auftrag1,*auftrag2;
   auftrag1=( struct auftrag_ds* )a1;
   auftrag2=( struct auftrag_ds* )a2;
   if ( auftrag1->auftrag_id < auftrag2->auftrag_id )
      return -1;
   if ( auftrag1->auftrag_id > auftrag2->auftrag_id )
      return 1;
   if ( auftrag1->auftrag_id == auftrag2->auftrag_id )
      return 0;
}

//########################################################################

void p_ausgabe();
void p_ausgeben(struct person_ds adr, int _select);
void b_ausgabe();
void b_ausgeben(struct buch_ds buch, int _select);

/*char* string_einlesen()
{
   char* str;


   return str;
}*/


// Einlesen einer Adresse ueber die Tastatur
struct person_ds p_einlesen()
{
   struct person_ds adr;
   char str[100];
   strcpy(str, " ");
   printf( "\n" );
   printf( "Name    : " );
      gets( str );
      strcpy(adr.name, str);
   printf( "Vorname : " );
      gets( str );
      strcpy(adr.vname, str);
   printf( "Strasse : " );
      gets( str );
      strcpy(adr.strasse, str);
   printf( "PLZ     : " );
      scanf("%d", &(adr.plz));
      fflush( stdin );
   printf( "Stadt   : " );
      gets( str );
      strcpy(adr.stadt, str);
   printf( "Telefon : " );
      scanf("%d", &(adr.tel));
      fflush( stdin );
   printf( "Telefax : " );
      scanf("%d", &(adr.fax));
      fflush( stdin );
   srand( (unsigned)time( NULL ) );
      adr.p_id = rand();

   return adr;
}

// Einlesen eines Buches ueber die Tastatur
struct buch_ds b_einlesen()
{
   struct buch_ds buch;
   char str[100];
   strcpy(str, " ");

   printf( "\n" );
   printf( "Buchname    : " );
      gets( str );
      strcpy(buch.name, str);
   printf( "ISBN        : " );
      gets( str );
      strcpy(buch.isbn, str);
   printf( "Autor       : " );
      gets( str );
      strcpy(buch.autor, str);
   printf( "Beschreibung: " );
      gets( str );
      strcpy(buch.info, str);
   printf( "Vorrat      : " );
      scanf( "%d", &(buch.vorrat) );
      fflush( stdin );
   srand( (unsigned)time( NULL ) );
      buch.b_id = rand();

   return buch;
}

// Einlesen eines Auftrags ueber die Tastatur
struct auftrag_ds a_einlesen()
{
   struct auftrag_ds auftrag;
   char s[50];
   char tmp[11];
   int k=0;
   char taste;
   /*/ fur TCP
   struct date d;
   getdate(&d);
   strcpy(tmp,(char*)&d.da_mon);strcat(tmp,"/");
   strcat(tmp,(char*)&d.da_day);strcat(tmp,"/");
   strcat(tmp,(char*)&d.da_year);
   // für VC++-----*/
   _strdate( tmp );
   //--------------
   strcpy(auftrag.outdatum, tmp);
   strcpy(auftrag.indatum, "__/__/__");
   while( taste != 'j' ) // P_ID für den auftrag vestlegen
   {   
      p_ausgabe();
      printf( "\nName eingeben: " );
         scanf( "%s", s );
         fflush( stdin );
      k = p_BinSuche(s);

      if ( strcmp(adrs[k].name, s) == 0 ){
         printf("\n");
            p_ausgeben( adrs[k], 2); taste = ' ';
         while((taste != 'j') && (taste != 'n'))
         {
            printf( "\nDie Person %s ins Auftrag aufnemmen? j/n:",s);
                taste = getch();
            if ( taste == 'j' )
               auftrag.p_id = adrs[k].p_id;
            printf("\n\n");
      }}
      else
         printf( "\nName %s nicht vorhanden\n\n", s );
   }
   taste = ' '; k=0;
   while( taste != 'j' ) // B_ID für den auftrag vestlegen
   {
      b_ausgabe();
      printf( "\nBuchnamen eingeben: " );
         scanf( "%s", s );
         fflush( stdin );
      k = b_BinSuche(s);

      if ( strcmp(buchr[k].name, s) == 0 )
      {
             printf("\n");
         b_ausgeben( buchr[k], 2);
         if (buchr[k].vorrat>0)
         {
            taste = ' ';
            while((taste != 'j') && (taste != 'n'))
            {
               printf( "\nDas Buch %s ins Auftrag aufnemmen? j/n:",s);
                  taste = getch(); //scanf( "%c", taste );
                  //fflush( stdin );
               if ( taste == 'j' )
                  auftrag.b_id = buchr[k].b_id; printf("\n");
            }
         }
         else
            printf( "\nBuch %s ist momentan nich nicht vorretig\n\n", s );
      }
      else
         printf( "\nBuchname %s nicht vorhanden\n\n", s );
   }
   int i;
   do
   {
      printf( "\nWieviele Buecher werden ausgegeben : " );
         scanf( "%d", &i );
      if ( i>buchr[k].vorrat )
         printf("\nEs koenen nur %d Buecher ausgegeben werden!\n", buchr[k].vorrat );
      else
         break;
   }while(1);
   auftrag.outzahl=i;
   buchr[k].vorrat = buchr[k].vorrat - auftrag.outzahl;

   srand( (unsigned)time( NULL ) );
   auftrag.auftrag_id = rand();

   //int  b_id
   return auftrag;
}

// Ausgeben einer Adresse auf den Bildschirm
void p_ausgeben(struct person_ds adr, int _select)
{
   // _select = 0, or _select = 1, or _select = 2
   int i;
   char tmp_name[50];
   if (strlen(adr.name)>13){
      for (i=0; i<13; i++ )
         tmp_name = adr.name;
      tmp_name = '\0';}
   else
      strcpy(tmp_name, adr.name);
   char tmp_vname[50];
   if (strlen(adr.vname)>12){
      for (i=0; i<12; i++ )
         tmp_vname = adr.vname;
      tmp_vname = '\0';}
   else
      strcpy(tmp_vname, adr.vname);
   char tmp_strasse[50];
   if (strlen(adr.strasse)>14){
      for (i=0; i<14; i++ )
         tmp_strasse = adr.strasse;
      tmp_strasse = '\0';}
   else
      strcpy(tmp_strasse, adr.strasse);
   
   char tmp_stadt[50];
   if (strlen(adr.stadt)>13){
      for ( i=0; i<13; i++ )
         tmp_stadt = adr.stadt;
      tmp_stadt = '\0';}
   else
      strcpy(tmp_stadt, adr.stadt);

   if (_select == 0)
      printf( "\1 %-5d", adr.p_id );
   if (_select == 1)
      printf( "\2 %-5d", adr.p_id );
   if (_select == 2)
      printf( "  %-5d", adr.p_id );
   printf( "| %-14s", tmp_name );
   printf( "| %-13s", tmp_vname );
   printf( "| %-15s", tmp_strasse );
   printf( "| %-6d", adr.plz );
   printf( "| %-14s\n", tmp_stadt );
}

// Ausgeben eines Buches auf den Bildschirm
void b_ausgeben(struct buch_ds buch, int _select)
{
     int i;
   // _select = 0, or _select = 1, or _select = 2
   char tmp_name[50];
   if (strlen(buch.name)>13){
      for ( i=0; i<13; i++ )
         tmp_name = buch.name;
      tmp_name = '\0';}
   else
      strcpy(tmp_name, buch.name);

   char tmp_isbn[50];
   if (strlen(buch.isbn)>13){
      for ( i=0; i<13; i++ )
         tmp_isbn = buch.isbn;
      tmp_isbn = '\0';}
   else
      strcpy(tmp_isbn, buch.isbn);

   char tmp_autor[50];
   if (strlen(buch.autor)>13){
      for ( i=0; i<13; i++ )
         tmp_autor = buch.autor;
      tmp_autor = '\0';}
   else
      strcpy(tmp_autor, buch.autor);
   
   if (_select == 0)
      printf( "\1 %-5d", buch.b_id );
   if (_select == 1)
      printf( "\2 %-5d", buch.b_id );
   if (_select == 2)
      printf( "  %-5d", buch.b_id );
   printf( "| %-14s", tmp_name );
   printf( "| %-14s", tmp_isbn );
   printf( "| %-14s", tmp_autor );
   printf( "| %-14d\n", buch.vorrat );
   //printf( "%-7d\n", buch );
}

// Ausgeben eines Aufrags auf den Bildschirm
void a_ausgeben(struct auftrag_ds auftrag, int _select)
{
     int i;
   // _select = 0, or _select = 1, or _select = 2
   int k = p_IDSuche(auftrag.p_id);
   char tmp_pname[50];
   if (strlen(adrs[k].name)>13){
      for ( i=0; i<13; i++ )
         tmp_pname = adrs[k].name;
      tmp_pname = '\0';}
   else
      strcpy(tmp_pname, adrs[k].name);
   
   char tmp_pvname[50];
   if (strlen(adrs[k].vname)>13){
      for ( i=0; i<13; i++ )
         tmp_pvname = adrs[k].vname;
      tmp_pvname = '\0';}
   else
      strcpy(tmp_pvname, adrs[k].vname);

   k = b_IDSuche(auftrag.b_id);
   char tmp_bname[50];
   if (strlen(buchr[k].name)>13){
      for ( i=0; i<13; i++ )
         tmp_bname = buchr[k].name;
      tmp_bname = '\0';}
   else
      strcpy(tmp_bname, buchr[k].name);

   if (_select == 0)
      printf( "\1 %-5d", auftrag.auftrag_id );
   if (_select == 1)
      printf( "\2 %-5d", auftrag.auftrag_id );
   if (_select == 2)
      printf( "  %-5d", auftrag.auftrag_id );
   printf( "| %-14s", tmp_pname );
   printf( "| %-14s", tmp_pvname );
   printf( "| %-14s", tmp_bname );
   printf( "| %-5d\n", auftrag.outzahl );
}

// Abspeichern einer eingelesenen Adresse
// in einer Datei
void p_eingabe()
{
   struct person_ds adr;

   adr = p_einlesen();

   // falls die Datei nicht leer war
   if ( pers_count > 0 )
   {
      adrs = (struct person_ds*)realloc(adrs, (pers_count+1)*sizeof(person_ds));
      adrs[pers_count] = adr;
   }
   // falls die Datei leer war
   else
      adrs[0] = adr;

   pers_count++;
   // Adressen neu sortieren
   qsort(adrs, pers_count, sizeof (struct person_ds), p_vgl);
}

// Abspeichern eines eingelesenen Buches
// in einer Datei
void b_eingabe()
{
   struct buch_ds buch;

   buch = b_einlesen();

   // falls die Datei nicht leer war
   if ( buch_count > 0 )
   {
      buchr = (struct buch_ds*)realloc(buchr, (buch_count+1)*sizeof(buch_ds));
      buchr[buch_count] = buch;
   }
   // falls die Datei leer war
   else
      buchr[0] = buch;
   
   buch_count++;
   
   // Buecher neu sortieren
   qsort(buchr, buch_count, sizeof (struct buch_ds), b_vgl);
}

// Abspeichern eines eingelesenen Auftrages
// in einer Datei
void a_eingabe()
{
   struct auftrag_ds auftrag;

   auftrag = a_einlesen();

   // falls die Datei nicht leer war
   if ( aufraege_count > 0 )
   {
      // in der variable 'auftraege' platz für einen neuen auftrag schafen
      aufraege = (struct auftrag_ds*)realloc(aufraege, (aufraege_count+1)*sizeof(auftrag_ds));
      // den neuen Aufrag an die hientere stelle in die variable 'auftraege' einfuegen
      aufraege[aufraege_count] = auftrag;
   }
   // falls die Datei leer war
   else
      // wird der Auftrag an erste stelle in der Variable 'auftraege' einfuegen
      aufraege[0] = auftrag;
   
   aufraege_count++;
   
   // Auftraege neu sortieren
   qsort(aufraege, aufraege_count, sizeof (struct auftrag_ds), a_vgl);
}

// Ausgabe der gesamten Adressdatei
void p_ausgabe()
{
   int k;
   //clrscr();
   printf("  %-5s  %-14s  %-13s  %-15s  %-6s  %-14s\n\n" ,"ID","Name",
      "Vorname","Strasse","PLZ","Stadt"); 
   //printf( "Name\tVorname\tStrasse\tPLZ\tStadt\tTelefon\tTelefax\n\n"); 
   if( pers_count <= 0 )
      printf( "Keine Adressen vorhanden\n" );
   else
      for ( k = 0; k < pers_count; k++ )
         p_ausgeben( adrs[k] , 1 );
}

// Ausgabe der gesamten Buchdatei
void b_ausgabe()
{
   int k;
   //clrscr();
   printf("  %-5s  %-14s  %-14s  %-14s  %-14s\n\n" ,"ID","Buchname","ISBN","Autor","Vorrat"); 
   if( buch_count <= 0 )
      printf( "Keine Buecher vorhanden\n" );
   else
      for ( k = 0; k < buch_count; k++ )
         b_ausgeben( buchr[k], 1 );
}

// Ausgabe der gesamten Auftraegedatei
void a_ausgabe()
{
   int k;
   //clrscr();
   printf("  %-5s  %-14s  %-14s  %-14s  %-5s\n\n" ,"A-ID","Name","Vorname","Buchname","Zahl"); 
   if( aufraege_count <= 0 )
      printf( "Keine Auftraege vorhanden\n" );
   else
      for ( k = 0; k < aufraege_count; k++ )
         a_ausgeben( aufraege[k], 1 );
}


// Suchen einer Adresse
void p_suchen()
{
   char s[50];
   int k=0;

   printf( "Name eingeben: " );
      scanf( "%s", s );
   fflush( stdin );

   k = p_BinSuche(s);

   if ( strcmp(adrs[k].name, s) == 0 )
   {
      printf("\n  %-5s  %-14s  %-13s  %-15s  %-6s  %-14s\n\n" ,"ID","Name",
                "Vorname","Strasse","PLZ","Stadt"); 
      p_ausgeben( adrs[k], 2);
    }
   else
      printf( "\nName %s nicht vorhanden!!!\n", s );
}

// Suchen ein Buch
void b_suchen()
{
   char s[50];
   int k=0;

   printf( "Buchname eingeben: " );
      scanf( "%s", s );
   fflush( stdin );

   k = b_BinSuche(s);

   if ( strcmp(buchr[k].name, s) == 0 )
   {
      printf("  %-5s  %-14s  %-14s  %-14s  %-5s\n\n" ,
                  "A-ID","Name","Vorname","Buchname","Zahl");
        b_ausgeben( buchr[k], 2);
    }
   else
      printf( "\nBuchname %s nicht vorhanden!!!\n", s );
}

// Suchen ein Auftrag
void a_suchen()
{
   int s=0;
   int k=0;

   printf( "Auftrag ID eingeben: " );
      scanf( "%d", s );
   fflush( stdin );

   k = a_Suche(s);

   if ( aufraege[k].auftrag_id == s )
      a_ausgeben( aufraege[k], 2);
   else
      printf( "\nAuftrag mit ID %d nicht vorhanden!!!\n", s );
}

//Eine Adresse Loeschen
void p_loeschen()
{
   int k = 0;
   char s[50];

   printf( "\nName eingeben: " );
      scanf("%s", &s);
   k = p_BinSuche(s);

   if ( strcmp(adrs[k].name, s) == 0 )
   {
      adrs[k] = adrs[pers_count - 1];
      pers_count--;
      // Adressen neu sortieren
      qsort(adrs, pers_count, sizeof (struct person_ds), p_vgl);
   }
   else
      printf( "Name %s nicht vorhanden\n", s );

   adrs = (struct person_ds*)realloc(adrs, pers_count*sizeof(struct person_ds));
}

//Eine Buch Loeschen
void b_loeschen()
{
   int k = 0;
   char s[50];

   printf( "\nBuchname eingeben: " );
      scanf("%s", &s);
   k = b_BinSuche(s);

   if ( strcmp(buchr[k].name, s) == 0 )
   {
      buchr[k] = buchr[buch_count - 1];
      buch_count--;
      // Buecher neu sortieren
      qsort(buchr, buch_count, sizeof (struct buch_ds), b_vgl);
   }
   else
      printf( "Buchname %s nicht vorhanden\n", s );

   buchr = (struct buch_ds*)realloc(buchr, buch_count*sizeof(struct buch_ds));
}

//Eine Auftrag Loeschen
void a_loeschen()
{
   int k = 0;
   int s;
   char taste;
   a_ausgabe();
   printf( "\nAuftrag ID eingeben: " );
      scanf("%d", &s);
   k = a_Suche(s);

   if ( aufraege[k].auftrag_id == s )
   {
      // Zahl der Buecher aus dem Auftrag in Vorrat ubertragen
      while( (taste != 'j') && (taste != 'n'))
      {
         printf("\nSollen die Buecher wieder zu Vorrat addiert werden? j/n:");
            taste = getch();
         if (taste == 'j')
            buchr[b_IDSuche(aufraege[k].b_id)].vorrat =
            buchr[b_IDSuche(aufraege[k].b_id)].vorrat + aufraege[k].outzahl;
      }
      // der zu loeschender Auftrag mit dem Index 'k' wird durch
      // den letzten Auftrag aus der Liste ersetzt
      aufraege[k] = aufraege[aufraege_count - 1];
      aufraege_count--;      // Anzahl der Auftraege wird decremmentiert
      // Auftraege neu sortieren
      qsort(aufraege, aufraege_count, sizeof (struct auftrag_ds), a_vgl);
   }
   else
      printf( "Auftrag mit ID: %d nicht vorhanden\n", s );
   // Raallocation der variable 'auftraege' mit der aktuelle Aufträgeanzahl 'aufraege_count'
   aufraege = (struct auftrag_ds*)realloc(aufraege, aufraege_count*sizeof(struct auftrag_ds));
}

// laden der Adressdatei in das Feld adrs
void p_laden()
{
   FILE* stream;

   stream = fopen( "adressen.dat", "r" );
   free(adrs);

   // falls das Laden funktioniert hat
   if ( stream != NULL )
   {
      // Anzahl der Adressen einlesen
      fread( &pers_count, sizeof( int ), 1, stream );

      // Speicher allokieren
      adrs = (struct person_ds*)calloc(pers_count, sizeof(struct person_ds));

      // Adressen einlesen
      fread( adrs, sizeof(struct person_ds), pers_count, stream );

      fclose(stream);
   }
   // falls die Datei leer war
   else
   {
      printf( "\nKeine Adressdatei gefunden!\n" );
      printf( "\nGeben Sie eine Adresse ein\n\n" );
      pers_count = 0;
      adrs = (struct person_ds*)calloc( 1, sizeof(struct person_ds) );
      p_eingabe();
   }
}

// laden der Bucherdatei in das Feld buchr
void b_laden()
{
   FILE* stream;

   stream = fopen( "buecher.dat", "r" );
   free(buchr);

   // falls das Laden funktioniert hat
   if ( stream != NULL )
   {
      // Anzahl der Adressen einlesen
      fread( &buch_count, sizeof( int ), 1, stream );

      // Speicher allokieren
      buchr = (struct buch_ds*)calloc(buch_count, sizeof(struct buch_ds));

      // Adressen einlesen
      fread( buchr, sizeof(struct buch_ds), buch_count, stream );

      fclose(stream);
   }
   // falls die Datei leer war
   else
   {
      printf( "\nKeine Bucherdatei gefunden!\n" );
      printf( "\nGeben Sie ein Buch ein\n\n" );
      buch_count = 0;
      buchr = (struct buch_ds*)calloc( 1, sizeof(struct buch_ds) );
      b_eingabe();
   }
}

// laden der Auftraegedatei in das Feld aufraege
void a_laden()
{
   FILE* stream;

   stream = fopen( "auftraege.dat", "r" );
   free(aufraege);

   // falls das Laden funktioniert hat
   if ( stream != NULL )
   {
      // Anzahl der Auftraege einlesen
      fread( &aufraege_count, sizeof( int ), 1, stream );

      // Speicher allokieren
      aufraege = (struct auftrag_ds*)calloc(aufraege_count, sizeof(struct auftrag_ds));

      // Auftraege einlesen
      fread( aufraege, sizeof(struct auftrag_ds), aufraege_count, stream );

      fclose(stream);
   }
   // falls die Datei leer war
   else
   {
      printf( "\nKeine Auftraege gefunden!\n" );
      printf( "\nGeben Sie ein Auftrag ein\n\n" );
      aufraege_count = 0;
      aufraege = (struct auftrag_ds*)calloc( 1, sizeof(struct auftrag_ds) );
      a_eingabe();
   }
}

// speichern von adrs in der Adressedatei
void p_speichern()
{
   FILE* stream;
   int k;

   stream = fopen( "adressen.dat", "w+" );
   fwrite( &pers_count, sizeof( int ), 1, stream );

   for ( k=0; k<=pers_count-1; k++ )
   {
      fwrite( &adrs[k], sizeof(struct person_ds), 1, stream);
   }

   fclose(stream);
}

// speichern von buchr in der Bucherdatei
void b_speichern()
{
   FILE* stream;
   int k;

   stream = fopen( "buecher.dat", "w+" );
   fwrite( &buch_count, sizeof( int ), 1, stream );

   for ( k=0; k<=buch_count-1; k++ )
   {
      fwrite( &buchr[k], sizeof(struct buch_ds), 1, stream);
   }

   fclose(stream);
}

// speichern von aufraege in der Auftragdatei
void a_speichern()
{
   FILE* stream;
   int k;

   stream = fopen( "auftraege.dat", "w+" );
   fwrite( &aufraege_count, sizeof( int ), 1, stream );

   for ( k=0; k<=aufraege_count-1; k++ )
   {
      fwrite( &aufraege[k], sizeof(struct auftrag_ds), 1, stream);
   }

   fclose(stream);
}

// Auswahl der Programmunterpunkte fuer Adressen
int p_menue()
{   
   
   int a=0;
   char c[10];
   //clrscr();
   while ( a<1 || a>7 )
   {
      printf( "\n/****** Menue Adressen ******/\n\n" );
      printf( "1. Adresse eingeben\n" );
      printf( "2. Adresse suchen\n" );
      printf( "3. Adressliste\n" );
      printf( "4. Adresse loeschen\n" );
      printf( "5. Laden\n" );
      printf( "6. Speichern\n" );
      printf( "7. Zurueck\n\n" );
      printf( "Ihre Eingabe : " );
      scanf( "%s", &c );
      fflush( stdin );
      printf( "\n" );
      a = c[0] - 48;
   }
   return a;
}

// Auswahl der Programmunterpunkte fuer Buecher
int b_menue()
{
   int a=0;
   char c[10];
   //clrscr();
   while ( a<1 || a>7 )
   {
      printf( "\n/****** Menue Bucher ******/\n\n" );
      printf( "1. Buch eingeben\n" );
      printf( "2. Buch suchen\n" );
      printf( "3. Buchliste\n" );
      printf( "4. Buch loeschen\n" );
      printf( "5. Laden\n" );
      printf( "6. Speichern\n" );
      printf( "7. Zurueck\n\n" );
      printf( "Ihre Eingabe : " );
      scanf( "%s", &c );
      fflush( stdin );
      printf( "\n" );
      a = c[0] - 48;
   }
   return a;
}

// Auswahl der Programmunterpunkte fuer Auftraege
int a_menue()
{
   int a=0;
   char c[10];
   //clrscr();
   while ( a<1 || a>7 )
   {
      printf( "\n/****** Menue Auftraege ******/\n\n" );
      printf( "1. Auftrag eingeben\n" );
      printf( "2. Auftrag suchen\n" );
      printf( "3. Auftragliste\n" );
      printf( "4. Auftrag loeschen\n" );
      printf( "5. Laden\n" );
      printf( "6. Speichern\n" );
      printf( "7. Zurueck\n\n" );
      printf( "Ihre Eingabe : " );
      scanf( "%s", &c );
      fflush( stdin );
      printf( "\n" );
      a = c[0] - 48;
   }
   return a;
}

// Auswahl der Programmunterpunkte fuer Buecher
int menue()
{
   int a=0;
   char c[10];
   //clrscr();
   while ( a<1 || a>7 )
   {
      printf( "\n/****** Menue ******/\n\n" );
      printf( "1. Adressen\n" );
      printf( "2. Buecher\n" );
      printf( "3. Auftraege\n" );
      printf( "4. Ende\n\n" );
      printf( "Ihre Eingabe : " );
      scanf( "%s", &c );
      fflush( stdin );
      printf( "\n" );
      a = c[0] - 48;
   }
   return a;
}

int main()
{
   int a;
   p_laden();
   b_laden();
   a_laden();
   do
   {
      a=menue();
      switch(a)
      {
      case 1:
         do
         {
            a = p_menue();
            switch (a)
            {
               case 1: p_eingabe();   break;
               case 2: p_suchen();      
                     printf("\nweiter mit Eingabetaste\n");
                     getchar();                   
                         break;               
               case 3: p_ausgabe();   break;
               case 4: p_loeschen();   break;
               case 5: p_laden();      break;
               case 6: p_speichern();   break;
            }
            if (a==7)
               break;
            //printf("\nweiter mit Eingabetaste\n");
            //getchar();
         } while (1);
         break;
      case 2:
         do
         {
            a = b_menue();
            switch (a)
            {
               case 1: b_eingabe();   break;
               case 2: b_suchen();      
                     printf("\nweiter mit Eingabetaste\n");
                     getchar();                   
                         break;
               case 3: b_ausgabe();   break;
               case 4: b_loeschen();   break;
               case 5: b_laden();      break;
               case 6: b_speichern();   break;
            }
            if (a==7)
               break;
            //printf("\nweiter mit Eingabetaste\n");
            //getchar();
         } while (1);
         break;
      case 3:
         do
         {
            a = a_menue();
            switch (a)
            {
               case 1: a_eingabe();   break;
               case 2: a_suchen();      
                   printf("\nweiter mit Eingabetaste\n");
                     getchar();                   
                         break;
               case 3: a_ausgabe();   break;
               case 4: a_loeschen();   break;
               case 5: a_laden();      break;
               case 6: a_speichern();   break;
            }
            if (a==7)
               break;
            //printf("\nweiter mit Eingabetaste\n");
            //getchar();
         } while (1);
         break;
      }
      if (a==4)
         break;
   } while (1);
   p_speichern();
   b_speichern();
   a_speichern();
   free(adrs);
   free(buchr);
   free(aufraege);
   return 0;
}




4
Hardware / Re: Shutdown
« am: November 23, 2005, 14:16:24 »
Hi

Ein Grund warum sich der Rechner nicht Ausschaltet konnte die Stromsparfunktion AMP bei älteren Bios oder ACPI bei Pc ab ca. 1999.

Der entscheidende Unterschied zwischen APM und ACPI ist, dass die APM-Funktionen vom BIOS gesteuert werden, während bei ACPI das Betriebssystem die Kontrolle übernimmt. Bei einem ACPI-PC ist es egal, welche Einstellungen ihr für das Power Management im BIOS trefft:
Windows ignoriert sie und reagiert nur auf die Energieoptionen in der Systemsteuerung.
Ein ACPI-fähiges BIOS ist die Voraussetzung dafür, dass Windows die ACPI-Unterstützung installiert.

In Windows 98 und ME öffne über Start/Einstellungen/Systemsteuerung den Eintrag System, wechsel zum Geräte-Manager und klapp dort den Ast Systemkomponenten aus. In der Liste der Geräte erscheint dort an erster Stelle der ACPI System Button, gefolgt vom ACPI-Bus. Fehlen diese Einträge, hat Windows kein ACPI-System erkannt.

ACPI installieren und weitere info sehe:  "http://www.pc-experience.de/wbb2/thread.php?threadid=1899&boardid=64&sid=" und "http://www.pc-experience.de/wbb2/thread.php?goto=nextnewest&threadid=1899&sid=ad9745337a23a51c5ee74a15acaf0ffd"

AMP und ACPI wird auch im LB 17 beschrieben.

MFG Andreas





5
Hardware / Re: FP wird nicht im Bios erkannt
« am: November 23, 2005, 12:22:18 »
Hi,

Hast du villeicht einen 2 Laufwerk andem IDE hängen der auf Master konfiguriert ist? (an sowas kommst warscheinlich selber, dann Sorry! :-D)

Bei manchen Laufwerken die alleine am IDE hängen soll die Jumper einstellung auf Single stehen und nicht auf Master.

MFG Andreas

6
Studienkollege gesucht / Re: Studienkollege raum Unna
« am: November 21, 2005, 10:06:53 »
Hey Kacki
bin im LB18, hab den Forum erst jetzt entdeckt, wie geht es bei dir vorran?

Ich bin auch aus Kreis Unna nämlich aus 44532 Lünen.

Grüß Andreas

Seiten: [1]