Indicaciones al respecto de identificación digito_caracter y mayúscula_minuscula

oagu
24 de Abril del 2005
Por favor me indican como seguir este codigo en c++
Estoy comenzado a conocer el c++ y no se como terminar este ejercicio.


Gracias.
Se requiere hacer un an lisis de s¡mbolos que se entran desde el teclado.
Por cada s¡mbolo debe decirse si es un d¡gito o car cter.
Para el caso que sea un Car cter, se tendr el siguiente men£:

CARACTER
1. LETRA
2. OPERADOR
3. TERMINAR

Si el usuario elige la opci¢n 1 (letra), se debe verificar si el car cter
le¡do es o no una letra. Si lo es, mostrar un mensaje informando si el
car cter es vocal o consonante y si est en may£scula o min£scula.

Si se elige la opci¢n 2 (operador), se verifica si el car cter es o no un
operador, adem s informar si es un operador: matem tico (+,-,/,*)
relacional (>,<,=) o booleano (^, !, v)
Para el caso de un D¡gito, se tendr el siguiente men£:

DIGITO
1. FACTORIAL
2. NUMERO PERFECTO
3. POTENCIA (A^b)
4. PRIMO
5. TERMINAR

Calcular el factorial y la potencia. Tener en cuenta que para el c lculo
de la potencia debe ingresarse el exponente.

Un n£mero es perfecto si la suma de todos sus divisores, excepto el mismo,
es igual al mismo n£mero. Por ejemplo, 6 es un n£mero perfecto,
por que 6=3+2+1

#include <iostream.h>
#include <ctype.h>
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <stdlib.h>
#include<graphics.h>

void main()
{
char salir='n',opcion;
int sim;

textbackground (LIGHTBLUE);//GRAY);
clrscr();
textcolor (WHITE);//BLUE);

gotoxy(25,10); printf ("tCURSO DE COMPUTADORES I");
gotoxy(25,11); printf ("t PRACTICA DE LABORATORIO 2");
gotoxy(25,12); printf ("t RECONOCIMIENTO DE CARACTERES");
gotoxy(25,13); printf ("t Por Luz Adriana Vel squez Londo¤o");
gotoxy(25,14); printf ("t CC. 43.181.591");
gotoxy(25,15); printf ("t Por Olga Luc¡a Aguilar");
gotoxy(25,16); printf ("t CC. 43.630.687");
getch();
clrscr();
while((salir=='n')||(salir=='N'))
{
gotoxy(30,13);printf("Por favor digite un simbolo: ");
cin>>sim;
if(islower)
{
do
{
clrscr();
char sim;
// gotoxy(30,13);printf("Por favor digite un simbolo: ");
// cin>>sim;
gotoxy(30,8);printf("tMENU CARACTER ");
gotoxy(20,9);printf("1. Letra ");
gotoxy(20,10);printf("2. Operador ");
gotoxy(20,11); printf("3. Terminar ");

gotoxy(30,13);printf("Por favor digite su eleccion....");
opcion=getchar();
switch(opcion)
{
case '1': //LETRA
if(islower)
{
if((sim=='a')||(sim=='e')||(sim=='i')||(sim=='o')||(sim=='u'))
{
cout<<"Este simbolo es una vocal";
getch();
}
else
{
cout<< "Este simbolo es una consonante";
getch();
}
}
getch();
break;

case '2': //OPERADOR
clrscr();
if((sim=='+')||(sim=='-')||(sim=='/')||(sim=='*'))
{
cout<< "Este simbolo es un operador matematico";
}
else
if((sim=='>')||(sim=='<')||(sim=='='))
{
cout<< "Este simbolo es un operador relacional";
}
else
if((sim=='^')||(sim=='!')||(sim=='v'))
{
cout<< "Este simbolo es un operador booleano";
}
getch();
break;

case '3': //TERMINAR
gotoxy(40,22); printf ("Desea Terminar ? [s/n] ");
scanf ("%s",&salir);
if((salir=='s')||(salir=='S'))
break;
if((salir=='n')||(salir=='N'))
{
clreol();
gotoxy(30,18);printf("Por favor digite su eleccion....");
salir=getchar();
}
}

}while(opcion!='3');
}
else if(isdigit)
{
gotoxy(30,13);printf("Por favor digite un simbolo: ");
cin>>sim;

do
{
// gotoxy(30,13);cout<<"Por favor digite un simbolo....";
// cin>>sim;
if(isdigit)
{
clrscr();
gotoxy(30,8);printf("tMENU DIGITO ");
gotoxy(20,9);printf("1. Factorial ");
gotoxy(20,10);printf("2. Numero Perfecto ");
gotoxy(20,11); printf("3. Potencia (A^b) ");
gotoxy(20,12); printf("4. Primo ");
gotoxy(20,13); printf("5. Terminar ");

gotoxy(30,15);printf("Por favor digite su eleccion....");
opcion=getchar();
switch(opcion)
{
case '1': //FACTORIAL
clrscr();
int num,l;
long
float res=1;
printf( "nIntroduce el numero deseado para calcular el factorial:n" );
scanf( "%d", &num );
if(num>1)
{
for(l=1;l<=num;l++)
res*=l;
}
printf( "El resultado es: %d! = %.03f n", num, res );
getch();
break;

case '2': //NUMERO PERFECTO
int sim,s;
clrscr();
while(1)
{
printf("Digite un Numero: (con 0 sale)");
scanf("%d", &sim);
if( sim < 1 )
break;
int sum=0;
for (int i=1;i<=sim/2;i++)
if(sim%i==0)
sum += i;
s =sum;
if( s < sim )
cout << sim << " No es Perfecto " << endl;
else if( s > sim )
cout << sim << " No es perfecto " << endl;
else
cout << sim << " Es perfecto " << endl;
}
break;


case '3': //POTENCIA (A^b)
//clrscr();
int exp,e,pot=1; //v
clrscr();
//sim=0;
printf("tEl valor es: ");
scanf("%d",&sim);
printf("tnIntroducir el exponente: ");
scanf("%d",&exp);
for(e=0;e<exp;e++)
pot=pot*sim; //v;
printf( "tnEl resultado es:%dn ", pot );
getch();
break;
case '4': //PRIMO
clrscr();
// using namespace std;
int g,numDivisores=0;
cout<<sim;
//<<"Dame un numero: ";
//cin>>num;
clrscr();
for(g=1;g<=sim;g++)
{
if(sim%g==0) //el operador % nos da el resto de la division.
{ //veamos cuantos divisores tiene nuestro numero.
numDivisores=numDivisores+1;
}
}
if(numDivisores==2) //si tiene 2 divisores(el mismo y la unidad).
{
cout<<sim<<" es un numero primo."<<endl;
}
else //si tiene mas divisores.
{
cout<<sim<<" no es un numero primo."<<endl;
}
system("pause"); //pausa hasta que se pulse una tecla.
//return 0;
clreol();
getch();
break;

case '5': //TERMINAR
gotoxy(40,22); printf ("Desea Terminar ? [s/n] ");
scanf ("%s",&salir);
if((salir=='s')||(salir=='S'))
break;
if((salir=='n')||(salir=='N'))
{
clreol();
gotoxy(30,18);printf("Por favor digite su eleccion....");
salir=getchar();
}

}
}
}while(opcion!='5');
}
}
}






Esto es lo que tengo hasta ahora, me presenta problemas la identificación de la condición:
Si es caracter o digito y la identificación de mayúscula o minuscula.

Gracias a la persona que quiera colaborame.