Ir ao conteúdo
  • Cadastre-se

C matriz de string printar


Igor Vargas

Posts recomendados

Quando eu do um print na  minha matriz de string esta aparecendo uns simbolos e nao as palavras.

Abaixo do codigo esta como deve ser apresentado.

O exercicio pede isso.

 

 •Ao associar um aluno a uma disciplina, verificar se os blocos de horário necessários estão disponíveis na grade do aluno, se sim, associar a disciplina, senão mostrar uma mensagem informando o conflito. Por exemplo, se o aluno já estiver associado a uma disciplina que ocorre na terça as 13, não será possível adicionar outra disciplina que ocorre no mesmo dia e horário. Vide Tabela 1, disciplinas 0127 e 0132.
• Ao inserir o email dos alunos, validar se o email está correto:
a. Email deve possuir: 3 caracteresou mais; um sinal de arroba (@); outros 3 caracteres ou mais; seguidos de um sinal de ponto final (.); e mais um conjunto de pelo menos 2 caracteres;
 
• Permitir consultar os alunos por nome ou parte do nome. Ao encontrar, permitir ver seus dados e sua grade horária. • Exemplo, aluno Pedro deve ser encontrado com “Ped” (a partir de 3 caracteres);
 
• As informações das disciplinas são armazenadas na lista de disciplinas; as informações sobre os alunos são armazenadas na lista de alunos. Fazer um link, como visto em aula, entre eles, não duplicar os dados.

 

#include <stdio.h>
#include <string.h>

    struct disciplinas
    {
    
    int codigo;
    char nome[20];
    char professor[20];
    int c_Horaria;
    char h_Semanal[30];    


        
    };

    struct registro
    {
        
    int matricula;
    char nome[20];
    char sobrenome[20];
    char email[40];
    int l_Disciplinas[5];
        
    };
    struct grade
    {
        char grade_C[4][5];    
    };
int cont;    

void add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct grade g_Materias[4][5]){
    int dis,x,y,guarda[5],cont=0,num;
    char resp;
    printf("\n\n");
    printf("--------------------------------------\n");
    printf("---voce selecionou adicionar aluno.---\n");
    printf("--------------------------------------\n");
    printf("    Lista de Disciplinas\n");
    printf("    Codigo    Nome\n\n");
    for(x=0; x<5; x++){
    printf("    %d     %s \n",add_Dis[x].codigo,add_Dis[x].nome);
    }
    printf("\n");
        printf("    Horas    Horario\n\n");    
        for(x=0; x<5; x++){
            printf("    %d     %s\n",add_Dis[x].c_Horaria,add_Dis[x].h_Semanal);    
            }
            printf("\n");
    do{
        x=0;
        printf("Digite seu nome:");
        fflush(stdin);												//Funcão de Cadastro do aluno
        gets(al[cont].nome);
        printf("Digite seu Sobrenome:");
        gets(al[cont].sobrenome);
        strcat(al[cont].nome,al[cont].sobrenome);
        printf("Digite sua Matricula:");
        scanf("%d",&al[cont].matricula);
        printf("Digite seu e-mail:");
        fflush(stdin);
        gets(al[cont].email);
        printf("Digite em quantas materias deseja se matricular:");
        scanf("%d",&num);
        printf("Digite o codigo das diciplinas que voce deseja se matricular\n");
        cont++;
        for(y=0; y<num; y++){
        scanf("%d",&al[y].l_Disciplinas);
}
    for(x=0; x<num; x++){
        if(al[x].l_Disciplinas==122)								
		//Adiciona as disciplinas para as posiçoes
        //da matriz
        {
            strcpy(g_Materias[0][0].grade_C,"Algo");
            strcpy(g_Materias[1][1].grade_C,"Algo");
        }
        else if(al[x].l_Disciplinas==127)
        {
            strcpy(g_Materias[2][1].grade_C,"Estr");
            strcpy(g_Materias[4][2].grade_C,"Estr");
        }
        else if(al[x].l_Disciplinas==132)
        {
            strcpy(g_Materias[2][1].grade_C,"Sist");
            strcpy(g_Materias[1][3].grade_C,"Sist");
        }
        else if(al[x].l_Disciplinas==143)
        {
            strcpy(g_Materias[1][4].grade_C,"Padr");            
        }
        else if(al[x].l_Disciplinas==143)
        {
            strcpy(g_Materias[1][2].grade_C,"Banc");
            strcpy(g_Materias[1][4].grade_C,"Banc");
        }
        
        
    }
    
    printf("Deseja Cadastrar outro aluno? s/n:");
    fflush(stdin);
    scanf("%c",&resp);


}while(x=!'n');
    
        }    
    
    
void consulta(struct registro al_C[3], struct grade grade_M[4][5] ){
	int x,escolhe,a,b;
	char nome[20];
	char salva[3];
	int cont_L=0;
	int teste[3];
	char resp;
	int matricula_N;
	printf("\n\n");
    printf("--------------------------------------\n");
    printf("---voce selecionou Consultar aluno.---\n");
    printf("--------------------------------------\n");
	printf("1.Pesquisa por Nome\n");
	printf("2.Pesquisa por Matricula\n");
	scanf("%d",&escolhe);
	do{
	if(escolhe ==1){
	printf("Digite o nome do aluno:");	
	fflush(stdin);
	gets(nome);
	for(x=0; x<4; x++){
		if(al_C[x-2].nome == ' ')
		{
		//copia as 3 primeiras letras para dentro do vetor salva
			strcpy(salva, al_C[x-2].nome);
			strcpy(teste, salva);
		
		}
		if(strcmp(al_C[x].nome, nome)==0 || strcmp(teste,salva)==0){	
		//compara os nomes ou compara a 3 letras dos dois nome se for igual ele printa a grade
			for(a=0; a<4; a++){
			for(b=0; b<5; b++){
              //matriz da grade curricular
			printf("%s",grade_M[a][b].grade_C);
			}
		}		
			  
	} 	
			
}			   		
			
		}
		else if(escolhe == 2)
		{
		printf("Digite a Matricula do aluno:");	
		fflush(stdin);
		scanf("%d",&matricula_N);
		for(x=0; x<4; x++)
	{
		  if(al_C[x].matricula == matricula_N );
		  //compara as duas matricular se são iguais se for ele printa a grade do aluno
		  {
		  	for(a=0; a<4; a++){
		  		for(b=0; b<5; b++){
                  //matriz da grade curricular
		  		printf("%s",grade_M[a][b].grade_C);	
			}
			printf("\n");
			}
		  	
		}	
		
	}			
}
		
		printf("Deseja consultar outro aluno? S/N");
		fflush(stdin);
		scanf("%c",&resp);
		}while(resp != 's');
		

		}
		
		
		

	
	
	
	
	
    




main(){
    
    struct disciplinas curso[5];
    struct registro alunos[3];
    struct grade m_Salva[4][5];
    int escolha;
    curso[0].codigo=122;
    strcpy(curso[0].nome,"Algoritimos");
    curso[0].c_Horaria=60;
    strcpy(curso[0].h_Semanal,"Segunda bloco 1 e terca bloco 2");
    
    curso[1].codigo=127;
    strcpy(curso[1].nome,"Estrutura de dados");
    curso[1].c_Horaria=60;
    strcpy(curso[1].h_Semanal,"terca bloco 3 e quarta bloco 4");
    
    curso[2].codigo=132;                                                //dados salvos
    strcpy(curso[2].nome,"Sistemas Operacionais A ");
    curso[2].c_Horaria=60;
    strcpy(curso[2].h_Semanal,"Terca bloco 3 e Quinta bloco 2");
    
    curso[3].codigo=143;
    strcpy(curso[3].nome,"Padroes de Projeto");
    curso[3].c_Horaria=30;
    strcpy(curso[3].h_Semanal,"Sexta bloco 2");
    
    curso[4].codigo=135;
    strcpy(curso[4].nome,"Banco de dados ll");
    curso[4].c_Horaria=60;
    strcpy(curso[4].h_Semanal,"Quarta bloco 3 e sexta bloco 2");
        
    
    do{
    printf("\n\n");
    printf(" -----------------------\n");
    printf(" ------Bem Vindo!!------\n");
    printf(" -----------------------\n");
    printf("Escolha uma das opções abaixo\n");
    printf("1. Adicionar aluno\n");
    printf("2. Consultar aluno\n");
    printf("3. Sair\n");
    scanf("%d",&escolha);
    if(escolha == 1){
        add_Aluno(alunos,curso,m_Salva);
      }
      else if(escolha == 2)
      {
    	consulta(alunos,m_Salva);
      }
            }while(escolha !=3);
    }

 

trabalhooo.jpg

Link para o comentário
Compartilhar em outros sites

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...