Menú

Mostrar Mensajes

Esta sección te permite ver todos los mensajes escritos por este usuario. Ten en cuenta que sólo puedes ver los mensajes escritos en zonas a las que tienes acceso en este momento.

Mostrar Mensajes Menú

Temas - osvaldo.87

#1
hola a todos tengo que crear un algoritmo que valide verifique rut con menu y todo bueno este es el algoritmo que llevo echo pero al momento de compilar me tira errores quisiera saber si ustedes podrian ayudarme a corregirlos porfavor aqui les dejo el algoritmo aa lo tengo que compilar en dev c++

# include <stdlib.h>
# include <conio.h>
# include <ctype.h>

# define K 10 /*DECLARACION DE CONSTANTES*/
# define LIMITE 1000000
# define M 11

/*FUNCION DIGITOVER:CALCULA EL DIGITO VERIFICADOR*/
int digitover(int digito){
int resto=0,mult=1,i=2,suma=0;
while(digito!=0){
resto=digito%K;
digito=digito/K;
mult=resto*i;
suma+=mult;
i++;
if(i+1==9){
i=2;
}
}
resto=suma/M;
digito=resto*M;
resto=suma-digito;
digito=M-resto;
return digito;/*RETORNA DIGITO VERIFICADOR*/
}
/*FUNCION ERROR:MUESTRA MENSAJE EN PANTALLA*/
char error(){
printf;("\n\n\ERROR<<<<EL RUT(RUN")
" ES INCORRECTO!!!");
}
/*FUNCION MENSAJE:MUESTRA MENSAJE EN PANTALLA*/
char mensaje(){
printf("\n\n\t<<<<PRESIONE UNA TECLA PARA VOLVER AL MENU");
getch();
}
/*FUNCION MENU:MUESTRA MENU EN PANTALLA*/
char menu(){
printf("\tMENU DE OPCIONES\n");
printf("\n\t1-VALIDAR RUT(RUN)");
printf("\n\t2-OBTENER DIGITO VERIFICADOR RUT(RUN)");
printf("\n\t3-SALIR");
printf("\n\n\tESCOJA SU OPCION: ");
}
/*PROGRAMA PRINCIPAL*/
int main(){
int rut,dig,digito=0;
char c,resp,d;
do{
do{
system("CLS()"); /*LIMPIA LA PANTALLA*/
menu();
c=getche();
getch();
if ((c=='1?)||(c=='2?)||(c=='3?)){/*VALIDA LA OPCION DE MENU*/
switch ©{
case '1?:
rut=0; /*INICIALIZACION*/
system("CLS()"); /*LIMPIA LA PANTALLA*/
printf("\n\tEJEMPLO RUT(RUN):12.345.678-X,"
"INGRESAR:12345678-X");
printf("\n\n\tINGRESAR RUT(RUN): ");
scanf("%d-%c",&rut,&d);

/*VALIDA EL DIGITO VERIFICADOR INGRESADO POR EL USUARIO*/
/* OTORGANDO UN VALOR TIPO INT A LA VARIABLE DIG */

if((d=='k')||(d=='K')){
dig=K;/*dig=10*/
}
else if(d=='0?){
dig=M;/*dig=11*/
}
else if(d=='1?){
dig=1;
}
else if(d=='2?){
dig=2;
}
else if(d=='3?){
dig=3;
}
else if(d=='4?){
dig=4;
}
else if(d=='5?){
dig=5;
}
else if(d=='6?){
dig=6;
}
else if(d=='7?){
dig=7;
}
else if(d=='8?){
dig=8;
}
else if(d=='9?){
dig=9;
}
else{
dig=-1;/*EL DIGITO VERIFICADOR INGRESADO NO ES VALIDO*/
}
if(dig!=-1){/*SE REALIZA CUANDO ES VALIDO EL*/
/* DIGITO VERIFICADOR INGRESADO */
if(rut>LIMITE){/*ACEPTA RUT(RUN)MAYORES QUE LIMITE*/
digito=digitover(rut);
if(digito==dig){
printf("\n\tEL RUT(RUN) \"%d-%c\" A PASADO"
" LA VALIDACION",rut,d);
}
else{/*SE REALIZA CUANDO EL DIGITO */
/* VERIFICADOR NO ES VALIDO */
error();/*INVOCA FUNCION ERROR*/
}
}
else{ /*SE REALIZA CUANDO EL RUT NO ES VALIDO*/
error();/*INVOCA FUNCION ERROR*/
}
}
else{/*SE REALIZA CUANDO EL DIGITO VERIFICADOR INGRESADO NO ES VALIDO */
error();/*INVOCA FUNCION ERROR*/
}
mensaje();/*INVOCA FUNCION MENSAJE*/
break;/*FIN CASE 1*/
case '2?:
rut=0; /*INICIALIZACION*/
system("CLS()"); /*LIMPIA LA PANTALLA*/
printf("\n\tEJEMPLO RUT(RUN):12.345.678-X,"
"INGRESAR:12345678?);
printf("\n\n\tINGRESAR RUT(RUN): ");
scanf("%d",&rut);

if(rut>LIMITE) /*ACEPTA RUT(RUN) MAYORES A LIMITE*/
{
digito=digitover(rut); /*ASIGNACION MEDIANTE INVOCACION*/
/* A FUNCION DIGITOVER */
if(digito==M)
{
digito=0;
printf("\n\tEL DIGITO VERIFICADOR ES: %d",digito);
}
else if(digito==K)
{
printf("\n\tEL DIGITO VERIFICADOR ES: %c",'K');
}
else{
printf("\n\tEL DIGITO VERIFICADOR ES: %d",digito);
}
else /*SE REALIZA SI EL RUT NO ES VALIDO*/
{
error(); /*INVOCA FUNCION ERROR*/
}
mensaje();/*INVOCA FUNCION MENSAJE*/

break; /*FIN CASE 2*/
}/*FIN SWITCH*/
} /*FIN IF*/
else{/*SE REALIZA CUANDO LA OPCION DE MENU NO ES VALIDA*/
printf("\n\tERROR<<<<DEBE ELEGIR UNA OPCION VALIDA");
mensaje();/*INVOCA FUNCION MENSAJE*/
}
}while(c!='3?);
printf("\n\n\t\tQUIRES SALIR DEL PROGRAMA?"
"\n\n\t<<<SI...ENTONCES PULSA [ S ]"
"\n\t\<<<NO...ENTONCES PULSA UNA TECLA PARA VOLVER AL MENU");
resp=toupper(getch());/*CONVIERTE A MAYUSCULA [s -> S]*/
}while(resp!='S');
return 0;
}/*FIN DEL PROGRAMA*/



no se si algo sobre falte o si esta bien echo porfavor ayudenme es coeficiente este trabajo de ante mano muchas gracias adios.