Jump to content

Search the Community

Showing results for tags 'struct'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • 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

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Google+


Hangouts


Skype


Twitter


deviantART


Github


Flickr


LinkedIn


Pinterest


Facebook


Site Pessoal


Localização


Interesses

Found 10 results

  1. ivolini

    struct

    Como adicionar numeros de uma struct destro de uma função em uma lista já criada em struct? Obrigado
  2. #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
  3. 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()
  4. 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.
  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. 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
  8. -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; }
  9. 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; }
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.