Ir ao conteúdo
  • Cadastre-se

AmandaEstella

Membros Juniores
  • Total de itens

    2
  • Registro em

  • Última visita

  • Qualificações

    N/D
  1. Olá, alguém poderia me ajudar? Tenho que fazer um projeto, mas n faço ideia de como. Preciso ordenar os nomes das peças em ordem alfabética. Como é trabalhado em banco de dados n sei muita coisa sobre. Isso é o que eu fiz só precisa do ordenação; #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct pecas { char nome[34]; int codigo; float valor; int e; int quantidade, quant, conf, totalquant; } f; FILE *fptr; FILE *fptrvendas; FILE *fptrback; FILE *fptraux; int codigovendas, quanti; void cadastro(); void ordenacao(); int main() { char opc; do { system("cls"); printf("\n 1 - Cadastro de peca"); printf("\n 8 - Ordenacao"); printf("\n p - Sair "); printf("\n Opcao: "); opc=getche(); switch (opc) { case '1': cadastro(); break; case '8': ordenacao(); break; case 'p': printf("\n\nSaindo...\n"); break; default : printf("\n Opcao %c invalida", opc); getch(); break; } } while (opc!='p'); return 0; } void cadastro() { char op; if ((fptr=fopen("pecas.dados", "rb+"))==NULL) {if ((fptr=fopen("pecas.dados", "wb"))==NULL) { printf("\n Erro"); exit(1); } } do { printf("\n Entre com os dados para o cadastro de pecas \n"); printf("\n Nome: "); setbuf(stdin, NULL); scanf("%[^\n]",f.nome); printf("\n Codigo: "); scanf("%d",&f.codigo); printf("\n Valor: "); scanf("%f", &f.valor); printf("\n Quantidade: "); scanf("%d", &f.quantidade); f.e=0; fseek(fptr,0,2); fwrite(&f,sizeof(f),1,fptr); printf("\n Deseja cadastrar outro (S/N): "); op=getche(); } while ((op!= 'N') && (op!='n')); ((op=='S')||(op=='s')); fclose(fptr); } void ordenacao() { if ((fptr=fopen("pecas.dados", "rb"))==NULL) { printf("\n Erro"); exit(1); } }
  2. Ola, alguem poderia me ajudar? Tenho que fazer um projeto onde basicamente teria que criar um arquivo em C++ para cadastro/alteração de peças, e vendas também. Mas estou travada na parte da venda. Basicamente era pra por o codigo da peca e a quantidade e ela dar baixa no estoque da peça que tinha cadastrado anteriormente mas não vai. Vou por a baixo ate onde foi feito e anexar de imagem o que é pedido, se alguem puder me ajuda em ficaria muito agradecida. #include <stdio.h> #include <stdlib.h> #include <string.h> #include <conio.h> struct pecas { char nome[34]; int codigo; float valor; int e; int quantidade; } f; ARQUIVO * fptr; void cadastro(); void consulta(); void alteracao(); void vendas(); void exclusao_logica(); void exclusao_fisica(); void ordenacao(); void busca_binaria(); int main () { char opc; do {system ("cls"); printf ("\ n 1 - Cadastro de peça"); printf ("\ n 2 - Consultar pecas"); printf ("\ n 3 - Alteração de peças"); printf ("\ n 4 - Vendas"); printf ("\ n 5 - Exclusão Lógica"); printf ("\ n 6 - Exclusão física"); printf ("\ n 7 - Ordenação pelo nome"); printf ("\ n 8 - Busca Binaria"); printf ("\ n 9 - Sair"); printf ("\ n Opcao:"); opc = getche (); switch (opc) { case '1': cadastro (); pausa; caso '2': consulta (); pausa; caso '3': alteracao (); pausa; caso '4': vendas (); pausa; caso '5': exclusao_logica (); pausa; caso '6': exclusao_fisica (); pausa; caso '7': ordenação (); pausa; case '8': busca_binaria (); pausa; case '9': printf ("\ n \ nSaindo ... \ n"); pausa; padrão: printf ("\ n Opcao% c invalida", opc); getch (); pausa; } while (opc! = '9'); retornar 0; } / ************************************************* ********************** / void cadastro () {char op; if ((fptr = fopen ("pecas.dados", "rb +")) == NULL) {if ((fptr = fopen ("pecas.dados", "wb")) == NULL) {printf ("\ n Erro "); saída (1); } } do { printf ("\ n Entre com os dados para o cadastro de peças \ n"); printf ("\ n Nome:"); setbuf (stdin, NULL); scanf ("% [^ \ n]", f.nome); printf ("\ n Codigo:"); scanf ("% d", & f.codigo); printf ("\ n Valor:"); printf("\n Quantidade: "); scanf("%d", &f.quantidade); f.e=0; fseek(fptr,0,2); fwrite(&f,sizeof(f),1,fptr); printf("\n Deseja cadastrar outro (S/N): "); op=getche(); } while ((op! = 'n') && (op! = 'n')); ((op == 'S') || (op == 's')); fclose (fptr); } / ************************************************* ************************************* / void consulta () {if (((fptr = fopen ( "pecas.dados", "rb")) == NULL) {printf ("\ n Erro"); saída (1); } printf ("\ n Consulta de todos como partes \ n"); while (fread (& f, sizeof (f), 1, fptr)) {if (fe == 0) {printf ("\ n \ n Nome:% s", f.nome); printf ("\ n Codigo:% d", f.codigo); printf ("\ n Valor:% .2f", f.valor); printf ("\ n Quantidade:% d", f.quantidade); } } GETCH (); fclose (fptr); } / ************************************************* ************************************* / alteração nula () {char nome [34]; if ((fptr = fopen ("pecas.dados", "rb +")) == NULL) {printf ("\ n Erro"); saída (1); } printf ("\ n Entre com o nome da ervilha alterado no valor \ n"); setbuf (stdin, NULL); scanf ("% [^ \ n]", nome); Enquanto (fread (& f, sizeof (f), 1, fptr)) {if (strcmp (f.nome, nome) == 0) if (fe == 0) {fseek (fptr, ftell (fptr) -sizeof ( f) 0); // fseek (fptr, -sizeof (fptr), 1); printf ("\ nNovo Valor"); scanf ("% f", & f.valor); fwrite (& f, tamanhoof (f), 1, fptr); fseek (fptr, 0,2); } } Fclose (fptr); } / ************************************************** ****** / void vendas () {int codigovendas, quant; {if ((fptr = fopen ("pecas.dados", "rb")) == NULL) {printf ("\ n Erro"); saída (1); } } printf("\n Vendas de pecas cadastradas \n"); printf("\n Digite o nome da peca que vai ser vendida \n"); scanf("%d", &codigovendas); printf("\n Digite a quantidade de pecas que serão vendidas"); scanf("%d", quant); if(codigovendas == f.codigo){ printf("\n venda concluida"); f.quantidade = f.quantidade-quant; } else printf("\n codigo n cadastrado"); getch (); fclose (fptr); } / ************************************************* ************************************* / void exclusao_logica () {char nome [34 ]; if ((fptr = fopen ("pecas.dados", "rb +")) == NULL) {printf ("\ n Erro"); saída (1); } printf ("\ n Entre com o nome da peça excluído logicamente \ n"); setbuf (stdin, NULL); scanf ("% [^ \ n]", nome); Enquanto (fread (& f, sizeof (f), 1, fptr)) {if (strcmp (f.nome, nome) == 0) if (fe == 0) { fseek (fptr, ftell (fptr) -sizeof ( f) 0); fe = 1; fwrite (& f, tamanho de (f), 1, fptr); fseek (fptr, 0,2); } } GETCH (); fclose (fptr); } /**************************************************************************************/ void exclusao_fisica() { } /**************************************************************************************/ void ordenacao() { } /**************************************************************************************/ void busca_binaria() { }

Sobre o Clube do Hardware

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

×
×
  • Criar novo...

Aprenda a ler resistores e capacitores

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!