1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 |
// 2x14: Semaforo con tipos por definición /* Utilizando un tipo definido por enumeración, escribe un programa que permita controlar un semáforo. Se debe de ir pidiendo al usuario a través de un menú, instrucciones para poner el semáforo del color que desee (de las opciones disponibles, incluyendo intermitente), o apagarlo. Cuando el usuario elija apagarlo el programa terminará. */ #include <stdio.h> #define GREEN "\e[32m" #define YELLOW "\e[33m" #define RED "\e[31m" #define WHITE "\e[m" main(){ //Se declara un tipo de dato por enumeracion: enum estados{ verde, ambar, ambarInt, rojo, apagado } sem; int eleccion; int i; system("clear"); do{ printf("\n\v\tElija en que estado quiere poner el semaforo:\n\t 1. Verde\n\t 2. Ambar\n\t 3. Ambar Intermitente\n\t 4. Rojo\n\t 5. Apagado/Salir\n\n"); scanf( "%i", &eleccion ); eleccion--; sem = (enum estados)(eleccion); system("clear"); switch(sem){ case verde: printf( " ___\n | O |\n | O |\n |_" GREEN "O" WHITE "_|\n | |\n | |\n | |\n_____|_|______\n" ); break; case ambar: printf( " ___\n | O |\n | " YELLOW "O" WHITE " |\n |_O_|\n | |\n | |\n | |\n_____|_|______\n" ); break; case ambarInt: for( i=0; i<3; i++ ){ system("clear"); printf( " ___\n | O |\n | O |\n |_O_|\n | |\n | |\n | |\n_____|_|______\n" ); system("sleep 0.3"); system("clear"); printf( " ___\n | O |\n | " YELLOW "O" WHITE " |\n |_O_|\n | |\n | |\n | |\n_____|_|______\n" ); system("sleep 0.3"); }; break; case rojo: printf( " ___\n | " RED "O" WHITE " |\n | O |\n |_O_|\n | |\n | |\n | |\n_____|_|______\n" ); break; case apagado: printf( "Apagado\n\n" ); break; default: system("clear"); }; }while( eleccion != apagado ); }; |