Atenção: Precisando de assessoria nos seus PROJETO entre em contato com a SGP
E-mail: ajudastrabalhosprogramacao@gmail.com
Programa que permita ao usuário fazer o cadastro de o acompanhamento dos alunos em uma determinada disciplina. Sobre os alunos é necessário saber:
O sistema deve exibir o seguinte menu de opções:
1-Cadastrar(10) -> O número à direita da opção indica a quantidade de alunos que ainda podem ser cadastrados.
Este número deve ser atualizado a medida que a opção for selecionada.
2-Exibir(0) -> O número à direita da opção indica a quantidade de alunos que já foram cadastrados.
Este número deve ser atualizado a medida que um novo cadastrado for realizado.
3-Exibir por curso -> Exibe todos os alunos cadastrados organizados por curso e o total de alunos em cada um.
#include<stdio.h>#include<stdlib.h>
#include<malloc.h>
#define MAXIMO 10
struct Alunos{
char nome[30],sexo,curso;
int idade;
float nota1, nota2;
};
struct PILHA{
struct Alunos al;
struct PILHA *prox;
};
typedef struct PILHA pilha;
int menu(int *cadastrados);
int isEmpty(pilha *p);// Inicia Pilha
pilha *iniciaPilha();// Inicia Pilha
pilha *getNode();//obter Nó
void freeNode(pilha *p);//Nó livre
void print(pilha *p);// imprimir
void printCurso(pilha *p);
char menuSexo();
char menuCurso();
int main(){
pilha *pi = iniciaPilha();
int opc, cadastrados = 0;
do{
opc = menu(&cadastrados);
switch(opc){
case 1:{
if(cadastrados<MAXIMO){
if(!isEmpty(pi)){
pi = getNode();
}else{
pilha *temp = getNode();
temp->prox = pi;
pi = temp;
}
cadastrados++;
}else{
system("cls");
printf("\n\n\t\tNAO PODE FAZER MAIS CADASTROS");
getchar();
}
break;
}
case 2:{
if(pi != NULL){
system("cls");
print(pi);
getchar();
}else{
system("cls");
printf("\n\n\tNAO HA SMARTPHONE CADASTRADOS!");
getchar();
}
break;
}
}
}while(opc!=0);
return 0;
}
int menu(int *cadastrados){
int opc;
do{
printf("1-Cadastrar(%d)\n2-Exibir(%d)\n3-Exibir por curso\n0 - sair", MAXIMO -(*cadastrados), *cadastrados);
scanf("%d",&opc);
getchar();
if(opc < 0 || opc > 3){
system("cls");
printf("\n\n\tOPCAO INVALIDA!");
getchar();
}
}while(opc<0 || opc>3);
return opc;
}
int isEmpty(pilha *p){
return p==NULL;
}
pilha *iniciaPilha(){
return NULL;
}
pilha *getNode(){
pilha *p = (pilha*)malloc(sizeof(pilha));
printf("informe o nome: ");
gets(p->al.nome);
p->al.sexo = menuSexo();
getchar();
p->al.curso = menuCurso();
// scanf("%c",&p->al.curso);
printf("Informe a Idade: ");
scanf("%d",&p->al.idade);
getchar();
printf("Informe a Nota1: ");
scanf("%f",&p->al.nota1);
getchar();
printf("Informe a Nota2: ");
scanf("%f",&p->al.nota2);
getchar();
p->prox = NULL;
return p;
}
char menuSexo(){
char sexo;
do{
printf("INFORME O SEXO");
sexo = toupper(getchar());
if(sexo != 'M'&&sexo !='F'){
system("cls");
printf("SEXO INVALIDO...");
getchar();
}
}while(sexo != 'M'&&sexo !='F');
return sexo;
}
char menuCurso(){
char curso;
do{
printf("INFORME UM CURSO\n[S-sistemas|A-administracao|C-Contabilidade]: ");
curso = toupper(getchar());
if(curso != 'A' && curso != 'S' && curso != 'C' ){
system("cls");
printf("CURSO INVALIDO!");
getchar();
}
}while(curso != 'A' && curso != 'S' && curso != 'C');
return curso;
}
void freeNode(pilha *p){
system("cls");
printf("ELEMENTO REMOVIDO %s",p->al.nome);
free(p);
getchar();
}
void print(pilha *p){
if(p != NULL){
printf("NOME: %s SEXO: %c Curso: %c idade: %d Nota1: %.2f Nota2: %.2f",p->al.nome,p->al.sexo, p->al.curso, p->al.idade, p->al.nota1, p->al.nota2);
print(p->prox);
}
}
void printCurso(pilha *p){
char tipo;
printf("INFORME O CURSO: ");
tipo = toupper(getchar());
if(p != NULL){
if(p->al.curso == tipo){
print(p);
}
}
}
Atenção: Precisando de ajuda entre em contato com a SGP e solicite uma assessoria com a melhor equipe do mercado no desenvolvimento de trabalhos acadêmicos
E-mail: ajudastrabalhosprogramacao@gmail.com
Facebook: fb.me/ajudaemTrabalhosdeprogramacao
Nenhum comentário:
Postar um comentário