viernes, 14 de septiembre de 2007

Agenda.c

//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:

El Maic dijo...

...3 palabras... Programación Orientada a Objetos... la programacion estructurada es de los 80's.