Ir ao conteúdo
  • Comunicados

    • Gabriel Torres

      Seja um moderador do Clube do Hardware!   12-02-2016

      Prezados membros do Clube do Hardware, Está aberto o processo de seleção de novos moderadores para diversos setores ou áreas do Clube do Hardware. Os requisitos são:   Pelo menos 500 posts e um ano de cadastro; Boa frequência de participação; Ser respeitoso, cordial e educado com os demais membros; Ter bom nível de português; Ter razoável conhecimento da área em que pretende atuar; Saber trabalhar em equipe (com os moderadores, coordenadores e administradores).   Os interessados deverão enviar uma mensagem privada para o usuário @Equipe Clube do Hardware com o título "Candidato a moderador". A mensagem deverá conter respostas às perguntas abaixo:   Qual o seu nome completo? Qual sua data de nascimento? Qual sua formação/profissão? Já atuou como moderador em algo outro fórum, se sim, qual? De forma sucinta, explique o porquê de querer ser moderador do fórum e conte-nos um pouco sobre você.   OBS: Não se trata de função remunerada. Todos que fazem parte do staff são voluntários.

Igor Vargas

Membros Plenos
  • Total de itens

    94
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. @AnsiC Pra mim é mais questão de acessibilidade. Se eu vejo um NULL já sei que é vazio. Se não terei que procurar aquela variavel no código pra ver se é 0 ou não.
  2. O código que eu fiz no caso é estático, só podia usar vetores, era um exercicio pra fazer em aula. Mas sobre a questão de retornar a pilha vazia era só colocar um NULL ali pra dizer que esta vazia.@AnsiC @giu_d
  3. Estou com uma dúvida. O meu programa não esta retirando o topo na função pop, ele esta tirando só o numero do inicio e também na hora de exibir ele esta mostrando os numeros que foram retirados. #include <stdio.h> #include <stdlib.h> #define MAX 10 int pilha[MAX]; int inicio,fim; int pilhaCheia(){ return (fim == MAX); // caso o final for igual a 10 esta cheia } int pilhaVazia(){ return (inicio == fim); // verifica se esta vazio e retorna; } void push(int x){ if( !pilhaCheia() ){ pilha[fim++] = x; //adiciona o valor e soma +1 posiçao }else{ printf("Pilha cheia \n"); } } int pop(){ int aux; if( !pilhaVazia() ){ aux=pilha[fim - 1]; //volta uma posiçao e passa o numero e entao decrementa fim--; return aux; }else{ printf("Pilha vazia \n"); return -1; } } void exibe(int pilha[MAX]){ int x; for( x=0; x < MAX; x++){ printf("%d",pilha[x]); //exibe o vetor; } } main(){ inicio = 0; fim = 0; int escolha,valor; do{ printf("\n1 EMPILHA:\n"); printf("\n2 DESEMPILHA:\n"); printf("\n3 Mostra:\n"); printf("\n4 Sair:\n"); scanf("%d",&escolha); int x; switch(escolha){ case 1: printf("Escolha o valor:"); scanf("%d",&valor); push(valor); break; case 2: pop(); printf("%d",pop()); break; case 3: for(x = 0 ; x < MAX ; x++){ printf("%d",pilha[x]); } break; default: break; } }while( escolha != 4); }
  4. @AnsiC Crie uma variável do tipo inteiro e atribua um valor qualquer. • Crie um ponteiro que aponte para esta variável (receba seu endereço de memória). • Utilizando ponteiros, imprima na tela o valor contido na variável. • Imprima o conteúdo das próximas 20 posições inteiras na memória.
  5. @AnsiC foi dado em aula, assim que o material for postado eu coloco aqui. Mas basicamente era criar uma variavel e um ponteiro e depois mostrar o conteudo das proximas 20 posições.
  6. Eai pessoal. Estou com uma dúvida nesse exercício. Preciso mostras os 20 números a frente do numero que eu coloquei só que com o ponteiro encrementado e mostrar o conteudo dele. O problema que depois da 1 posição ele mostra zeros. #include <stdio.h> #include <stdlib.h> main(){ int x=10, *pont; //numero é 10 pont = &x; int y; for(y=0; y<20; y++){ printf("%d\n",*pont); pont+=1; } }
  7. Eai galera preciso entregar um trabalho quinta feira e não estou conseguindo concluir essa parte. 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. Da maneira que eu fiz você escolhe a disciplina e ela será adicionada a grade. Mas ela esta funcionando apenas para um aluno, ou seja, quando eu adiciono outro aluno a disciplina anterior continua lá. Me falaram que seria mais fácil adicionar a disciplina direto a grade e depois verificar a questão do horário. Abaixo tem como deve ficar na hora de printar; Segunda Terça Quarta Quinta sexta 08:00 127 - - - - 10:00 - - - - - 13:00 - 127 - - - 15:00 - - 135 - - int add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct registro grade_T[4][5]){ int dis,x,y,guarda[5],cont=0,num,a,b,i,salva,retorna; char resp; int volta,j,contador=0; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); printf(" Lista de Disciplinas\n"); printf(" Codigo Nome\n\n"); printf("\n"); do{ int yy=1; 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); cont++; printf("Digite seu e-mail:"); fflush(stdin); gets(al[i].email); for (i = 0; i < strlen(al[i].email); i++) { //Verifica se o email digitado é valido ou não if (al[i].email == '@' && al[i].email=='.') { salva=1; } } do{ volta=1; 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); } for(x=0; x<num; x++){ for(j=0;j<num;j++){ if((al[x].l_Disciplinas == 127 && al[j].l_Disciplinas == 132 && j != x )|| al[x].l_Disciplinas ==135 && al[j].l_Disciplinas == 143) { printf("voce não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[x].l_Disciplinas=0; break; } else if(al[x].l_Disciplinas==122) { grade_T[0][0].grade[0][0]=122; grade_T[1][1].grade[1][1]=122; } else if(al[x].l_Disciplinas==127) { grade_T[2][1].grade[2][1]=127; grade_T[4][2].grade[4][2]=127; } else if(al[x].l_Disciplinas==132) { grade_T[2][1].grade[1][3]=132; grade_T[2][1].grade[1][3]=132; } else if(al[x].l_Disciplinas==143) { grade_T[1][4].grade[1][4]=143; } else if(al[x].l_Disciplinas==145) { grade_T[1][2].grade[1][2]=145; grade_T[1][4].grade[1][4]=135; } } } }while(volta != 1 ); printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(resp != 'n'); } A função abaixo é onde eu mostro a grade. void consulta(struct registro al_C[3],struct disciplinas dis[5], struct registro grade_T[4][5]){ int x=0,escolhe,a,b,y; char nome[20]; char salva[3]; int cont_L=0; int teste[3]; char resp; int matricula_N,salva_V; char string[3]; char horas[20]; strcpy(dis[0].h_Semanal,"08:00"); strcpy(dis[1].h_Semanal,"10:00"); strcpy(dis[2].h_Semanal,"13:00"); strcpy(dis[3].h_Semanal,"15:00"); 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"); fflush(stdin); scanf("%d",&escolhe); if(escolhe ==1){ printf("Digite o nome do aluno:"); fflush(stdin); gets(nome); for(x=0; x<strlen(nome); x++){ if (nome[x] == al_C[x].nome && nome[x + 1] == al_C[x + 1].nome && nome[x + 2] == al_C[x + 2].nome) //nessa linha são comparadas as 3 letras salva_V=1; } for(x=0; x<4; x++){ if(strcmp(al_C[x].nome, nome)==0){ salva_V=1; } } } 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*/ salva_V=1; } } } if(salva_V == 1){ printf(" Segunda Terca Quarta Quinta Sexta\n"); for(a=0; a<4; a++){ printf("%s",dis[a].h_Semanal); for(b=0; b<5; b++){ if(grade_T[a][b].grade[a][b]==127 || grade_T[a][b].grade[a][b]==122 || grade_T[a][b].grade[a][b]==135 || grade_T[a][b].grade[a][b]==132 ||grade_T[a][b].grade[a][b]==143){ printf(" "); printf("[%d]", grade_T[a][b].grade[a][b]); }else{ printf(" "); printf("[---]"); } } printf("\n"); } } }
  8. 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; @giu_d não funciona pra todas condições. Debuguei e ele pula a condição do @ #include <stdio.h> #include <string.h> main(){ int x; char email[50]={"Teste@hotmail.com"}; int arroba,ponto,passa,maior,c_P,c_S,i; int tam=strlen(email); char teste='.'; for (i = 0; i < tam; i++) { if(email[i] > 3){ maior=1; }if(email[i] == '@'){ arroba=1; }if(arroba == 1 && email[i] >= 3){ c_P=1; }if(email[i]=='.'){ ponto=1; }if(ponto=1 && email[i] >=2){ c_S=1; } if(maior==1 && arroba == 1 && c_P==1 && c_S ==1){ passa=1; }else{ passa=0; } } if(passa==1){ printf("Valido"); }else{ printf("Invalido"); } }
  9. Eu fiz esse código para a verificação mas ele n esta reconhecendo a condição. do{ printf("Digite seu e-mail:"); fflush(stdin); gets(al[cont].email); for (i = 0; i < strlen(al[i].email); i++) { if(al[i].email=='@'){ salva_A=i; printf("%d",salva_A); }else if(al[i].email=='.'){ salva_B=i; } if(al[i].email < 2 && al[i].email=='@'){ printf("E-mail invalido!"); yy=1; } else if(al[i+salva_A].email=='@' && al[i+salva_B].email=='.'){ printf("E-mail valido!"); yy=0; } } }while(yy!=0);
  10. @devair1010 é que eles estão em funções diferente na primeira função ele pega só os dados. Na segunda função ele printa a matriz. só que ele não esta passando esse código das disciplinas em nenhuma função ele só esta lendo o numero eu acho.
  11. Olá estou com dúvida em uma questão. Abaixo seria onde o aluno vai digitar o código da disciplina escolhida. A posição colocada aqui vai ser [0][0] for(a=0; a<num; a++){ for(b=0; b<num; b++){ scanf("%d",&al[a].grade[a][b]); Aqui seria onde eu modificaria a posição que ela iria. Mas não esta funcionando. for(x=0; x<4; x++){ for(y=0; y<5; y++){ if(al_C[x].grade[x][y]==122){ al_C[x].grade[0][0]=122; al_C[x].grade[2][1]=122; } } }
  12. Consegui a parte de printar as matrizes conforme o aluno escolhe o problema é que o código não guarda a matriz para cada aluno. @devair1010 #include <stdio.h> #include <string.h> struct disciplinas { int codigo; 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; int grade[4][6]; }; int cont; void grade_al(struct disciplinas dis[5]){ dis[0].codigo=122; dis[1].codigo=127; dis[2].codigo=132; dis[3].codigo=143; dis[4].codigo=135; strcpy(dis[0].h_Semanal,"08:00"); strcpy(dis[1].h_Semanal,"10:00"); strcpy(dis[2].h_Semanal,"13:00"); strcpy(dis[3].h_Semanal,"15:00"); dis[0].c_Horaria=60; dis[1].c_Horaria=60; dis[2].c_Horaria=60; dis[3].c_Horaria=30; dis[4].c_Horaria=60; } int add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct registro grade_T[4][6]){ int dis,x,y,guarda[5],cont=0,num,a,b; char resp; int volta,j; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); printf(" Lista de Disciplinas\n"); printf(" Codigo Nome\n\n"); printf("\n"); int passa; do{ int yy=1; 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); cont++; do{ volta=1; 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); for(j=0;j<num;j++){ if((al[y].l_Disciplinas == 127 && al[j].l_Disciplinas == 132 && j != y )|| al[y].l_Disciplinas ==135 && al[j].l_Disciplinas == 143) { printf("voce não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[y].l_Disciplinas=0; break; } else if(al[y].l_Disciplinas==122) { grade_T[0][1].grade[0][1]=122; grade_T[1][2].grade[1][2]=122; } else if(al[y].l_Disciplinas==127) { grade_T[2][2].grade[2][2]=127; grade_T[3][2].grade[3][2]=127; } else if(al[y].l_Disciplinas==132) { grade_T[2][2].grade[2][2]=132; grade_T[1][4].grade[1][4]=132; } else if(al[y].l_Disciplinas==143) { grade_T[0][5].grade[0][5]=143; } else if(al[y].l_Disciplinas==145) { grade_T[1][3].grade[1][3]=145; grade_T[0][5].grade[0][5]=135; } } } }while(volta != 1 ); printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(resp != 'n'); } void consulta(struct registro al_C[3],struct disciplinas dis[5], struct registro grade_T[4][6]){ int x=0,escolhe,a,b; char nome[20]; char salva[3]; int cont_L=0; int teste[3]; char resp; int matricula_N,salva_V; char string[3]; char horas[20]; 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"); fflush(stdin); scanf("%d",&escolhe); if(escolhe ==1){ printf("Digite o nome do aluno:"); fflush(stdin); gets(nome); for(x=0; x<4; x++){ if(strcmp(al_C[x].nome, nome)==0){ salva_V=1; } } } 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*/ salva_V=1; } } } if(salva_V == 1){ printf(" Segunda Terca Quarta Quinta Sexta\n"); for(a=0; a<4; a++){ for(b=0; b<6; b++){ if(grade_T[a][b].grade[a][b]==127 || grade_T[a][b].grade[a][b]==122 || grade_T[a][b].grade[a][b]==135 || grade_T[a][b].grade[a][b]==132 ||grade_T[a][b].grade[a][b]==143){ printf(" "); printf("[%d]", grade_T[a][b].grade[a][b]); }else{ printf(" "); printf("[---]"); } } printf("\n"); } } } int main(){ struct disciplinas curso[5]; struct registro alunos[3]; struct registro grade_T[4][6]; int escolha; 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"); fflush(stdin); scanf("%d",&escolha); if(escolha == 1){ add_Aluno(alunos,curso,grade_T); } else if(escolha == 2) { consulta(alunos,curso, grade_T); } }while(escolha !=3); return 0; }
  13. @devair1010 Obrigado pela ajuda, mas irei te incomodar de novo, ele esta printando outros numeros e não printa os códigos das disciplinas dentro da matriz. O que eu quero fazer é que quando o aluno digite o código da disciplina ele mande esse código pra dentro da matriz. colocarei a mudanças que fiz com com aspas pra ficar melhor de enxergar. #include <stdio.h> #include <string.h> struct disciplinas { int codigo; 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; int grade[4][6]; }; int cont; void grade_al(struct registro grade_T[4][6],struct disciplinas dis[5]){ dis[0].codigo=122; dis[1].codigo=127; dis[2].codigo=132; dis[3].codigo=143; dis[4].codigo=135; strcpy(dis[0].h_Semanal,"08:00"); strcpy(dis[1].h_Semanal,"10:00"); strcpy(dis[2].h_Semanal,"13:00"); strcpy(dis[3].h_Semanal,"15:00"); dis[0].c_Horaria=60; dis[1].c_Horaria=60; dis[2].c_Horaria=60; dis[3].c_Horaria=30; dis[4].c_Horaria=60; int x,y; for(x=0; x<4; x++){ for(y=0; y<6; y++){ grade_T[0][1].grade[x][y]=dis[x].codigo; grade_T[1][2].grade[x][y]=dis[x].codigo; grade_T[2][2].grade[x][y]=dis[x].codigo; grade_T[3][2].grade[x][y]=dis[x].codigo; grade_T[2][2].grade[x][y]=dis[x].codigo; grade_T[1][4].grade[x][y]=dis[x].codigo; grade_T[0][5].grade[x][y]=dis[x].codigo; grade_T[1][3].grade[x][y]=dis[x].codigo; grade_T[0][5].grade[x][y]=dis[x].codigo; "grade_T[0][0].grade[x][y]=dis[0].h_Semanal;" " grade_T[1][0].grade[x][y]=dis[1].h_Semanal;" "grade_T[2][0].grade[x][y]=dis[2].h_Semanal;" "grade_T[3][0].grade[x][y]=dis[3].h_Semanal;" } } } int add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct registro grade_T[4][6]){ int dis,x,y,guarda[5],cont=0,num,a,b; char resp; int volta,j; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); printf(" Lista de Disciplinas\n"); printf(" Codigo Nome\n\n"); printf("\n"); int passa; do{ int yy=1; 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); cont++; do{ volta=1; 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); for(j=0;j<num;j++){ if((al[y].l_Disciplinas == 127 && al[j].l_Disciplinas == 132 && j != y )|| al[y].l_Disciplinas ==135 && al[j].l_Disciplinas == 143) { printf("voce não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[y].l_Disciplinas=0; break; } } } "for(a=0;a<4;a++)" "for(b=0;b<6;b++){" "if(al[a].l_Disciplinas==add_Dis[a].codigo){" "grade_T[a][b].grade[a][b]=add_Dis[a].codigo;" } } }while(volta != 1 ); printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(resp != 'n'); } void consulta(struct registro al_C[3],struct disciplinas dis[5], struct registro grade_T[4][6]){ int x=0,escolhe,a,b; char nome[20]; char salva[3]; int cont_L=0; int teste[3]; char resp; int matricula_N,salva_V; char string[3]; char horas[20]; 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"); fflush(stdin); scanf("%d",&escolhe); if(escolhe ==1){ printf("Digite o nome do aluno:"); fflush(stdin); gets(nome); for(x=0; x<4; x++){ if(strcmp(al_C[x].nome, nome)==0){ salva_V=1; } } } 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*/ salva_V=1; } } } if(salva_V == 1){ printf(" Segunda Terca Quarta Quinta Sexta\n"); for(a=0; a<4; a++){ for(b=0; b<6; b++){ printf("[%d]",grade_T[a][b].grade[a][b]); } printf("\n"); } } } int main(){ struct disciplinas curso[5]; struct registro alunos[3]; struct registro grade_T[4][6]; int escolha; 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"); fflush(stdin); scanf("%d",&escolha); if(escolha == 1){ add_Aluno(alunos,curso,grade_T); } else if(escolha == 2) { consulta(alunos,curso, grade_T); } }while(escolha !=3); return 0; }
  14. @devair1010 qual argumento eu coloco na função consulta dentro da main? alunos de novo?
  15. Estou com um problema onde eu tenho uma função que contem os dados mas não sei como mandar esses dados para printar a minha grade de horário, meu código esta assim, já tentei de varias formas. Se puder me ajudar agradeço. Preciso entregar segunda-feira mas parei nessa parte. A função que contem os dados é a grade_al. Estou tentando mandar os dados para a função consulta onde será print a matriz com as matérias que o aluno selecionou. Deixei abaixo do código e o pdf caso queira dar uma olhada. #include <stdio.h> #include <string.h> struct disciplinas { int codigo; 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; int grade[4][6]; }; int cont; void grade_al(struct registro grade_T[4][6],struct disciplinas dis[5]){ dis[0].codigo=122; dis[1].codigo=127; dis[2].codigo=132; dis[3].codigo=143; dis[4].codigo=135; strcpy(dis[0].h_Semanal,"08:00"); strcpy(dis[1].h_Semanal,"10:00"); strcpy(dis[2].h_Semanal,"13:00"); strcpy(dis[3].h_Semanal,"15:00"); dis[0].c_Horaria=60; dis[1].c_Horaria=60; dis[2].c_Horaria=60; dis[3].c_Horaria=30; dis[4].c_Horaria=60; int x,y; for(x=0; x<4; x++){ for(y=0; y<6; y++){ grade_T[0][1].grade[x][y]=dis[x].codigo; grade_T[1][2].grade[x][y]=dis[x].codigo; grade_T[2][2].grade[x][y]=dis[x].codigo; grade_T[3][2].grade[x][y]=dis[x].codigo; grade_T[2][2].grade[x][y]=dis[x].codigo; grade_T[1][4].grade[x][y]=dis[x].codigo; grade_T[0][5].grade[x][y]=dis[x].codigo; grade_T[1][3].grade[x][y]=dis[x].codigo; grade_T[0][5].grade[x][y]=dis[x].codigo; strcpy(grade_T[0][0].grade[x][y],dis[x].h_Semanal); strcpy(grade_T[1][0].grade[x][y],dis[x].h_Semanal); strcpy(grade_T[2][0].grade[x][y],dis[x].h_Semanal); strcpy(grade_T[3][0].grade[x][y],dis[x].h_Semanal); } } } int add_Aluno(struct registro al[3], struct disciplinas add_Dis[5]){ int dis,x,y,guarda[5],cont=0,num; char resp; int volta,j; printf("\n\n"); printf("--------------------------------------\n"); printf("---voce selecionou adicionar aluno.---\n"); printf("--------------------------------------\n"); printf(" Lista de Disciplinas\n"); printf(" Codigo Nome\n\n"); printf("\n"); int passa; do{ int yy=1; 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); cont++; do{ volta=1; 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); for(j=0;j<num;j++){ if((al[y].l_Disciplinas == 127 && al[j].l_Disciplinas == 132 && j != y )|| al[y].l_Disciplinas ==135 && al[j].l_Disciplinas == 143) { printf("voce não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[y].l_Disciplinas=0; break; } } } }while(volta != 1 ); printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(resp != 'n'); } void consulta(struct registro al_C[3],struct disciplinas dis[5]){ struct registro grade_T[4][6]; int x,escolhe,a,b; char nome[20]; char salva[3]; int cont_L=0; int teste[3]; char resp; int matricula_N,salva_V; char string[3]; char horas[20]; 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"); fflush(stdin); scanf("%d",&escolhe); if(escolhe ==1){ printf("Digite o nome do aluno:"); fflush(stdin); gets(nome); for(x=0; x<4; x++){ if(strcmp(al_C[x].nome, nome)==0){ salva_V=1; } } } 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 salva_V=1; } } } if(salva_V == 1){ printf(" Segunda Terca Quarta Quinta Sexta\n"); for(a=0; a<4; a++){ for(b=0; b<6; b++){ printf("[%d]",grade_T[a][b].grade); } printf("\n"); } } } main(){ struct disciplinas curso[5]; struct registro alunos[3]; int escolha; 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"); fflush(stdin); scanf("%d",&escolha); if(escolha == 1){ add_Aluno(alunos,curso); } else if(escolha == 2) { consulta(alunos,curso); } }while(escolha !=3); } Trabalho 2.pdf

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas publicações 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

×