1 | #include<stdio.h>
|
2 | #include<stdlib.h>
|
3 | #include<string.h>
|
4 |
|
5 | struct Kartei{
|
6 | char vorname[20];
|
7 | char nachname[20];
|
8 | char telefonnummer[15];
|
9 | };
|
10 |
|
11 | typedef struct Kartei card;
|
12 |
|
13 | #define MAX 20
|
14 | #define VERS ('a' / 2)
|
15 |
|
16 | int main(){
|
17 |
|
18 | card kartei[MAX];
|
19 | int i = 0, j = 0;
|
20 | int s = 1;
|
21 | int k = 0;
|
22 | int kanz = 0;
|
23 | char vorname[20], nachname[20], tel[15];
|
24 |
|
25 | for(i = 0; i < MAX; i++){
|
26 | strcpy(kartei[i].vorname, "");
|
27 | strcpy(kartei[i].nachname, "");
|
28 | strcpy(kartei[i].telefonnummer, "");
|
29 | }
|
30 |
|
31 | FILE *fp;
|
32 |
|
33 | fp = fopen("kartei.kar", "r");
|
34 |
|
35 | fscanf(fp, "%d ", &kanz);
|
36 |
|
37 | for(j=0; j<kanz; j++) {
|
38 | fscanf(fp, "%s %s %s ", &vorname, &nachname, &tel);
|
39 |
|
40 | for(i=0;vorname[i]!='\0';i++){
|
41 | kartei[j].vorname[i]=vorname[i]-VERS;
|
42 | }
|
43 |
|
44 | for(i=0;nachname[i]!='\0';i++){
|
45 | kartei[j].nachname[i]=nachname[i]-VERS;
|
46 | }
|
47 |
|
48 | for(i=0;tel[i]!='\0';i++){
|
49 | kartei[j].telefonnummer[i]=tel[i]-VERS;
|
50 | }
|
51 | }
|
52 |
|
53 | fclose(fp);
|
54 |
|
55 | do{
|
56 | if(kanz == 0){
|
57 | printf("Noch Kein Eintrag!\n\nVorname: ");
|
58 | scanf("%s", &vorname);
|
59 | printf("Nachname: ");
|
60 | scanf("%s", &nachname);
|
61 | printf("Telefonnummer: ");
|
62 | scanf("%s", &tel);
|
63 | strcpy(kartei[kanz].vorname, vorname);
|
64 | strcpy(kartei[kanz].nachname, nachname);
|
65 | strcpy(kartei[kanz].telefonnummer, tel);
|
66 | kanz++;
|
67 | }
|
68 | else{
|
69 | printf("---Eintrag %d von %d---\n\n", k+1 , kanz);
|
70 | printf("Vorname: %s\nNachname: %s\nTelefonnummer: %s\n", kartei[k].vorname, kartei[k].nachname, kartei[k].telefonnummer);
|
71 |
|
72 | if( s != 5 && s != 6){
|
73 | printf("\n--------MENUE--------\n");
|
74 | printf("1. N\x84");printf("chster Eintrag\n");
|
75 | printf("2. Vorheriger Eintrag\n");
|
76 | printf("3. Neuer Eintrag\n");
|
77 | printf("4. Eintrag L\x94schen\n");
|
78 | printf("5. Eintrag Bearbeiten\n");
|
79 | printf("6. Sortieren\n");
|
80 | printf("7. Speichern\n");
|
81 | printf("0. Speichern und Beenden\nEingabe: ");
|
82 | do{
|
83 | scanf("%d", &s);
|
84 | if(s<0||s>7){
|
85 | printf("Nicht Vorhanden!\nEingabe: ");
|
86 | }
|
87 | }while(s<0||s>7);
|
88 | if(s==5)s=99;
|
89 | if(s==6)s=98;
|
90 | }
|
91 | switch(s){
|
92 | case 1:
|
93 | k++;
|
94 | if(k>=kanz){
|
95 | k=0;
|
96 | }
|
97 | break;
|
98 | case 2:
|
99 | k--;
|
100 | if(k<0){
|
101 | k=kanz-1;
|
102 | }
|
103 | break;
|
104 | case 3:
|
105 | printf("\nVorname: ");
|
106 | scanf("%s", &vorname);
|
107 | printf("Nachtame: ");
|
108 | scanf("%s", &nachname);
|
109 | printf("Telefonnummer: ");
|
110 | scanf("%s", &tel);
|
111 | strcpy(kartei[kanz].vorname, vorname);
|
112 | strcpy(kartei[kanz].nachname, nachname);
|
113 | strcpy(kartei[kanz].telefonnummer, tel);
|
114 | kanz++;
|
115 | k=kanz-1;
|
116 | break;
|
117 | case 4:
|
118 | kanz--;
|
119 | for(i = k; i < kanz; i++){
|
120 | strcpy(kartei[i].vorname, kartei[i+1].vorname);
|
121 | strcpy(kartei[i].nachname, kartei[i+1].nachname);
|
122 | strcpy(kartei[i].telefonnummer, kartei[i+1].telefonnummer);
|
123 | }
|
124 | k=0;
|
125 | break;
|
126 | case 99:
|
127 | s = 5;
|
128 | break;
|
129 | case 5:
|
130 | printf("\n-----BEARBEITUNG-----\n");
|
131 | printf("1. Vorname \x84ndern\n");
|
132 | printf("2. Nachname \x84ndern\n");
|
133 | printf("3. Telefonnummer \x84ndern\n");
|
134 | printf("0. Fertig\nEingabe: ");
|
135 | scanf("%d", &s);
|
136 | s = s + 100;
|
137 | switch(s){
|
138 | case 100:
|
139 | s = 1;
|
140 | break;
|
141 | case 101:
|
142 | printf("neuer Vorname: ");
|
143 | scanf("%s", &vorname);
|
144 | strcpy(kartei[k].vorname, vorname);
|
145 | s=5;
|
146 | break;
|
147 | case 102:
|
148 | printf("neuer Nachname: ");
|
149 | scanf("%s", &nachname);
|
150 | strcpy(kartei[k].nachname, nachname);
|
151 | s=5;
|
152 | break;
|
153 | case 103:
|
154 | printf("neue Telefonnummer: ");
|
155 | scanf("%s", &tel);
|
156 | strcpy(kartei[k].telefonnummer, tel);
|
157 | s=5;
|
158 | break;
|
159 | default:
|
160 | s=5;
|
161 | break;
|
162 | }
|
163 | break;
|
164 | case 98:
|
165 | s = 6;
|
166 | break;
|
167 | case 6:
|
168 | //Wie sortiert man ein Struct???
|
169 | break;
|
170 | case 7:
|
171 | case 0:
|
172 | fp = fopen("kartei.kar", "w");
|
173 |
|
174 | for(j=0; j<kanz; j++) {
|
175 | for(i=0;i<strlen(kartei[j].vorname)+1;i++){
|
176 | vorname[i]=kartei[j].vorname[i]+VERS;
|
177 | }
|
178 |
|
179 | for(i=0;i<strlen(kartei[j].nachname)+1;i++){
|
180 | nachname[i]=kartei[j].nachname[i]+VERS;
|
181 | }
|
182 |
|
183 | for(i=0;i<strlen(kartei[j].telefonnummer)+1;i++){
|
184 | tel[i]=kartei[j].telefonnummer[i]+VERS;
|
185 | }
|
186 | }
|
187 |
|
188 | fprintf(fp, "%d ", kanz);
|
189 | for(i=0; i<kanz; i++) {
|
190 | fprintf(fp, "%s %s %s ", vorname, nachname, tel);
|
191 | }
|
192 |
|
193 | printf("Kartei wurde gespeichert.\n");
|
194 |
|
195 | fclose(fp);
|
196 |
|
197 | break;
|
198 | default:
|
199 | break;
|
200 | }
|
201 |
|
202 | }
|
203 | system("cls");
|
204 | }
|
205 | while(s != 0);
|
206 | return 0;
|
207 | }
|