P09Menu.
1) Objetivo.
Imprime un MENU con 4 opciones y solicita se digite una. Si es incorrecta
vuelve a solicitar la opción. Con una opción correcta, se borra la pantalla y
pidiendo los datos respectivos imprime el resultado regresando nuevamente
a la pantalla de menú. Con la opción 4, se termina el proceso.
NOTA:
Para ubicarse en un punto de la pantalla se hace uso de la instrucción
gotoxy.h , que
debe estar en la carpeta donde se encuentra el programa fuente. Esto se
en lugar de < y >
2) Interface de usuario
Es un esquema que ilustra lo que aparece en la pantalla al ejecutar el
programa.
MENU
1) Suma de 1 a N de 3 en 3
2) Area de un rectángulo
3) Area de un circulo
4) Fin de sesion
Seleccione OPCION:
3) Diagramas de flujo.
Es una representación gráfica de las acciones que se desean haga la computadora.
main
limpiarPantalla
Ir((35,10) MENU
Ir((20,12) T1
Ir((20,13) T2
Ir((20,14) T3
Ir((20,15) T4
Ir((30,17)
Ir((30,17) Seleccione OPCION:
opc
limpiarPantalla
SI
NO o
NO
T1
T2
Alimentar N (<=100)
Alimentar LARGO:
T3 a
a
Alimentar RADIO: Alimentar ANCHO:
b
r=0,i=1; i<=a; i+=3
a
r =a * b
r =a * a * PI r=r+i Termino = i
Suma = r
Resultado = r Resultado = r Resultado = r
fin
4) Codificación.
/* P09Menu.c
ROGRAMA MENU
Ing. Leopoldo Ortega Rios
*/
#include<stdio.h>
//#include<math.h>
#include "gotoxy.h" //para poder operar la instruccion goto(x,y)
#define PI 3.14159
#define T1 "1) Suma de 1 a N de 3 en 3"
#define T2 "2) Area de un rectangulo"
#define T3 "3) Area de un circulo"
#define T4 "4) Fin de sesion"
//using namespace std;
Int main() {
//variables usadas en el programa, según el Diagrama de Flujo
char opc;
float r,a,b;
int i,xc,yc;
while(1) {
system("cls");
gotoxy(35,10); printf("M E N U ");
//Ir a las coordenadas (35,10) de la pantalla e imptimir.
gotoxy(20,12); printf(T1);
gotoxy(20,13); printf(T2);
gotoxy(20,14); printf(T3);
gotoxy(20,15); printf(T4);
do{
gotoxy(30,17); printf(" ");
gotoxy(30,17); printf("Seleccione OPCION: ");
opc=getche(); //similar a scanf, lee un caracter
}while(!(opc >='1' && opc <= '4')); // 1 ´4´ son caracteres, no numeros
system("cls");
// switch sustituye al grupo de if
switch (opc) {
case '1':
/* SUMA DE 1 A N DE 3 EN 3 */
printf("\n"); printf(T1);
printf("\nAlimentar N (<=100)");
scanf("%f",&a);
for(r=0,i=1;i<=a;i+=3) {
r+=i;
printf("\nTremino= %d\tSuma= %f",i,r);
}
printf("\n\nResultado = %g",r);
//formato general de flotante, con punto decimal o notación cientifica
getch();
break; //sale del switch
case '2':
/* AREA DE UN RECTANGULO */
printf("\n"); printf(T2);
printf("\nAlimentar LARGO: ");
scanf("%f",&a);
printf("\nAlimentar ANCHO: ");
scanf("%f",&b);
r=a*b;
printf("\n\nResultado = %g",r);
getch();
break;
case '3':
/* AREA DE UN CIRCULO */
printf("\n"); printf(T3);
printf("\nAlimentar RADIO: ");
scanf("%f",&a);
r=a*a*PI;
printf("\n\nResultado = %g",r);
getch();
break;
default: //
/* TERMINACION DE SESION */
exit(0); //regresa control al Sistema Operativo
} //terminación delswitch
} //while(1)
} // main
5) Observaciones:
-
gotoxy(valX,valY);
Con la instrucción al preprocesador #define PI 3.14159 se permite que dentro del
programa se sustituya PI por 3.14159.
- Se definen como int las variables i, xc, yc (variables auxiliares y las coordenadas
actuales del cursor). Como float r, a, b (radio, base, altura). Como tipo carácter opc.
-
fijarse en el orden. En switch en principio, no se requiere de tal análisis. Para el
diagrama de flujo se tiene el siguiente símbolo:
opc
3 RECTAN..
1
CIRCULO
4
FIN
6) Requerimientos:
Enviar al eMail correspondiente del grupo,
2 Imagen de la pantalla con la ejecución del programa. La captura de una pantalla
\Pictures\CapturaDePantalla (una
aproximación, depende del S.O. instalado y el equipo).
Es necesario crear una Carpeta o Directorio en el equipo del alumno con el nombre
ejercicio debe generar: Archivo Fuente (Pxxxx.c, Archivo Objeto (Pxxxx.o), Archivo
ejecutable ([Link]), pueden guardar adicionalmente el archivo enviado por
WhatsApp ([Link]).
7) NOTA. : ES RECOMENDABLE QUE TRATEN DE HACER POR SI SOLOS EL
DIAGRAMA DE FLUJO, EN BASE AL OBJETIVO Y LA INTERFACE DE USUARIO (NO
NECESARIAMENTE DEBE SER IGUAL AL PROPUESTO). EL SIGUIENTE EXAMEN
SERA DE ESA MANERA.