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",¬a);
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");
Pergunta
luan_bfr
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",¬a);
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
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.