Ir ao conteúdo

Posts recomendados

Postado

Galera estou com uma duvida nesse Trabalho. Eu preciso mostra umas lista parecida com esta. o problema é que ele n esta pegando os dados salvos na main.

o meu codigo esta mais ou menos assim.

 

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

	struct diciplinas
	{
	
	int codigo;
	char nome[20];
	char professor[20];
	int c_Horaria;
	char h_Semanal[50];	


		
	};

	struct registro
	{
		
	int matricula;
	char nome[20];
	char sobrenome[20];
	char email[20];
	int l_Diciplinas[20];
	char grade[5][5];	
		
	};



void add_Aluno(struct registro al[3], struct diciplinas add_Dis[5]){
	char sair;
	int dis,x,y=0,guarda[5];
	printf("\n\n");
	printf("--------------------------------------\n");
	printf("---voce selecionou adicionar aluno.---\n");
	printf("--------------------------------------\n");
	printf("Lista de diciplinas\n");
	for(x=0; x<5; x++){					//mostra a lista das materias
	printf("%d\n",add_Dis[x].codigo);

}


	for(x=0; x<3; x++){
		printf("Digite seu nome:");
		gets(al[x].nome);
		printf("Digite seu Sobrenome:");
		gets(al[x].sobrenome);
		strcat(al[x].nome,al[x].sobrenome);
		printf("Digite sua Matricula:");
		scanf("%d",&al[x].matricula);
		printf("Digite seu e-mail:");
		gets(al[x].email);
		printf("Quantas diciplinas voce deseja se matricular:");
		scanf("%d",&dis);
		printf("Digite o codigo das diciplinas que voce deseja se matricular:");
		while(y<dis){
		scanf("%d",&dis);
		guarda[y]=dis;
		y++;		
		}
		
	}
	
	
}




main(){
	
	struct diciplinas curso[5];
	struct registro alunos[3];
	int escolha;
	
	curso[0].codigo=0122;
	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=0127;
	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=0132;												//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=0143;
	strcpy(curso[3].nome,"Padroes de Projeto");
	curso[3].c_Horaria=30;
	strcpy(curso[3].h_Semanal,"Sexta bloco 2");
	
	curso[4].codigo=0135;
	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");
	
	
	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");
	scanf("%d",&escolha);
	if(escolha == 1){
		add_Aluno(alunos,curso);
	  }else if(escolha == 2){
	
	}
	
	
}

 

 

tabela.jpg

  • Curtir 1
Postado

Consegui arrumar. Agora a dúvida é se o que eu fiz até agora esta certo ou esta faltando algo.

#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];
		
	};
int cont;	

void add_Aluno(struct registro al[3], struct disciplinas add_Dis[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");
	do{
		x=0;
		printf("Digite seu nome:");
		fflush(stdin);
		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");
		for(y=0; y<num; y++){
		scanf("%d",&al[y].l_Disciplinas);
}
	printf("Deseja Cadastrar outro aluno? s/n:");
	fflush(stdin);
	scanf("%c",&resp);


}while(x=!'n');
	
		}	
	
	
	




main(){
	
	struct disciplinas curso[5];
	struct registro alunos[3];
	int escolha;
	char grade[4][5];
	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");
	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);
	  }else if(escolha == 2){
	}
			}while(escolha !=3);
	}
	
	

	

 

  • Curtir 1
Postado

@Igor Vargas       seu código está bom ,  e você esqueceu de incrementar o cont , assim ele vai guardar os dados sempre na mesma posição ,  e seu código anterior também está funcionando bem , só precisa colocar para imprimir os dados lá na função add_Aluno , então ele seria assim  :

#include <stdio.h>
#include <string.h>
#include <windows.h>
/*             0     1    2     3   4    5       6      7          8      */
typedef enum{BLACK,BLUE,GREEN,CYAN,RED,MAGENTA,BROWN,LIGHTGRAY,DARKGRAY,
LIGHTBLUE,LIGHTGREEN,LIGHTCYAN,LIGHTRED,LIGHTMAGENTA,YELLOW,WHITE} COLORS;
/*  9          10        11       12         13        14     15          */
static int __BACKGROUND = BLACK;
static int __FOREGROUND = LIGHTGRAY;

void textcolor (int color, int fundo){/*para mudar a cor de fundo mude o background*/
    __FOREGROUND = color;
    __BACKGROUND = fundo;
    SetConsoleTextAttribute (GetStdHandle (STD_OUTPUT_HANDLE),
    color + (__BACKGROUND << 4));
}
void gotoxy(int x, int y){
  COORD c;
  c.X = x;
  c.Y = y;
  SetConsoleCursorPosition (GetStdHandle(STD_OUTPUT_HANDLE), c);
}
struct diciplinas{
	int codigo;
	char nome[20];
	char professor[20];
	int c_Horaria;
	char h_Semanal[50];
};
struct registro{
	int matricula;
	char nome[20];
	char sobrenome[20];
	char email[20];
	int l_Diciplinas[20];
	char grade[5][5];
};
void add_Aluno(struct registro al[3], struct diciplinas add_Dis[5]){
	char sair;
	int dis,diss,x,y,guarda[5];
	system("cls");
	printf("\n\n");
	printf("--------------------------------------\n");
	printf("---voce selecionou adicionar aluno.---\n");
	printf("--------------------------------------\n");
	printf("Lista de diciplinas\n");
	printf("-----------------------------------------------------\n");
	printf("Codigo  Nome                  Horas  Horario\n"   );
	printf("-----------------------------------------------------");
	textcolor(12,15);
	for(x=0;x<5;x++){
        gotoxy(0,9+x);
        printf("                                                                      ");
	}
	for(x=0; x<5; x++){					/*//mostra a lista das materias*/
        gotoxy(2,9+x);
        printf("%d",add_Dis[x].codigo);
        gotoxy(8,9+x);
        printf("%s  ",add_Dis[x].nome);
        gotoxy(30,9+x);
        printf("%d  ",add_Dis[x].c_Horaria);
        gotoxy(37,9+x);
        printf("%s\n",add_Dis[x].h_Semanal);
    }
    textcolor(7,0);
	for(x=0; x<3; x++){
        y=0;
		printf("Digite seu nome:");
		fflush(stdin);
		gets(al[x].nome);
		printf("Digite seu Sobrenome:");
		fflush(stdin);
		gets(al[x].sobrenome);
		strcat(al[x].nome,al[x].sobrenome);
		printf("Digite sua Matricula:");
		fflush(stdin);
		scanf("%d",&al[x].matricula);
		printf("Digite seu e-mail:");
		fflush(stdin);
		gets(al[x].email);
		printf("Quantas diciplinas voce deseja se matricular:");
		fflush(stdin);
		scanf("%d",&dis);
		printf("Digite o codigo das diciplinas que voce deseja se matricular:");
		while(y<dis){
            fflush(stdin);
		    scanf("%d",&diss);
            guarda[y]=diss;
            y++;
        }
	}
}
int main(){
	struct diciplinas curso[5];
	struct registro alunos[3];
	int escolha;
	curso[0].codigo=0122;
	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=0127;
	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=0132;												/*//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=0143;
	strcpy(curso[3].nome,"Padroes de Projeto");
	curso[3].c_Horaria=30;
	strcpy(curso[3].h_Semanal,"Sexta bloco 2");
	curso[4].codigo=0135;
	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");
	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");
	scanf("%d",&escolha);
	if(escolha == 1){
		add_Aluno(alunos,curso);
    }
    else
        if(escolha == 2){
	    }
    return 0;
}

 

  • Curtir 1
Postado

valeu pela ajuda infelizmente tive que ficar com o código de baixo, pois terei que explicar pro professor o que eu fiz ahah não estou muito avançado em C ainda, mas muito obrigado pela ajuda. Tem mais coisa pra fazer no trabalho quando eu tiver dúvida vou postar aqui @devair1010.

Postado

@devair1010 estou com uma dúvida no meu trabalho onde preciso passar as máterias que o aluno escolheu para a grade, o problema é que a minha grade esta dentro do meu registro alunos, o que eu estou pensando em fazer é colocar outro registro só com a grade e depois adicionar as matérias. Eu não sei se tem uma maneira mais prática de fazer isso.

 

#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];
	char grade[4][5];
		
	};
	struct grade
	{
		char grade[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);
		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)
		{
			strcpy(g_Materias[0][0].grade,"Algo");
			strcpy(g_Materias[1][1].grade,"Algo");
		}
		else if(al[x].l_Disciplinas==127)
		{
			strcpy(g_Materias[2][1].grade,"Estr");
			strcpy(g_Materias[4][2].grade,"Estr");
		}
		else if(al[x].l_Disciplinas==132)
		{
			strcpy(g_Materias[2][1].grade,"Sist");
			strcpy(g_Materias[1][3].grade,"Sist");
		}
		else if(al[x].l_Disciplinas==143)
		{
			strcpy(g_Materias[1][4].grade,"Padr");			
		}
		else if(al[x].l_Disciplinas==143)
		{
			strcpy(g_Materias[1][2].grade,"Banc");
			strcpy(g_Materias[1][4].grade,"Banc");
		}
		
		
	}
	
	printf("Deseja Cadastrar outro aluno? s/n:");
	fflush(stdin);
	scanf("%c",&resp);


}while(x=!'n');
	
		}	
	
	
	




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");
	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)
	  {
	
	  }
			}while(escolha !=3);
	}
	
	

	

 

 

trabalhoo.jpg

trabalhooo.jpg

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

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!