int main (){ tipo_elem x; struct Nodo * pun; struct encabezado * E; int n, i,opc; inicializa (&E); do{ clrscr(); printf ("...........Menu............\n"); printf ("1-Inserta.....\n"); printf ("2-Suprime.....\n"); printf ("3-Localiza....\n"); printf ("4-Imprime.....\n"); printf ("5-Vacia.......\n"); printf ("6-Anula.......\n"); printf ("7-Salir.......\n"); printf ("Elige una opcion:....\n"); scanf ("%d", &opc); switch(opc){ case 1: printf ("\nDame numero a insertar.....\n"); scanf("%d",& x); inserta(x,E); break; case 2: printf ("\nDame numero a suprimir.....\n"); scanf ("%d",& x); suprimir(localiza(x,E)); break; case 3: printf ("\nDame numero a localizar.....\n"); scanf ("%d",& x); pun=localiza(x,E); if(pun==NULL) printf("Numero no encontrado"); else printf("%p\n",pun); getch(); break; case 4: clrscr(); imprime(E); getch(); break; case 5: if(vacia(E)) printf("SI"); else printf("NO"); getch(); break; case 6: anula(E); printf("La lista fue anulada"); getch(); break; } } while(opc!=7); getch(); return 0; }
/**Função que executa o comando dado o valor retornado na função que identifica que comando foi introduzido pelo utilizador. *@param jogo Referencia-se a onde se encontra guardado as dimensões do tabuleiro. *@param arg1 Variável onde está guardada o primeiro argumento dado pelo utilizador aquando a introdução do comando. *@param arg2 Variável onde está guardada o segundo argumento dado pelo utilizador aquando a introdução do comando. *@param comando Refere-se à opção que vai ser executada pelo utilizador. *@param argumentos Número de argumentos introduzidos pelo utilizador. *@return 1 a 7. Execução de comandos bem sucedida. *@return 0. Execução de comandos mal sucedida. */ int executa_comando(Tabuleiro jogo, int comando, int argumentos, char * arg1, char * arg2) { switch(comando) { case 2: /*Se for 2 usa o carrega*/ if(argumentos == 2) /*Recebe 2 args pois recebe o cr e o tabuleiro tipo ex1(Exemplificar: cr ex1)*/ { carrega_tab(jogo, arg1); /*Um argumento pois só precisa do ex1, por exemplo*/ return 0; } else { return mensagem_de_erro(E_ARGS); } break; case 3: /*Se for 3 usa o comando grava*/ if(argumentos == 2) /*Recebe o gr e o tabuleiro que o utilizador quer*/ { grava_tab(jogo, arg1); return 0; } else { return mensagem_de_erro(E_ARGS); } break; case 4: if(argumentos == 3) { if(testa_inteiro(arg1) && testa_inteiro(arg2)) { joga(jogo, atoi(arg1), atoi(arg2)); jogo->n_comando++; } else { mensagem_de_erro(E_INVARGS); } } else { mensagem_de_erro(E_ARGS); } break; case 5: if(argumentos == 1) { estrategia1(jogo); jogo->n_comando++; impressao_ecra(jogo); } else { mensagem_de_erro(E_ARGS); } break; case 6: if(argumentos == 1) { estrategia2(jogo); jogo->n_comando++; impressao_ecra(jogo); } else { mensagem_de_erro(E_ARGS); } break; case 7: if(argumentos == 3) { if(testa_inteiro(arg1) && testa_inteiro(arg2)) { marca(jogo, atoi(arg1), atoi(arg2)); /*atoi significa converter uma string em inteiros*/ jogo->n_comando++; } else { mensagem_de_erro(E_INVARGS); } } else { mensagem_de_erro(E_ARGS); } break; case 8: if(argumentos == 1) { estrategia3(jogo); jogo->n_comando++; impressao_ecra(jogo); } else { mensagem_de_erro(E_ARGS); } break; case 9: if(argumentos == 1) { anula(jogo); } else { mensagem_de_erro(E_ARGS); } break; case 10: if(argumentos == 1) { estrategia4(jogo); jogo->n_comando++; impressao_ecra(jogo); } else { mensagem_de_erro(E_ARGS); } break; case 11: if(argumentos == 1) { estrategia5(jogo); jogo->n_comando++; impressao_ecra(jogo); } else { mensagem_de_erro(E_ARGS); } break; case 12: if(argumentos == 1) { resolve(jogo); jogo->n_comando++; impressao_ecra(jogo); } else { mensagem_de_erro(E_ARGS); } break; } return 0; }
int main (){ tipo_elem x; posicion E; posicion pun; int n, i,opc; inicializa (&E); do{ ("sys"); printf ("...........Menu............\n"); printf ("1-Inserta.....\n"); printf ("2-Suprime.....\n"); printf ("3-Localiza....\n"); printf ("4-Imprime.....\n"); printf ("5-Vacia.......\n"); printf ("6-Anula.......\n"); printf ("7-Salir.......\n"); printf ("Elige una opcion:....\n"); scanf ("%d", &opc); switch(opc){ case 1: printf ("\nDame numero a insertar.....\n"); scanf("%d",& x); inserta(x,(&E.cont+1),&E); break; case 2: printf ("\nDame numero a suprimir.....\n"); scanf ("%d",& x); suprimir(localiza(x,E),&E); break; case 3: printf ("\nDame numero a localizar.....\n"); scanf ("%d",& x); pun=localiza(x,E); if(pun==NULL) printf("Numero no encontrado"); else printf("%p\n",pun); getch(); break; case 4: imprimir(E); getch(); break; case 5: if(vacia(E)) printf("SI"); else printf("NO"); getch(); break; case 6: anula(&E); printf("La lista fue anulada"); getch(); break; default: printf("Opcion No Valida"); } } while(opc!=7); return 0; }