Ianaconi 0 Denunciar post Postado Junho 29, 2006 Estou desenvolvendo um sisteminha para cadastro de jogos. Gostaria de algumas dicas para melhorar o programa. O que vocês acham? Ta ficando bom? Mto obrigado! cab.h void carrega(void);void clrscr(void);void incluir(void);void listar(void);void pesquisar(void);void libera(void);void salvar(void);void editar(void);void apagar(void);void exportar(void); funcoes.cpp /* Funções e estruturas */#include <stdio.h>#include <conio.h>#include <string.h>#include <stdlib.h>#include <windows.h> #include <string.h>#include "cab.h"#define html "games.html"#define config "config.dat"#define usua "games.dat"char c[3];void clrscr(void){ //Limpar a tela COORD coordScreen = {0, 0}; DWORD cCharsWritten; CONSOLE_SCREEN_BUFFER_INFO csbi; DWORD dwConSize; HANDLE hConsole=GetStdHandle(STD_OUTPUT_HANDLE); GetConsoleScreenBufferInfo(hConsole, &csbi); dwConSize = csbi.dwSize.X * csbi.dwSize.Y; FillConsoleOutputCharacter(hConsole, TEXT(' '),dwConSize, coordScreen, &cCharsWritten); GetConsoleScreenBufferInfo(hConsole, &csbi); FillConsoleOutputAttribute(hConsole, csbi.wAttributes,dwConSize, coordScreen, &cCharsWritten); SetConsoleCursorPosition(hConsole, coordScreen); }struct lojagames{ char nome[30],nomefab[30],idioma[15],classificacao[15],anolancamento[10],preco[10]; int codi;}; int num=0,iguais=0;char dia[2],mes[2];FILE *arquivo;struct lojagames *games;void incluir(void){ //Alocação dinâmica da memória if (num == 0) games = (struct lojagames*)(malloc(sizeof(struct lojagames))); else games = (struct lojagames*)(realloc(games,((num+1)*sizeof(struct lojagames)))); //Entrada de dados printf("\nEntrada de dados:\n\n"); printf("Nome do Jogo: "); fflush(stdin); gets(games[num].nome); fflush(stdin); printf("Nome do Fabricante: "); gets(games[num].nomefab); fflush(stdin); printf("Idioma do Jogo: "); gets(games[num].idioma); fflush(stdin); printf("Classificacao: "); gets(games[num].classificacao); printf("Data de Lancamento: "); gets(games[num].anolancamento); printf("Preco: "); gets(games[num].preco); games[num].codi = (num+1); num++; printf("\nCadastro conclu¡do com sucesso!"); getch();}void listar(void){ //Lista as estruturas válidas int x; printf("\n\nCadastros: "); if(num != 0) { for(x = 0; x < num;x++) { fflush(stdout); printf("\n\n* Jogo n£mero %d",games[x].codi); printf("\n> Nome do Jogo: %s",games[x].nome); printf("\n> Nome do Fabricante: %s",games[x].nomefab); printf("\n> Idioma do Jogo: %s",games[x].idioma); printf("\n> Classificacao: %s",games[x].classificacao); printf("\n> Data de Lancamento: %s",games[x].anolancamento); printf("\n> Preco: %s",games[x].preco); } printf("\n\nListagem completa!"); getch(); } else { printf("\n\nNÆo existe cadastro algum!"); getch(); }}void comp(char teste1,char teste2){ if(teste1 == teste2) iguais++;}void pesquisar(void){ int x,y=0,z; char comparar[30]; printf("\nDigite o nome do Jogo: "); fflush(stdin); gets(comparar); printf("\n\nJogos encontrados: "); if(num != 0) { for(x = 0; x < num;x++) { for(z=0;z<6;z++) comp(games[x].nome[z],comparar[z]); if(iguais >= 3) { printf("\n\n* Jogo n£mero %i",games[x].codi); printf("\n> Nome do Jogo: %s",games[x].nome); printf("\n> Nome do Fabricante: %s",games[x].nomefab); printf("\n> Idioma do Jogo: %s",games[x].idioma); printf("\n> Classificacao: %s",games[x].classificacao); printf("\n> Data de Lancamento: %s",games[x].anolancamento); printf("\n> Preco: %s",games[x].preco); y++; iguais = 0; } } if(y > 0) { printf("\n\nListagem concluida com sucesso!"); getch(); } else { printf("\n\nJogo nÆo encontrado!"); getch(); } } else { printf("\n\nNÆo existe cadastro algum!"); getch(); }} void libera(void){ //Libera a memória ocupada pela matriz jogos free(games);}void salvar(void){ //Salva os jogos em um arquivo arquivo = fopen(usua,"wb"); fwrite(games, sizeof(struct lojagames), num, arquivo); fclose(arquivo); arquivo = fopen(config,"w"); fwrite(&c, strlen(c), 1, arquivo); fclose(arquivo); printf("Salvo com sucesso!"); getch();} void carrega(void){ //Carrega os jogos já existentes int tam=0,ch,x; if(arquivo = fopen(usua, "rb")) { while((ch = fgetc(arquivo)) != EOF) { tam++; } num = tam/sizeof(struct lojagames); rewind(arquivo); games = (struct lojagames*)(malloc(num*sizeof(struct lojagames))); fread(games,sizeof(struct lojagames),num,arquivo); fclose(arquivo); } if(arquivo = fopen(config, "r")) { fread(&c[0],1,1,arquivo); fread(&c[1],1,1,arquivo); fclose(arquivo); fclose(arquivo); } }void editar(void){ //Edita um jogo int codigo; printf("Digite o c¢digo do jogo: "); scanf("%d",&codigo); if (codigo <= num) { codigo--; printf("\nEntrada de dados do jogo:\n\n"); printf("Nome do Jogo: "); fflush(stdin); gets(games[codigo].nome); fflush(stdin); printf("Nome do Fabricante: "); gets(games[codigo].nomefab); fflush(stdin); printf("Idioma do Jogo: "); gets(games[codigo].idioma); fflush(stdin); printf("Classificacao: "); gets(games[codigo].classificacao); printf("Data de Lancamento: "); gets(games[codigo].anolancamento); printf("Preco: "); gets(games[codigo].preco); printf("\nJogo editado!"); } else printf("Jogo nÆo existe!"); getch();}void apagar(void){ //Apaga um jogo int codigo,x; printf("\nDigite o c¢digo do jogo que deseja apagar: "); scanf("%i",&codigo); codigo--; for(x=codigo;x<(num-1);x++) { games[x] = games[x+1]; games[x].codi = games[x].codi-1; } num--; games = (struct lojagames*)(realloc(games,((num)*sizeof(struct lojagames)))); printf("\nJogo apagado com sucesso!"); getch(); }void exportar(void){ //Exporta jogos int x; char head[400]={"<html><head><title>Catalogo de Jogos</title></head><body><table border=1 align=center cellpadding=3 cellspacing=0 bgcolor=#000000><tr><td>Nome do Jogo:</td><td>Nome do Fabricante:</td> <td>Idioma:</td><td>Classificacao:</td><td>Data de Lancamento:</td><td>Preco:</td></tr>"}; char fim[18]; char *buffer; arquivo = fopen(html,"w"); //Grava as <> fwrite(head,260,1,arquivo); for(x=0;x<num;x++) { //Grava cada contato em uma linha strcpy(buffer,"<tr bgcolor=#0099CC>"); fwrite(&buffer,20,1,arquivo); strcpy(buffer,"<td>"); fwrite(&buffer,5,1,arquivo); fwrite(games[x].nome,strlen(games[x].nome),1,arquivo); strcpy(buffer,"</td>"); fwrite(&buffer,5,1,arquivo); strcpy(buffer,"<td>"); fwrite(&buffer,5,1,arquivo); fwrite(games[x].nomefab,strlen(games[x].nomefab),1,arquivo); strcpy(buffer,"</td>"); fwrite(&buffer,5,1,arquivo); strcpy(buffer,"<td>"); fwrite(&buffer,5,1,arquivo); fwrite(games[x].idioma,strlen(games[x].idioma),1,arquivo); strcpy(buffer,"</td>"); fwrite(&buffer,5,1,arquivo); strcpy(buffer,"<td>"); fwrite(&buffer,5,1,arquivo); fwrite(games[x].classificacao,strlen(games[x].classificacao),1,arquivo); strcpy(buffer,"</td>"); fwrite(&buffer,5,1,arquivo); strcpy(buffer,"<td>"); fwrite(&buffer,5,1,arquivo); fwrite(games[x].anolancamento,strlen(games[x].anolancamento),1,arquivo); strcpy(buffer,"</td>"); fwrite(&buffer,5,1,arquivo); strcpy(buffer,"<td>"); fwrite(&buffer,5,1,arquivo); fwrite(games[x].preco,strlen(games[x].preco),1,arquivo); strcpy(buffer,"</td>"); fwrite(&buffer,5,1,arquivo); strcpy(buffer,"</tr>"); fwrite(&buffer,5,1,arquivo); } strcpy(buffer,""); fflush(stdout); fflush(stdin); strcpy(fim,"</table></html>"); fwrite(&fim,16,1,arquivo); fclose(arquivo); printf("Jogos exportados!"); getch(); } main.cpp /*Cria menu, e serve como trigger para as funções*/#include <stdio.h>#include <stdlib.h>#include "cab.h"int main(int argc, char *argv[]){ int cod=1; carrega(); while(cod != 0) { clrscr(); printf("\n\n"); printf(" ||----------------------------------------------||\n"); printf(" || Catalogo de Jogos ||\n"); printf(" ||______________________________________________||\n"); printf(" || 1 - Incluir jogo ||\n"); printf(" || 2 - Pesquisar jogo ||\n"); printf(" || 3 - Listar todos os jogos ||\n"); printf(" || 4 - Salvar ||\n"); printf(" || 5 - Apagar jogo ||\n"); printf(" || 6 - Editar jogo ||\n"); printf(" || 7 - Exportar em HTML ||\n"); printf(" || 0 - Sair ||\n"); printf(" ||______________________________________________||\n\nOp‡Æo: "); fflush(stdin); scanf("%d",&cod); if(cod == 1) incluir(); if(cod == 2) pesquisar(); if(cod == 3) listar(); if(cod == 4) salvar(); if(cod == 5) apagar(); if(cod == 6) editar(); if(cod == 7) exportar(); } libera(); return(0); } Compartilhar este post Link para o post Compartilhar em outros sites
nordi 1 Denunciar post Postado Julho 19, 2006 achei bem legal.... que acha manta um artigo sobre isso pode ajudar muita gente com isso cara At+ http://forum.imasters.com.br/public/style_emoticons/default/joia.gif Compartilhar este post Link para o post Compartilhar em outros sites