Programación en C/Ejemplos
Agenda-Proyecto 03
struct agenda
{
char nombre[30];
char apellido[30];
int telefono;
char correo_electronico[30];
int edad;
char area_interes[100],sexo;
int codigo;
};
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#define num 100//el numero de array que van a ser dispuestos en agenda
void guarda(struct agenda agregado[num]);
int dispmenu(void);
void addlist(struct agenda agregado[num]);
void displist(struct agenda agregado[num]);
void presskey(void);
void guardar(struct agenda ag[100]);
void cargar(struct agenda ag[100]);
int numlist;
main()
{
struct agenda agregado[num];//Me define un array de campos struct
int ans;
int i,k;
do
{
ans=dispmenu();
switch(ans)
{
case(1): addlist(agregado);
break;
case(2): displist(agregado);
break;
case(3): guardar( agregado);
break;
case(4): cargar(agregado);
break;
case(5): exit(1);
break;//por si la mosca
default: printf("\n**Usted debe entrar 1,2,3,4 0 5\n");
break;
}
}while((ans>= 1)&&(ans<=5));
return 0;
}
//******************************************************************************
int dispmenu(void)
{ int choice;
printf("\n\n\n\t\t**agenda **\n\n");
printf("Aqui estan las tareas:\n");
puts("\t1.Entrar datos a la agenda");
puts("\t2.Mostrar los datos");
puts("\t3.guardar los datos");
puts("\t4.cargar los datos");
puts("\t5.Salir del programa");
printf("Cual es tu tarea? \n");
scanf("%d",&choice);
return choice;
}
//******************************************************************************
void addlist(struct agenda agregado[num])
{
if(numlist==num)
{
printf("\nLa agenda esta llena;Usted no puede agregar mas\n");
presskey();
return;//retorna de la funcion sin agregar otra lista
}
printf("Cual es el nombre del agregado?%s \n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].nombre);
gets(agregado[numlist].nombre);
printf("Cuales son los apellidos de %s\n",agregado[numlist].nombre);
gets(agregado[numlist].apellido);
printf("Agrege el telefono de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].telefono);
printf("Cual es el correo electronico de %s\n",agregado[numlist].nombre);
scanf("%c",&agregado[numlist].correo_electronico);
gets(agregado[numlist].correo_electronico);
printf("Cual es la edad de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].edad);
printf("Cual el area de interes de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].area_interes);
gets(agregado[numlist].area_interes);
printf("Cual es el sexo de %s (f)or(m)\n",agregado[numlist].nombre);
scanf("%c",&agregado[numlist].sexo);
printf("Introduzca el codigo de %s\n",agregado[numlist].nombre);
scanf("%d",&agregado[numlist].codigo);
numlist++;//incrementa el numero de lista para el proximo agregado
return;
}
//******************************************************************************
void displist(struct agenda agregado[num])
{
int ctr;
if(numlist == 0)
{printf("\n\nNo hay agregados en la lista\n\n");
return;//retorna porque no se encuentran agregados en la lista
}
for(ctr = 0;ctr< numlist;ctr++)
{
printf("\n\agregado #%d:\n",ctr+1);
printf("Name: %s\t",agregado[ctr].nombre);
printf("Apellido: %s\t",agregado[ctr].apellido);
printf("Telefono: %d\n",agregado[ctr].telefono);
printf("Correo Electronico :%s\t",agregado[ctr].correo_electronico);
printf("Edad :%d\n",agregado[ctr].edad);
printf("Area de interes :%s\t",agregado[ctr].area_interes);
printf("Sexo :%c\n",agregado[ctr].sexo);
printf("Codigo:%d\t",agregado[ctr].codigo);
}
return;
}
//******************************************************************************
//******************************************************************************
void presskey(void)
{
fflush(stdin);
printf("\n\nPress any key to continue...");
getch();
return;
}
//******************************************************************************
void guardar(struct agenda ag[100]) {
FILE *f = fopen("Agenda.dat", "w");
if(f != NULL) {
fwrite(ag, sizeof(agenda), 100, f);
}
fclose(f);
}
void cargar(struct agenda ag[100]) {
FILE *f = fopen("Agenda.dat", "r");
if(f != NULL) {
fread(ag, sizeof(agenda), 100, f);
}
system("pause");
}
Impresion de numeros-proyecto 01
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define N 80
void letras(int n, char nombre[N]){
int u,d,c,du;
char su[22];
char sd[22];
char sc[22];
strcpy(su,"");
strcpy(sd,"");
strcpy(sc,"");
u=n;
u=n%10;
d=((n%100)-u)/10;
du=u+(d*10);
c=(n-du)/100;
if ((du<=15)&&(du>=10)){
switch(du){
case 11:
strcpy(su,"once");
break;
case 12:
strcpy(su,"doce");
break;
case 13:
strcpy(su,"trece");
break;
case 14:
strcpy(su,"catorce");
break;
case 15:
strcpy(su,"quince");
break;
case 10:
strcpy(su,"diez");
break;
}
}
else if (du==20)
strcpy(sd,"veinte");
else if (du==30)
strcpy(sd,"treinta");
else if (du==40)
strcpy(sd,"cuanrenta");
else if (du==50)
strcpy(sd,"cincuenta");
else if (du==60)
strcpy(sd,"sesenta");
else if (du==70)
strcpy(sd,"setenta");
else if (du==80)
strcpy(sd,"ochenta");
else if (du==90)
strcpy(sd,"noventa");
else {
switch(u){
case 0:
strcpy(su,"cero");
break;
case 1:
strcpy(su,"uno");
break;
case 2:
strcpy(su,"dos");
break;
case 3:
strcpy(su,"tres");
break;
case 4:
strcpy(su,"cuatro");
break;
case 5:
strcpy(su,"cinco");
break;
case 6:
strcpy(su,"seis");
break;
case 7:
strcpy(su,"siete");
break;
case 8:
strcpy(su,"ocho");
break;
case 9:
strcpy(su,"nueve");
break;
}
switch(d){
case 1:
strcpy(sd,"diez y ");
break;
case 2:
strcpy(sd,"veinti");
break;
case 3:
strcpy(sd,"treinta y ");
break;
case 4:
strcpy(sd,"cuarenta y ");
break;
case 5:
strcpy(sd,"cincuenta y ");
break;
case 6:
strcpy(sd,"sesenta y ");
break;
case 7:
strcpy(sd,"setenta y ");
break;
case 8:
strcpy(sd,"ochenta y ");
break;
case 9:
strcpy(sd,"noventa y ");
break;
}
}
switch (c){
case 1:
if(du==0)
strcpy(sc,"cien ");
else{
strcpy(sc,"ciento ");
}
break;
case 2:
strcpy(sc,"doscientos ");
break;
case 3:
strcpy(sc,"trescientos ");
break;
case 4:
strcpy(sc,"cuatrocientos ");
break;
case 5:
strcpy(sc,"quinientos ");
break;
case 6:
strcpy(sc,"seiscientos ");
break;
case 7:
strcpy(sc,"setecientos ");
break;
case 8:
strcpy(sc,"ochocientos ");
break;
case 9:
strcpy(sc,"novecientos ");
break;
}
strcpy(nombre,sc);
strcat(nombre,sd);
strcat(nombre,su);
}
main(){
int n=0;
int c=0,mil=0,mill=0;
char nombre[180];
char centenas[N];
char miles[N];
char millones[N];
printf("Bienvenidos a la impresion de numeros\n");
printf("Digite el monto a imprimir o -1 para terminar: ");
scanf("%d",&n);
while(n!=-1){
c=n%1000;
mil=((n%1000000)-c)/1000 ;
mill= (n-(c + mil))/1000000;
strcpy(centenas,"");
strcpy(miles,"");
strcpy(millones,"");
strcpy(nombre,"");
letras(c,centenas);
if(mil==1)
strcpy(miles," mil ");
if(mil==0);
else{
letras(mil,miles);
strcat(miles," mil ");
}
if(mill==1)
strcpy(millones," un millon ");
if(mill==0);
else{
letras(mill,millones);
strcat(millones," millones ");
}
strcpy(nombre,millones);
strcat(nombre,miles);
strcat(nombre,centenas);
printf("\nEl monto se debe leer de la siguente manera: ");
printf("%s",nombre);
printf("\n\nDigite el proximo numero para evaluar o -1 para terminar: ");
scanf("%d",&n);
system ("cls");
}
}
Impresion de Numeros - Proyecto 02
#include <stdio.h>
#include <conio.h>
void romano(int,int);
void romano2(char,char,char,int);
void escribe(char,int);
void main(){
int (num,num2,div);
do
{
clrscr();
printf("Introduzca numero decimal a convertir (0 para salir) => ");
scanf("%d",&num);
num2=num;
if(num!=0)
{
div=1000;
printf("El numero romano equivalente es => ");
while(num!=0)
{
romano(num/div,div);
num=num%div;
div=div/10;
}
getch();
fflush(stdin);
}
}
while(num2!=0);
}
}
///////////////////////////////////////////////////////////////////////////////
void romano(int cant,int div)
{
switch(div)
{
case 1000: printf("M",cant);
break;
case 100: printf("C","M","D",cant);
break;
case 10: printf("X","L","C");
break;
case 1: printf("I","V","X",cant);
break;
}
}
///////////////////////////////////////////////////////////////////////////////
void romano2(char u, char d, char c,int cant)
{
switch (cant)
{
case 1:
case 2:
case 3: escribe(u,cant);
break;
case 4:
case 5: escribe(u,5-cant);
escribe(d,1);
break;
case 6:
case 7:
case 8: escribe(d,1);
escribe(u,cant-5);
break;
case 9:
escribe(u,5-cant);
escribe(d,1);
break;
}
}
///////////////////////////////////////////////////////////////////////////////
void escribe(char car,int veces)
{
int i;
for(i=1;i<=veces;i++)
{
putchar(car);
}
}
NOTA: Este programa está tomado del Dominio Público
#include <stdio.h>
int main(void)
{
printf("Hola Mundo\n");
return(0);
}
$ ./holamundo
Hola Mundo
$
El "Hola Mundo" comentado
/*
holamundo.c
Envite, 2004
para el wikilibro "Programación en C (fundamentos)"
tomado del Dominio Público
*/
#include <stdio.h> /*Necesario para la función printf()*/
int main(void) /*Función principal del programa*/
{
printf("Hola Mundo\n"); /*imprime la cadena*/
return(0); /*sale del programa: correcto*/
}
$ ./holamundoc
Hola Mundo
$
El "Hola Mundo" estructurado en funciones
/*
holamundo.c
(c) Envite, 2004
para el wikilibro "Programación en C (fundamentos)"
bajo licencia FDL, adaptado del Dominio Público
*/
#include <stdio.h> /*Necesario para la función printf()*/
void holamundo(void) /*Función donde se ejecuta la lógica del programa*/
{
printf("Hola Mundo\n"); /*imprime la cadena*/
return; /*sale de la función*/
}
int main(void) /*Función principal del programa*/
{
holamundo(); /*llamada a la función que lleva el peso*/
return(0); /*sale del programa: correcto*/
}
$ ./holamundof
Hola Mundo
$
Ejemplo de cálculo con enteros
/*
ejemplo.c
(c) Envite, 2004
para el wikilibro "Programación en C (fundamentos)"
bajo licencia FDL
*/
#include <stdio.h> /*Necesario para la función printf()*/
int main(void) /*Función principal del programa*/
{
char resultado; /*Variable de tipo carácter donde se almacenará el resultado de
las operaciones.*/
resultado=5+2; /*Realizamos una suma.*/
printf("Resultado de la suma: %i\n",resultado);
resultado=5-2; /*Realizamos una resta.*/
printf("Resultado de la resta: %i\n",resultado);
resultado=5*2; /*Realizamos una multiplicación.*/
printf("Resultado de la multiplicación: %i\n",resultado);
resultado=5/2; /*Realizamos una división entera.*/
printf("Resultado de la división: %i\n",resultado);
return(0); /*Salimos del programa con el código 0 porque no ha habido errores.*/
}
$ ./ejemploc
Resultado de la suma: 7
Resultado de la resta: 3
Resultado de la multiplicación: 10
Resultado de la división: 2
$
Control de acceso
#include <stdio.h>
void acceso(unsigned char edad)
{
if (edad < 18)
printf("No puedes acceder.\n");
else
printf("Bienvenido.\n");
return;
}
int main(void)
{
acceso(18);
acceso(17);
return(0);
}
$ ./acceso
Bienvenido.
No puedes acceder.$
|