esta es una prueba de la aplicacion:
Este es el codigo:
1 #include <stdio.h> 2 #include <iostream.h> 3 #include <conio.h> 4 #include <stdlib.h> 5 #include <string.h> 6 #include <ctype.h> 7 8 double funcvalnum (int tam); 9 char *funcvalet (int n); 10 char *funcvalfnume (int ampl); 11 12 void main (void) 13 { 14 textbackground(1); 15 textcolor(4); 16 clrscr(); 17 // int a=getche();///pruebas de momento 18 double prueban; 19 char pruebalf[30]; 20 char pruebalfn[20]; 21 22 gotoxy(7,9);cout<<"digite un numero: "; 23 gotoxy(7,11);cout<<"Digite nombre: "; 24 gotoxy(7,13);cout<<"Cadena alfanumerica: "; 25 gotoxy(24,9);prueban=funcvalnum(5); 26 gotoxy(22,11);strcpy(pruebalf,funcvalet(30)); 27 gotoxy(28,13);strcpy(pruebalfn,funcvalfnume(7)); 28 29 30 31 cout<<endl<<endl<<pruebalfn;//<<prueban<<endl<<pruebalf<<endl<<pruebalfn; 32 getch(); 33 }///fin main 34 35 36 37 38 double funcvalnum (int tam) 39 { 40 /* funcvalnum 41 La siguiente funcion no es apta para todo publico puede contener 42 partes enredadas se recomienda la supervicion de un adulto :-) 43 */ 44 char vnume[15], baux; 45 int pnume,posx,posy; 46 double numero; 47 48 posx=wherex(); posy=wherey(); 49 50 for(int i=0;i<tam;)///se llena el vector hasta donde debe ser no recibe + 51 { //caracteres de lo estipulado y hace la comparacion 52 //inmediatamente si es uan letra o numero 53 54 textbackground(1);///es igual q el crscr se mdoifican los colores 55 textcolor(4); 56 do{ 57 gotoxy(posx +i,posy);cout<<" "; 58 //gotoxy(3,18);clreol(); 59 gotoxy(posx +i,posy);baux=getche(); 60 pnume=(int) baux; 61 //cout<<endl<<pnume<<" "<<i; 62 //getch(); 63 }while ((i==0 && pnume==13) || (i!=0 && pnume==45));////por si me digitan un enter sin escribri nada 64 65 if( (pnume<48 || pnume>57) && (pnume!=13) && (pnume!=46 && pnume!=45)) 66 { 67 textcolor(7); 68 gotoxy(3,18);cout<<"[X] "; cprintf("Se ha digitado un caracter no valido"); 69 getch(); 70 gotoxy(posx +i,posy);cout<<" "; 71 } 72 else 73 74 if (pnume==13) 75 break; 76 else 77 { 78 vnume[i]=baux; 79 i++; 80 } 81 82 }//fin for 83 numero=atof(vnume); 84 return numero; 85 86 }//fin funcion que valida numeros 87 88 89 char *funcvalet (int n) 90 { 91 char valfab[30], baux; 92 int pnume,posx,posy,comprobar; 93 double numero; 94 95 posx=wherex(); posy=wherey(); 96 97 for(int i=0;i<n;)///se llena el vector hasta donde debe ser no recibe + 98 { //caracteres de lo estipulado y hace la comparacion 99 //inmediatamente si es uan letra o numero 100 101 textbackground(1);///es igual q el crscr se mdoifican los colores 102 textcolor(4); 103 do{ 104 gotoxy(3,18);delline(); 105 gotoxy(posx +i,posy);baux=getche(); 106 pnume=(int) baux; 107 108 }while((i==0 && pnume==13)|| (i==0 && pnume==32));////por si me digitan un enter sin escribri nada 109 110 111 comprobar=isalpha(baux); 112 if (comprobar==0 && pnume!=32 && pnume!=13) 113 { 114 textcolor(7); 115 gotoxy(3,18);cout<<"[X] "; cprintf("Se ha digitado una caracter no valido"); 116 getch(); 117 gotoxy(posx +i,posy);cout<<" "; 118 } 119 else 120 if(pnume==13) 121 { 122 break; 123 } 124 else 125 { 126 valfab[i]=baux; 127 i++; 128 } 129 130 }//fin for 131 return valfab; 132 133 }///fin funcion q valida las letras 134 135 char *funcvalfnume (int ampl)///porq tiene q se run puntero? 136 { 137 138 char valfanu[30], baux; 139 int pnume,posx,posy,comprobar; 140 double numero; 141 142 posx=wherex(); posy=wherey(); 143 144 /*for(int j=0; j<ampl; j++) ///por el probelma d eun solo digito 145 valfanu[j]=' '; */ 146 147 for(int i=0;i<ampl;)///se llena el vector hasta donde debe ser no recibe + 148 { //caracteres de lo estipulado y hace la comparacion 149 //inmediatamente si es uan letra o numero 150 151 textbackground(1);///es igual q el crscr se mdoifican los colores 152 textcolor(4); 153 do{ 154 gotoxy(3,18);delline(); 155 gotoxy(posx +i,posy);baux=getche(); 156 pnume=(int) baux; 157 158 }while((i==0 && pnume==13)|| (i==0 && pnume==32));////por si me digitan un enter sin escribri nada 159 160 161 comprobar=isalnum(baux); 162 163 if(comprobar!=8 && comprobar!=2 && pnume!=32 && pnume!=13 && pnume!=46 && pnume!=35 && pnume!=64 && pnume!=45 && pnume!=95)//comprubea los caracteres (. # @ - _ ) 164 { 165 166 textcolor(7); 167 gotoxy(3,18);cout<<"[X] "; cprintf("Se ha digitado una caracter no valido"); 168 getch(); 169 gotoxy(posx +i,posy);cout<<" "; 170 171 } 172 else 173 if(pnume==13) 174 { 175 break; 176 } 177 178 else 179 { 180 valfanu[i]=baux; 181 i++; 182 } 183 }///fin for 184 185 return valfanu; 186 187 }///fin funcion valores alfanumericos
No hay comentarios:
Publicar un comentario