コード例 #1
0
int main()
{
    FILE *arquivo;
    int opcaoMenuPrincipal,opcaoSubMenu,continua;
    char *cidade = (char*)malloc(sizeof(char)*50);
    //char *UF = (char*)malloc(sizeof(char)*3);
    char UF[3];
    header *raiz_trees = (header*)malloc(sizeof(header));

    raiz_trees->raiz_cd = NULL;
    raiz_trees->raiz_municipio = NULL;
    raiz_trees->raiz_total = NULL;



    do{
        opcaoMenuPrincipal = 0;
        menuPrincipal();
        scanf("%d",&opcaoMenuPrincipal);

        switch(opcaoMenuPrincipal){

            case 1:
                    carregar_Arquivo(raiz_trees);
                    break;
            case 2: opcaoSubMenu = subItemMenuPrincipal();
                    switch(opcaoSubMenu){
                        case 1:
                                access_ordenated_tree_city(raiz_trees->raiz_municipio);
                                printf("relatorio gerado no arquivo: relatorio_municipios.txt\n");
                                break;
                        case 2: access_ordenated_tree_cd(raiz_trees->raiz_cd);
                                printf("relatorio gerado no arquivo: relatorio_cd.txt\n");
                                break;
                        case 3: access_ordenated_tree_total(raiz_trees->raiz_total);
                                printf("relatorio gerado no arquivo: relatorio_total.txt\n");
                                break;
                        default:printf("Opcao invalida, escolha uma das opcoes do menu\n");
                    }
                    break;

            case 3: printf("Digite as duas siglas do estado - Ex: \"DF\" : ");
                    scanf("%s",UF);
                    search_state(raiz_trees->raiz_total,UF);
                    printf("Relatorio do estado %s esta no arquivo relatorio_estado.txt\n");
                    break;
            case 4: printf("Digite o municipio em maiusculo para ser procurado:");
                    scanf("%s",cidade);
                    search_city(raiz_trees->raiz_municipio,cidade);
                    break;
            case 5: undo_header(raiz_trees);
                    printf("\nPrograma finalizado\n");
                    break;
            default: printf("Opcao invalida, escolha uma das opcoes do menu!\n");
        }

    }while(opcaoMenuPrincipal != 5);

    return 0;
}
コード例 #2
0
ファイル: client.c プロジェクト: GuilhermeSCP/multibanco-sope
void menuPIN()
{
	struct termios term, oldterm;
	int i;
	char ch, echo = '*';

	system("clear");
	printf("\t\t\tMáquina Multibanco\n");
	printf("\t\t\t      Cliente     \n\n");
	printf("Número da conta:\n");
	scanf ("%d",&nroConta);
	write(STDOUT_FILENO, "PIN\n", 6);
	tcgetattr(STDIN_FILENO, &oldterm);
	term = oldterm;
	term.c_lflag &= ~(ECHO | ECHOE | ECHOK | ECHONL | ICANON);
	tcsetattr(STDIN_FILENO, TCSAFLUSH, &term);
	i=0;
	while (i < maxPINlen && read(STDIN_FILENO, &ch, 1) && ch != '\n')
	{
		PIN[i++] = ch;
		write(STDOUT_FILENO, &echo, 1);
	}
	PIN[i] = 0;
	tcsetattr(STDIN_FILENO, TCSANOW, &oldterm);
	menuPrincipal();
}
コード例 #3
0
ファイル: GameLogic.c プロジェクト: bestknighter/PokerJTC
void mainloop(){
      int esc = 1;
      Stats* stats;
      stats = initGame();
      do{
            system("CLS");
            switch(esc){
                  case 0:
                        break;
                  case 1:
                        esc = menuPrincipal();
                        break;
                  case 11:
                        esc = menuNovoJogo(stats);
                        break;
                  case 111:
                        menuNovoJogador(stats);
                        esc /= 10;
                        break;
                  case 112:
                        seletorRodada(stats);
                        esc = novaPartida();
                        if (esc == 11) resetGame(stats);
                        break;
                  case 10:
                  case 110:
                        esc = 0;
                        break;
            };
      }while(esc!=0);
};
コード例 #4
0
ファイル: client.c プロジェクト: GuilhermeSCP/multibanco-sope
int main(int argc, char *argv[])
{
	char* defaultp = "/tmp/ans";
	char* myPID = malloc(10);
	char temp[50] = "";
	int sair = 0;

	pid = getpid();
	snprintf(myPID, 10, "%lld",(long long int)pid);
	strcat(myFIFO,defaultp);
	strcat(myFIFO,myPID);
	mkfifo(myFIFO, 0777);
	strcat(msgPID,myPID);
	strcat(msgPID,") ");
	strcpy(temp,msgPID);
	strcat(temp,"arrancou");
	escreveNoLog(temp);
	menuPIN();
	do
	{
		sair = menuPrincipal();
	}while(!sair);
	strcpy(temp,msgPID);
	strcat(temp,"encerrou");
	escreveNoLog(temp);
	unlink(myFIFO);
	return 0;
}
コード例 #5
0
ファイル: Javaux.c プロジェクト: RaphaelJ/Cours-1ere-annee
int main(void)
{	
	DB bd;

	ouvrirBd(&bd, "./");
	
	menuPrincipal(&bd);

	return 0;
}
コード例 #6
0
ファイル: main.c プロジェクト: ramoncaldeira/campcomp2.0
void menuPrincipal() {
    system("clear");
    bemVindo();
    escolhas();
    int x;
    scanf("%d", &x);

    if (x == 0) {
        return;
    } 
    else {
    switch(x) {
        case 1:
        printf("OPCAO 1\n\n\n");
        cadastraCliente();
        break;

        case 2:
        printf("OPCAO 2\n\n\n");
        cadastraMaterial();
        break;

        case 3:
        printf("OPCAO 3\n\n\n");
        geraPedido();
        break;

        case 4:
        printf("OPCAO 4\n\n\n");
        //listaPedidos();
        break;

        case 5:
        printf("OPCAO 5\n\n\n");
        listaClientes();
        break;

        case 6:
        printf("OPCAO 6\n\n\n");
        listaMateriais();
        break;

        case 7:
        printf("OPCAO 7\n\n\n");
        //registraEntrega();
        break;

        default:
        printf("Opcao invalida! Tente novamente . . .\n\n\n");
        }
    }

    menuPrincipal();
}
コード例 #7
0
ファイル: practica2.c プロジェクト: polo070770/SO2
int main(){

	RBTree tree;

	int opcio;

	/* Prints the menu */
	
	do {

		opcio = menuPrincipal();

		switch(opcio){
			case 1:
				printf("\nOpcio1\n");
				creacioArbre(&tree);
				break;
			case 2:
				printf("\nOpcio2\n");
				enmagatzamentArbre(&tree);
				break;
			case 3:
				printf("\nOpcio3\n");
				lecturaArbre(&tree);
				break;
			case 4:
				printf("\nOpcio4\n");

				opcio = menuAnalisisArbre();

				switch(opcio){
					case 1:
						printf("\nSub-opcio1\n");
						probabilitat_Segons_Fitxer(&tree);
						break;
					case 2:
						printf("\nSub-opcio2\n");
						probabilitat_Segons_Nlletres(&tree);
						break;
				}

				break;
		}

	}while(opcio != 5);

	printf("\nFins aviat!\n");

	/*Release the tree memory*/
	if(n_nodes != -1)
		deleteTree(&tree);
	
	return 0;
}
コード例 #8
0
ファイル: main.c プロジェクト: jefponte/exercicios
void menuOrdenacao() {
    int op = 0;;
    int vector[SIZE];
    int vectorAux[SIZE];
    readVector(SIZE, vector);
    printf("Vetor DESORNEDADO: ");
    printVector(SIZE, vector);

    do {
        op = menuDeOrdenacao();
        switch(op) {
            case 1:
                copiaVetor(vector, vectorAux);
                bubbleSortRecursive(SIZE, vectorAux);
                printf("Vetor DESORNEDADO: ");
                printVector(SIZE, vector);
                printf("\nVetor ORDENADO.");
                printVector(SIZE, vectorAux);
                break;
            case 2:
                copiaVetor(vector, vectorAux);
                insertionSort(SIZE, vectorAux);
                printf("Vetor DESORNEDADO: ");
                printVector(SIZE, vector);
                printf("\nVetor ORDENADO.");
                printVector(SIZE, vectorAux);
                break;
            case 3:
                copiaVetor(vector, vectorAux);
                seletionSort(SIZE, vectorAux);
                printf("Vetor DESORNEDADO: ");
                printVector(SIZE, vector);
                printf("\nVetor ORDENADO.");
                printVector(SIZE, vectorAux);
                break;
            case 4:
                copiaVetor(vector, vectorAux);
                quickSort(SIZE, vectorAux);
                printf("Vetor DESORNEDADO: ");
                printVector(SIZE, vector);
                printf("\nVetor ORDENADO.");
                printVector(SIZE, vectorAux);
                break;
            case 5:
                menuPrincipal();
        }
    } while(op!=5);
}
コード例 #9
0
ファイル: sauvegarde.c プロジェクト: LeBuG63/Rhyddid
void sauvegarde(void)
{
	int choixJoueur;
	char baseNomSauvegarde[NB_SAUVEGARDE][TAILLE_MAX];

	titre("Sauvegarde", VERT);

	afficherMenuSauvegarde(baseNomSauvegarde);
	choixJoueur = choisirMenu(NB_SAUVEGARDE);

	if(choixJoueur == REVENIR_ARRIERE)
		menuPrincipal();
	else if(choixJoueur == QUITTER)
		quitter();
	else
		actionSauvegarde(baseNomSauvegarde, choixJoueur - 1);
}
コード例 #10
0
int main(int argc, char *argv[])
{
    if(argc>1 && argv[1][0]=='-' && argv[1][1]=='r') /* appel du test de régression */
    {
        regression();
        return 0;
    }

    int contreordinateur, niveauordinateur, plateau;

    /* paramètres de jeu par défaut */
    contreordinateur = 1;
    niveauordinateur = 3;
    plateau = 1;

    while(menuPrincipal(&contreordinateur, &niveauordinateur, &plateau)==1)
    {
        Jouer( contreordinateur, niveauordinateur, plateau);
    }
    return 0;
}
コード例 #11
0
ファイル: menusTPV.c プロジェクト: ballesdbc/C-project
void gestionMenuPrincipal(void)
{
	int opcion, clave;

	while (( opcion = menuPrincipal() ) != 0) 
   {
		switch (opcion) {
			case 1: // Identificacion usuario
            clave = identificacionEmpleado();
            //clave = 1; // para probar menu Gerente
            clave = 3; // para probar menu Encargado
            //gestionSesion(clave);
            if(clave==3)
               gestionMenuSesion();
            break;			
			case 0: // Salida del programa
				break;
		} // fin switch
	} // fin while
   cabeceraTabla("Fin del programa");
}
コード例 #12
0
/**-------------------------------------------------------------
|  Funcion: gestionMenuPrincipal                                |
|---------------------------------------------------------------|
|  Descripción: selecciona el servicio elegido por el usuario   |
|  Entradas: ninguna                                            |
|  Retorno: nada                                                |
 --------------------------------------------------------------*/
void gestionMenuPrincipal(void)
{
	int opcion;

	while ((opcion = menuPrincipal()) != 0) {
		switch (opcion) {
			case 1: // Mantenimiento de Estaciones
				mantenimientoEstaciones();
                break;		
			case 2: // Mantenimiento de Trenes
				mantenimientoTrenes();
                break;
			case 3: // Generación de Tramos
				generarTramos();
			case 4:
                 //insertarUnaParada();
			case 0:
				break;
		}
	}
}
コード例 #13
0
ファイル: Practica 08.cpp プロジェクト: saulflores95/School
/*****      FUNCION PRINCIPAL       *****/
int main(){
   int opcion;
do{
   system("cls");        //LIMPIAR PANTALLA
   system("color 0A");   //DAR COLOR AL FONDO Y TEXTO
   menuPrincipal();
   opcion=_getch();
      switch(opcion){
			case 'a': switchUnidadII();
						 break;
			case 'b': switchUnidadIII();
						 break;
			case 27:  printf("\n\n\rSALIDA DEL PROGRAMA...\n\r");  //EL NUMERO 27, ES EL CÓDIGO ASCII DE LA TECLA [ESC]
						 break;
			default:  printf("\n\n\rOPCION NO VALIDA\n\r");
                   system("pause");    //DETIENE EL PROGRAMA HASTA QUE SE PRESIONE UNA TECLA
						 break;
      }
}while (opcion!=27); //HARÁ LO ANTERIOR MIENTRAS NO SE PRESIONE LA TECLA [ESC]
   return 0;
}
コード例 #14
0
/* Fonction responsable du programme.*/
void UPR::lancer()
{
	// Contrôle de la boucle principale du programme.
	bool quit = false;
	
	//---------------------------------
	
	// Boucle principale du programme.
	while(!quit)
	{
		// Affichage du menu principal, récupération du choix de l'utilisateur et agissement en conséquence.
		switch(menuPrincipal())
		{
		// Si l'utilisateur à choisi de jouer avec un profil nouvellement créé.
		case 0:			
			// Lancement du jeu avec le profil créé.
			instance_jeu.lancer(&profil_joueur);
			
			/** \todo Ajout d'instructions pour ré-initialiser #instance_jeu. */
			
			// On ne quitte pas le programme à la fin du jeu, on ré-affiche le menu principal.
			break;
		
		// Si l'utilisateur à choisi de jouer avec un profil chargé.
		case 1:
			// Lancement du jeu avec le profil chargé.
			instance_jeu.lancer(&profil_joueur);
			
			/** \todo Ajout d'instructions pour ré-initialiser #instance_jeu. */
			
			// On ne quitte pas le programme à la fin du jeu, on ré-affiche le menu principal.
			break;
		
		// Si l'utilisateur à choisi de quitter le jeu.
		case 3:
			quit = true;
			break;
		}
	}
}
コード例 #15
0
/**-------------------------------------------------------------
|  Funcion: menuPlanViaje                                       |
|---------------------------------------------------------------|
|  Descripción: selecciona el servicio elegido por el usuario   |
|  Entradas: ninguna                                            |
|  Retorno: nada                                                |
 --------------------------------------------------------------*/
void menuPlanViaje(void)
{
	int opcion;

    
	while ((opcion = menuPrincipal()) != 0) {
		switch (opcion) {
			case 1: // Mantenimiento de Estaciones
				mainCrearGrafo(1);  // Le pasamos 1 como parámetro por ser la opcion 1
                break;		
			case 2: // Mantenimiento de Trenes
				mainCrearGrafo(2); // Le pasamos 2 como parámetro por ser la opcion 2
                break;
			case 3: // Generación de Tramos
				mainCrearGrafo(3); // Le pasamos 3 como parámetro por ser la opcion 3
			case 4:
                 funcionAmpliacion(4);
			case 0:
				break;
		}
	}
}
コード例 #16
0
ファイル: principal.c プロジェクト: Gook19/Projeto-Forca
int main(int argc, char const *argv[]) {
  char escolhaMenu;
  char *strEscolhida=NULL;
  int doisJogadores=false;
  int jogoSalvo=true;
  char escolhaCNP='F';

  setlocale(LC_ALL,""); //fun��o para aparecer acentos nas palavras.

  do {
    escolhaMenu=menuPrincipal();
    //selecionando escolhaMenu que � a escolha do usu�rio no menu
    switch (escolhaMenu) {

      case '1':
      {
        novaPartida();
        break;
      }
      case '2':
      {
        iniciarPartida(escolhaCNP,doisJogadores,strEscolhida,jogoSalvo);
        break;
      }
      case '3':
      {
        LIMPATELA;
        T_Recorde* ranking = NULL;
        ranking = obter_ranking();
        print_ranking(ranking);
        destruir_ranking(ranking);
        break;
      }

    }
  } while(escolhaMenu!='4');
  return 0;
}
コード例 #17
0
ファイル: main.c プロジェクト: AngelGuale/ProyectoParserC
/*
* prueba1.txt
*
*/
int main(int argc, char** argv) {
	menuPrincipal();
	system("PAUSE");
}
コード例 #18
0
ファイル: tpSuperior.c プロジェクト: nazarenolevy/tpSuperior
int main(void)
{
    int volverAEmpezar = NO;

    do{

    int cantidadDePares = 0;


    float **matrizDePares = ingresarPares(&cantidadDePares);



    //Ordenando el vectorDePares
     matrizDePares = burbuja(cantidadDePares, matrizDePares);


     //cantidad de decimales
     printf("Por favor, ingrese la cantidad de decimales: ");
     scanf("%d", &cantidadDecimales);


    //completando la matriz con las diferencias
    matrizDePares = completarMatriz(matrizDePares, cantidadDePares);

    /*
     //printf de los datos ingresados de forma ordenada
    printf("Ordenando los pares...\n");
    i = 0;
    while(i < cantidadDePares)
    {
            printf("La componente X es: %.2f y la de Y es: %.2f\n", matrizDePares[i][0], matrizDePares[i][1]);
            i++;

    }

    for(j = 2; j <= cantidadDePares + 1; j++)
    {
          for(i=0; i <= cantidadDePares - j; i++)
          printf("Diferencia nro: %d es: %.2f\n", j-1, matrizDePares[i][j]);
    }
    */

    //Coeficientes del progresivo
    float *vectorDeCoeficientesPro = coeficientesPro(cantidadDePares, matrizDePares);


    //Coeficientes del regresivo
    float *vectorDeCoeficientesReg = coeficientesReg(cantidadDePares, matrizDePares);

    //Mostrando los Polinomios
    mostrarPolinomios(cantidadDePares, vectorDeCoeficientesPro, vectorDeCoeficientesReg, matrizDePares);


    //Menu principal
    menuPrincipal(matrizDePares, cantidadDePares, vectorDeCoeficientesPro, vectorDeCoeficientesReg, &volverAEmpezar);


    }while(volverAEmpezar == SI);

    return 0;

}
コード例 #19
0
ファイル: TCA2015.c プロジェクト: DragonBR767/TCA2015
int main (){
	menuPrincipal();
}
コード例 #20
0
ファイル: main.c プロジェクト: ramoncaldeira/campcomp2.0
int main() {
    menuPrincipal();

    return 0;
}
コード例 #21
0
ファイル: main.c プロジェクト: jefponte/exercicios
int main() {

    menuPrincipal();
    //printf("%d", SIZE);
}
コード例 #22
0
ファイル: lab.c プロジェクト: sergioamorim/off
int main() {
    Cad_Med Medicos[K]; //Eh K o maximo de medicos
    Cad_Pac Pacientes[K*H]; //H paciente pra cada medico no maximo logo K*H
    CONSULTA consultas[K*H]; // como eh uma consulta por cliente entao K*H tbm
    int indice_atual_consultas=0;
    int pm=0, pp=0, tm=0, tp=0, tc=0; // pm, pp, indice_atual_consultas -> posicao na array ::: tm, tp, tc -> tamanho do array
    int escolha, esc; //opcoes de escolha de duas formas diferentes
    int codTemp; //codigo temporario no uso para funcoes
    int codM, codP, codC; //codigo gerado aumomaticamente
    enum {SEGUNDA=2, TERCA, QUARTA, QUINTA, SEXTA}; // para uso na funcao de consultas

    FILE *med; //arquivo com os dados dos medicos
    med = fopen("med.dat", "wr"); //na primeira execucao retorna nulo
    FILE *pac;  //dados dos pacientes
    pac = fopen("pac.dat", "wr"); //na primeira execucao retorna nulo
    FILE *consult; //dados das consultas
    consult = fopen("cons.dat", "wr"); //na primeira execucao retorna nulo

    FILE *def; //definicoes
    def = fopen("def.txt", "wr"); //FAZ A LEITURA DO ARQUIVO DE DEFINICOES

    if(def==NULL)//PRIMEIRA EXECUCAO
    {
        codM = 101; //inicializa os codigos
        codP = 201;
        codC = 501;
        //pm=0;
        // indice_atual_consultas=0;
        // pp=0;
    }
    else //SEGUNDA EXECUCAO EM DIANTE
    {
        tm = fread (&Medicos[0], sizeof(Cad_Med), K, med); //define em tm, tp, tc.. os tamanho dos arquivos binarios lidos
        tp = fread (&Pacientes[0], sizeof(Cad_Pac), K*H, pac);
        tc = fread (&consultas[0], sizeof(CONSULTA), K*H, consult);
        fscanf(def, "%d %d %d %d %d %d", &pm, &pp, &indice_atual_consultas, &codM, &codP, &codC); // como o def ja esta criado entao eh feito a leitura de inicializacao
        fclose(def); //encerra o uso do arquivo def

    }


    printf("------------------------- Seja Bem Vindo. -------------------------------\n");
    printf("----  Controle automatizado - Clinica Medica Lab. de Programacao. --------\n\n");

    menuPrincipal();

    scanf("%d", &escolha); //escolha inicial do menu principal
    //printf("Esc = %d", escolha);
    while(1) /* os caso de encerramento do loop so acontecem na opcao 7*/
    {
        while(escolha < 1 || escolha > 7) //otimizacao de escolhas
        {
            printf("Escolha invalida!\n");
            menuPrincipal();
            scanf("%d", &escolha);
        }
        if(escolha == 7) break; //encerra o loop
        switch(escolha)
        {
        case 1: //cadastrar medico
            if(pm>=K) //verdadeiro se o quadro de medico ja esta completo
            {
                printf("\nEsse consultorio so permite o cadastro de %d Medicos.\n", K);
                break; //volta ao menu
            }
            cadastraMed( Medicos, pm, &codM); //chama a funcao para cadastrar medicos
            pm++; //ao terminar registra a posicao atual do utimo medico contratado
            printf("\n1 Cadastrar outro Medico.\n");
            printf("2 Voltar\n\n--> ");
            scanf("%d", &esc);
            while(esc < 1 || esc > 2) //otimizacao de escolha
            {
                printf("Escolha invalida!\n--> ");
                scanf("%d", &esc);
            }
            switch (esc) // volta pro inicio do case 1 ou termina o switch
            {
            case 1:
                continue; //volta pro inicio do case 1
            case 2:
                break;
            }
            break; // --- fim do case 1 ---
        case 2:
            if(pp >= K*H) //quantidade maxima de pacientes por dia
            {
                printf("\nao sao permitidos mais de %d Pacientes por dia.\n", K*H);
                break;
            }
            cadastraPac( Pacientes, pp, &codP); //chama a funcao de cadastro de pacientes
            pp++; //apos o cadastro registra a posicao do ultimo cadastrado
            printf("\n1 Cadastrar outro Paciente.\n");
            printf("2 Voltar\n\n--> ");
            scanf("%d", &esc); //repeticao do cadastro
            while(esc < 1 || esc > 2)
            {
                printf("Escolha invalida!\n--> ");
                scanf("%d", &esc);
            }
            switch (esc)
            {
            case 1:
                continue; //volta ao inicio do case 2
            case 2:
                break;//finaliza o switch
            }
            break; // --- fim do case 2 ---
        case 3:

            /* Se não há mais possibilidade de cadastrar uma nova consulta, u-
            ma mensagem de erro é exibida */
            if(indice_atual_consultas>=K*H)
                printf("\nA quantidade de consultas atingiu o limite máximo.\
                        \n");

            /* Caso ainda haja espaço para cadastrar consultas */
            else {
                consultas[indice_atual_consultas].codigo_da_consulta =
                    indice_atual_consultas;
                receber_consulta(&consultas[indice_atual_consultas++]);
            }

            break;

        case 4:
            buscar_consulta(consultas, indice_atual_consultas);
            break;
        case 5:
            listaMed( Medicos, pm); /* imprime o nome de todos os medico cadastrados ate a ultima posicao do cadastro */

            printf("\n1 Detalhes.\n2 Voltar\n\n--> ");
            scanf("%d", &esc);
            while(esc < 1 || esc > 2)
            {
                printf("Codigo invalido!\n--> ");
                scanf("%d", &esc);
            }
            if(esc == 1) // detalha todos os dados de cadastro do medico selecionado
            {
                printf("\nDigite o codigo do Medico: ");
                scanf("%d", &codTemp);
                while(codTemp < 101 || codTemp > (100+pm) || codTemp > 200) //limitador de codigo de medico
                {
                    printf("\n\nCodigo invalido! ");
                    printf("\a\tDigite: 2 -Para Voltar ao menu principal\n\n--> ");
                    scanf("%d", &codTemp);
                    if(codTemp == 2) break;
                }
                if(codTemp != 2)DetalhesM(Medicos, codTemp); //chama a funcao de detalhamento
            }

            break; // --- fim do case 5 ---
        case 6:
            listaPac( Pacientes, pp); // lista todos os pacientes cadastrados por nome

            printf("\n1 Detalhes.\n2 Voltar\n\n--> ");
            scanf("%d", &esc);
            while(esc < 1 || esc > 2)
            {
                printf("Codigo invalido!\n--> ");
                scanf("%d", &esc);
            }
            if(esc == 1) //detalhamento de dados do paciente selecionado
            {
                printf("\nDigite o codigo do Paciente: ");
                scanf("%d", &codTemp);
                while(codTemp < 201 || codTemp > (200+pp) || codTemp > 500) //limitador de codigo de paciente
                {
                    printf("\n\nCodigo invalido! ");
                    printf("\a\tDigite: 2 -Para Voltar ao menu principal\n\n--> ");
                    scanf("%d", &codTemp);
                    if(codTemp == 2) break;
                }
                if(codTemp != 2)DetalhesP( Pacientes, codTemp); //chama a funcao de detalhamento
            }
            break; // --- fim do case 6 ---
        } // --- fim do switch ---

        menuPrincipal(); // encerra caso seja escolhido opcao 7
        scanf("%d", &escolha);
    }


    // printf("pm = %d", pm);
    if(pm>0) //se foi cadastrado algum medico gera//atualiza o arquivo binario com esses dados
    {
        med = fopen("med.dat", "wb");
        if(med==NULL)
        {
            printf("Erro! Nao foi possivel Gravar em med.dat\n");
        }
        tm = fwrite(&Medicos[0], sizeof(Cad_Med), K, med);
        if(tm!=K) //verifica se ocorreu tudo bem na gravacao
        {
            printf("Erro ao gravar o arquivo med.dat\n");
            return(-1);
        }
    }
    if(pp>0) //se foi cadastrado algum paciente gera//atualiza o arquivo binario com esses dados
    {
        pac = fopen("pac.dat", "wb");
        if(pac==NULL)
        {
            printf("Erro! Nao foi possivel Gravar em pac.dat\n");
        }
        tp = fwrite(&Pacientes[0], sizeof(Cad_Pac), K*H, pac);
        if(tp!=(K*H))  //verifica se ocorreu tudo bem na gravacao
        {
            printf("Erro ao gravar o arquivo med.dat\n");
            return(-1);
        }
    }

    def = fopen("def.txt", "w"); //abre o arquivo de definicoes novamente (agora para gravacao)
        if(def == NULL) //se ocorrer erro na abertura
        {
            printf("Erro na gravacao de definicoes\n");
        }


            fprintf(def, "%d %d %d %d %d %d", pm, pp, indice_atual_consultas, codM, codP, codC); //grava todas as definicoes atuais do programa

//--- fechando todos os arquivos ultilizados ---
    fclose(def);
    fclose(med);
    fclose(pac);
    fclose(consult);

    return 0;

} // --- fim de main ---