Atenção: Precisando de assessoria nos seus PROJETO entre em contato com a SGP
E-mail: ajudastrabalhosprogramacao@gmail.com
Uma escola de idiomas precisa de um sistema para auxiliá-la a controlar os cursos que oferece e os alunos que tem. Para isso, é necessário armazenar as seguintes informações:
Sobre os cursos:
Idioma, duração (em meses) e valor
Sobre os alunos:
Nome, idade, sexo
O sistema deve controlar que curso cada aluno faz, lembrando que um aluno não pode fazer mais de uma vez o mesmo curso. Exiba para o usuário o seguinte menu:
1-Cadastrar curso
2-Cadastrar aluno
3-Matricular aluno
4-Exibir (Ao fim de cada filtro, exibir o total)
1-Alunos
1-Por idade
2-Por sexo
2-Cursos
1-Por duração
2-Por valor (maior ou igual ao informado)
0-Sair
#include<stdio.h>
#include<string.h>
#define T 3
#define Erro_menu "\n\n\t\tOPCAO INVALIDA! ESCOLHA OUTRA OPCAO "
#define ERRO_C "\n\n\t\tVOCE NAO PODE MAIS CADASTRAR"
#define ERRO_V "\n\n\t\tNENHUM CADASTRO ENCONTRADO "
struct Cursos{//Estrutura cursos
char idioma;
int duracao;
float valor;
};
struct Aluno{//Estrutura Alunos
char nome[20],sexo;
int idade,id;
};
struct Matricular{//Estrutura matricula que vai receber os dados do cursos e alunos
char curso,nome[20];
};
int menu();//Função Menu
struct Cursos CadastrarCursos();//estrutura para cadastrar Cursos
char tipoIdiomas(); //Função para Verificar o tipo de Idiomas
int duracaoMeses();//Função para retornar o mês do Ano
struct Aluno CadastrarAlunos(int cont);//estrutura para Cadastrar Aluno
char menuSexo();//Função para retornar o sexo
void exibirCursos(struct Cursos c);//Função para Exibir o Cursos
void exibirAluno(struct Aluno a );//Função para Exibir Aluno
struct Matricular cadastroMatricula(struct Cursos c[T],struct Aluno a[T],int x,int y);//estrutura para Matricular Aluno
int confirIdioma(char i, struct Cursos c);//Função para confirmar o Idioma
void exibirMatricula(struct Matricular m);//Função para Exibir as Matriculas
int confirNome(int id,struct Aluno a);//Função para confirmar o nome
int main(){//função principal
struct Cursos c[T];
struct Aluno a[T];
struct Matricular m[T];
int cont=0,cont1=0,cont2=0,aux;
int op;
do{
// system("cls");
op = menu();//A variavel op vai receber o valor inteiro da função menu
switch(op){
case 1://Aqui vai cadastrar o curso
if(cont<T){ //Se a quantidade de cursos cadastrados for menor que a constante T entra para efetuar mais um cadastro
c[cont] = CadastrarCursos(); //A estrutura cursos receber os valores da estrutura CadastrarCursos
cont++;//Enclementa mais um no cont
}
else
printf(ERRO_C);//Se não houver mais espaço pra cadastrar entra aqui.
break;
case 2:
if(cont1<T){
a[cont1] = CadastrarAlunos(cont1+1);
cont1++;
}
else{
printf(ERRO_C);
getchar();
}
break;
case 3:{
if(cont2 <T){
if(cont > 0 && cont1 > 0){
printf("\n MATRICULA DE ALUNO");
printf("\n\t\tCURSOS CADASTRADOS\n");
for(aux=0;aux<cont;aux++)//Exibir os Cursos Cadastrados
exibirCursos(c[aux]);
printf("\n\t\tALUNOS CADASTRADOS\n");
for(aux=0;aux<cont1;aux++)
exibirAluno(a[aux]);//Exibir Alunos Cadastrados
// getchar();
for(aux=0;aux<cont2;aux++){
m[cont2] = cadastroMatricula(c,a,cont,cont1);
}
cont2++;
}
else{
printf("\n\n\\t\t erro aqui\n");
printf(ERRO_V);
getchar();
}
}
else{
printf(Erro_menu);
getchar();
}
break;
}
case 4:
for(aux=0;aux<cont;aux++)
//exibirCursos(c[aux]);
exibirMatricula(m[aux]);
getchar();
break;
case 0:
break;
default:
printf(Erro_menu);
getchar();
break;
}
}while(op!=0);
return 0;
}
int menu(){//função que vai retornar o menu
int op;
printf("1-Cadastrar curso\n2-Cadastrar aluno\n3-Matricular aluno\n4-Exibir\n0-sair: ");
scanf("%d",&op);
getchar();
return op;
}
struct Cursos CadastrarCursos(){ //Estrutura CadastrarCurso que vai retornar na estrutura curso
struct Cursos c;
c.idioma = tipoIdiomas();//Aqui o idioma vai receber da função tipoIdiomas um valor
c.duracao = duracaoMeses(); //aqui vai receber da função o valor da duração do mês
printf("Informe o valor do curso: ");
scanf("%f",&c.valor);
getchar();
return c; //Aqui vai retornar a estrutura curso
}
char tipoIdiomas(){
char id;
do{
printf("\nInforme um curso");
printf("\nI - ingles\nE- espanhol\nJ- japones\nA- alemao: ");
id = toupper(getchar());
if(id != 'I'&& id != 'E' && id != 'J' && id != 'A'){
printf(Erro_menu);
getchar();
}
}while(id != 'I'&& id != 'E' && id != 'J' && id != 'A');
return id;
}
int duracaoMeses(){
int tempo;
do{
printf("\nInforme a duracao do curso em mes de 1 - 12: ");
scanf("%d",&tempo);
if(tempo < 1 || tempo >12){
printf(Erro_menu);
getchar();
}
}while(tempo < 1 || tempo >12);
return tempo;
}
struct Aluno CadastrarAlunos(int cont){
struct Aluno a;
a.id = cont;
printf("Informe o nome do aluno: ");
gets(a.nome);
printf("Informe a idade do aluno: ");
scanf("%d",&a.idade);
getchar();
a.sexo = menuSexo();
return a;
}
char menuSexo(){
char sexo;
do{
printf("\nInforme o sexo do Aluno\nM - Masculino\nF-Feminino: ");
sexo = toupper(getchar());
if(sexo != 'M' && sexo != 'F'){
printf(Erro_menu);
getchar();
}
}while(sexo != 'M' && sexo != 'F');
return sexo;
}
void exibirCursos(struct Cursos c ){
// printf("\n\t\tCURSOS CADASTRADOS\n");
printf("\nIdioma:\tDuracao(meses)\tValor:\n%c\t%d (meses)\tR$: %.2f",c.idioma,c.duracao,c.valor);
printf("\n______________________________\n");
}
void exibirAluno(struct Aluno a ){
// printf("\n\t\tALUNOS CADASTRADOS\n");
printf("\nIndice\tNome\tIdade\tSexo\n%d\t%s\t%d (anos)\t\t%c",a.id,a.nome,a.idade,a.sexo);
printf("\n_____________________________\n");
}
struct Matricular cadastroMatricula(struct Cursos c[T],struct Aluno a[T],int x,int y){
struct Matricular m;
char tipo;
int id, aux,sair=0;
do{
tipo = tipoIdiomas();
for(aux=0;aux<x;aux++){
if(confirIdioma(tipo,c[aux])){
sair = confirIdioma(tipo,c[aux]);
m.curso = tipo ;
}
else{
printf(Erro_menu);
getchar();
}
}
}while(sair!=1);
do{
printf("Informe o indice do Aluno : ");
scanf("%d",&id);
getchar();
for(aux=0;aux<y;aux++){
if(confirNome(id,a[aux])){
strcpy(m.nome,a[aux].nome);
}
else{
printf(Erro_menu);
getchar();
}
}
}while(!confirNome(id,a[aux]));
return m;
}
int confirIdioma(char i, struct Cursos c){
printf("\n02 - Tipo: %c struct: %c", i,c.idioma);
return toupper(c.idioma )== i;
}
void exibirMatricula(struct Matricular m){
printf("\t\tALUNOS MATRICULADOS\n");
printf("ALUNOS\tCURSOS\n%s\t%c",m.nome,m.curso);
}
int confirNome(int id,struct Aluno a){
return a.id == id ;
}
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
0 comentários:
Postar um comentário