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

    76
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Eu entendi essa parte só não conhecia o strstr . tenho aula hj e verei se posso usar, qualquer coisa eu volto aqui haha mas valeu pela paciência @giu_d
  2. @giu_d Verificar só se tem o ponto mas tem a parte do "com ou br " depois.
  3. Deu certo a questão do nome ahah valeu. Agora sobre o email char email[] = "te@gmail.com"; int i; for (i = 0; i < strlen(email); i++) { if (email[i + 2] == '@' && email[i + 1] != ' ' && email[i] != ' ') { printf("Validado!"); } } Falta o .com ou .br estou pensando em fazer um vetor e colocar os nomes tipo @hotmail ou gmail dentro e depois comparar ele com o email inscrito. @giu_d
  4. O problema pra mim é que não posso usar *result = strstr porque não aprendi isso em aula e o professor é meio rigido nesse quesito de usar só o que é aprendido em aula. Estou tentando outras formas mas nenhuma deu certo ainda
  5. O problema é que o mesmo scanf que eu uso pra digitar o nome normal seria o mesmo que eu teria que pegar as 3 primeiras letras do nome e compara com o nome que esta guardado no struct para printar uma grade de horário. Quanto ao email se eu fizesse uma condição assim funcionaria? @giu_d if(strcmp(email[x],".com")==1 ||strcmp(email[x],".br")==1 || strcmp(email[x],"hotmail")==1 || strcmp(email[x],"yahoo")==1|| strcmp(email[x],"gmail")==1 || email[x] <2){ printf("Email invalido"); }
  6. Eu tentei fazer o que você falou. O nome não funcionou aqui. printf("Digite o nome do aluno:"); char string[3]; fflush(stdin); gets(nome); for(x=0; x<4; x++){ string[x]=nome; if(string[x] == al_C[x].nome && string[x+1] == al_C[x+1].nome && string[x+1] == al_C[x+1].nome){ salva_V=1; } O email fiz uma parte mas n entendi o resto. printf("Digite seu e-mail:"); fflush(stdin); gets(al[cont].email); for(x=0; x<strlen(al[cont].email); x++){ if(al[x].email=='@'){ passa++; }if(al[passa-2].email!=' '){ } } Faz poucos meses que estou programando tem muita coisa que não assimilei direito. @giu_d
  7. Estou terminando um trabalho e falta algumas coisas. Queria saber a opinião de vocês nessas questões. 1. Preciso validar um email ele tem que ter um @ nao pode ter menos de 2 letras no inicio e dever ter um ponto final. 2. Também preciso achar um aluno pelas 3 primeiras letras do nome dele. No código abaixo ele esta comparando o nome inteiro. 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; } } }
  8. Entendi não estava percebendo isso, Obrigado pela ajuda de todos.
  9. @giu_d Se ela digitar 127 e 135 ela não vai poder se inscrever pois as disciplinas tem os mesmos horários, ai retorna pra ela fazer a inscrição das disciplinas novamente.
  10. printf("Digite em quantas materias deseja se matricular:"); scanf("%d",&num); printf("Digite o codigo das diciplinas que voce deseja se matricular\n"); do{ for(y=0; y<num; y++){ scanf("%d",&al[y].l_Disciplinas); volta=1; Digamos q ele digite o numero dois no primeiro scanf. Ai no segundo scanf vai digitar 127 e 132 ou135 e143 se for isso q ele digitar, vai ser verdadeiro, pois só vai ser falso se não for umas das 2 opções pelo menos foi essa lógica q eu utilizei posso estar errado. @isrnick adicionado 8 minutos depois A minha struct é essa. Sera que o int l_Dsciplinas não deveria ser um vetor ? pois são 5 disciplinas, mas no caso o aluno escolhe em quantas deseja se matricular. Sendo assim acho que o if funcionária. struct registro { int matricula; char nome[20]; char sobrenome[20]; char email[40]; int l_Disciplinas; };
  11. Mesmo colocando if ele não funcionou. Não quero passar todo o código porque é meio extenso.
  12. @devair1010 nossa não tinha visto isso. Mas o meu outro do while parece q não esta reconhecendo essa condição else if((al[x].l_Disciplinas == 127 && al[x].l_Disciplinas == 132 )|| al[x].l_Disciplinas ==135 && al[x].l_Disciplinas == 143) { printf("voce Não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[y].l_Disciplinas=0; } }
  13. Estou com uma duvida na minha função onde meu laço nao esta reconhecendo meu if e não esta fazendo a volta para o scanf("%d",&al[x]l._Disciplinas) . Colocarei só a função. Meus dois do while não estão funcionando. void add_Aluno(struct registro al[3], struct disciplinas add_Dis[5], struct grade g_Materias[20][5]){ int dis,x,y,guarda[5],cont=0,num; char resp; int volta; 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"); do{ 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++; 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"); do{ for(y=0; y<num; y++){ scanf("%d",&al[y].l_Disciplinas); volta=1; } 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==135) { strcpy(g_Materias[1][2].grade_C,"Banc"); strcpy(g_Materias[1][4].grade_C,"Banc"); } else if((al[x].l_Disciplinas == 127 && al[x].l_Disciplinas == 132 )|| al[x].l_Disciplinas ==135 && al[x].l_Disciplinas == 143) { printf("voce Não pode se inscrever em duas disciplas de mesmo horario\n"); volta=0; al[y].l_Disciplinas=0; } } }while(volta == 0 ); printf("Deseja Cadastrar outro aluno? s/n:"); fflush(stdin); scanf("%c",&resp); }while(resp =! 'n'); }
  14. 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); }
  15. @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); }

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

×