Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''struct''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Todas as áreas do Fórum

  • Q&A Desenvolvimento
    • Perguntas e respostas rápidas
  • Desenvolvimento e Banco de Dados
    • HTML e CSS
    • Java
    • Javascript
    • .NET
    • PHP
    • Python
    • Ruby
    • Mobile
    • Ambientes de Desenvolvimento
    • Arquitetura e Métodos Ágeis
    • Banco de Dados
    • DevOps
    • Desenvolvimento de Games
    • E-Commerce e Pagamentos Online
    • SEO e Otimizações
    • WordPress
    • Algoritmos & Outras Tecnologias
  • Design e Produto
    • Fotografia
    • Photoshop
    • Design de interfaces e UX
    • Edição/Produção de Vídeos
    • Marketing Online
    • Desenho, Ilustração e 3D
  • Entretenimento e uso pessoal
    • Geral
    • Segurança & Malwares
    • Gadgets e wearable
    • Softwares e Apps
    • Entretenimento

Encontrar resultados em...

Encontrar resultados que...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Encontrado 9 registros

  1. #include<stdio.h> #include<string.h> #include<stdlib.h> struct aluno { char nome[20]; char endereco[50]; char data_de_nascimento[10]; char telefone[15]; float nota1; float nota2; }; struct aluno recadastramento(struct aluno valuno[10]); void media_das_notas(struct aluno valuno[10]); void aprovado_ou_reprovado(struct aluno valuno[10]); void mostrar_informacoes(struct aluno valuno[10]); int main(void) { struct aluno valuno[10]; int op; float media; int i; int j; printf("Digite as informacoes dos alunos"); for(i=1;i<11;i++) { printf("Digite O Nome Do Aluno[%d]\n\n",i); printf("Nome: "); fflush(stdin); gets(valuno[i].nome); printf("\nDigite O Endereco Do Aluno[%d]\n\n",i); printf("Endereco: "); fflush(stdin); gets(valuno[i].endereco); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); printf("Data De Nascimento: "); fflush(stdin); gets(valuno[i].data_de_nascimento); for(j=0;j <15; j++) { if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/') { printf("ERRO! Digite novamente"); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); gets(valuno[i].data_de_nascimento); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i); printf("Telefone Do Aluno: "); fflush(stdin); gets(valuno[i].telefone); for(j=0;j <15; j++) { if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-') { printf("ERRO! Digite novamente"); printf("Digite O Telefone Do Aluno [%d]: ",i); gets(valuno[i].telefone); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i); printf("Nota 1: "); scanf("%f",&valuno[i].nota1); printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i); printf("Nota 2: "); scanf("%f",&valuno[i].nota2); } do { printf("\nMENU\n"); printf("- 1)Editar informações dos alunos \n 2)Mostrar as medias dos alunos \n 3)Dizer se os alunos foram aprovados medias >= 6 ou reprovados (medias <6)\n 4)Listar todas as informações dos alunos"); printf("\n\nOpcao::: "); scanf("%d",&op); switch(op) { case 1: recadastramento(valuno); break; case 2: media_das_notas(valuno); break; case 3: aprovado_ou_reprovado(valuno); break; case 4: mostrar_informacoes(valuno); break; default: printf("\nOpcao INVALIDA\n"); break; } }while(op > 0 && op < 5); } struct aluno recadastramento(struct aluno valuno[10]) //recadastramento de informações//Funções { int i; for(i=1;i<11;i++) { printf("\nDigite O Nome Do Aluno [%d]\n\n",i); printf("Nome: "); fflush(stdin); gets(valuno[i].nome); printf("\nDigite O Endereco Do Aluno [%d]\n\n",i); printf("Endereco: "); fflush(stdin); gets(valuno[i].endereco); printf("\nDigite A Data De Nascimento Do Aluno [%d] No Formato <00/00/0000>\n\n",i); printf("Data De Nascimento: "); fflush(stdin); gets(valuno[i].data_de_nascimento); int j; for(j=0;j < 11; j++) { if(valuno[i].data_de_nascimento[2] != '/' && valuno[i].data_de_nascimento[5] != '/')//validção de data no formato correto { printf("ERRO! Digite novamente"); printf("\nDigite A Data De Nascimento Do Aluno [%d]No Formato <00/00/0000>\n\n",i); gets(valuno[i].data_de_nascimento); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite O Telefone Do Aluno [%d] No Formato <(DDD)00000-0000>\n\n",i); printf("Telefone Do Aluno: "); fflush(stdin); gets(valuno[i].telefone); for(j=0;j <15; j++)//validção de numero no formato correto { if(valuno[i].telefone[0] != '(' && valuno[i].telefone[4] != ')' && valuno[i].telefone[10] != '-') { printf("ERRO! Digite novamente"); printf("Digite O Telefone Do Aluno [i]: ",i); gets(valuno[i].telefone); break; } else { printf("FORMATO CORRETO"); break; } } printf("\nDigite A Primeira Nota Do Aluno [%d]\n\n",i); printf("Nota 1: "); scanf("%f",&valuno[i].nota1); printf("\nDigite A Segunda Nota Do Aluno [%d]\n\n",i); printf("Nota 2: "); scanf("%f",&valuno[i].nota2); } } void media_das_notas(struct aluno valuno[10])//media de notas { int i; for(i=1;i<11;i++) { float media; media = (valuno[i].nota1 + valuno[i].nota2) / 2; printf("Media: %.2f\n",media); } } void aprovado_ou_reprovado(struct aluno valuno[10])//se foi aprovado ou reprovado { int i; for(i=1;i<11;i++) { float media; media = (valuno[i].nota1 + valuno[i].nota2) / 2; if(media >= 6) { printf("\nAluno [%d] APROVADO\n",i); } else { printf("\nAluno [%d] REPROVADO\n",i); } printf("\nMedia do Aluno[%d]: %.2f\n",i,media); } } void mostrar_informacoes(struct aluno valuno[10])//mostrando informções de cadastro { int i; for(i=1;i<11;i++) { printf("-Listagem Do Aluno[%d]",i); printf("\n\nNome do Aluno[%d]: %s",i,valuno[i].nome); printf("\nEndereco do Aluno[%d]: %s",i,valuno[i].endereco); printf("\nData De Nascimento do Aluno[%d]: %s",i,valuno[i].data_de_nascimento); printf("\nTelefone do Aluno[%d]: %s",i,valuno[i].telefone); printf("\nNota 1 do Aluno[%d]: %.2f ",i,valuno[i].nota1); printf("\nNota 2 do Aluno[%d]: %.2f ",i,valuno[i].nota2); } } //Fim Do Codigo
  2. Preciso enviar struct via winsock de um cliente em C para servidor em Python. to apanhando muito e já fiz diversas mudanças porém não consegui acertar. Resumindo estou completamente perdido. Fiz um cliente que salvava todas informações da estrutura em uma unica string e enviava .... deu tudo certo ... porém quando tento enviar a estrutura tudo cai em ruínas =õ( cliente em C: #include <stdio.h> #include <winsock.h> #include <conio.h> #include <windows.h> #include <string.h> //ESTRUTURA QUE CONTEM OS DADOS PARA ENVIAR PARA O SERVIDOR typedef struct Dados { int idMensagem; int umidade; int temperatura; char data[128]; char confirmacao[2]; }TDados,*PDados; //FUNCAO QUE GERA DADOS A SEREM ENVIADOS PARA O SERVIDOR TDados gera_dados(TDados dados){ srand(time(NULL)); dados.idMensagem++; dados.umidade=30+(rand() % 60); dados.temperatura=(rand() % 100)-50; strcpy(dados.confirmacao,""); /** Gera a data e hora atual:*/ time(&dados.data); strftime(dados.data,sizeof(dados.data), "%H:%M:%S %A %d %b %Y \n", localtime(&dados.data)); printf(dados.data); /*strcpy(dados.date,"Data: "); strcat(dados.date,__DATE__); strcat(dados.date," - Hora: "); strcat(dados.date,__TIME__);*/ return dados; } int main(int argc,char *argv[]) { //DECLARANDO VARIAVEIS WSADATA data; SOCKET winsock; SOCKADDR_IN sock; char strDados[1024]; int bytes; TDados dados; PDados pdados; dados.idMensagem=0; int idCliente=5; while(1){ //INICIALIZANDO WINSOCK if(WSAStartup(MAKEWORD(1,1),&data)==SOCKET_ERROR){ printf("Erro ao inicializar o winsock"); return 0; } //CRIANDO SOCKET if((winsock = socket(AF_INET,SOCK_STREAM,0))==SOCKET_ERROR){ printf("Erro ao criar socket"); return 0; } //ESTRUTUDA DO SOCKET sock.sin_family=AF_INET; sock.sin_port=htons(5000); sock.sin_addr.s_addr=inet_addr("127.0.0.1"); //GERANDO DADOS... printf("\n ------------GERANDO OS DADOS--------------- \n"); dados=gera_dados(dados); //sprintf(strDados,"%d,%d,%d,%d,%s",idCliente,dados.idMensagem,dados.umidade,dados.temperatura,dados.date); //printf("\n ------------IMPRIMINDO OS DADOS--------------- \n"); //printf(strDados); printf("\n --------------------------- \n"); //CONEXAO COMO SERVIDOR, CASO NÃO SE CONECTE RETORNA ERRO if(connect(winsock,(SOCKADDR*)&sock,sizeof(sock))==SOCKET_ERROR){ printf("Erro ao se conectar"); return 0; } printf("Conectado!\n"); while(strcmp(dados.confirmacao,"ok")){ printf("Enviando Dados ao servidor!\n"); //ENVIANDO MENSAGEM //char buffer[sizeof(Header)];(TDados*) //memcpy(buffer, &header, sizeof(Header)); char* pdados= (PDados)malloc (sizeof(TDados)*1); /// DEI MOLLOC PRA ENVIAR PELO WINSOCK memcpy(pdados, &dados, sizeof(dados)); /// MEMCPY NEM SEI Q Q ISSO DIREITO USEI PQ MANDARAM if(send(winsock,pdados,sizeof(dados),NULL) < 0){ /// ENVIANDO PELO WINSOCK perror("Erro ao enviar a mensagem \n"); exit(1); } //RECEBENDO CONFIRMACAO printf("Recebendo resposta do servidor!\n"); memset(dados.confirmacao,0,2); bytes=recv(winsock,dados.confirmacao,2,0); if(bytes==-1){ printf("Conexão perdida"); getch(); return 0; }else{ printf("\nMensagem Recebida %s \n",dados.confirmacao); } } closesocket(winsock); //FAZ O PROGRAMA ESPERAR 30 SEGUNDOS PARA ENVIAR NOVA MENSAGEM Sleep(30000); } getch(); closesocket(winsock); WSACleanup(); return 0; } ------------------------------------------------------------------------------------------------------------------------------ servidor em python ... NOTA : AINDA NÃO SEI RECEBER NA ESTRUTURA CORRETAMENTE. import base64 # FUNCAO DE PERSISTENCIA def salvaLog(string): try: with open('log.txt','rt') as arq: conteudo = arq.readlines() if conteudo!="": conteudo.append("\n") conteudo.append(msg) except IOError: print('Arquivo não encontrado!') #~ arq=open('log.txt','rt',encoding="utf-8") #~ conteudo = arq.readlines() #~ if conteudo!="": #~ conteudo.append("\n") conteudo=msg arq=open('log.txt','wt',encoding="utf-8") arq.writelines(conteudo) arq.close() import struct idMensagem=0 umidade=0 temperatura=0 data=b'' confirmacao=b'' import socket HOST = '' # Endereco IP do Servidor PORT = 5000 # Porta que o Servidor esta tcp = socket.socket(socket.AF_INET, socket.SOCK_STREAM) orig = (HOST, PORT) tcp.bind(orig) tcp.listen(5) while True: print ('Servidor Aberto\n') conexao, cliente = tcp.accept() print ('Conectado por', cliente) print ('Recebendo mensagem\n') msg = conexao.recv(142) print(len(msg)) print (struct.calcsize('i i i 128s 2s')) print (msg) print(msg.decode()) #~ msg= base64.decodebytes(msg) #~ print (msg) #~ print (msg.decode()) cod = struct.unpack('i i i 128s 2s',msg) print (cod) (idMensagem,umidade,temperatura,data,confirmacao) = struct.unpack('i i i 128s 2s',msg) print ("Mensagem recebida, decodificando....\n") msg=msg.decode('UTF-8') print(msg) resposta='ok' conexao.send(resposta.encode()) print ('\nSalvando em LOG as informacoes do cliente', cliente) salvaLog(msg) print ('\nFinalizando conexao do cliente', cliente) print("\n ----------------------------------------- \n") conexao.close()
  3. Manu Oliveira

    Vetor x Struct

    Vetor é um conjunto de variáveis subordinadas a um único nome e struct também é um conjunto de variáveis subordinadas a um único nome. Meu professor pediu para diferencia -las. mais estou com dificuldade.
  4. Olá amigos do Fórum. Estou tentando desenvolver um código que atende aos seguintes requisitos. >>Escrever um programa que cadastre o nome, a altura, o peso, o cpf e sexo de algumas pessoas. Com os dados cadastrados, em seguida, localizar uma pessoa através do seu CPF e imprimir o seu IMC, além das funções adicionais descritas no menu. >>Nome: até 50 caracteres Altura: em centímetros com precisão de uma casa decimal Peso: em kilogramas com precisão de uma casa decimal CPF: no formato de texto – XXX.XXX.XXX-XX Sexo: M ou F. >>O programa deve apresentar um menu para: 1. Cadastrar pessoas. 2. Procurar pessoas (usar o CPF). 3. Listar as pessoas cadastradas . 4. Mostrar a quantidade de pessoas cadastradas. 5. Mostrar o menor e o maior IMC 6. Sair do programação. Em anexo meu código, mas não consigo escrever todos esses requisitos. Obrigado e á disposição. main.c
  5. Boa Noite Pessoal! Estou com dificuldade em implementar um exercício de lista simplesmente encadeada. Nele pede para criar uma estrutura com os dados de um aluno (matricula, nome e media), e outra para ser a lista (com a estrutura com os dados do aluno e um no com as informações do próximo nó). Uma das opções é para inserir os dados de um novo aluno em ordem crescente de matricula. O código está dando erro. Vocês conseguem me dizer onde estou errando? Vejam meu código: #include<stdio.h> #include<stdlib.h> #include<string.h> struct aluno{ int matricula; char nome[100]; float media; }; typedef struct aluno Aluno; struct no{ Aluno* dados; struct no* prox; }; typedef struct no No; No* cria(No* l){ No* p=(No*)malloc(sizeof(No)); p->dados=NULL; return l; } No* ins_ordenado(No* l,int mat,char* nome,float nota){ Aluno* Al=(Aluno*)malloc(sizeof(Aluno)); No* novo=(No*)malloc(sizeof(No)); int i=0; Al->matricula=mat; while(nome!='\0'){ Al->nome=nome; i++; } Al->nome=NULL; Al->media=nota; novo->dados=Al; No*p=l; No*aux=NULL; if(l==NULL){ novo->prox=l; return novo; } while(p!=NULL&&p->dados->matricula<Al->matricula){ aux=p; p=p->prox; } novo->prox=aux->prox; aux->prox=novo; if(p==NULL){ novo->prox=NULL; } return l; } void imprime(No* l){ No* p; printf("turma 1:\n"); for(p=l;p!=NULL;p->prox){ printf("Matricula: %d\t Nome: %s Nota:%f\n",p->dados->matricula,p->dados->nome,p->dados->media); } printf("\n"); } int vazia(No* l){ return(l==NULL); } int main(){ No* l1=cria(l1); l1=ins_ordenado(l1,1,"Maria",5); printf("vazia? %d",vazia(l1)); //imprime(l1); return 0; } Desde já, Obrigada!
  6. Preciso criar uma agenda de contatos distribuída com as seguintes características: Cada contato deverá conter: nome, número de telefone, número de celular, endereço, e-mail. Agenda deve funcionar menu da seguinte forma: adição, remoção, alteração ou pesquisa de algum contato. Deve salvar os contatos em um arquivo .txt formatado. Estou fazendo assim: Abro o arquivo em modo de leitura ("r" = read). Verifico se existe; Se não, eu defino o tamanho do vetor e vou para o menu para cadastrar e salvo um novo arquivo em modo de leitura "w"; Se existir, eu leio o arquivo.txt(formatado) e envio os dados para struct (NÃO SEI FAZER ISSO), e continuo a incrementação se for o cada de um novo cadastro, depois salvo tudo (o que ja tinha e o novo cadastro) Alguém tem algum exemplo de como pode fazer isso sem ser binário?
  7. -Fazer um programa que cria uma estrutura livro, que contém os elementos título, ano de edição, número de páginas e preço. Criar uma variável desta estrutura que é um vetor de 5 elementos. Ler os valores para a estrutura e imprimir a média do número de páginas do livros. Além disso mostrar os dados do livro com maior preço e menor preço, inclusive se houver mais de um livro com o mesmo preço. Tô iniciando agora em struct, e, dada a questão, tentei montar um programa que seguisse operando o que ela pede, mas por algum motivo que n consigo identificar, o programa só lê o título do primeiro livro. Gostaria que alguém me ajudasse a identificar o problema. Segue o programa que tentei fazer: #include <stdio.h> #define T 2 int main () { struct dados { char titulo[71]; int ano; int pag; float preco; }; struct dados livro[T]; int i; float mediap = 0.0; float maior = 0.0, menor = 9999999999999999.9; for (i = 0; i < T; i++) { printf ("\nLivro %d:\n", i + 1); printf ("\n\tInsira o titulo do livro: "); fgets (livro[i].titulo, 70, stdin); printf ("\n\tInsira o ano de edicao: "); scanf ("%d", &livro[i].ano); printf ("\n\tInsira o numero de paginas: "); scanf ("%d", &livro[i].pag); printf ("\n\tInsira o preco no mercado: "); scanf ("%f", &livro[i].preco); if (livro[i].preco < menor) menor = livro[i].preco; if (livro[i].preco > maior) maior = livro[i].preco; mediap = mediap + livro[i].pag; } //system ("cls"); printf ("\n\nA media do numero de paginas dos livros: %.2f\n", (float)mediap/T); printf ("\nO maior preco dentre os livros: %.2f\n", maior); printf ("\nO menor preco dentre os livros: %.2f\n", menor); return 0; }
  8. bellun

    ordenação bolha e arquivos

    Tenho 2 duvidas que são a seguinte, tenho q ordenar dados que estão e um vetor de tipo struct Dados utilizando o método bolha (eu sei que ele é uma bosta), e também não estou conseguindo fazer o seguinte : em determinado ponto do código apos uma série de leituras de dados de alunos de uma turma como por exemplo nome, matricula nota, media eu tenho q pegar esses dados que estão guardados no vetor struct Dados turma[qtdeAlunos] e separa-los em 2 arquivos, Arquivo 1 contendo alunos da letra 'A' a 'N ' e no outro de 'M' a 'Z'. Segue o que eu consegui fazer até agora: #include <stdio.h> #include <conio.h> #include <string.h> #define NOME_MAX 100 #define MAX_ALUNOS 120 #define MIN_ALUNOS 1 #define QTDE_NOTAS 2 #define NOTA_MIN 0 #define NOTA_MAX 10 ////////STRUCTS/////////////// struct Dados { char nome[NOME_MAX]; float notas[QTDE_NOTAS]; int matricula; float media; }; ///////////////////////////////////////////// /////////////////PROTÓTIPOS/////////////////// void leValidaTexto (char *texto, char *mensagemTitulo, int tamanho, int aux); int leValidaInt(char *titulo); int leValidaQuantidade(char *titulo,int min, int max); void cadastraAluno(struct Dados *turma,int qtdeAlunos); int leValidaMatricula(); float leValidaNotas(char *titulo, float valorMin, float valorMax); int verificaRepetido(struct Dados *turma, int qtdeAlunos); void armazenarDados(struct Dados *turma, char * nomeArquivo1, char * nomeArquivo2, int qtdeAlunos); /*void ordenaCadastro(struct Dados *turma, int qtdeAlunos);*/ ////////////////////////////////////////////// int main(void) { // Declaracoes char nomeArquivo1[NOME_MAX]; char nomeArquivo2[NOME_MAX]; int qtdeAlunos; //FILE *arquivo1; //FILE *arquivo2; FILE *erro; int aux; // Instrucoes qtdeAlunos=leValidaQuantidade("Informe a quantidade de alunos da turma:",MIN_ALUNOS, MAX_ALUNOS); struct Dados turma[qtdeAlunos]; erro=fopen("erro.txt","w"); fclose(erro); for ( aux = 0;aux<1;aux++) { leValidaTexto(nomeArquivo1,"Informe o nome do arquivo n 1 :",NOME_MAX, aux); leValidaTexto(nomeArquivo2,"Informe o nome do arquivo n 2 :",NOME_MAX, aux); }; if(strcmp(nomeArquivo1,nomeArquivo2)==0) { printf("Nomes iguais"); getch(); fopen("erro.txt","a"); fprintf(erro,"Nome dos arquivos iguais, impossibilitando a criacao."); fclose(erro); exit(0); }; //arquivo1=fopen(nomeArquivo1,"w"); //arquivo2=fopen(nomeArquivo2,"w"); cadastraAluno(&turma, qtdeAlunos); armazenarDados(turma, nomeArquivo1, nomeArquivo2, qtdeAlunos); /*ordenaCadastro(&turma,qtdeAlunos);*/ getch(); return 0; } //Objetivo: //Parametros: //Retorno: //Objetivo: ler e Validar um Nome //Parametros: endereço de titulo, endereco de msgErro, tamanho maximo e endereço de nome //Retorno: void leValidaTexto (char *texto, char *mensagemTitulo, int tamanho, int aux) { do{ printf("%s\n",mensagemTitulo); fflush(stdin); fgets(texto, tamanho, stdin); fflush(stdin); if(texto[strlen(texto)-1] == '\n') { texto[strlen(texto)-1] = '\0'; } if(strlen(texto) == 0) { system("cls"); printf("Nada foi informado\n"); getch(); } }while(strlen(texto) == 0); system("cls"); } //Objetivo:Ler e validar uma quantidade de alunos //Parametros:endereço do vetor titulo, quantidade minima e maxima de alunos. //Retorno: Quantidade de alunos válida int leValidaQuantidade(char *titulo,int min, int max) { int qtde; do{ qtde=leValidaInt(titulo); if(qtde<min||qtde>max) { printf("Quantidade de alunos, invalida, informe uma quantidade na faixa: [1]..[120]"); getch(); } system("cls"); }while(qtde<min||qtde>max); return qtde; } //Objetivo: ler e validar inteiro //Parametros: endereco de titulo //Retorno: inteiro validado int leValidaInt(char *titulo) { int ret; int nro; do { printf("%s\n",titulo); fflush(stdin); ret = scanf("%d",&nro); fflush(stdin); if(ret == 0 ) { printf("Campo destinado para numeros inteiros, informe novamente"); getch(); } system("cls"); }while(ret==0); return nro; } //Objetivo:Cadastrar os dados dos alunos da turma //Parametros:endereço de memória do vetor turma, quantidade de alunos //Retorno:sem retorno void cadastraAluno(struct Dados *turma,int qtdeAlunos) { int aux; int validacao; system("cls"); for(aux=0;aux<qtdeAlunos;aux++){ do { printf("Informe a matricula do aluno %d\n",aux+1); turma[aux].matricula=leValidaMatricula(); validacao = verificaRepetido(turma,aux); if(validacao == 1 ) { printf("Matricula repetido informe outra novamente\n"); getch(); system("cls"); } }while(validacao == 1); leValidaTexto(turma->nome,"Informe o nome do estudante n :",NOME_MAX,aux); turma[aux].notas[0]=leValidaNotas("Informe a nota 1:",NOTA_MIN,NOTA_MAX); turma[aux].notas[1]=leValidaNotas("Informe a nota 2:",NOTA_MIN,NOTA_MAX); turma[aux].media=(turma[aux].notas[0]+turma[aux].notas[1])/2; } } void armazenarDados(struct Dados *turma,char *nomeArquivo1, char *nomeArquivo2, int qtdeAlunos) { FILE * arquivo1; FILE * arquivo2; int aux; arquivo1 = fopen(nomeArquivo1, "w+b"); arquivo2 = fopen(nomeArquivo2, "w+b"); for(aux=0;aux<qtdeAlunos;aux++){ //if(turma[aux].nome[0]>=63 && turma[aux].nome[0]<=79) fprintf(arquivo1,"%d",turma[aux].matricula); fprintf(arquivo1,"%20.20s",turma[aux].nome); fprintf(arquivo1,"%20.2f",turma[aux].media); fclose(arquivo1); } } //Objetivo: Ordenar os elementos do vetor //Parametros: endereço do vetor matricula, quantidade de alunos //Retorno: /*void ordenaCadastro(struct Dados *turma, int qtdeAlunos) { int i; int j; //int auxMatricula; char auxNome[NOME_MAX]; int auxMedia; int resultado; for(i = qtdeAlunos-1; i >= 1; i--) { for(j = 0; j < i; j++) { if(strcmp(turma[j].nome, turma[i].nome) == -1) { strcpy(auxNome, turma[j].nome); strcpy(turma[j+1].nome, turma[j].nome); strcpy(turma[j+1].nome, auxNome); } } } for(resultado = 0; resultado < qtdeAlunos; resultado++) { printf("%s\n", turma[resultado].nome); } }*/ //Objetivo:Ler e validar uma matricula //Parametros: endereço do vetor matricula, endereço do vetor de titulo,contador //Retorno: int leValidaMatricula() { int matricula; do{ matricula=leValidaInt("Insira:"); }while(matricula<0||matricula>99999); return matricula; } //Objetivo: Verificar numero repetido em uma matriz //Parametros: endereço da matriz e o ultimo lido //Retorno: 1 se repetido 0 se não repetido int verificaRepetido(struct Dados *turma, int aux) { int cont; int flag = 0; for(cont = 0; cont < aux; cont++) { if(turma[aux].matricula == turma[cont].matricula) { flag = 1; break; } } return flag; } //Objetivo: ler e validar real //Parametros: endereco de titulo, endereco de mensagem de erro , valorMin e valor Max //Retorno: real validado float leValidaNotas(char *titulo, float valorMin, float valorMax) { int ret = 0; int flag; float nro; do { flag = 0; printf("%s\n",titulo); fflush(stdin); ret = scanf("%f",&nro); fflush(stdin); if(ret == 0 || nro < valorMin || nro > valorMax) { flag = 1; printf("ERRO, campo destinado para numeros"); getch(); } system("cls"); }while(flag == 1); return nro; }
×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.