You are on page 1of 11

//Universidad Autonoma De San Luis Potosi

//Coordinacion A

//Tercer semestre
//Programacion I
//Lopez Palacios Lzeth Paola

#include "stdafx.h" //Comienza la compilacin de los resultados ya guardados


de compilar todo.
#include "stdio.h" //*Ejecutar cualquiera de sus comandos y despojar a
cualquier comentario
#include "stdlib.h" //Definir las siguientes operaciones y comandos
#include "string.h" //Importar todo en el espacio de nombres global. Parece
depender de la implementacin de la biblioteca que est utilizando.

struct agenda { //Inicio- Nombre de el Programa


char nom[15]; //char es un tipo de dato alfanumerico(puede recibir
numeros y cadenas)
int t_f; //int indica que se trata de una variable que almacena un nmero
entero
int t_m; //Periodo
char dir[30], email[40], grupos[12]; //cualquier variable y[] es el
parametro que elijamos
} control[100]; //Elementos del arreglo
int cont = 0; //La variable de tipo entero

void agregar(); //Las funciones pueden devolver valores, por ejemplo, una
funcin que se suma enteros devuelve un entero:
void buscar(); //Declarar una funcin que no tiene valor de retorno
void contactos(); // Asignar datos genericos

int main(){ // Indica que la funcin "main" debe regresar un entero, y no recibe
parmetros
int opc; // Indica que la funcin "main" debe regresar un entero, y no
recibe parmetros

do{ //siempre ejecutar al menos una vez, ya que prueba la condicin


despus de que se ejecute el bucle.
system("cls"); //Para limpiar la pantalla slo en sistemas de
Windows

printf("MENU\n"); //Los argumentos adicionales despus de


formato se formatean y se insertan en la cadena resultante
printf("1.Agregar\n"); //Escribe la cadena C sealado por el
formato de la salida estndar
printf("2.Buscar\n"); //Escribe la cadena C sealado por el formato
de la salida estndar
printf("3.Ver todos los contactos\n"); //Escribe la cadena C
sealado por el formato de la salida estndar
printf("4.Salir\n"); //Escribe la cadena C sealado por el formato de
la salida estndar

scanf("%d", &opc); //Los argumentos deben apuntar al objeto


asignado del tipo especificado.

switch (opc){ //Instruccin de seleccin multiple, inicio de la


instruccin switch
case 1: //Caso 1
agregar(); //Indicacion
system("pause"); //Pausar el programa
break; //break finaliza la ejecucin del bucle o la instruccin
condicional

case 2: //Caso 2
buscar(); //Indicacion
system("pause"); //Pausar el programa
break; //break finaliza la ejecucin del bucle o la instruccin
condicional

case 3: //Caso 3
contactos();//Indicacion
system("pause"); //Pausar el programa
break; //break finaliza la ejecucin del bucle o la instruccin
condicional
} //Fin del ciclo
} while (opc != 4); //Condicion de la instruccion

return 0; //regresar el ciclo cuando


}

void agregar(){ //Declarar una funcin que no tiene valor de retorno


system("cls"); //Para limpiar la pantalla slo en sistemas de Windows

fflush(stdin); //Los datos no escritos en su memoria intermedia de salida


se escriben en el archivo.
printf("\n%d.Nombre de contacto:", (cont + 1)); //Escribe la cadena C
sealada por el formato de la salida estndar
gets(control[cont].nom); /*Lee caracteres de la entrada estndar (stdin)
y las almacena como una cadena C en str hasta que un
carcter de nueva lnea o se llega al final del archivo.*/

fflush(stdin); //Los datos no escritos en su memoria intermedia de salida


se escriben en el archivo.
printf("\nTel\202fono fijo:"); //Escribe la cadena C sealada por el
formato de la salida estndar
scanf("%d", &control[cont].t_f); /*Lee caracteres de la entrada estndar
(stdin) y las almacena como una cadena C en str hasta que un
carcter de nueva lnea o se llega al final del
archivo.*/

fflush(stdin); //Los datos no escritos en su memoria intermedia de salida


se escriben en el archivo.
printf("\nTel\202fono m\242vil:"); //Escribe la cadena C sealada por el
formato de la salida estndar
scanf("%d", &control[cont].t_m); /*Lee caracteres de la entrada estndar
(stdin) y las almacena como una cadena C en str hasta que un
carcter de nueva lnea o se llega al final del
archivo.*/

fflush(stdin); //Los datos no escritos en su memoria intermedia de salida


se escriben en el archivo.
printf("\nDirecci\242n:"); //Escribe la cadena C sealada por el formato
de la salida estndar
gets(control[cont].dir); /*Lee caracteres de la entrada estndar (stdin) y
las almacena como una cadena C en str hasta que un
carcter de nueva lnea o se llega al final del archivo.*/

fflush(stdin); //Los datos no escritos en su memoria intermedia de salida


se escriben en el archivo.
printf("\nE-mail:"); //Escribe la cadena C sealada por el formato de la
salida estndar

gets(control[cont].email); /*Lee caracteres de la entrada estndar (stdin)


y las almacena como una cadena C en str hasta que un
carcter de nueva lnea o se llega al final del archivo.*/

fflush(stdin); //Los datos no escritos en su memoria intermedia de salida


se escriben en el archivo.
printf("\nGrupo:"); //Escribe la cadena C sealada por el formato de la
salida estndar
gets(control[cont].grupos); /*Lee caracteres de la entrada estndar
(stdin) y las almacena como una cadena C en str hasta que un
carcter de nueva lnea o se llega al final del archivo.*/

cont++; // proceso de creacin de subclases se puede declarar con


control de acceso

void buscar(){ //Declarar una funcin que no tiene valor de retorno


char busca[15];//char es un tipo de dato alfanumerico(puede recibir
numeros y cadenas)
int i; //int indica que se trata de una variable que almacena un nmero
entero

system("cls"); //Para limpiar la pantalla slo en sistemas de Windows

fflush(stdin); /*Si la corriente que se dio fue abierto para grabar los datos
no grabados en su memoria intermedia de salida se escribe en el archivo.*/

printf("\nBuscar contacto\nIngrese el nombre del contacto:"); /*Los


argumentos adicionales despus de formato se formatean y se insertan en la
cadena resultante*/
gets(busca); /*Utiliza como fuente de entrada estndar, pero que no
incluye el carcter de nueva lnea que termina en la cadena resultante*/

for (i = 0; i<cont; i++){ //Inicio de la que permite que el cdigo se


ejecuta repetidamente.
if (strcmpi(busca, control[i].nom) == 0){ //Inicializacion de el caso
de la palabra clave se utiliza para ejecutar una instruccin o bloque
printf("\nNombre: %s\n", control[i].nom); //Los argumentos
adicionales despus de formato se formatean y se insertan en la cadena
resultante
printf("Tel\202fono fijo: %d\n", control[i].t_f); //Los
argumentos adicionales despus de formato se formatean y se insertan en la
cadena resultante
printf("Tel\202fono m\242vil: %d\n", control[i].t_m); //Los
argumentos adicionales despus de formato se formatean y se insertan en la
cadena resultante
printf("Direcci\242n: %s\n", control[i].dir); //Los
argumentos adicionales despus de formato se formatean y se insertan en la
cadena resultante
printf("E-mail: %s\n", control[i].email); //Los argumentos
adicionales despus de formato se formatean y se insertan en la cadena
resultante
printf("Grupo: %s\n", control[i].grupos); //Los argumentos
adicionales despus de formato se formatean y se insertan en la cadena
resultante
}
}

void contactos(){ //Declarar una funcin que no tiene valor de retorno


int aux, i, j; //Cuerpo de la funcin
char auxc[50]; // Este es un atajo para char

system("cls"); //Para limpiar la pantalla slo en sistemas de Windows

for (i = 0; i<cont - 1; i++){ //Inicio de la que permite que el cdigo se


ejecuta repetidamente
for (j = 0; j<cont - 1 - i; j++){ //Insitruccion ciclica for
if (strcmp(control[j].nom, control[j + 1].nom)>0){
//Inicializacion de el caso de la palabra clave se utiliza para ejecutar una
instruccin o bloque

strcpy(auxc, control[j].nom); //Las copias de la cadena


C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin
strcpy(control[j].nom, control[j + 1].nom); //Las
copias de la cadena C sealado por fuente en la matriz apuntada por destino,
incluyendo el carcter nulo de terminacin
strcpy(control[j + 1].nom, auxc); //Las copias de la
cadena C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin

aux = control[j].t_f; //Si no se usa la variable "aux", no


es posible intercambiar valores.
control[j].t_f = control[j + 1].t_f; // proceso de
creacin de subclases se puede declarar con control de acceso
control[j + 1].t_f = aux; //Las copias de la cadena C
sealado por fuente en la matriz apuntada por destino, incluyendo el carcter
nulo de terminacin

aux = control[j].t_m; //Si no se usa la variable "aux",


no es posible intercambiar valores.
control[j].t_m = control[j + 1].t_m; // proceso de
creacin de subclases se puede declarar con control de acceso
control[j + 1].t_m = aux;

strcpy(auxc, control[j].dir); //Las copias de la cadena


C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin
strcpy(control[j].dir, control[j + 1].dir); //Las copias de
la cadena C sealado por fuente en la matriz apuntada por destino, incluyendo
el carcter nulo de terminacin
strcpy(control[j + 1].dir, auxc); //Las copias de la
cadena C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin

strcpy(auxc, control[j].email); //Las copias de la


cadena C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin
strcpy(control[j].email, control[j + 1].email); //Las
copias de la cadena C sealado por fuente en la matriz apuntada por destino,
incluyendo el carcter nulo de terminacin
strcpy(control[j + 1].email, auxc); //Las copias de la
cadena C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin

strcpy(auxc, control[j].grupos); //Las copias de la


cadena C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin
strcpy(control[j].grupos, control[j + 1].grupos); //Las
copias de la cadena C sealado por fuente en la matriz apuntada por destino,
incluyendo el carcter nulo de terminacin

strcpy(control[j + 1].grupos, auxc); //Las copias de la


cadena C sealado por fuente en la matriz apuntada por destino, incluyendo el
carcter nulo de terminacin
}
}
}

printf("\nAgenda.\n"); //Los argumentos adicionales despus de formato


se formatean y se insertan en la cadena resultante

for (i = 0; i<cont; i++){ //Inicio de la que permite que el cdigo se


ejecuta repetidamente
printf("\n%d.Nombre: %s\n", (i + 1), control[i].nom); //Los
argumentos adicionales despus de formato se formatean y se insertan en la
cadena resultante
printf("Tel\202fono fijo: %d\n", control[i].t_f); //Los argumentos
adicionales despus de formato se formatean y se insertan en la cadena
resultante
printf("Tel\202fono m\242vil: %d\n", control[i].t_m); //Los
argumentos adicionales despus de formato se formatean y se insertan en la
cadena resultante
printf("Direcci\242n: %s\n", control[i].dir); //Los argumentos
adicionales despus de formato se formatean y se insertan en la cadena
resultante
printf("E-mail: %s\n", control[i].email); //Los argumentos
adicionales despus de formato se formatean y se insertan en la cadena
resultante
printf("Grupo: %s\n", control[i].grupos); //Los argumentos
adicionales despus de formato se formatean y se insertan en la cadena
resultante
}

} //Fin de el programa

BIblio grafia

http://stackoverflow.com/questions/14379328/return-char-from-function

http://www.tutorialspoint.com/c_standard_library/c_function_gets.htm

You might also like