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

ajuda em exercicio Pilha em C


luan_bfr

Pergunta

1. Faça um programa que apresente o menu de opções abaixo:

MENU

1- Cadastro de aluno

2- Cadastro de nota

3- Calcular média de um aluno

4- Listar os nomes dos alunos sem notas

5- Excluir aluno

6- Excluir nota

7- Sair

Observações:

a) Na opção 1 deve ser cadastrado um aluno (número e nome) de cada vez em uma pilha dinâmica simplesmente encadeada. A mensagem disponível nesta opção é: Aluno cadastrado. Os números dos alunos devem ser gerados automaticamente, partindo do número 1.

B) Na opção 2 deve pedir o nome do aluno que irá ser cadastrado a nota.

c) Na opção 3 deve digitar o nome do aluno e o programa deve mostrar o nome dele e a média aritmética das notas desse aluno. As mensagens disponíveis nesta opção são: Aluno não cadastrado, Aluno sem nota e Média dos alunos = valor calculado.

d) Na opção 4 os nomes dos alunos que não possuem notas devem ser listados. As mensagens disponíveis nesta opção são: A listagem dos nomes e Todos os alunos possuem notas.

e) Na opção 5 um aluno da pilha de alunos deve ser excluído, respeitando duas regras: a) um aluno só pode ser excluído se não possuir nota; B) o usuário não deve escolher o aluno a ser excluído, pois a exclusão deve obedecer as regras de funcionamento de uma estrutura de dados do tipo pilha. As mensagens disponíveis nesta opção são: Aluno excluído, Pilha vazia e Este aluno possui notas, logo, não poderá ser excluído.

f) Na opção 6 uma nota deve ser excluída, respeitando as regras de funcionamento de uma estrutura do tipo pilha. As mensagens disponíveis são: Notas excluídas e Pilha vazia.

g) Na opção 7 é a única que sai do programa. Uma mensagem deve ser mostrada para opções inválidas.

void fpvazia(){

struct pilha *prox;

aux =(struct pilha*)malloc(sizeof(struct pilha));

topo = aux;

fundo =topo;

fundo->prox=NULL;

}

void cadastra(pilha prox,char na){

aux=((prox*)malloc(sizeof(prox));

printf("Voce selecionou cadastra:\n\n");

/*struct pilha *aux;*/

aux->name=na;

/*aux->name=prox->topo;*/

aux->px=prox->topo;

prox->topo=aux

/*topo = aux;*/

/*char x[30];

char op;*/

fpvazia();

/*while(op !='n'){*/

printf("Digite o nome:\n\n");

scanf("%c",&x);

/*printf ("Continuar com o cadastro ?(s/n)");

op = getch();*/

tamanho++;

numero++;

char opc;

printf("Voce deseja continuar o progama? (s/n):\n\n");

scanf("%c",&opc);

if(opc == 's'){

menu();

}/*else{

print("O progama sera finalizado");

}*/

}

/*void knota(pilha *prox,char x){

printf("Voce selecionou cadastra nota:\n\n ");

/*char x[30];*/

/*int flag =0;

struct pilha *aux;

aux->prox = topo;

aux-> nota;

topo = aux;

while(aux->prox !=NULL){

printf("Digite o nome do aluno a ser cadastrado a nota:\n\n");

scanf("%c",&x);

if(aux->name==x){

printf("Aluno encontrado:");

printf("digite a nota do aluno");

scanf("%d",&nota);

flag =1;

aux->prox=NULL;

}else{

aux=aux->prox;

}

printf ("Continuar com o cadastro ?(s/n)");

op = getch();

}

if(flag==0){

printf("não a aluno com esse nome:");

}

menu();

}

void mediana(){

printf("Voce selecionou tirar media:\n\n ");

menu();

}

void listar(){

int con=0;

printf("Voce selecionou listar:\n\n");

struct pilha *aux;

aux = topo;

while(aux->prox !=NULL){

printf("aluno(s) sem nota:",aux->name,numero);

con++;

if(con=0){

printf("Todos os alunos posuen notas:");

}

char opc;

printf("Voce deseja continuar o progama? (s/n):\n\n");

scanf("%c",&opc);

if(opc == 's'){

menu();

}

}

}

void excluir(){

printf("Voce selecionou Excluir aluno:\n\n ");

char x[30];

int flag =0;

struct pilha *aux;

aux->prox = topo;

aux-> nota;

topo = aux;

while(aux->prox !=NULL){

printf("Digite o nome do aluno a ser exluido :\n\n");

scanf("%c",&x);

if(aux->name==x){

printf("Aluno encontrado:\n\n");

if (name->nota==NULL){

printf("aluno sera excluido:\n\n");

topo =topo->prox;

}else{

printf("aluno tem nota e não sera exluido:\n\n");

}

flag =1;

aux->prox=NULL;

}else{

aux=aux->prox;

}

printf ("Continuar com o cadastro ?(s/n)");

op = getch();

}

if(flag==0){

printf("não a aluno com esse nome:");

}

printf("Voce selecionou excluir aluno:\n\n");

menu();

}

void exnota(){

printf("Voce selecionou excluir nota:\n\n");

menu();

}

void sair(){

exit(1);

}

*/

int main (void){

menu();

system("pause");

return 0;

}

void menu(){

system("cls");

int opc;

printf("Escolha uma opcao:\n\n");

printf("1 - cadastrar:\n\n");

printf("2 - cadastrar nota do aluno:\n\n");

printf("3 - Calcular media do aluno:\n\n");

printf("4 - listar alunos sem nota:\n\n");

printf("5 - Excluir aluno:\n\n");

printf("6 - Excluir nota:\n\n");

printf("7 - sair:\n\n");

printf ("Opcao:\n\n");

scanf("%d",&opc);

getchar();

switch (opc){

case 1:

cadastra();

break;

case 2:

knota();

break;

case 3:

mediana();

break;

case 4:

listar();

break;

case 5:

excluir();

break;

case 6:

exnota();

break;

case 7:

sair();

break;

default:

printf("Opcao invalida tente novamente\n\n");

break;

system("pause");

menu();

}

}

ajude na função cadastrar na pilha por favor!!!

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,1k
    • Posts
      651,8k
×
×
  • Criar Novo...