Ir para conteúdo
Fórum Script Brasil
  • 0

Programa cadastrar disciplinas de um aluno


MatAmianto

Pergunta

Estou em duvida nesse program pq exclui mas ainda aparece se pesquiso tipo o numero 1, 2 , 3

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
struct controleNota{
    float nota1, nota2;
    float media;
    int status;
    char disc[50];
    char prof[50];
    char sigla[25];
}aluno;

FILE *tnt;

 remove();
int verificaExclusao();
void excluir();
void alterar();
void mostrarTudo();
void cadastro();
int local ();
void pesquisa();
void excluir();


int main(){
    int op;

        do {
         printf("\t\t\t----------MENU---------\n\t\t\t1)Cadastrar Disciplinas\n");
         printf("\t\t\t2)Pesquisar Discipinas\n\t\t\t3)Excluir Disciplinas\n\t\t\t4)Mostrar Todos\n");
          printf("\t\t\t5)Alterar Programa\n\t\t\t6)Encerrar Programa\n");
         printf("\nDigite sua opcao: ");
         scanf("%d",&op);
         switch(op){
            case 1:
                    system("cls");
                    cadastro();
                    break;
            case 2:
                    system("cls");
                    pesquisa();
                    break;
            case 3:
                    system("cls");
                    excluir();
                    break;
            case 4:
                    system("cls");
                    mostrarTudo();
                    break;
            case 5:
                    system("cls");
                    alterar();
                    break;
            case 6:
                    system("cls");
                    printf("Programa Encerrado Com Sucesso\nGOKU WINS!!!!!");
                    break;
            default:

                  printf("NUMERO INCORRETO!\n");
                    printf("DIGITE QUALQUER TECLA PRA CONTINUAR\n");
                    getch();
                    fflush(stdin);
                    system("cls");
       }
    }while(op != 4);
    fclose(tnt);
}


void cadastro(){
    tnt = fopen("controleNotas.txt", "ab+");

    fseek(tnt,0L,SEEK_END);
    do{

      printf("Digite o nome da Disciplina ou s para sair \n");
      fflush(stdin);
      gets(aluno.disc);

         if((strcmp(aluno.disc,"s")!=0)&&(strcmp(aluno.disc,"S")!=0)){
           printf("Digite o nome do Professor\n");
           gets(aluno.prof);
           fflush(stdin);
           printf("Digite a sigla da disciplina\n");
           gets(aluno.sigla);
           fflush(stdin);
           printf("Digite a nota do primeiro bimestre do cidadao\n");
           scanf("%f",&aluno.nota1);
           printf("Digite a nota do segundo bimestre do cidadao\n");
           scanf("%f",&aluno.nota2);
           aluno.status=1;

                if( fwrite(&aluno,sizeof(struct controleNota),1,tnt)){

                   printf("\n\tDISCIPLINA ATUALIZADO DADOS-----------\n");
                }
                else{
                   printf("\n\tOCORREU ERRO NO CADASTRO\n");
                }
         }

    }while((strcmp(aluno.disc,"s")!=0)&&(strcmp(aluno.disc,"S")!=0));
    fclose(tnt);
}
int local (){
    char cadedisc[70];
    int cont = 0;
    if((tnt = fopen("controleNotas.txt", "rb"))==NULL){

            printf("\n\tNAO POSSUI NOTAS E DISCIPLINAS CADASTRADAS\n");
            printf("\n\tDigite qualquer tecla pra voltar\n");
            getch();
            fflush(stdin);
            system("cls");
            main();

    }
    if(verificaExclusao()==1){
              printf("\n\tTodo mundo excluido\n");
            printf("\n\tDigite qualquer tecla pra voltar\n");
            getch();
            fflush(stdin);
            system("cls");
            main();


    }
    fflush(stdin);
    printf("\n\tNome da Disciplina:");

    gets(cadedisc);

    while(!feof(tnt)){
        fread(&aluno, sizeof(struct controleNota), 1, tnt);
        if(strcmp( aluno.disc,cadedisc)==0){
            if(aluno.status == 0){
                cont = -1;
                break;

            }
            break;
        }
        cont++;
    }
    if(strcmp(cadedisc,aluno.disc)==1){
            cont = -1;
    }
   fclose(tnt);
   return cont;
}
void pesquisa(){
    int posi;
    posi = local();
    if(posi<0){
        printf("\tDISCIPLINA NAO ENCONTRADA\n");
      }
        else{
            tnt = fopen("controleNotas.txt", "rb");

            fseek(tnt,posi*sizeof(struct controleNota),SEEK_SET);

            fread(&aluno,sizeof(struct controleNota),1,tnt);


            printf("\tNome do Professor  %s\n",aluno.prof);
            printf("\tNome da Disciplina  %s\n",aluno.disc);
            printf("\tSigla da Discilina  %s\n",aluno.sigla);
            printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2);
            aluno.media=(aluno.nota1+aluno.nota2)/2;
            if(aluno.media>=7){
            printf("\tA MEDIA EH: %.2f\n",aluno.media);
            printf("\t------MATERIA COM OTIMOS RESULTADOS------\n");
            }
                else {
                printf("\tA MEDIA EH: %.2f\n",aluno.media);
                printf("\t------ALUNO COM DEFICIENCIA------\n");
        }
    }

    fclose(tnt);
}

void excluir(){
    int posi;
    posi = local();
    if(posi <0){
        printf("\tDISCIPLINA NAO ENCONTRADA\n");
    }
    else{
        tnt = fopen("controleNotas.txt","rb+");

        fseek(tnt,posi*sizeof(struct controleNota), SEEK_SET);
        fread(&aluno,sizeof(struct controleNota),1,tnt);
           printf("\nEssa Disciplina sera excluida...\n");
            printf("\tNome do Professor  %s\n",aluno.prof);
            printf("\tNome da Disciplina  %s\n",aluno.disc);
            printf("\tSigla da Discilina  %s\n",aluno.sigla);
            printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2);
                fflush(stdin);
                getch();
        aluno.status = 0;
        fseek(tnt,posi*sizeof(struct controleNota), SEEK_SET);
        if(fwrite(&aluno,sizeof(struct controleNota),1,tnt)){

            printf("\nDISCIPLINA EXCLUIDA\n");
             fclose(tnt);
                        getch();
                    fflush(stdin);
                   system("cls");
                   main();

        }
        else{
                printf("\nFALHOU");
                 fclose(tnt);
                        getch();
                    fflush(stdin);
                   system("cls");
                   main();

        }
    }

}


void mostrarTudo(){
   if((tnt = fopen("controleNotas.txt", "rb"))==NULL){

            printf("\n\tNAO POSSUI NOTAS E DISCIPLINAS CADASTRADAS\n");
            printf("\n\tDigite qualquer tecla pra voltar\n");
            getch();
            fflush(stdin);
            system("cls");
            main();

    }
     if(verificaExclusao()==1){
              printf("\n\tTodo mundo excluido\n");
            printf("\n\tDigite qualquer tecla pra voltar\n");
            getch();
            fflush(stdin);
            system("cls");
            main();


    }
   fseek(tnt, 0L, SEEK_SET);
   fread(&aluno, sizeof(struct controleNota),1, tnt);
   do{
    if(aluno.status!=0){
            printf("\n\tNome do Professor  %s\n",aluno.prof);
            printf("\tNome da Disciplina  %s\n",aluno.disc);
            printf("\tSigla da Discilina  %s\n",aluno.sigla);
            printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2);
            aluno.media=(aluno.nota1+aluno.nota2)/2;
           if(aluno.media>=7){
            printf("\tA MEDIA EH: %.2f\n",aluno.media);
            printf("\t------MATERIA COM OTIMOS RESULTADOS------\n");
            }
                else {
                printf("\tA MEDIA EH: %.2f\n",aluno.media);
                printf("\t------ALUNO COM DEFICIENCIA------\n");
        }
    }
    fread(&aluno, sizeof(struct controleNota),1, tnt);
    }while(!feof(tnt));
    getch();
    main();
   }


void alterar(){
    int x,z;
    x=local();
    if(x<0){
        printf("\tDISCIPLINA NAO ENCONTRADA\n");
    }
    else{
            tnt = fopen("controleNotas.txt", "rb+");

            fseek(tnt,x*sizeof(struct controleNota),SEEK_CUR);

            fread(&aluno,sizeof(struct controleNota),1,tnt);
            printf("\nDeseja alterar a seguinte disciplina...\n");
            printf("\tNome do Professor  %s\n",aluno.prof);
            printf("\tNome da Disciplina  %s\n",aluno.disc);
            printf("\tSigla da Discilina  %s\n",aluno.sigla);
            printf("\t---1 NOTA---\t---2 NOTA---\n\t---%.2f---\t---%.2f---\n",aluno.nota1,aluno.nota2);
                fflush(stdin);
                printf("\nDigite as mudancas:\n\n");
                printf("Digite o nome do Professor\n");
                gets(aluno.prof);
                printf("Digite a disciplina\n");
                gets(aluno.disc);
                fflush(stdin);
                printf("Digite a sigla da disciplina\n");
                gets(aluno.sigla);
                fflush(stdin);
                printf("Digite a nota do primeiro bimestre do cidadao\n");
                scanf("%f",&aluno.nota1);
                printf("Digite a nota do segundo bimestre do cidadao\n");
                scanf("%f",&aluno.nota2);
                aluno.status=1;
                fseek(tnt,x*sizeof(struct controleNota),SEEK_SET);
                if(fwrite(&aluno,sizeof(struct controleNota),1,tnt)){
                    printf("\n\tALTERADO COM SUCESSO-----------\n");
                    fclose(tnt);
                         getch();
                         fflush(stdin);
                      system("cls");
                      main();

                 }
                  else{
                   printf("\n\tERRO NA ATUALIZAÇÃO\n");
                   fclose(tnt);
                        getch();
                    fflush(stdin);
                   system("cls");
                   main();

                  }

            }
            fclose(tnt);
}
int verificaExclusao(){
          tnt=fopen("controleNotas.txt","rb");
          rewind(tnt);
          fread(&aluno,sizeof(struct controleNota),1,tnt);
          do{
                if(aluno.status != 0){
                    return 0;
                }
                fread(&aluno,sizeof(struct controleNota),1,tnt);
          }while(!feof(tnt));
          fclose(tnt);
          return 1;

}














 

Link para o comentário
Compartilhar em outros sites

0 respostass a esta questão

Posts Recomendados

Até agora não há respostas para essa pergunta

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,4k
×
×
  • Criar Novo...