Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
- struct Registro_Album{
- char nome[30];
- char tipo[30];
- char musicas[5][30];
- int ano;
- };
- struct Registro_Banda{
- char nome_banda[50];
- int data;
- int integrantes;
- int cod;
- int deletado;
- };
- struct Registro_Banda Banda;
- struct Registro_Album album[3];
- void criar(FILE *arquivo);//Função para criar o arquivo
- void inserir(FILE *arquivo);//Função para inserir dados
- void exibir(FILE *arquivo);//Função para exibir dados
- void pesquisar(FILE *arquivo);//Função para pesquisar dados
- void creditos();//Função para informações extras
- int main(){
- int op;
- int codigo;
- FILE *arquivo;
- criar(arquivo);
- do{
- printf("***********************************\n");
- printf("* MENU *\n");
- printf("***********************************\n");
- printf("* 1 - Cadastrar Banda *\n");
- printf("* 2 - Listar Bandas *\n");
- printf("* 3 - Pesquisar Banda *\n");
- printf("* 4 - Alterar Banda *\n");//falta
- printf("* 5 - Remover Bandas *\n");//falta
- printf("* 6 - Creditos *\n");
- printf("* 7 - Sair *\n");
- printf("***********************************\n");
- printf("\nDigite sua opcao: ");
- scanf("%d",&op);
- switch(op){
- case 1:{
- system("cls");
- inserir(arquivo);
- break;
- }
- case 2:{
- system("cls");
- exibir(arquivo);
- break;
- }
- case 3:{
- system("cls");
- pesquisar(arquivo);
- break;
- }
- case 4:{
- arquivo = fopen("Banda.txt","rb");
- printf("Digite o codigo do registro: ");
- scanf("%d",&codigo);
- alterar(arquivo,codigo);
- break;
- }
- case 5:{
- //falta
- break;}
- case 6:{
- system("cls");
- creditos();
- break;}
- default:
- printf("Saindo!\n");
- }
- }while(op != 7);
- system("pause");
- }
- //Função para informações extras
- void creditos() {
- system("cls");
- printf("\n\n\n");
- printf("\t***********************************************************\n");
- printf("\t# Programa desenvolvido por: Francisco Balbino Neto *\n");
- printf("\t# Para mais informacoes acesse o site: www.ifdesenv.com *\n");
- printf("\t***********************************************************\n\n\n");
- printf("\t\t\tTecle <ENTER> para voltar");
- getch();
- system("cls");
- }
- //Função para alterar dados
- void alterar(FILE *arquivo, int cod)
- {
- struct Registro_Banda Banda;
- int achou=0;
- int posicao = 0; // inicio do arquivo
- // usar fseek para ir ao inicio do arquivo para nao correr risco de estar na frente do arquivo que quer alterar
- fseek(arquivo, posicao, SEEK_SET);//ou funçao rewind(arquivo)
- do
- {
- if (fread(&Banda,sizeof(struct Registro_Banda),1,arquivo) == 0)
- break;
- if (Banda.cod == cod){
- system("cls");
- printf("Registro Antigo\n\n");
- printf("Codigo............: %d\n",Banda.cod);
- printf("Nome: %s\n",Banda.nome_banda);
- printf("Data: %d\n",Banda.data);
- printf("<<<<<Digite o Registro novo>>>>\n\n");
- printf("Codigo: ");
- scanf("%d",&Banda.cod);
- fflush(stdin);
- printf("Nome da Banda....: ");
- gets(Banda.nome_banda);
- printf("Data: ");
- scanf("%d",&Banda.data);
- fflush(stdin);
- Banda.deletado=0;
- fseek(arquivo, posicao, SEEK_SET);
- achou= fwrite(&Banda,sizeof(struct Registro_Banda),1,arquivo) == sizeof(struct Registro_Banda);
- break;
- }
- // ajustar posicao em relacao ao inicio do arquivo
- posicao = posicao + sizeof(struct Registro_Banda);
- } while(1);
- if (!achou)
- printf("Nome nao encontrado\n");
- getch();
- system("cls");
- }
- //Função para pesquisar dados
- void pesquisar(FILE *arquivo){
- char Nomepesquisa[50];
- int achou = 1;
- fflush(stdin);
- if((arquivo = fopen("Banda.txt","rb")) == NULL){
- exit(0);
- }
- printf("\n----------------------------------------------------------\n\n");
- printf("Digite o nome da Banda que deseja pesquisar: ");
- gets(Nomepesquisa);
- printf("\n");
- rewind(arquivo);
- do
- {
- fread(&Banda,sizeof(struct Registro_Banda),1,arquivo);
- if(strcmp(Nomepesquisa,Banda.nome_banda) == 0){
- printf("Nome: %s\n",Banda.nome_banda);
- printf("Data: %d\n",Banda.data);
- printf("Codigo: %d\n",Banda.cod);
- achou=0;
- printf("\n----------------------------------------------------------\n\n");
- printf("\t\t\tTecle <ENTER> para voltar");
- getch();
- system("cls");
- break;
- }
- }while(!feof(arquivo));
- if(achou!=0){
- printf("Nome nao encontrado\n");
- printf("\n----------------------------------------------------------\n\n");
- }
- }
- //Função apara exibir dados
- void exibir(FILE *arquivo){
- if((arquivo = fopen("Banda.txt","rb")) == NULL){
- //exit(0); Função para sair do programa em caso de erro.
- printf("Problemas na abertura do arquivo!\n");
- printf("\nTecle <ENTER> para voltar!");
- getch();
- system("cls");
- main();
- }
- printf("\n----------------------------------------------------------\n\n");
- printf("As Bandas cadastradas sao: \n");
- fread(&Banda,sizeof(struct Registro_Banda),1,arquivo);
- while(!feof(arquivo)){//Enquanto não chega ao fim do arquivo, lê o aquivo
- printf("Nome: %s\n",Banda.nome_banda);
- printf("Data: %d\n",Banda.data);
- printf("Codigo: %d\n\n",Banda.cod);
- fread(&Banda,sizeof(struct Registro_Banda),1,arquivo);
- }
- printf("\n----------------------------------------------------------\n\n");
- printf("Tecle <ENTER> para voltar!");
- getch();
- system("cls");
- }
- //Função para inserir dados
- void inserir(FILE *arquivo){
- int tam,i;
- printf("Digite a quantidade de bandas que deseja Cadastrar: ");
- scanf("%d",&tam);
- (struct Banda*) malloc(tam*sizeof(struct Registro_Banda));//Aloca memória para a estrutura
- if((arquivo = fopen("Banda.txt","a+")) == NULL){
- exit(0);
- }
- printf("\n----------------------------------------------------------\n\n");
- for(i=0; i<tam; i++){
- fflush(stdin);
- printf("Digite o Nome da Banda: ");
- scanf("%s",&Banda.nome_banda);
- printf("Digite a data de criação da Banda: ");
- scanf("%d",&Banda.data);
- printf("Digite o codigo da Banda: ");
- scanf("%d",&Banda.cod);
- fwrite(&Banda,sizeof(struct Registro_Banda),1,arquivo);//gravadados
- printf("\n");
- }
- fclose(arquivo);
- printf("Tecle <ENTER> para voltar!");
- getch();
- system("cls");
- }
- //Função para criar o arquivo
- void criar(FILE *arquivo){
- if((arquivo = fopen("Banda.dat","wb")) == NULL){
- exit(0);
- }
- fclose(arquivo);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement