C/Visual C - ayuda con este programa URGENTE

 
Vista:

ayuda con este programa URGENTE

Publicado por Irving (3 intervenciones) el 16/03/2006 15:25:08
quiero que tenga un fin de cadena y que me acepte cierto numero de caracteres...

#include<conio.h>
#include<stdio.h>
#include<string.h>
#include<stdlib.h>

struct mi_dato{
int num;
char nombre[15];
int edad;
float peso;
};

void pide_dato(struct mi_dato *);
void imprime_dato(struct mi_dato);
int pide_entero();
double pide_float();

void main()
{
struct mi_dato alumno;
clrscr();
pide_dato(&alumno);
imprime_dato(alumno);
getch();
}

void pide_dato(struct mi_dato *alum)
{
int ed,nu;
char nom[15];
float peso1;
gotoxy(2,5);printf("dame tu numero: "); nu=pide_entero();

gotoxy(2,6);printf("dame tu nombre:"); gets(nom);
/*if(nom==15)
{
printf("\a");
} */
gotoxy(2,7);printf("dame tu edad:"); ed=pide_entero();
gotoxy(2,8);printf("dame tu peso:"); peso1=pide_float();

/* alumno.num=1; el cambio que se hizo es que en vez del . se pone la ->
alumno.edad=15;*/
alum->num=nu;
strcpy(alum->nombre,nom);
alum->edad=ed;
alum->peso=peso1;
}

void imprime_dato(struct mi_dato alumno)
{
printf("\n numero: %i \n nombre: %s \n edad: %i\n peso: %2.2f",alumno.num,alumno.nombre,alumno.edad,alumno.peso);
}


int pide_entero()
{
int a=0,n,x=0;
char cade[8],cade2[8],letra;
do{
letra=getche();
if ((letra>=48)&&(letra<=57)||(letra=='-')){
cade[x]=letra;
x++;
a++;
strcat(cade2,cade);

}//if
else
if ((letra>=65)&&(letra<=90)){
printf("\b");
printf(" ");
printf("\b");}
else
if((letra>=97)&&(letra<=122)){
printf("\b");
printf(" ");
printf("\b");}
if(a>cade[x])
{
printf("\a");
}
}while(letra!=13);
cade[x]='\0';

n=atoi(cade);
return (n);
}

double pide_float()
{
double n;
int a=0,x=0;
char cade[8],cade2[8],letra;
do{
letra=getche();
if ((letra>=48)&&(letra<=57)||(letra=='-')){
cade[x]=letra;
x++;
a++;
strcat(cade2,cade);
}//if
else
if ((letra>=65)&&(letra<=90)){
printf("\b");
printf(" ");
printf("\b");}
else
if((letra>=97)&&(letra<=122)){
printf("\b");
printf(" ");
printf("\b");}
if(a>cade[x])
{
printf("\a");
}

}while(letra!=13);
cade[x]='\0';
n=atof(cade);
return (n);
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:ayuda con este programa URGENTE

Publicado por Diego Navarro (1 intervención) el 17/03/2006 15:55:42
Me gustaria saber como sobrecargar los siguientes operadores para utilizarlos en una clase que trabaja con cadenas:
+
=
==
!=
<<
>>
[ ]Lvalue
[ ]Rvalue
agradeceria mucho la ayuda
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:ayuda con este programa URGENTE

Publicado por gaucho (2 intervenciones) el 17/03/2006 22:12:05
Mira, no recuerdo bien, estoy casi seguro que para la sobrecarga es como sobrecargar una función cualquiera ...
Por ejemplo:

Cadena cad1, cad2, resultado;

resultado = cad1 + cad2

Esto seria a nivel libreria
operator + :class cadena
{
Determinar cual cadena tiene mayor long.
While( i<long Max )
{
res= ASCII(cad1) + ASCII(cad2)
i++;
}
Return (res)
}


Espero serte útil..."a programar se aprende programando"
Suerte
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar