C/Visual C - Ayudar eliminar contacto agenda con c y archivos

 
Vista:
Imágen de perfil de </v!rus>
Val: 1
Ha aumentado su posición en 66 puestos en C/Visual C (en relación al último mes)
Gráfica de C/Visual C

Ayudar eliminar contacto agenda con c y archivos

Publicado por </v!rus> (1 intervención) el 04/02/2019 21:42:06
Hola amigos de lwdp estoy haciendo una agenda de proyecto para aprender a programar en c aun no soy muy bueno me base en una agenda explicada por video pero no estan terminado el autor no termino y solo me falta la función de borrar un registro y no tengo idea de como hacerlo agradecería su ayuda
gracias.

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
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <stdbool.h>
 
struct registro{
  int id;
  char cto_nom[80];
  char cto_tel[15];
};
 
struct registro *registros = NULL;
int total=0;
FILE *archivo = NULL;
 
void cargar();
void guardar();
void alta();
void ver();
void busqueda();
void eliminar();
 
int main() {
  int opcion;
  char temp[10];
  cargar();
  system("clear");
  do{
    printf("total de registros %i\n",total);
    printf("1. Agregar contacto.\n");
    printf("2. Ver contacto.\n");
    printf("3. Busqueda\n");
    printf("4. Eliminar contactos\n");
    printf("5. salir. \n");
    printf("Ingrese su opcion: ");
    fgets(temp,10,stdin);
    opcion = atoi(temp);
    switch (opcion) {
      case 1:
          printf("Usted selecciono %i\n",opcion );
          alta();
      break;
      case 2:
        printf("Usted selecciono %i\n",opcion );
        ver();
      break;
      case 3:
        busqueda();
      break;
      case 4:
        eliminar();
      break;
      dafault:
        printf("opcion incorrecta\n");
      break;
      }
    }while (opcion != 5);
    guardar();
    return 0;
}
 
void alta(){
  registros = realloc(registros,sizeof(struct registro)*(total+1));
  memset(&registros[total],0,sizeof(struct registro));
  printf("ingrese el nombre de registro %i: ",total+1 );
  fgets(registros[total].cto_nom,80,stdin);
  printf("ingrese el telefono del registo %i: ",total+1);
  fgets(registros[total].cto_tel,15,stdin);
  registros[total].id = total+1;
  total ++;
  system("clear");
 
}
 
void guardar(){
  archivo = fopen("agenda.txt","wb");
  if(archivo != NULL){
    fwrite(&total,sizeof(int),1,archivo);
    fwrite(registros,sizeof(struct registro),total,archivo);
    fclose(archivo);
  }else{
    printf("error de archivo");
  }
}
 
void cargar(){
  archivo = fopen("agenda.txt","rb");
  if(archivo != NULL){
    fread(&total,sizeof(int),1,archivo);
    registros = calloc(sizeof(struct registro),total);
    fread(registros,sizeof(struct registro),total,archivo);
    fclose(archivo);
  }else{
    printf("error de archivo");
  }
}
 
void ver(){
  system("clear");
  int numero = 0;
  char temp[10];
  do {
    printf("Numero de contactos menor o igual %i\n", total);
    printf("Que registro desea buscar: ");
    fgets(temp,10,stdin);
    numero = atoi(temp);
  } while(numero>total || numero<=0);
  numero --;
  printf("Registro numero %i\n", numero);
  printf("Nombre: %s\n",registros[numero].cto_nom);
  printf("Telefono: %s\n", registros[numero].cto_tel);
  printf("Presiona enter para continuar... \n");
  getchar();
  system("clear");
}
 
void busqueda(){
  system("clear");
  int opcion,i,index;
  bool encontrado,entrar;
  char temp[10];
  char buscar[80];
  do{
  encontrado = false;
  entrar = true;
  system("clear");
  printf("Como queire buscar? \n");
  printf("1. Por nombre.\n");
  printf("2. Por telefono\n");
  printf("3. Regrear al menu anterior.. \n");
  printf("Ingrese su opcion: ");
  fgets(temp,10,stdin);
  opcion = atoi(temp);
  switch (opcion) {
    case 1:
        printf("Ingrese el nombre: ");
        fgets(buscar,80,stdin);
        i=0;
        while(i < total && !encontrado){
            if(strcmp(buscar,registros[i].cto_nom) == 0){
              printf("Nombre encontrado\n");
              encontrado = true;
              entrar = false;
              index = i;
            }
            i++;
        }
    break;
    case 2:
      printf("Ingrese el telefono ");
      fgets(buscar,15,stdin);
      i=0;
      while(i < total && !encontrado){
          if(strcmp(buscar,registros[i].cto_tel) == 0){
            printf("telefono encontrado\n");
            encontrado = true;
            entrar = false;
            index = i;
          }
          i++;
      }
    break;
    case 3:
      entrar = false;
    break;
    dafault:
      printf("opcion incorrecta\n");
    break;
    }
  }while (entrar);
  if(encontrado){
      printf("Registro encontrado \n");
      printf("Registro numero %i\n", registros[index].id);
      printf("Nombre: %s\n",registros[index].cto_nom);
      printf("Telefono: %s\n", registros[index].cto_tel);
      printf("press enter....");
      getchar();
  }
 
}
 
void eliminar(){
 
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder