Código de C/Visual C - Agenda electrónica en C++

Versión 1
estrellaestrellaestrellaestrellaestrella(8)

Publicado el 5 de Noviembre del 2002gráfica de visualizaciones de la versión: Versión 1
58.243 visualizaciones desde el 5 de Noviembre del 2002
estrellaestrellaestrellaestrellaestrella
estrellaestrellaestrellaestrella
estrellaestrellaestrella
estrellaestrella
estrella

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
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
/////////////////////////////////////////////////////////////////////
//                                                                 //
//     AGENDA ELECTRONICA --> Desarrollado por ^KriZ3d^ <--        //
//                                                                 //
//   Ejemplo para mostrar la implementacion de Archivos en C++     //
//                                                                 //
/////////////////////////////////////////////////////////////////////
 
#include<stdio.h>
#include<conio.h>
#include<iostream.h>
#define bool int
#define true 1
#define false 0
 
 
FILE *archivo, *temporal;
 
void AGREGAR_PERSONA()
{
	int cedula, registro;
	char apellido[20], nombre[20], telefono[15], resp;
	bool no_encontrado;
	do{
		if((archivo = fopen("Directorio.ang","r")) == NULL)
		{
			cout<<"\n No se Encuentra el Archivo!";
			cout<<"\n\n Pulse una tecla para continuar...";
			getch();
		}else{
			clrscr();
			no_encontrado = true;
			cout<<"\n Introduzca la Cedula: "; cin>> registro;
			while ((!feof(archivo)) && (no_encontrado))
			{
				fscanf(archivo,"%d %s %s %s", &cedula, &apellido, &nombre, &telefono);
				if(registro == cedula)
				{
					no_encontrado = false;
				}
			}
			fclose(archivo);
			if(no_encontrado)
			{
				archivo = fopen("Directorio.ang","a");
				cedula = registro;
				cout<<"\n Introduzca el Apellido: "; cin>> apellido;
				cout<<" Introduzca el Nombre: "; cin>> nombre;
				cout<<" Introduzca el Telefono: "; cin>> telefono;
				fprintf(archivo,"%d %s %s %s\n", cedula, apellido, nombre, telefono); // %f para los float, %d para los int.
			}else{
				cout<<"\n Esta Persona ya esta Registrada en la Agenda!";
			}
			cout<<"\n\n Desea Registrar Otra Persona? S/N: "; resp = getch();
			fclose(archivo);
		}
	}while((resp == 's') || (resp == 'S'));
} //Fin del procedimiento AGREGAR_PERSONA
 
void CONSULTAR_REGISTRO()
{
	int registro, cedula; // Se declaran enteros porque si se dejan como string luego no se puede hacer la comparacion normal sino por comparacion de cadenas.
	char apellido[20], nombre[20], telefono[15], resp;
	bool no_encontrado;
	do{
		if((archivo = fopen("Directorio.ang","r")) == NULL)
		{
			cout<<"\n No se Encuentra el Archivo!";
			cout<<"\n\n Pulse una tecla para continuar...";
			getch();
		}else{
			clrscr();
			no_encontrado = true;
			cout<<"\n Introduzca la Cedula a Consultar: "; cin>>registro;
			while((!feof(archivo)) && (no_encontrado))
			{
				fscanf(archivo,"%d %s %s %s", &cedula, &apellido, &nombre, &telefono);
				if(registro == cedula)
				{
					no_encontrado = false;
				}
			}
			if(no_encontrado)
			{
				cout<<"\n No Existe un Registro con esa Cedula!\n\n";
			}else{
				cout<<"\n Registro Encontrado!\n\n";
				cout<<" Cedula:   " <<cedula <<"\n";
				cout<<" Apellido: " <<apellido <<"\n";
				cout<<" Nombre:   " <<nombre <<"\n";
				cout<<" Telefono: " <<telefono <<"\n\n";
			}
			cout<<" Desea Realizar Otra Consulta? S/N: "; resp = getch();
			fclose(archivo);
		}
	}while((resp == 's') || (resp == 'S'));
} //Fin del procedimiento CONSULTAR_REGISTRO
 
void ELIMINAR_PERSONA()
{
	int registro, cedula;
	char resp, apellido[20], nombre[20], telefono[15], eliminar;
	bool no_encontrado;
	do{
		if ((archivo = fopen("Directorio.ang","r")) == NULL)
		{
			cout<<"\n No se Encuentra el Archivo!";
			cout<<"\n\n Pulse una tecla para continuar...";
			getch();
		}else{
			clrscr();
			no_encontrado = true;
			cout<<"\n Introduzca la Cedula del Registro a Eliminar: "; cin>>registro;
			while((!feof(archivo)) && (no_encontrado))
			{
				fscanf(archivo,"%d %s %s %s", &cedula, &apellido, &nombre, &telefono);
				if(registro == cedula)
				{
					no_encontrado = false;
				}
			}
			if(no_encontrado)
			{
				cout<<"\n No Existe un Registro con esa Cedula!\n\n";
			}else{
				cout<<"\n Registro Encontrado!\n\n";
				cout<<" Cedula:   " <<cedula <<"\n";
				cout<<" Apellido: " <<apellido <<"\n";
				cout<<" Nombre:   " <<nombre <<"\n";
				cout<<" Telefono: " <<telefono <<"\n\n";
				fclose(archivo);
				cout<<" Desea Eliminar este Registro? S/N: "; eliminar = getch();
			}
			if ((eliminar == 's') || (eliminar == 'S'))
			{
				if((archivo = fopen("Directorio.ang","r")) == NULL)
				{
					cout<<"\n No se Encuentra el Archivo!";
					cout<<"\n\n Pulse una tecla para continuar...";
					getch();
				}else{
					temporal = fopen("temporal.ang","w");
					while(!feof(archivo))
					{
						fscanf(archivo,"%d %s %s %s\n", &cedula, &apellido, &nombre, &telefono);
						if (registro != cedula)
						{
							fprintf(temporal,"%d %s %s %s\n", cedula, apellido, nombre, telefono);
						}
					}
					fclose(temporal);
					fclose(archivo);
					if((temporal = fopen("temporal.ang","r")) == NULL)
					{
						cout<<"\n No se Encuentra el Archivo, no se Pudo Eliminar!";
						cout<<"\n\n Pulse una tecla para continuar...";
						getch();
					}else{
						archivo = fopen("Directorio.ang","w");
						while(!feof(temporal))
						{
							fscanf(temporal,"%d %s %s %s\n", &cedula, &apellido, &nombre, &telefono);
							fprintf(archivo,"%d %s %s %s\n", cedula, apellido, nombre, telefono);
						}
						fclose(temporal);
						fclose(archivo);
						cout<<"\n\n Se ha Eliminado el Registro!";
						//Vaciamos el Archivo temporal
						temporal = fopen("temporal.ang","w");
						fclose(temporal);
					}
				}
			}
			cout<<"\n\n Desea eliminar Otro Registro? S/N: "; resp = getch();
		}
	}while((resp == 's') || (resp == 'S'));
} //Fin del procedimiento ELIMINAR_REGISTRO
 
void VACIAR_AGENDA()
{
	char resp;
	cout<<"\n\n Esta Seguro que Desea Vaciar la Agenda? S/N: "; cin>> resp;
	if ((resp == 's') || (resp == 'S'))
	{
		if((archivo = fopen("Directorio.ang","w")) == NULL)
		{
			cout<<"\n No se Encuentra el Archivo!";
			cout<<"\n\n Pulse una tecla para continuar...";
			getch();
		}else{
			fclose(archivo);
			cout<<"\n Se ha Vaciado la Agenda Satisfactoriamente!";
			cout<<"\n\n Pulse una tecla para continuar...";
			getch();
		}
	}
} //Fin del procedimiento VACIAR_AGENDA
 
void DESPLEGAR_AGENDA()
{
	char cedula[8], apellido[20], nombre[20], telefono[15];
	if((archivo = fopen("Directorio.ang","r")) == NULL)
	{
		cout<<"\n No se Encuentra el Archivo!";
		cout<<"\n\n Pulse una tecla para continuar...";
		getch();
	}else{
		clrscr();
		cout<<"  CEDULA        APELLIDO        NOMBRE        TELEFONO\n\n";
		while(!feof(archivo))
		{
			fscanf(archivo,"%s %s %s %s\n", &cedula, &apellido, &nombre, &telefono);
			cout<<" "<<cedula<<"     "<<apellido<<"         "<<nombre<<"          "<<telefono<<"\n";
		}
		fclose(archivo);
		cout<<"\n\n Pulse una tecla para continuar...";
		getch();
	}
} //Fin del procedimiento DESPLEGAR_AGENDA
 
void ACERCA_DE()
{
	clrscr();
	cout<<"\n    AGENDA ELECTRONICA --> Desarrollado por ^KriZ3d^ <-- (Angelo Goncalves) \n\n";
	cout<<"          Ejemplo para mostrar la implementacion de Archivos en C++\n\n\n";
	cout<<"  La entrada de datos de la cedula no esta validada y se declaro como entero \n";
	cout<<"  para poder hacer las comparaciones entre cedulas (hay otras formas de\n";
	cout<<"  hacerlo, como la comparacion de strings etc, pero en fin este ejemplo es \n";
	cout<<"  dedicado a los Archivos.\n  Cualquier duda o comentario escribeme a agoncal@uc.edu.ve o krized@hotmail.com\n";
	cout<<"\n\n  Pulse una Tecla para Volver al Menu Principal...";
	getch();
} //Fin del procedimiento ACERCA_DE
 
void MENU()
{
	cout<<"\n    AGENDA ELECTRONICA --> Desarrollado por ^KriZ3d^ <--\n";
	cout<<"          Implementacion de Archivos en C++\n\n";
	cout<<" 1- Agregar una Persona a la Agenda.\n";
	cout<<" 2- Consultar un Registro en la Agenda.\n";
	cout<<" 3- Desplegar todos los Datos de la Agenda.\n";
	cout<<" 4- Eliminar un Registro de la Agenda.\n";
	cout<<" 5- Vaciar la Agenda.\n\n";
	cout<<" A- Acerca de...\n";
	cout<<" S- Salir.\n";
} // Fin del procedimiento MENU
 
void main (void)
{
	char op;
	bool salir = false;
	do{
		clrscr();
		if ((archivo = fopen("Directorio.ang","r")) == NULL)
		{
			cout<<"\n Al parecer es la Primera Vez que inicias el Programa,\n";
			cout<<" o el Archivo fue Borrado. Presiona una tecla para Crearlo...";
			getch();
			archivo = fopen("Directorio.ang","w");
			fclose(archivo);
			cout<<"\n\n El Archivo se ha Creado con Exito!!!\n\n";
			MENU();
			cout<<"\n Seleccione una Opcion: "; op = getch();
		}else{
			MENU();
			cout<<"\n Seleccione una Opcion: "; op = getch();
		}
		switch (op)
		{
			case '1':
				AGREGAR_PERSONA();
				break;
			case '2':
				CONSULTAR_REGISTRO();
				break;
			case '3':
				DESPLEGAR_AGENDA();
				break;
			case '4':
				ELIMINAR_PERSONA();
				break;
			case '5':
				VACIAR_AGENDA();
				break;
			case 'a': case 'A':
				ACERCA_DE();
				break;
			case 's': case 'S':
				salir = true;
				break;
		}
	}while(salir == false);
} // Fin del main (void)



Comentarios sobre la versión: Versión 1 (8)

22 de Enero del 2003
estrellaestrellaestrellaestrellaestrella
Un programa bastante claro que no necesita usar clases por lo tanto muy entendible para inexpertos
Responder
19 de Junio del 2006
estrellaestrellaestrellaestrellaestrella
esta bien fumado
Responder
9 de Junio del 2007
estrellaestrellaestrellaestrellaestrella
Muchas gracias por compartir este código, en lo personal me ah sido de gran utilidad por su simpleza de programación pero enorme funcionalidad, para denotar y practicas con algunas funciones.
Saludos
Responder
18 de Abril del 2008
estrellaestrellaestrellaestrellaestrella
el codigo es muy bueno solo quisiera saber si tienes alguno donde se pueda acceder a un registro y modificar algunas de sus partes gracias
Responder
18 de Junio del 2012
estrellaestrellaestrellaestrellaestrella
Tengo una duda grande con esta linea de código.

while((!feof(archivo)) && (no_encontrado))
{
fscanf(archivo,"%d %s %s %s", &cedula, &apellido, &nombre, &telefono);

que quiere decir esa condición dentro del while? y para que es usado ese fscanf
Responder
22 de Noviembre del 2012
estrellaestrellaestrellaestrellaestrella
Esta muy sencillo no me funciono y aparte amm lo complicaron mas tiene lineas que pueden ahorrarse usan demasiada memoria
Responder
5 de Junio del 2013
estrellaestrellaestrellaestrellaestrella
EXCELENTEe
Responder
pcx2
24 de Marzo del 2015
estrellaestrellaestrellaestrellaestrella
oye como se haria un funcion para editar los datos de una presona ya registrada
Responder

Comentar la versión: Versión 1

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad

http://lwp-l.com/s356