Autor Beitrag
dongdemarco
Hält's aus hier
Beiträge: 1



BeitragVerfasst: Mi 28.12.05 16:28 
hallo!

kann mir einer weiterhelfen?

ich habe dieses adressverwaltungsprogramm. möchte aber zusätzlich noch, dass das programm daten ändern, löschen speichern kann. wie muss ich an die sache rangehen?

hier ist das programm:
ausblenden volle Höhe Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
74:
75:
76:
77:
78:
79:
80:
81:
82:
83:
84:
85:
86:
87:
88:
89:
90:
91:
92:
93:
94:
95:
96:
97:
98:
99:
100:
101:
102:
103:
104:
105:
106:
107:
108:
109:
110:
111:
112:
113:
114:
115:
116:
117:
118:
119:
120:
121:
122:
123:
124:
125:
126:
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161:
162:
163:
164:
165:
166:
167:
168:
169:
170:
171:
172:
173:
174:
175:
176:
177:
178:
179:
180:
181:
182:
183:
184:
185:
186:
187:
188:
189:
190:
191:
192:
193:
194:
195:
196:
197:
198:
199:
200:
201:
202:
203:
204:
205:
//AUFGABE: es muss anzeigen ,ändern der daten,loeschen und speichern können...
//einfache ausgabe adressverwaltung

#include <stdio.h>        // Standard ein-ausgabe
                           //#include bedeutet, hier wird etwas eingefügt 
                            //und zwar der Inhalt der Header Datei stdio.h
#include <string.h>     // Biblitothek für ganze Zeichenketten
#include <stdlib.h>      //Standard Library             

static int x;            //Der Quelltext "static int" besteht aus dem Speicherklassenspezifizierer 
                         //"static" und dem Typ "int". Der Speicherklassenspezifizierer 
                          //"static" legt fest, daß die Variable statisch  ist, 
                          //also während der gesamten Laufzeit eines Programms existiert.
                          //Die Deklaration "static int x;" im Klassenspezifizierer 
                          //ist nur  eine Deklaration. 


                         //

typedef struct adres {              //es können neue Datentypen erzeugt werden
                                     // die allerdings auf bereits bestehende aufbauen


                                      //eingeführte typedef Anweisung 
                                     //kann auch verwendet werden, um Strukturen einzuführen
                    char vname[20];     
                    char nname[20];
                    long PLZ;
                    char ort[20];
                    int matrikelnummer;
                   }adr;

void Eingabe(int nr,struct adres neu[]) //Der Typ void* steht für einen Zeiger
                                        // auf ein Objekt beliebigen (bzw. unbekannten)

{

 printf("Vorname : ");
 gets(neu[nr].vname);
 printf("Nachname : ");
 gets(neu[nr].nname);
 printf("Postleitzahl: ");
 scanf("%ld",&neu[nr].PLZ);
 fflush(stdin);
 printf("Wohnort : ");
 gets(neu[nr].ort);
 printf("Matrikelnummer : ");
 scanf("%d",&neu[nr].matrikelnummer);
}
                                                           
                                                           //Eine Funktion, die als void deklariert wurde, 
                                                           //darf keinen Rückgabetyp erhalten.
void Suche(struct adres search[],char buchstabe,int nr) //einfaches Sortierverfahren 
{
 int i;
 for(i=0; i<=nr; i++)
 {
  if(search[i].nname[0] == buchstabe)
   {
    printf("\n\nGefunden unter Buchstabe :\"%c\"\n\n",buchstabe);
    printf("Vorname.........:%s\n",search[i].vname);
    printf("Nachname........:%s\n",search[i].nname);
    printf("Postleitzahl....:%ld\n",search[i].PLZ);
    printf("Ort.............:%s\n",search[i].ort);
    printf("Matrikelnummer.....:%d\n",search[i].matrikelnummer);
    fflush(stdin);
    printf("\n\tWeiter mit <ENTER>\n");
    getchar();                     //einlesen der charakter vom tastatur
   }
 }
}

void Ausgabe(struct adres all[],int nr)//Ein-/Ausgabe erfolgt durch Standardfunktionen,
                                         // die in der Header-Datei  stdio.h  definiert sind.

{
 int i;

 for(i=0; i<nr; i++)
  {
   printf("Vorname.........:%s\n",all[i].vname);
   printf("Nachname........:%s\n",all[i].nname);
   printf("Postleitzahl....:%d\n",all[i].PLZ);
   printf("Ort.............:%s\n",all[i].ort);
   printf("Matrikelnummer.....:%d\n\n",all[i].matrikelnummer);

   if((!(i%2))&& i!=0)
    {
     fflush(stdin);                        // löscht den Arbeitsspeicher?
     printf("\n\tWeiter mit <Enter>\n\n");
     getchar();                        
    }
  }
}

void Sort(struct adres sort[],int nr)    //
{
 int i,j;
 struct adres *temp;
 temp=(struct adres *)malloc(sizeof(struct adres *));

 for(i=0; i<nr; i++)
  {
   for(j=i+1;j<nr;j++)
    {
     if(strcmp(sort[i].nname, sort[j].nname)>0)
     {
      *temp=sort[j];
      sort[j]=sort[i];
      sort[i]=*temp;
     }
   }
 }
 printf(".....Sortiert!!\n\n");
}

void speichern(adr adresse[],int nr)
{
int i;
FILE *fp;
fp=fopen("adress.txt", "r+");
                                // for-schleife
   for (i=0;i<100;i++)         // Anfangswert,Endwert,Zähler
   {
       fprintf(fp,"%s\t",adresse[i].vname);
       fprintf(fp,"%s\t",adresse[i].nname);
       fprintf(fp,"%d\t",adresse[i].PLZ);
       fprintf(fp,"%s\t",adresse[i].ort);
       fprintf(fp,"%d\n",adresse[i].matrikelnummer);
   
   
   }
   
   fclose(fp);
}


int main()               //Die Funktion main ist der Anfangspunkt unseres Programmes
{
int i;
 int auswahl;
 char c;
FILE *fp;
adr adresse[100];


fp=fopen("adress.txt", "r+");

   for (i=0;i<100;i++)
   {
       fprintf(fp,"*\t");
       fprintf(fp,"*\t");
       fprintf(fp,"0\t");
       fprintf(fp,"*\t");
       fprintf(fp,"0\n");
   
   
   }
   
   fclose(fp);


 do {
      printf("\n******************************************\n*");
      printf("\n* Adressverwaltungs-Programm  *\n*");
      printf("\n******************************************");
      printf("\n\n\n\n\n***** Bitte Auswaehlen ****\n");
      printf("-1- Neue Adresse eingeben\n");
      printf("-2- Bestimmte Adresse Ausgeben\n");
      printf("-3- Alle Adressen Ausgeben\n");
      printf("-4- Adressen Sortieren\n");
      printf("-6- Adresse speichern\n");
      printf("-7- Adresse loeschen\n");
      printf("-8- Programm beenden\n");

      printf("\nIhre Auswahl : ");
      scanf("%d",&auswahl);
      fflush(stdin);

      switch(auswahl)
      {
       case  1 : Eingabe(x++,adresse);
                break;
       case  2 : printf("Anfangsbuchstabe d. Nachnamen :");
                scanf("%c",&c);
                Suche(adresse,c,x);
                break;
       case  3 : Ausgabe(adresse,x);
                break;
       case  4 : Ausgabe(adresse,x);
                break;
       case  5 : Sort(adresse,x);
                break;
       case  6 : speichern(adresse,x);
                break;
       
       case  8 :return;
                
                  
       default: break;
      }
  }while(auswahl <8);

 return 0;
}


Moderiert von user profile iconraziel: Code-Tags hinzugefügt
Moderiert von user profile iconraziel: Topic aus C# - Die Sprache verschoben am Mi 28.12.2005 um 18:21