/*O codigo funciona normalmente mas a função alterar não funciona corretamente,alguém poderia me ajudar?. Perdoem meus erros de publicação,sou iniciante no fórum ainda.Qualquer ajuda em relação a isso seria mt bem vinda. */
#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <ctype.h>
#include <conio.h>
void consultaCod();
int verifica_pos(void);
int verifica_cod(int cod);
void cadastroP(int cod, int pos);
int opt;
void list();
void excluirAluno(void);
void alterarAluno(void);
struct faculdade{
char nome [20];
char email[20];
char endereco [10];
char CPF [20];
char telefone[20];
int vazio,cod;
}log [50];
main(){
struct faculdade cadastro;
int Opcao,Opcaoaluno,posicao,retorno;
int codaux;
printf("--------------Faculdade--------------\n");
printf("------------Sistema de matriculas-----------\n");
printf(“1 - Cadastrar Novo Aluno\n”);
printf(“2 - Aluno\n”);
printf(“3 - Alterar Aluno\n”);
printf(“4 - Excluir Aluno\n”);
printf(“5 - Sair\n”);
printf(" Selecione uma opcao por favor: “);
scanf(”%d", &Opcao);
getchar();
if (Opcao == 1)
{
printf("Voce selecionou a opcao 1 - Cadastrar Novo Aluno\n");
posicao=verifica_pos();
if ( posicao != -1 )
{
printf("\nEntre com um codigo de 1 a 50 para seu cadastro: \n");
scanf("%d",&codaux);fflush(stdin);
retorno = verifica_cod( codaux );
if ( retorno == 1 )
cadastroP( codaux, posicao );
else{
printf("\nCodigo ja existente ou invalido pressione enter para voltar ao menu principal\n");
getchar();
system("cls");
main();
}
}
else
printf("\nNao e possivel realizar mais cadastros!\n");
}
else if (Opcao == 2)
{
system("cls");
do{
printf("Voce selecionou a opcao 2 - Alunos\n\n");
printf("1 - Pesquisar Aluno por codigo\n");
printf("2 - Listar todos os Alunos\n");
printf("3 - Voltar ao menu principal\n");
printf("Selecione uma opcao por favor: ");
scanf("%d", &Opcaoaluno);
getchar();
if(Opcaoaluno == 1){
consultaCod();
main();
}
else if(Opcaoaluno == 2){
list();
main();
}
else if(Opcaoaluno == 3){
printf("Voce selecionou voltar ao menu principal, pressione ENTER para continuar");
getchar();
system("cls");
main();
}
else
printf("Opcao Invalida\n\n");
}while(Opcaoaluno =!3 || Opcaoaluno > 3 || Opcaoaluno < 0 || Opcaoaluno == 0);
}
else if (Opcao == 3)
{
printf("Voce selecionou a opcao 3 - Alterar aluno\n");
alterarAluno();
}
else if (Opcao == 4)
{
printf("Voce selecionou a opcao 4 - Excluir Aluno\n");
excluirAluno();
}
else if (Opcao == 5)
{
printf("Voce selecionou a opcao 5 - Sair\n");
}
else{
printf("Opcao invalida, favor pressione enter para voltar ao menu principal");
getchar();
system("cls");
}
while (Opcao != 5 || Opcao < 5);
}
void list(){ // Lista os alunos cadastrados.
int i,j;
for(i=0;i<50;i++){
if(log[i].cod!=NULL){
printf("\nEmail: %s \nCodigo: %d \nNome: %s\nCPF: %s\nEndereco: %s\nTelefone: %s\n\n", log[i].email,log[i].cod,log[i].nome,log[i].CPF,log[i].endereco,log[i].telefone);
}
}
printf(“Pressione enter para volta ao menu principal”);
getchar();
system(“cls”);
}
void cadastroP(int cod, int pos){ //Cadastro dos alunos
int i;
do{
pos = verifica_pos();
log[pos].cod = cod;
printf("\nDigite seu nome: “);
gets(log[pos].nome);
printf(”\nDigite seu CPF: “);
gets(log[pos].CPF);
printf(”\nDigite seu Endereco: “);
gets(log[pos].endereco);
printf(”\nDigite seu Telefone: “);
gets(log[pos].telefone);
printf(”\nDigite seu email: ");
gets(log[pos].email);
log[pos].vazio = 1;
opt ==1;
getchar();
}while(opt==1);
system("cls");
main();
}
int verifica_pos( void ) //VERIFICADOR DA POSIÇÃO
{
int cont = 0;
while ( cont <= 50 )
{
if ( log[cont].vazio == 0 )
return(cont);
cont++;
}
return(-1);
}
int verifica_cod( int cod ) // VERIFICADOR DE CÓDIGO
{
int cont = 0;
if (cod==0) return 0;
while ( cont <= 50 )
{
if ( log[cont].cod == cod )
return(0);
cont++;
}
return(1);
}
void consultaCod (void) // CONSULTAR 1 CADASTRADO QUALQUER VIA CÓDIGO DADO POR USUÁRIO.
{
int cont = 0, cod;
printf("\nEntre com o codigo\n");
scanf("%d",&cod);
fflush(stdin);
system("cls");
while ( cont <= 50 )
{
if (log[cont].cod==cod)
{
if (log[cont].vazio==1)
{
printf("\nEmail: %s \nCodigo: %d \nNome: %s\nCPF: %s\nEndereco: %s\nTelefone: %s\n\n",log[cont].email,log[cont].cod,log[cont].nome,log[cont].CPF,log[cont].endereco,log[cont].telefone);
system ("pause");
system("cls");
break;
}
}
cont++;
if ( cont > 50 ){
printf("\nCodigo nao encontrado, pressione enter para volar ao menu principal\n");
getchar();
system("cls");
}
}
}
void excluirAluno(void) // Exclui alunos
{
int cod, cont = 0;
char resp;
printf("\nEntre com a matricula que deseja excluir: \n");
scanf("%d", &cod );
while ( cont <= 50 )
{
if ( log[cont].cod == cod )
{
if (log[cont].vazio == 1 )
{
printf("\nCodigo: %d \nNome: %s\nCPF: %s\nEndereco: %s\nTelefone: %s\n\n", log[cont].cod,log[cont].nome,log[cont].CPF,log[cont].endereco,log[cont].telefone);
getchar();
printf("\nDeseja realmente excluir? s/n: ");
scanf("%s",&resp);
if ( ( resp == 'S' ) || ( resp == 's' ) )
{
log[cont].vazio=0;
log[cont].cod = NULL;
printf("\nExclusao feita com sucesso\n");
system("cls");
main();
break;
}
}
}
cont++;
if ( cont > 50 )
printf("\nCodigo nao encontrado\n");
}
}
void alterarAluno(void){
int cod,cont =0;
char resp;
char nome2[20];
char CPF2 [11];
char endereco2[20];
char telefone2[20];
printf("Entre com o codigo da matricula que deseja alterar: \n ");
scanf("%d",&cod);
while ( cont <= 50 )
{
if ( log[cont].cod == cod )
{
if (log[cont].vazio == 1 )
{
printf("\nCodigo: %d \nNome: %s\nCPF: %s\nEndereco: %s\nTelefone: %s\n\n", log[cont].cod,log[cont].nome,log[cont].CPF,log[cont].endereco,log[cont].telefone);
getchar();
printf("\nQual informação você deseja alterar ? ");
printf(" 1 - Nome: \n");
printf(" 2 - CPF: \n ");
printf(" 3 - endereco: \n");
printf(" 4 - telefone: \n");
scanf("%s",&resp);
switch (resp){
case 1 :
printf("Insira outro nome:\n ");
fflush(stdin);
scanf("%s",&nome2);
strcpy(log[cont].nome, nome2);
break;
case 2 :
printf("Insira outro CPF: \n");
fflush(stdin);
scanf("%s",&CPF2);
strcpy(log[cont].CPF,CPF2);
break;
case 3 :
printf("Insira outro endereco: \n");
fflush(stdin);
scanf("%s",&endereco2);
strcpy(log[cont].endereco,endereco2);
break;
case 4 :
printf("Insira outro telefone: \n");
fflush(stdin);
scanf("%s",&telefone2);
strcpy(log[cont].telefone,telefone2);
break;
default :
printf("\nCodigo nao encontrado\n");
}
getch();
}
}
cont++;
}
}