Manipulaçao de Arquivos Inicializacao de Dados
/*
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
b) 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>
using namespace System. void menu(). void lecasos(). void grava(). 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: lecasos(). break. case 2: break. case 3: grava(). break. case 4: printf("Saindo...\n"). exit. break. default: printf("Opacao Invalida - Utilize o Menu"). menu(). }while(select!= 4). system("pause"). return 0. } void menu(){ printf("|------------------------------------------------|\n"). printf("| 1 - Ler Casos |\n"). printf("| 2 - Buscar Casos |\n"). printf("| 3 - Gravar Casos |\n"). printf("| 4 - 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). if(criador.casos ==0){ system("cls"). menu(). }
}
fclose(fp). } void lecasos(){ int i. fp = fopen("casos.bin","rb"). if(!fp){ puts("Erro ao criar o arquivo"). exit(0). } fread(&criador,sizeof(struct Case),1,fp). printf("Exibir Dados:\n"). while(!feof(fp)){ for(i=0. i < criador.casos. i++){ // tentei iniciar um loop para mostrar tudo, porem deu erro..... como eu mostro esse bloco de informaçoes para o usuario? violencia = criador.violencia. casos=criador.casos. violenciadr[100] = criador.violenciadr[100]. fread(&criador,sizeof(struct Case),1,fp). printf("Violencias: %d Codigos: %d Descrição das Violencias:%s",violencia,casos,violenciadr). } } fclose(fp). } Meu problema esta na funcao lecasos, alguem pode me orientar na questao de como e inicializado o loop e uma devida explicacao, se e correto utilizar o fread para eu ler os casos que foram inseridos na funcao acima dela. Desde ja ObrigadoDiscussão (23)
Carregando comentários...