//Programa diseñar un programa que haga una agenda
#include {stdio.h} //Se introduce la librería estándar "input" and "output"
#include {conio.h}> //Se introduce librería para usar el "gets()" y "getch()"
#include {string.h} //Se introduce la librería de cadenas
#include {stdlib.h} //librería necesaria para utilizar la función "atoi"
main() //Inicia programa con función principal "main()"
{
//Inicia cualquier función con '{' y termina con '}'
char ver, nuamigo ;
//Para ver la agenda en la "segunda parte", la "primera
//parte" es donde se piden los datos con un ciclo 'for'
//'nuamigo' es de tipo char se puede cambiar a valor entero
//con la función atoi, en éste programa cuando cambiamos una
//cadena de letras o cualquier caracter a valor entero
//nos regresa un cero al convertir, si convertimos una
//serie de números lo que nos regresa es ese mismo valor
int a, b, n, i = 0;
//'a' es una variable para conocer la cantidad de amigos
//'b' es una variable para contar ciclos dentro del 'for'
//'n' es para ver el número de amigo ingresado
//'i' es una variable para contar la posición de caracter
printf("\t\t\t:=ESTA ES TU AGENDA=:\n\n") ;
printf("\t\tCuantos amigos quieres agregar (no mayor a cinco)?\n\n\t\t") ;
scanf("%d",&a) ;
//Se pide el valor de la variable 'a'
//Se guarda ese valor de 'a' mediante la función 'scanf'
char amigo[a][15];
char carrera[a][10];
char generacion[a][5];
char semestre[a][1];
char numerodecuenta[a][9];
char promedio[a][3];
//Los datos de los amigos son arreglos, son de tipo char
//Para que C no se trabe cuando usamos enteros y que
//recibamos caracteres del teclado todo lo dejamos en caracteres
//y si necesitamos valores enteros usamos la función 'atoi'
for( b = 0 ; b <>
//Entra en un ciclo para acomodar los datos de los amigos
//mediante un 'for' comienza el ciclo utilizando la
//variable 'b' contando desde cero hasta 'a - 1'
//cuando 'b' toma el valor de 'a' sale de este ciclo
if( a > 5 )
{
printf("\n\n\t\tQUE NO MAS DE CINCO!") ;
getch() ;
break;
}
//Imprime mensaje si se trató de introducir mas de cinco
//amigos en ésta agenda, en clase de algoritmos se
//especifico así, por lo tanto no se aceptan mas ce cinco
system("cls") ;
printf("\t\t\tTECLEAME LOS DATOS DE TU AMIGO %d\n",b+1) ;
getchar();
//Limpia pantalla, luego muestra mensaje, después
//una pausa, espera confirmación
printf("\n\tDame su nombre completo\n\t\t\t") ;
while ( 1 == 1 ) {
amigo[b][i]=getch() ;
printf("%c",amigo[b][i]) ;
if( i == 15 ) break ;
i++ ;
} i = 0 ; getchar() ;
//Pide el nombre del amigo 'b'
//Atrapa del teclado el nombre del amigo amigo 'b'
//Lee quince caracteres los demás no los lee, no se almacenan
printf("\tEstudia ingenieria en .. \n\t(Ej: computacion)\n\t\t\t") ;
while ( 1 == 1 ) {
carrera[b][i]=getch() ;
printf("%c",carrera[b][i]) ;
if( i == 10 ) break ;
i++ ;
} i = 0 ; getch() ;
//Pide la carrera del amigo 'b', muestra ejemplo
//Atrapa del teclado la carrera del amigo 'b'
printf("\n\tEs de la generacion .. \n\t(Ej: 2004-2)\n\t\t\t") ;
while ( 1 == 1 ) {
generacion[b][i]=getch() ;
printf("%c",generacion[b][i]) ;
if( i == 5 ) break ;
i++ ;
} i = 0 ; getch() ;
//Pide La generación del amigo 'b', muestra ejemplo
//atrapa del teclado la generación del amigo 'b'
printf("\n\tSemestres en la facultad .. \n\t(Ej: 8)\n\t\t\t") ;
while ( 1 == 1 ) {
semestre[b][i]=getch() ;
printf("%c",semestre[b][i]) ;
if( i == 0 ) break ;
i++ ;
} i = 0 ;
//Pide el número de semestres cursados del amigo 'b'
//Atrapa del teclado el semestre que ha cursado el amigo 'b'
//se espera leer un solo caracter para salir
printf("\n\tSu numero de cuenta es .. \n\t(Ej: 400400123)\n\t\t\t") ;
while ( 1 == 1 ) {
numerodecuenta[b][i]=getch() ;
printf("%c",numerodecuenta[b][i]) ;
if( i == 8 ) break ;
i++ ;
} i = 0 ;
//Pide el numero de cuenta del amigo 'b'
//Atrapa del teclado su número de cuenta del amigo 'b'
//se espera leer al menos 9 caracteres para salir
printf("\n\tSu promedio es .. \n\t(Ej: 10.0)\n\t\t\t") ;
while ( 1 == 1 ) {
promedio[b][i]=getch() ;
printf("%c",promedio[b][i]) ;
if( i == 3 ) break ;
i++ ;
} i = 0 ;
//Pide el promedio del amigo 'b'
//Atrapa del teclado el promedio del amigo 'b'
//Se espera leer al menos tres caracteres
system("cls") ;
printf("\t\t<-=:Ha sido agregado tu amigo:=-> \n\n\t\t\t") ;
for( i = 0 ; i <>
{
printf("%c",amigo[b][i]) ;
}
getch() ;
//Se limpia pantalla con 'system("cls")'
//Se notifica que se agrego correctamente
//si 'b' no alcanza el valor de 'a' se regresa al 'for'
//y comienza de nuevo con el ciclo de pedir datos
}
//Hemos salido del ciclo 'for' .... continúa programa
while( 1 == 1 )
{
//Se abre un ciclo infinito para revisar la agenda
//normalmente no se puede limitar el uso de una agenda personal
//viéndolo por ese lado se abre éste ciclo
system("cls") ;
//Limpiamos pantalla después de haber agregado o no
//información a la agenda del usuario
printf("\t\tQuieres revisar tu agenda?, s/n ") ;
ver = getch() ;
if( ver == 'n' ) { break ; }
//Cuando sí se ha introducido información de "el" o "los"
//amigo(s), pregunta si se quiere ver esa información
//teclea 'cualquier tecla' para ver o 'n' para no ver y salir
system("cls") ;
printf("\t\tDame el numero que le corresponde a tu amigo\n\t\t") ;
nuamigo = getch() ;
n = atoi(&nuamigo);
//Se pide el número que se registro del amigo aquí la función
//'scanf("%d",&n)' se pudo utilizar pero para que no haya
//errores utilizamos la función 'atoi'
if( n <> 5 )
{
system("cls") ;
printf("\t\tSALIMOS DE LA AGENDA, ESE NUMERO NO EXISTE") ;
getch();
break ;
} else;
//Si la variable 'n' toma el valor de 0 o menor a éste
//sale del programa y manda un mensaje para evitar errores
if( n > 0 )
{
n = n - 1 ;
system("cls") ;
//Si la variable 'n' toma el valor de 1 o mayor a éste
//inmediatamente se muestran el contenido de la agenda
//Se limpia la pantalla con "system("cls")"
printf("\t\tHa sido seleccionado tu amigo ") ;
for( i = 0 ; i <>
printf("%c",amigo[n][i]) ;
printf("\n\n\tEstudia ingenieria en ") ;
for( i = 0 ; i <>
printf("%c",carrera[n][i]) ;
printf("\n\n\tEs de la generacion ") ;
for( i = 0 ; i <>
printf("%c",generacion[n][i]) ;
printf("\n\n\tSemestres en la facultad ") ;
for( i = 0 ; i <>
printf("%c",semestre[n][i]) ;
printf("\n\n\tSu numero de cuenta es ") ;
for( i = 0 ; i <>
printf("%c",numerodecuenta[n][i]) ;
printf("\n\n\tSu promedio es ") ;
for( i = 0 ; i <>
printf("%c",promedio[n][i]) ;
getch() ;
//Imprime los datos de la agenda en pantalla
}
//Sale el programa del 'if' donde 'i' debe ser mayor a 0
//Se regresa al ciclo de nuevo siempre y cuando no quiera
//revisar la agenda o haya pedido información que no exista
}
//El ciclo infinito while ha terminado, ya no se van a
//ver datos de otro amigo que se hayan ingresado
struct {
char name[22];
char ingenieria[10] ;
char generac[5] ;
char semester[2] ;
int nucuenta ;
float promd ;
} agenda[2] ;
//Se hace la estructura de los creadores de la agenda
//nombre, carrera, semestre, generación, promedio, etc
//La estructura es de tipo agenda y para hacer referencia
//al contenido de cada parámetro en la agenda se añade un '.'
//de esa forma se manda a llamar a ese parámetro
strcpy(agenda[0].name,"Francisco Perez Jimenez") ;
strcpy(agenda[0].ingenieria,"electronica") ;
strcpy(agenda[0].generac,"2004-2") ;
strcpy(agenda[0].semester,"5") ;
agenda[0].nucuenta = 302197022 ;
agenda[0].promd = 8.47 ;
strcpy(agenda[1].name,"Ismael Solano Perez") ;
strcpy(agenda[1].ingenieria,"computacion") ;
strcpy(agenda[1].generac,"2004-2") ;
strcpy(agenda[1].semester,"7") ;
agenda[1].nucuenta = 400400123 ;
agenda[1].promd = 7.90 ;
//Dado que son valores fijos solo se les asigna un valor
//'strcpy' se utiliza para asignar valor a las cadenas
//los que son tipo entero y flotante no necesitan eso
//se les asigna el valor directamente
while ( 1 == 1 )
{
system("cls") ;
printf("\t\tQuieres ver la informacion de los creadores s/n\n\n\t\t") ;
ver = getch() ;
if( ver == 'n' ) { break ; }
//inprime mensale al usuario
//Se teclea 's' para ver o 'n' para no ver y salir
system("cls") ;
printf("\t\tFrancisco (1) Ismael (2)\n\n\t\t") ;
nuamigo = getch() ;
n = atoi(&nuamigo);
//A Francisco le corresponde el valor de '1'
//A Ismael le corresponde el valor de '2'
if( n <> 2 )
{
system("cls") ;
printf("\t\tSOLAMENTE HAY DOS CREADORES") ;
getch();
break ;
} else;
//Si la variable 'n' toma el valor de 0 o menor a éste
//o que pida un número mayor a dos sale del programa
if( n > 0 )
{
n = n - 1 ;
system("cls") ;
//Si la variable 'n' toma el valor de 1 o mayor a éste
//inmediatamente se muestran el contenido de la agenda
//Se limpia la pantalla con "system("cls")"
printf("\t\tHa sido seleccionado tu amigo ") ;
for( i = 0 ; i <>
printf("%c",agenda[n].name[i]) ;
printf("\n\n\tEstudia ingenieria en ") ;
for( i = 0 ; i <>
printf("%c",agenda[n].ingenieria[i]) ;
printf("\n\n\tEs de la generacion ") ;
for( i = 0 ; i <>
printf("%c",agenda[n].generac[i]) ;
printf("\n\n\tSemestres en la facultad ") ;
for( i = 0 ; i <>
printf("%c",agenda[n].semester[i]) ;
printf("\n\n\tSu numero de cuenta es ") ;
printf("%d",agenda[n].nucuenta) ;
printf("\n\n\tSu promedio es ") ;
printf("%f",agenda[n].promd) ;
getch() ;
//Imprime los datos de la agenda en pantalla
}
}
//El ciclo infinito while ha terminado, ya no se van a
//ver datos de los creadores de éste programa
}
//Fin del programa agenda
1 comentario:
...3 palabras... Programación Orientada a Objetos... la programacion estructurada es de los 80's.
Publicar un comentario