_Isis_ 202 Denunciar post Postado Dezembro 4, 2008 Não sei o que tá tão complicado p/ você. 1 - você precisa de um loop p/ imprimir o menu. 2 - Não precisa de chaves num case. arquivo = fopen("arquivo.txt","ab"); printf("Informe o codigo\n"); fgets(vend.id); Não existe uma struct vend declarada na função. 4- Se você vai cadastrar alguma coisa, mexa com memória, porque disco é lento. Ao cadastrar as vendas você tem que abrir o arquivo dos vendedores, percorrer linha por linha no pior caso, ler e ainda comparar. 5 - Não use o mesmo arquivo p/ armazenar coisas diferentes. #include <stdio.h> #include <stdlib.h> #include <string.h> typedef struct { int id; char nome[30]; }vendedor; typedef struct{ vendedor * idVendedor; char mes[20]; int qtvendas; } venda; void menu () { printf(" (1) Cadastrar vendedor \n"); printf(" (2) Cadastrar venda \n"); printf(" (3) Consultar vendas de um funcionário em determinado mes \n"); printf(" (4) Consultar o total das vendas de determinado vendedor \n"); printf(" (5) Mostrar o numero do vendedor que mais vendeu em determinado mes \n"); printf(" (6) Mostrar o numero do mes com mais vendas \n"); printf(" (7) Finalizar programa \n"); } vendedor * cadastroVendedores; int ultimoVendedor; venda * cadastroVendas; int ultimaVenda; void cadastrar_vendedor(){ vendedor dado; printf("Informe o codigo:"); scanf("%d",&dado.id); printf("Nome:"); scanf("%30s",&dado.nome); ultimoVendedor++; cadastroVendedores = (vendedor *)realloc(cadastroVendedores,ultimoVendedor*sizeof(vendedor*)); if (cadastroVendedores == NULL) exit(1); cadastroVendedores[ultimoVendedor-1].id = dado.id; strcpy(cadastroVendedores[ultimoVendedor-1].nome, dado.nome); } int main() { int n; enum {CAD_VENDEDOR=1, CAD_VENDA, CON_VENDAS_FUNC, CON_TOTAL_VENDEDOR, EXIBIR_VENDEDOR, EXIBIR_MES,FIM}; cadastroVendedores = (vendedor*)malloc(0); ultimoVendedor = 0; cadastroVendas = (venda*)malloc(0); ultimaVenda = 0; if (cadastroVendedores == NULL || cadastroVendas == NULL) exit(1); // LEITURA DO ARQUIVO DE VENDEDORES E VENDAS AQUI do { menu(); scanf("%d",&n); switch(n){ case CAD_VENDEDOR: cadastrar_vendedor(); break; case CAD_VENDA: puts("2"); break; case CON_VENDAS_FUNC: puts("3"); break; case CON_TOTAL_VENDEDOR: puts("4"); break; case EXIBIR_VENDEDOR: puts("5"); break; case EXIBIR_MES: puts("6"); break; } } while (n != FIM); // ESCREVER ARQUIVOS AQUI free(cadastroVendedores); return 0; } Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 4, 2008 Obrigado, mais tem muitas coisas que eu nunca vi antes Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 4, 2008 Obrigado, mais tem muitas coisas que eu nunca vi antesNinguém nasce sabendo... Tem que tentar. Se não tentar, não entenderá nunca... Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 4, 2008 Sim mais tenho que aprender arquivos. Qual metodo vcs aconselham para estudar c? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 4, 2008 Se você não tiver um livro para seguir, o negócio é ir pesquisando no Todo Poderoso Google e lendo: http://www.google.com/search?ie=UTF-8&...mp;q=arquivos+c Estude bastante manipulação de arquivos no modo binário Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 4, 2008 Qual livro você aconselha? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 4, 2008 http://www.livrariasaraiva.com.br/produto/...80C040D32140536 http://www.livrariacultura.com.br/scripts/...6D4142&uid= http://www.livrariasaraiva.com.br/produto/...80C040D32140536 Compartilhar este post Link para o post Compartilhar em outros sites
viciado 1 Denunciar post Postado Dezembro 5, 2008 Qual o melhor ? Compartilhar este post Link para o post Compartilhar em outros sites
Beraldo 864 Denunciar post Postado Dezembro 5, 2008 C: Total e Cmpleto é o que mais abrange assuntos. Também é o maior deles. Consequentemente é o mais caro. Mas vale a pena O Linguagem C eu havia comprado antes de entrar na faculdade. Achei-o bem bom também. Tem uma abordagem mais prática e direta O C: A linguagem de Programação foi indicação do professor de C. Mas não o achei tão bom quanto os dois anteriores Compartilhar este post Link para o post Compartilhar em outros sites
Edultra 13 Denunciar post Postado Dezembro 6, 2008 tem que utilizar uma manobra de cast, fiz algo assim a um tempinho tipo: Para entrada: ofstream arq; arq.open(arqcadastro, ios::app); cadcliente a[5];//a struct cadcliente recebe o "apelido" de "a" while(opcao==1) { system("cls"); cout<<"Nome do Cliente :"<<endl; fflush(stdin); gets(a[i].nome); cout<<"Endereco : "<<endl; fflush(stdin); gets(a[i].endereco); cout<<"email :"<<endl; fflush(stdin); gets(a[i].email); cout<<"idade :"<<endl; fflush(stdin); cin>>a[i].idade; system("cls"); fflush(stdin); arq.write(reinterpret_cast<char*>(&a[i]),sizeof(a[i])); cout<<"Deseja incluir mais registros? 1 para sim e 2 para não: "; cin>>opcao; i++; } cout.flush(); arq.close(); A seguinte linha: arq.open(arqcadastro, ios::app);Abre o arquivo em modo de escrita, caso o arquivo não exista ele cria, se o arquivo ja existir ele acrescenta o conteudo no final apos o ultimo registro.para ler o arquivo depois você terá que verificar primeiro o tamanho, calculo da divisão do tamanho do arquivo pelos bytes ocupados por cada estrutura assim podera utilizar um contador e para ler é utilizar ao invés de arq.open(arqcadastro, ios::app);o arq.open(arqcadastro, ios::in);para leitura, e ao invés do "arq.write" o "arq.read" dai poderá imprimir o arquivo e etc, existem n's metodos alguns melhores outros piores, para a utilização e criação de um programa eficiente você terá que aprender como utilizam-se estruturas, o interligamento, saber utilizar vetores auxiliares para armazenamento temporário, aprender tipo de aberturas de arquivos e ver qual melhor se aplica ao seu trabalho, espero ter lhe ajudado. Compartilhar este post Link para o post Compartilhar em outros sites