TAVL* alterarAluno(TAVL* t) { printf( " ___ ____ ___ __ \n" " / | / / /____ _________ ______ / | / /_ ______ ____ \n" " / /| | / / __/ _ \\/ ___/ __ `/ ___/ / /| | / / / / / __ \\/ __ \\\n" " / ___ |/ / /_/ __/ / / /_/ / / / ___ |/ / /_/ / / / / /_/ /\n" "/_/ |_/_/\\__/\\___/_/ \\__,_/_/ /_/ |_/_/\\__,_/_/ /_/\\____/ \n"); imprime(t); TAVL* aluno = NULL; int semestre, cargaHoraria; while(!aluno){ printf("Digite umas das matriculas acimas para selecionar o aluno:\n"); int matricula = lerInteiro(); aluno = buscar(t, matricula); } printf("Digite o novo semestre do aluno:\n"); semestre = lerInteiro(); printf("Digite a nova carga horario concluida do aluno:\n"); cargaHoraria = lerInteiro(); aluno->semestre = semestre; aluno->cargaCursada = cargaHoraria; return t; }
void inserirBicicleta(tipoBicicleta bicicletas[MAX_BICICLETAS], int *pQuantidadeBicicletas) { int estado,cont; if(*pQuantidadeBicicletas==MAX_BICICLETAS) { printf("\nNao pode inserir mais bicicletas."); } else { lerString("\nInsira designacao da bicicleta: ", bicicletas[*pQuantidadeBicicletas].idBicicleta, MAX_STRING); // bicicletas[*pQuantidadeBicicletas].idBicicleta =(*pQuantidadeBicicletas); printf("\nBicicleta[%s]:", bicicletas[*pQuantidadeBicicletas].idBicicleta); lerString("\nInsira modelo da bicicleta: ",bicicletas[*pQuantidadeBicicletas].modelBicicleta, MAX_STRING); bicicletas[*pQuantidadeBicicletas].localBicicleta=lerInteiro("\nInsira onde se encontra a bicicleta:\n\n0 - Residencias\n1 - Campus1\n2 - Campus2\n3 - Campus5\n",0,3); bicicletas[*pQuantidadeBicicletas].distanciaTotal=0.0; bicicletas[*pQuantidadeBicicletas].avarias=0; bicicletas[*pQuantidadeBicicletas].numEmprestimos=0; bicicletas[*pQuantidadeBicicletas].estadoBicicleta=0; (*pQuantidadeBicicletas)++; do { estado=lerInteiro("\nInsira estado da bicicleta:\n\n 0 - Disponivel\n2 - Avariada\n",0,2); cont++; if(estado==1) { printf("\n1 Nao e uma opcao valida. Insira 0 ou 2."); cont++; if(cont>=2) { printf("\nNao insista, insira um valor valido."); } } } while(estado==1); if(estado==0) { bicicletas[(*pQuantidadeBicicletas)-1].estadoBicicleta=0; } else { do { registarAvaria(bicicletas,*pQuantidadeBicicletas); } while(bicicletas[(*pQuantidadeBicicletas)-1].estadoBicicleta==0); } } printf("\nBicicleta registada com sucesso."); }
void listarHistoricoEmprestimos(tipoEmprestimo *emprestimos, int quantEmprestimos,tipoUtente utentes[MAX_UTENTES], int quantUtentes,tipoBicicleta bicicletas[MAX_BICICLETAS], int quantBicicletas) { int i,j,control=0,idUtente,posU; idUtente=lerInteiro("\nInsira numero de utente a procurar: ",0, MAX_IDUTENTES); posU=procurarUtente(utentes, quantUtentes, idUtente); if(posU==-1) { printf("\nUtente nao existe."); } else { for(i=quantEmprestimos-1; i>=0; i--) { if(emprestimos[i].idUtente==idUtente) { if(control==0) { for(j=0; j<quantBicicletas; j++) { if(strcmp(emprestimos[i].idBicicleta,bicicletas[j].idBicicleta)==0) { printf("\nUltima bicicleta utilizada pelo utente [%d]:\n", idUtente); mostrarDadosBicicletas(bicicletas[j]); control=1; j=quantBicicletas; } } } printf("\n\nEmprestimos do utente [%d]:", idUtente); mostrarDadosEmprestimos(emprestimos[i]); } } } }
int main() { int sair = 0; TAVL *t = inicializa(); while (!sair) { int opcaoSelecionada; limparTela(); imprimeMenu(); opcaoSelecionada = lerInteiro(); limparTela(); switch (opcaoSelecionada) { case 1: t = cadastrarAluno(t); break; case 2: t = importarAlunos(t); break; case 3: listarAlunos(t); break; case 4: t = alterarAluno(t); break; case 5: t = telaLimparArvore(t); break; case 0: sair = 1; break; default: printf("Opcao selecionada invalida! [%d]\n", opcaoSelecionada); enterParaContinuar(); } } return 0; }
TAVL* cadastrarAluno(TAVL* t) { printf( " ______ __ __ __ ___ __ \n" " / ____/___ _____/ /___ ______/ /__________ ____/ /__ / | / /_ ______ ____ \n" " / / / __ `/ __ / __ `/ ___/ __/ ___/ __ \\ / __ / _ \\ / /| | / / / / / __ \\/ __ \\\n" "/ /___/ /_/ / /_/ / /_/ (__ ) /_/ / / /_/ / / /_/ / __/ / ___ |/ / /_/ / / / / /_/ /\n" "\\____/\\__,_/\\__,_/\\__,_/____/\\__/_/ \\____/ \\__,_/\\___/ /_/ |_/_/\\__,_/_/ /_/\\____/ \n"); int matricula; char nome[50]; printf("Digite a matricula do aluno:\n"); matricula = lerInteiro(); printf("Digite o nome do aluno:\n"); getchar(); scanf("%30[^\n]", nome); t = insere(t, matricula, nome, 0, 1); printf("Aluno cadastrado com sucesso! :-)\n"); return t; }
void abrir_arquivo(int *QtUsu, int *QtPro) { // Declaracoes Cadastro_Usuario Usuario; Cadastro_Produto Produto; int Valida; int Contador = 0; FILE *fusuario; FILE *fproduto; FILE *fcompra; // Instrucoes /* Abrir o arquivo somente leitura */ fusuario = fopen("usuario.txt", "wb"); /* Verificar se abriu os arquivos */ if (fusuario == NULL) { printf("Erro ao abrir ou arquivo de usuarios nao encontrado para leitura.\n"); printf("Deseja criar o arquivo? (1 = Sim || 2 = Nao)"); Valida = lerInteiro(); while (Valida != 1 && Valida != 2){// Enquanto a tecla 1 ou 2 não for apertada if (Valida == 1) fusuario = fopen("usuario.txt", "ab+"); } if (Valida == 2) { while( Contador <= 3 && fusuario == NULL){ fusuario = fopen("usuario.txt", "ab+"); printf(" Tentativa numero %d ...\n", Contador + 1); Contador++; if (Contador == 3) printf("Impossível abrir o arquivo!"); } } } else { if (tamanho_arquivo(fusuario) != 0) while (!feof(fusuario)) { // Enquanto não for o fim do arquivo if (fread(&Usuario, sizeof (Cadastro_Usuario), 1, fusuario) != 0) (*QtUsu)++; } if (fclose(fusuario) != 0) exit(1); } Contador = 0; /* Abrir o arquivo somente leitura */ fproduto = fopen("produto.txt", "wb"); if (fproduto == NULL) { printf("Erro ao abrir ou arquivo de produtos nao encontrado para leitura. \n\n"); printf("Deseja criar o arquivo? (1 = Sim || 2 = Nao)"); Valida = lerInteiro(); while ((Valida != 1) && (Valida != 2)) { // Enquanto a tecla 1 ou 2 não for apertada if (Valida == 1) fproduto = fopen("produto.txt", "ab+"); } if (Valida == 2) { while( Contador <= 3 && fproduto == NULL){ fproduto = fopen("produto.txt", "ab+"); printf(" Tentativa numero %d ...\n", Contador + 1); Contador++; if (Contador == 3) printf("Impossível abrir o arquivo!"); } } } else { if (tamanho_arquivo(fproduto) != 0) while (!feof(fproduto)) { // Enquanto não for fim do arquivo if (fread(&Produto, sizeof (Cadastro_Produto), 1, fproduto) != 0) (*QtPro)++; } if (fclose(fproduto) != 0) exit(1); } /* Abrir o arquivo somente leitura */ fcompra = fopen("compra.txt", "wb"); /* Verificar se abriu os arquivos */ if (fcompra != NULL) { if (fechar_determinado_arquivo(fcompra) == -1) return; remove("compra.txt"); } }