Ir ao conteúdo
  • Cadastre-se

Manipulacao de Arquivo Inicializar dados...


brenosobral

Posts recomendados


/*
Devido ao alto índice de violência que tem acontecido no Rio de Janeiro, e visando melhorar a sua estratégia de trabalho,
uma empresa de segurança faz constantemente um levantamento de casos de violência registrados diariamente.
Esta empresa armazena em um arquivo binário as informações de todos os tipos de violência registrados.
Cada registro deste arquivo é composto pelos seguintes campos:

 Código do tipo de violência (inteiro)
 Descrição da violência (string de 100 posições)
 Número de casos ocorridos (inteiro)

a) Faça uma função chamada le_casos(), que deve ler os dados do arquivo
Faça uma função chamada busca_casos(), para realizar a busca de um código de tipo de violência no arquivo e
exibir na tela o total de violências ocorridas deste tipo
c) Faça uma função grava_casos(), que gera o arquivo
d) Gerar um segundo arquivo com a situação atual na cidade considerando existir, no máximo, 10 diferentes tipos de códigos.

Neste arquivo, serão gravados o código com a respectiva totalização de cada um
Fazer chamada as funções criadas.*/

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <ctype.h>
#include <string.h>



using namespace System;
void menu();
void lecasos();
void grava();
void busca();
void gerar2arquivo();

struct Case{
int violencia;
char violenciadr[100];
int casos;
}criador;

FILE *fp; // 1 arquivo
FILE *fp2; // letra d 2 arquivo

int violencia;
int casos;
char violenciadr[100];
int select;

int main(array<System::String ^> ^args)
{
menu();
switch(select){
case 1:
grava();
break;
case 2:
busca();
break;
case 3:
lecasos();
break;
case 4:
break;
case 5:
printf("Saindo...\n");
exit(0);
break;
default:
printf("Opacao Invalida - Utilize o Menu");
menu();
}while(select != 5);

system("pause");
return 0;
}

// apos inserir uma opcao,na segunda vez que vai inserir
//uma opcao o programa nao executa

void menu(){
system("cls");
printf("|------------------------------------------------|\n");
printf("| 1 - Gravar Casos |\n");
printf("| 2 - Buscar Casos |\n");
printf("| 3 - Ler Casos |\n");
printf("| 4 - Situacao Atual da Cidade - Gerar |\n");
printf("| 5 - Sair |\n");
printf("|------------------------------------------------|\n");
printf("Entre com a Opcao :\n");
scanf("%d",&select);
}

void grava(){
fp = fopen("casos.bin","wb");
if(!fp){
puts("Erro ao criar o arquivo");
exit(0);
}
puts("Insira o Numero do Codigo para o Caso:");
scanf("%d",&criador.casos);
while(criador.casos !=0){
puts("Digite o codigo para o tipo da violencia:");
scanf("%d",&criador.violencia);
puts("Digite a descricao da violencia:");
scanf("%s",&criador.violenciadr);
criador.violenciadr[100]=toupper(criador.violenciadr[100]);
fflush(stdin);
fwrite(&criador,sizeof(struct Case),1,fp);
puts("Digite o numero de casos diferente de 0:");
scanf("%d",&criador.casos);
fflush(stdin);
if(criador.casos == 0){
menu();
}
fclose(fp);
}

}

// a busca esta sendo feita ,
//porém nao esta imprimindo os dados requisitados
void busca(){
int i;
int voltar;
fp = fopen("casos.bin","r+");
if(!fp){
puts("Erro ao criar o arquivo");
exit(0);
}
do{
printf("Digite o codigo para o tipo da violencia:\n");
scanf("%d",&criador.violencia);
fread(&criador,sizeof(struct Case),1,fp);
while(!feof(fp)){
casos = criador.casos;
fread(&criador,sizeof(struct Case),1,fp);
printf("\nNumero de Casos para essa violencia: %d",casos);
puts("\nDeseja retornar ao Menu? - Sim=1 Nao=0\n");
scanf("%d",&voltar);
}
fclose(fp);
}while(voltar != 1);
if(voltar == 1) menu();
}


// Nao esta exibiindo corretamente
//os dados do tipo de violencia inserido....
void lecasos(){
int i;
fp = fopen("casos.bin","r+");
if(!fp){
puts("Erro ao criar o arquivo");
exit(0);
}
printf("Exibir qual tipo de Violencia? Insira o Codigo:\n");
scanf("%d",&criador.violencia);
fread(&criador,sizeof(struct Case),1,fp);
while(!feof(fp)){
violencia = criador.violencia;
casos = criador.casos;
fread(&criador,sizeof(struct Case),1,fp);
printf("Tipo da Violencia: %d \nCasos : %d\n",violencia,casos);
}
fclose(fp);

}


void gerar2arquivo(){
fp = fopen("casos.bin","r+");
if(!fp){
puts("Erro ao criar o arquivo");
exit(0);
}
fp2 = fopen("casos.bin","wb");
if(!fp2){
puts("Erro ao criar o arquivo");
exit(0);
}
}

Problemas dentro do CODE

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

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...