• 0
Sign in to follow this  
luan_bfr

ajuda em exercicio Pilha em C

Question

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!!!

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this