Ir ao conteúdo

Posts recomendados

Postado

Preciso de ajuda, consegui fazer o programa ate aqui, mas não sei continuar, alguém pode me ajudar ?

Ele tem que conter:

Incluir aluno

a. Solicita a matrícula do aluno;

b. Não aceita matrículas repetidas;

c. Solicita os demais dados do aluno;

d. Confirma se o usuário quer incluir ou cancelar;

e. Soma um no total de alunos

f. Pergunta se o usuário quer adiconar outro aluno ou voltar para o menu;

Excluir aluno

a. Solicita a matrícula do aluno;

b. Dá uma mensagem de erro caso a matrícula não esteja cadastrada;

c. Apresenta dados do aluno;

d. Confirma se o usuário quer excluir ou cancelar;

e. Exclui o aluno caso o usuário confirme;

f. Diminui um no total de alunos;

g. Pergunta se o usuário quer excluir outro aluno ou voltar para o menu;

Listar alunos

a. Apresenta um relatório ordenado por média (do menor para o maior)

b. Aguarda o usuário pressionar uma tecla para ir para a próxima página

c. Após a última página volta para o menu

Observações:

a) A estrutura para armazenar os alunos deve ser uma struct

b ) A coleção de alunos deve ser armazenado em um array de no máximo 100 alunos

c) O sistema deve controlar para não passar do número máximo (100)

d) Usar gotoxy - e tabela ASCII

#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <conio.h>

#define SAIR 5
#define TAMANHO 100
#define CARACTERES_NO_NOME 30
#define TURMA_VAZIA 0

#define TRUE  1
#define FALSE 0

typedef struct alunos {
    int matricula;
    char nome [CARACTERES_NO_NOME];
    float nota1, nota2, media;
} aluno;

int main (){
    int matricula;
    char nome [CARACTERES_NO_NOME];
    float nota1, nota2, media;
    int   opcao,
          quantidadeDeAlunosNaTurma=0,
          quantidadeUsada  = TURMA_VAZIA;
          
          
    aluno turma [TAMANHO];
          

    printf("\t\t\t**********************\n");
    printf("\t\t\t CONFIGURAR O SISTEMA\n");
    printf("\t\t\t**********************\n");
    printf("Digite a quantidade de alunos na turma ");
    scanf("%d",&quantidadeDeAlunosNaTurma);
    printf("\t\t\t**********************\n");
    
    while(opcao!= SAIR){
        system("cls");
        printf("\t**********************************************************\n");
        if(quantidadeUsada == TURMA_VAZIA) {
            printf("\t\t\t\A turma esta vazia\n");
        }
        if(quantidadeUsada == TAMANHO ) {
            printf("\t\t\t\A turma esta lotada\n");
        }
        if(quantidadeUsada != TAMANHO && quantidadeUsada != TURMA_VAZIA ) {
            printf("\t\t\t\A turma esta com %d alunos\n",quantidadeUsada);
        }
        
        printf("\t\**********************************************************\n\n");

        printf("\t\t\t********************\n");
        printf("\t\t\t\tMENU\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t 1-Incluir aluno\n\n");
        printf("\t\t\t 2-Excluir aluno\n\n");
        printf("\t\t\t 3-Listar alunos \n\n");
        printf("\t\t\t 4-Lançar notas\n\n");
        printf("\t\t\t 5-Sair\n");
        printf("\t\t\t**********************\n");
        scanf("%d",&opcao);
        fflush(stdin);    
        if(opcao==1){
            system("cls");
            int continuar = TRUE;

            while(quantidadeUsada < quantidadeDeAlunosNaTurma /* && continuar == TRUE */) {
                aluno atual;
                printf("\nDigite um nome\n  ");
                fgets(atual.nome, 30, stdin);
                fflush(stdin);
                // Solicitar os demais dados do aluno
                printf("\nDigite sua matricula\n  ");
                scanf("%d",&matricula);
                fflush(stdin);

                // Colocar o if perguntando se o usuário realmente deseja incluir
                 printf("\nDeseja realmente Incluir? Sim Nao:");
                 scanf("%s",&atual.nome);
                 char resp[5];
                  if ( ( resp == "Sim" ) || ( resp == "sim" ) ){
                  turma[quantidadeUsada ] = atual;
                    printf("\nInclusao feita com sucesso\n");
                }
                else {
                    if ( ( resp == "Não" ) || ( resp == "não" ) ) {
                        printf("Inclusao cancelada!\n");
                    }
                }
                quantidadeUsada++;
            
                turma[quantidadeUsada ] = atual;
                // Perguntar para o usuário se ele deseja incluir mais alunos na turma
                continuar = FALSE;
        }
    }

 

  • Curtir 1
Postado

@Thuani Bitencourtt     seu código está bom, mas precisa de alguns ajustes, ali no aluno atual é preciso colocar o numero de posições e precisa ser declarado antes da main.  coloquei a opção Listar para fazer a listagem dos alunos cadastrados, as outra opções são parecidas com essa.

  veja como ficaria seu código :

#include <iostream>
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <conio.h>
#define SAIR 5
#define TAMANHO 100
#define CARACTERES_NO_NOME 30
#define TURMA_VAZIA 0
#define TRUE  1
#define FALSE 0
using namespace std;
typedef struct alunos {
    int matricula;
    char nome [CARACTERES_NO_NOME],cad[30];
    float nota1, nota2, media;
} aluno;
aluno atual[TAMANHO];/*mudou aqui*/
int main (){
    int matricula,i;
    char nome [CARACTERES_NO_NOME],cad[30];
    float nota1, nota2, media;
    int   opcao,
          quantidadeDeAlunosNaTurma=0,
          quantidadeUsada  = TURMA_VAZIA;


    aluno turma [TAMANHO];

    printf("\t\t\t**********************\n");
    printf("\t\t\t CONFIGURAR O SISTEMA\n");
    printf("\t\t\t**********************\n");
    printf("Digite a quantidade de alunos na turma ");
    scanf("%d",&quantidadeDeAlunosNaTurma);
    printf("\t\t\t**********************\n");

    while(opcao!= SAIR){
        system("cls");
        printf("\t**********************************************************\n");
        if(quantidadeUsada == TURMA_VAZIA) {
            printf("\t\t\t\A turma esta vazia\n");
        }
        if(quantidadeUsada == TAMANHO ) {
            printf("\t\t\t\A turma esta lotada\n");
        }
        if(quantidadeUsada != TAMANHO && quantidadeUsada != TURMA_VAZIA ) {
            printf("\t\t\t\A turma esta com %d alunos\n",quantidadeUsada);
        }

        printf("\t\**********************************************************\n\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t\tMENU\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t 1-Incluir aluno\n\n");
        printf("\t\t\t 2-Excluir aluno\n\n");
        printf("\t\t\t 3-Listar alunos \n\n");
        printf("\t\t\t 4-Lançar notas\n\n");
        printf("\t\t\t 5-Sair\n");
        printf("\t\t\t********************\n");
        printf("\t\t\topcao --> ");
        fflush(stdin);
        scanf("%d",&opcao);
        if(opcao==1){
            system("cls");
            int continuar = TRUE;
            while(quantidadeUsada < quantidadeDeAlunosNaTurma /* && continuar == TRUE */) {
                printf("\nDigite um nome\n  ");
                fflush(stdin);
                fgets(atual[quantidadeUsada].nome, 30, stdin);
                // Solicitar os demais dados do aluno
                printf("\nDigite sua matricula\n  ");
                fflush(stdin);
                scanf("%d",&atual[quantidadeUsada].matricula);
                fflush(stdin);
                // Colocar o if perguntando se o usuário realmente deseja incluir
                printf("\nDeseja realmente Incluir? S/N: ");
                char resp[5];
                fflush(stdin);
                scanf("%s",&resp);
                if ( ( resp[0] == 'S' ) || ( resp[0] == 's' ) ){
                    turma[quantidadeUsada ] = atual[quantidadeUsada];
                    printf("\nInclusao feita com sucesso    Tecle\n");
                    getch();
                }
                else {
                    if ( ( resp[0] == 'N' ) || ( resp[0] == 'n' ) ) {
                        printf("Inclusao cancelada!    Tecle\n");
                        getch();
                    }
                }
                quantidadeUsada++;

                turma[quantidadeUsada ] = atual[0];
                // Perguntar para o usuário se ele deseja incluir mais alunos na turma
                continuar = FALSE;
            }
        }
        if(opcao==3){
            printf("aqui estão os alunos");
            for(i=0;i<quantidadeUsada;i++){
                printf("\nNome Da Pessoa ----> %s",atual[i].nome);
                printf("cuja matricula é -> %d\n",atual[i].matricula);
            }
            getch();
        }
    }
}

 

Postado
Em 2017-6-11 às 00:26, devair1010 disse:

@Thuani Bitencourtt     seu código está bom, mas precisa de alguns ajustes, ali no aluno atual é preciso colocar o numero de posições e precisa ser declarado antes da main.  coloquei a opção Listar para fazer a listagem dos alunos cadastrados, as outra opções são parecidas com essa.

  veja como ficaria seu código :


#include <iostream>
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <conio.h>
#define SAIR 5
#define TAMANHO 100
#define CARACTERES_NO_NOME 30
#define TURMA_VAZIA 0
#define TRUE  1
#define FALSE 0
using namespace std;
typedef struct alunos {
    int matricula;
    char nome [CARACTERES_NO_NOME],cad[30];
    float nota1, nota2, media;
} aluno;
aluno atual[TAMANHO];/*mudou aqui*/
int main (){
    int matricula,i;
    char nome [CARACTERES_NO_NOME],cad[30];
    float nota1, nota2, media;
    int   opcao,
          quantidadeDeAlunosNaTurma=0,
          quantidadeUsada  = TURMA_VAZIA;


    aluno turma [TAMANHO];

    printf("\t\t\t**********************\n");
    printf("\t\t\t CONFIGURAR O SISTEMA\n");
    printf("\t\t\t**********************\n");
    printf("Digite a quantidade de alunos na turma ");
    scanf("%d",&quantidadeDeAlunosNaTurma);
    printf("\t\t\t**********************\n");

    while(opcao!= SAIR){
        system("cls");
        printf("\t**********************************************************\n");
        if(quantidadeUsada == TURMA_VAZIA) {
            printf("\t\t\t\A turma esta vazia\n");
        }
        if(quantidadeUsada == TAMANHO ) {
            printf("\t\t\t\A turma esta lotada\n");
        }
        if(quantidadeUsada != TAMANHO && quantidadeUsada != TURMA_VAZIA ) {
            printf("\t\t\t\A turma esta com %d alunos\n",quantidadeUsada);
        }

        printf("\t\**********************************************************\n\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t\tMENU\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t 1-Incluir aluno\n\n");
        printf("\t\t\t 2-Excluir aluno\n\n");
        printf("\t\t\t 3-Listar alunos \n\n");
        printf("\t\t\t 4-Lançar notas\n\n");
        printf("\t\t\t 5-Sair\n");
        printf("\t\t\t********************\n");
        printf("\t\t\topcao --> ");
        fflush(stdin);
        scanf("%d",&opcao);
        if(opcao==1){
            system("cls");
            int continuar = TRUE;
            while(quantidadeUsada < quantidadeDeAlunosNaTurma /* && continuar == TRUE */) {
                printf("\nDigite um nome\n  ");
                fflush(stdin);
                fgets(atual[quantidadeUsada].nome, 30, stdin);
                // Solicitar os demais dados do aluno
                printf("\nDigite sua matricula\n  ");
                fflush(stdin);
                scanf("%d",&atual[quantidadeUsada].matricula);
                fflush(stdin);
                // Colocar o if perguntando se o usuário realmente deseja incluir
                printf("\nDeseja realmente Incluir? S/N: ");
                char resp[5];
                fflush(stdin);
                scanf("%s",&resp);
                if ( ( resp[0] == 'S' ) || ( resp[0] == 's' ) ){
                    turma[quantidadeUsada ] = atual[quantidadeUsada];
                    printf("\nInclusao feita com sucesso    Tecle\n");
                    getch();
                }
                else {
                    if ( ( resp[0] == 'N' ) || ( resp[0] == 'n' ) ) {
                        printf("Inclusao cancelada!    Tecle\n");
                        getch();
                    }
                }
                quantidadeUsada++;

                turma[quantidadeUsada ] = atual[0];
                // Perguntar para o usuário se ele deseja incluir mais alunos na turma
                continuar = FALSE;
            }
        }
        if(opcao==3){
            printf("aqui estão os alunos");
            for(i=0;i<quantidadeUsada;i++){
                printf("\nNome Da Pessoa ----> %s",atual[i].nome);
                printf("cuja matricula é -> %d\n",atual[i].matricula);
            }
            getch();
        }
    }
}

 

 

adicionado 3 minutos depois

@devair1010 obrigado, mas os outros você não conseguiu fazer ?

  • Curtir 1
Postado

@estudante     essa parte de excluir um elemento do struct  é a parte mais difícil por que se você mexer em algum dado, o struct perde a referencia e da erro, só consegui fazer usando strcpy para movimentar os dados no struct .

experimente esse seu código com algumas modificações :

#include <iostream>
#include<stdio.h>
#include<string.h>
#include <stdlib.h>
#include <conio.h>
#define SAIR 5
#define TAMANHO 100
#define CARACTERES_NO_NOME 30
#define TURMA_VAZIA 0
#define TRUE  1
#define FALSE 0
using namespace std;
typedef struct alunos {
    int matricula;
    char nome [CARACTERES_NO_NOME],cad[30];
    float nota1, nota2, media;
} aluno;
int a,ax,h,g,j,k,z;
char resp[5],nomi[30];

int main (){
    int matricula,i;
    char nom [CARACTERES_NO_NOME],cad[30];
    float nota1, nota2, media;
    int   opcao,
          quantidadeDeAlunosNaTurma=0,
          quantidadeUsada  = TURMA_VAZIA;

    aluno atual[TAMANHO];
    aluno turma[TAMANHO];

    printf("\t\t\t**********************\n");
    printf("\t\t\t CONFIGURAR O SISTEMA\n");
    printf("\t\t\t**********************\n");
    printf("Digite a quantidade de alunos na turma ");
    scanf("%d",&quantidadeDeAlunosNaTurma);
    printf("\t\t\t**********************\n");

    while(opcao!= SAIR){
        system("cls");
        printf("\t**********************************************************\n");
        if(quantidadeUsada == TURMA_VAZIA) {
            printf("\t\t\t\A turma esta vazia\n");
        }
        if(quantidadeUsada == TAMANHO ) {
            printf("\t\t\t\A turma esta lotada\n");
        }
        if(quantidadeUsada != TAMANHO && quantidadeUsada != TURMA_VAZIA ) {
            printf("\t\t\t\A turma esta com %d alunos\n",quantidadeUsada);
        }

        printf("\t\**********************************************************\n\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t\tMENU\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t 1-Incluir aluno\n\n");
        printf("\t\t\t 2-Excluir aluno\n\n");
        printf("\t\t\t 3-Listar alunos \n\n");
        printf("\t\t\t 4-Lançar notas\n\n");
        printf("\t\t\t 5-Sair\n");
        printf("\t\t\t********************\n");
        printf("\t\t\topcao --> ");
        fflush(stdin);
        scanf("%d",&opcao);
/*----------------------------------------------------------------------------------------------*/
/*                              incluir           */
        if(opcao==1){
            system("cls");
            int continuar = TRUE;
            while(quantidadeUsada < quantidadeDeAlunosNaTurma /* && continuar == TRUE */) {
                printf("\nDigite Um Nome  ");
                fflush(stdin);
                fgets(atual[quantidadeUsada].nome, 30, stdin);
                // Solicitar os demais dados do aluno
                printf("Digite Sua Matricula  ");
                fflush(stdin);
                scanf("%d",&atual[quantidadeUsada].matricula);
                fflush(stdin);
                // Colocar o if perguntando se o usuário realmente deseja incluir
                printf("Deseja Realmente Incluir? S/N: ");
                fflush(stdin);
                scanf("%s",&resp);
                if ( ( resp[0] == 'S' ) || ( resp[0] == 's' ) ){
                    turma[quantidadeUsada ] = atual[quantidadeUsada];
                    printf("\nInclusao Feita Com Sucesso    Tecle\n");
                    getch();
                }
                else {
                    if ( ( resp[0] == 'N' ) || ( resp[0] == 'n' ) ) {
                        printf("Inclusao Cancelada!    Tecle\n");
                        getch();
                    }
                }
                quantidadeUsada++;
                z++;
                // Perguntar para o usuário se ele deseja incluir mais alunos na turma
                continuar = FALSE;
                printf("deseja cadastrar mais um aluno?   S/N ");
                fflush(stdin);
                scanf("%c",resp);
                if(resp[0]=='s'){
                if(quantidadeUsada+1>quantidadeDeAlunosNaTurma){printf("So Pode Ser No Maximo %d alunos   Tecle ",quantidadeDeAlunosNaTurma);
                    getch();
                    g=1;
                }}
                if(resp[0]=='n'){goto l3;break;}
            }
            if(quantidadeUsada>=quantidadeDeAlunosNaTurma&&g!=1){printf("\nArquivo Cheio, So Pode Cadastrar %d Alunos   Tecle",quantidadeDeAlunosNaTurma);getch();}
            l3:
            g=0;
        }
/*-----------------------------------------------------------------------------------------------------*/
/*                                 excluir           */
        if(opcao==2){
            char nomi[30];
            printf("Digite O Nome Do Aluno Que Quer Excluir ");
            k=0;
            fflush(stdin);
            scanf("%s",&nom);
            for(i=0;i<quantidadeUsada;i++){
                k=0;
                strcpy(nomi,atual[i].nome);
                h=strlen(nomi)-1;
                g=strlen(nom);
                if(h!=g){k=1;}
                for(j=0;j<h;j++){
                    if(nom[j]!=nomi[j]){k=1;}
                }
                if(k==0){ax=i;break;}
            }
            if(k==0){
                strcpy(nomi,atual[ax].nome);
                h=strlen(nomi);
                nomi[h-1]=' ';
                printf("Aluno %s Encontrado, Quer mesmo Exclui-lo ?    S/N ",nom);
                fflush(stdin);
                scanf("%c",&resp);
                if(resp[0]=='s'||resp[0]=='S'){
                    for(i=ax;i<quantidadeUsada;i++){
                        strcpy(atual[i].nome,atual[i+1].nome);
                        atual[i].matricula = atual[i+1].matricula;
                        atual[i].nota1 = atual[i+1].nota1;
                        atual[i].nota2 = atual[i+1].nota2;
                    }
                    z--;
                    quantidadeUsada--;
                    printf("Exclusao Realizada Com Sucesso!!!   Tecle");
                    getch();
                }
            }else{printf("Aluno %s Nao Encotrado !!!   Tecle",nom);getch();}
        }
/*-----------------------------------------------------------------------------------------------------*/
/*                                   listar           */
        if(opcao==3){
            if(z>0){printf("Aqui estão Os Alunos");}
            else{printf("Nao Tem Nenhum Aluno Cadastrado");}
            for(i=0;i<quantidadeUsada;i++){
                if(atual[i].nome[0]!='0'){
                    printf("\nNome Da Pessoa  ----> %s",atual[i].nome);
                    printf("cuja matricula é --> %d\n",atual[i].matricula);
                    if(atual[i].nota1!=0){printf("Aqui Esta A Nota1 --> %.2f\n",atual[i].nota1);}
                    if(atual[i].nota2!=0){printf("Aqui Esta A Nota2 --> %.2f\n",atual[i].nota2);}
                }
            }
            printf("       Tecle ");
            getch();
        }
/*----------------------------------------------------------------------------------------------------------*/
/*                                lançar notas     */
        if(opcao==4){
            printf("Lancar Notas Dos Alunos\n");
            printf("Informe O Nome Do Aluno ");
            h=0;k=0;g=0;
            fflush(stdin);
            scanf("%s",&nom);
            for(i=0;i<quantidadeUsada;i++){
                k=0;
                strcpy(nomi,atual[i].nome);
                h=strlen(nomi)-1;
                g=strlen(nom);
                if(h!=g){k=1;}
                for(j=0;j<h;j++){
                    if(nom[j] != nomi[j]){k=1;}
                }
                if(k==0){ax=i;break;}
            }
            if(k==0){
                strcpy(nomi,atual[ax].nome);
                h=strlen(nomi);
                nomi[h-1]=' ';
                printf("Aluno %s Encontrado\n",nomi);
                printf("Informe A Nota1 --> ");
                fflush(stdin);
                scanf("%f",&atual[ax].nota1);
                printf("Informe A Nota2 --> ");
                fflush(stdin);
                scanf("%f",&atual[ax].nota2);
                printf("Notas Lancadas Com Sucesso !!!   Tecle");
                getch();
            }
            else{printf("Aluno %s Nao Encontrado   Tecle",nom);getch();}
        }
    }
}

 

Postado

para excluir um aluno de um vetor de struct pense nela como se fosse simplesmente um vetor

por exemplo:

tam=10;

v[tam];  //um vetor de inteiros que tem tamanho 10 com {1,2,3,4,5} somente 5 valores inseridos q=5

então supondo q eu queira tirar o 3...

j=posição do valor a ser tirado

for(i=j;i<q-1;i++){//percorre o vetor a partir do termo que eu quero tirar puxando os do frente pra traz

v[ i ]=v[ i+1 ];

}

q--;//porque exclui um valor

  • Curtir 1
Postado

@devair1010 a opção 4 eu descobri que é opcional fazer, mas o meu programa não esta excluindo e esta listando um aluno só, veja como esta 

 

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <conio.h>

#define SAIR 5
#define TAMANHO 100
#define CARACTERES_NO_NOME 30
#define TURMA_VAZIA 0

#define TRUE 1
#define FALSE 0

typedef struct aluno {
    int matricula;
    char nome[CARACTERES_NO_NOME];
    float nota1, nota2, media;
    int excluido;
} aluno;

void remove_newline_ch(char *line){
    int new_line = strlen(line) -1;
    if (line[new_line] == '\n')
        line[new_line] = '\0';
}
aluno atual[TAMANHO];

int main(){
    void LimparScan ();
    int i, matriculaAUX, excluir;
    int opcao,
        quantidadeDeAlunosNaTurma = 0,
        quantidadeUsada = TURMA_VAZIA;
       char c;

    aluno turma[TAMANHO];

    printf("\t\t\t**********************\n");
    printf("\t\t\t CONFIGURAR O SISTEMA\n");
    printf("\t\t\t**********************\n");
    printf("Digite a quantidade de alunos na turma ");
    scanf("%d", &quantidadeDeAlunosNaTurma);
    printf("\t\t\t**********************\n");

    while (opcao != SAIR) {
        
        for (int contAUX = 1; contAUX > 0; contAUX--){
        system("cls");
        printf("\t**********************************************************\n");
        if (quantidadeUsada == TURMA_VAZIA) {
            printf("\t\t\t\A turma esta vazia\n");
        }
        if (quantidadeUsada == TAMANHO) {
            printf("\t\t\t\A turma esta lotada\n");
        }
        if (quantidadeUsada != TAMANHO && quantidadeUsada != TURMA_VAZIA) {
            printf("\t\t\t\A turma esta com %d alunos\n", quantidadeUsada);
        }


        printf("\t\**********************************************************\n\n");

        printf("\t\t\t********************\n");
        printf("\t\t\t\tMENU\n");
        printf("\t\t\t********************\n");
        printf("\t\t\t 1-Incluir aluno\n\n");
        printf("\t\t\t 2-Excluir aluno\n\n");
        printf("\t\t\t 3-Listar alunos \n\n");
        printf("\t\t\t 4-Lançar notas\n\n");
        printf("\t\t\t 5-Sair\n");
        printf("\t\t\t**********************\n");
        scanf("%d", &opcao);
        LimparScan ();
        
            if (opcao == 1) {
            int continuar = TRUE;

            while (continuar == TRUE && quantidadeUsada < quantidadeDeAlunosNaTurma /* && continuar == TRUE */) {
                for (int aux1 = 1; aux1 > 0; aux1--){
                system("cls");
                // Solicitar os demais dados do aluno
                printf("\nDigite sua matricula\n  ");
                scanf("%d",&matriculaAUX);
                LimparScan ();
                if(matriculaAUX == turma[matriculaAUX].matricula){
                    printf("Matricula já existente\n");
                    system ("pause");
                    aux1++;
                }
        }
                printf("\nDigite um nome\n  ");
                fgets(turma[matriculaAUX].nome, 30, stdin);
                fflush(stdin);
                printf("\nDigite a nota 1\n  ");
                scanf("%f",&turma[matriculaAUX].nota1);
                LimparScan ();
                printf("\nDigite a nota 2\n  ");
                scanf("%f",&turma[matriculaAUX].nota2);
                LimparScan ();
                turma[matriculaAUX].media = (turma[matriculaAUX].nota1 + turma[matriculaAUX].nota2) / 2;
                printf("\nMedia = %.1f\n",turma[matriculaAUX].media);
                // Colocar o if perguntando se o usuário realmente deseja incluir
                printf("\nDeseja realmente Incluir? S/N");
                char resp;
                scanf("%c", &resp);
                LimparScan ();
                if (resp == 'S' || resp == 's') {
                    remove_newline_ch(turma[matriculaAUX].nome);
                    turma[matriculaAUX].matricula = matriculaAUX;
                    printf("\nInclusao feita com sucesso\n");
                    quantidadeUsada++;
                    
                      }
                else if (resp == 'N' || resp == 'n') {
                        printf("Inclusao cancelada!\n");
                    }
                
                    // Perguntar para o usuário se ele deseja incluir mais alunos na turma
                printf("\nDeseja Incluir mais alunos na turma ?");
                scanf("%c", &resp);
                fflush(stdin);
                if (resp == 'N' || resp == 'n') {
                    continuar = FALSE;
                }
            }
            }
    
            if (opcao == 2) {
                int cont;
                int continuar = TRUE;
               
                system("cls");
                printf("Qual o matricula do aluno q você deseja excluir?\n");
                scanf("%d",&matriculaAUX);
                
                if(matriculaAUX != turma[matriculaAUX].matricula){
                    printf("Matricula não encontrada\n");
                    system ("pause");
                    contAUX++;
                }
            
         for (int cont = 1; cont > 0 ; cont--) {
                    char resp;
                    if (turma[matriculaAUX].matricula == matriculaAUX) { // encontrou o aluno
                        printf("\nMatricula: %d",matriculaAUX);
                        printf("\nNome: %s",turma[matriculaAUX].nome);
                        //nao vai perguntar se deseja excluir?
                        printf("\nDeseja realmente Excluir ? S/N");
                        scanf("%c", &resp);
                    }
                        while ((c = getchar()) != '\n' && c != EOF) {
                         }
                        
                           if (resp == 'S' || resp == 's') {
                          
                        printf("\nExclusao feita com sucesso\n");
                        system ("pause");
                        quantidadeUsada--;
                        turma[matriculaAUX].matricula = 0;
                        
                          }
                        else if (resp == 'N' || resp == 'n') {
                        printf("Exclusao cancelada!\n");
                        system ("pause");
                    }
                
                    if    (resp == 'S' || resp == 's'){
                         // deseja excluir mais alunos ?
                        printf("\nDeseja Excluir mais alunos na turma ?");
                            scanf("%c", &resp);
                            LimparScan ();
                            cont++;
                        
                    }
                       }        
}              
     }

            if (opcao == 3) {
                    system("cls");
                    printf("\nAluno");
                    printf("-----------");
                    printf("Matricula");
                    printf("-----------");
                    printf("Nota 1");
                    printf("-----------");
                    printf("Nota 2");
                    printf("-----------");
                    printf("Media");
                    printf("-----------\n\n");
                    
                    
                    int linhas = 1;
                    for (i = 0; i < matriculaAUX; i++) {
                        if (atual.excluido != 1) {
                            printf("%s",turma[matriculaAUX].nome);
                            printf("\t\t %d",turma[matriculaAUX].matricula);
                            printf("\t\t     %.1f",turma[matriculaAUX].nota1);
                            printf("\t       %.1f",turma[matriculaAUX].nota2);
                            printf("\t       %.1f\n",turma[matriculaAUX].media);
                            linhas++;
                        }
                        if (linhas % 10 == 0) { // Imprimiu 10 linhas
                            //  Limpa a tela depois de esperar para imprimir uma nova pagina do relatorio...
                            getch();
                              system("cls");
                            printf("\nAluno");
                            printf("-----------");
                            printf("Matricula");
                               printf("-----------");
                                printf("Nota 1");
                            printf("-----------");
                            printf("Nota 2");
                            printf("-----------");
                            printf("Media");
                            printf("-----------\n\n");
                            linhas = 1;
                        }
                    }
                    printf("\n\nListagem impressa...");
                    getch();
            }
    }
}

void LimparScan (){
    short c;
    while ((c = getchar()) != '\n' && c != EOF) {
                         }
}

  • Curtir 1
Postado
void exclui(struct aluno _al){
// Exclui um aluno
   int achou = 0;
   int i = 0;
  
   while((achou==0) && (i<qtde)){ //procura o aluno através do nome
      if(strcmp(_al.nome, turma[i].nome) == 0){
         achou = 1;
      }
      else{
         i++;
      }
   }

   if(achou==1){ //achou o aluno na lista
      for(int j=i;j<qtde-1;j++){ //exclui copiando o próximo para o lugar da exclusão
         turma[j] = turma[j+1];
      }
      qtde--; //diminui a quantidade de alunos na lista
   }  
}

um exemplo de exclusão,   ali em cima faltou um >>>if(achou==0) printf("Aluno inexistente!");

observação: teu código esta meio desorganizado, tente implementa-lo com funções, vai ficar tudo mais fácil

  • Curtir 1
Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!