Dev - C++ - programa en C++ que analice el archivo datos.txt

 
Vista:

programa en C++ que analice el archivo datos.txt

Publicado por sleepwalking (3 intervenciones) el 24/06/2019 01:46:12
Se le solicita que desarrolle un programa en C++ que analice el archivo datos.txt. Este archivo contiene el registro de las denuncias de robo con fuerza de los años 2015 y 2016 asociadas a cada comuna y región.
En cada fila del archivo hay 4 valores: el primero corresponde a la región, el segundo al nombre de la comuna, el tercero a las denuncias del año 2015 y el cuarto a las denuncias del año 2016.
Por ejemplo: (datos asi viene dentro del archivo)
15 Arica 123 95
15 Camarones 2 0
15 Putre 1 0
15 General-Lagos 0 0
1 Iquique 129 118
Se le pide que cree un programa en C++ que analice y muestre por pantalla lo siguente:
 Total de denuncias del 2015
 Total de denuncias del 2016
 Total de denuncias del 2016 por región.
 Región con más denuncias en el año 2016
 Comuna con más denuncias en el año 2016
 Región con el mayor incremento porcentual en el año 2016 respecto al año 2015.

Ayuda urgente:(
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de SuperIndio
Val: 52
Ha disminuido 1 puesto en Dev - C++ (en relación al último mes)
Gráfica de Dev - C++

programa en C++ que analice el archivo datos.txt

Publicado por SuperIndio (25 intervenciones) el 24/06/2019 19:19:41
Pero que estrctura o diseño de registro tiene esto? es decir de :
15 Arica 123 95
que es 15 ( acaso es el año )
Arica seria el lugar
123 que es?
95 que es?

Por ejemplo: (datos asi viene dentro del archivo)
15 Arica 123 95
15 Camarones 2 0
15 Putre 1 0
15 General-Lagos 0 0
1 Iquique 129 118
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa en C++ que analice el archivo datos.txt

Publicado por Rita Diaz (3 intervenciones) el 24/06/2019 19:48:55
Esta descrito en el enunciado. Antes de que pusiera el ejemplo
En el ejemplo:
15 es la región
Arica la ciudad
123 denuncias en el año 2015
95 denuncias en el año 2016
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa en C++ que analice el archivo datos.txt

Publicado por a (1 intervención) el 24/06/2019 21:47:57
dejame adivinar... udp?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa en C++ que analice el archivo datos.txt

Publicado por sleepwalking (3 intervenciones) el 25/06/2019 00:27:39
si... como sabes?
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

programa en C++ que analice el archivo datos.txt

Publicado por el screenager (1 intervención) el 25/06/2019 02:48:48
Buenas, he hecho tu programa, ahora te lo paso pero antes te queria informar que recientemente me he creado un canal de yt y empezare a subir videos explicando c++ esta semana, es este ( https://www.youtube.com/channel/UCa1LON7bWj9hjC67IycENTg/featured ).
Si te quieres suscribir y estar al tanto te estaria agradecido, dicho esto. Este es el codigo alguna duda preguntame.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
#include "iostream"
#include "fstream"
#include "string"
#include "vector"
 
using namespace std;
 
struct tpDato{
	int region;
	string comuna;
	int denuncias2015;
	int denuncias2016;
};
 
void sacarDatosDelArchivo(string, vector<tpDato>&);
int totalDenuncias2015(vector<tpDato>);
int totalDenuncias2016(vector<tpDato>);
void totalDenuncias2016PorRegion(vector<tpDato>);
int regionConMasDenuncias2016(vector<tpDato>);
string comunaConMasDenuncias2016(vector<tpDato>);
int regionConMayorIncremento2015a2016(vector<tpDato>);
 
 
 
int main(){
	string p="datos.txt";
	vector<tpDato> misDatos;
	sacarDatosDelArchivo(p,misDatos);
 
	cout << "Total denuncias 2015: " << totalDenuncias2015(misDatos) << endl;
	cout << "Total denuncias 2016: " << totalDenuncias2016(misDatos) << endl;
    totalDenuncias2016PorRegion(misDatos);
    cout << "La region con mas denuncias en 2016: " << regionConMasDenuncias2016(misDatos) << endl;
    cout << "La comuna con mas denuncias en 2016: " <<  comunaConMasDenuncias2016(misDatos) << endl;
    cout << "La region con mayor Incremento Porcentual de 2015  a 2016 es : " << regionConMayorIncremento2015a2016(misDatos) << endl;
 
 
}
 
void sacarDatosDelArchivo(string nombreArchivo, vector<tpDato>& Datos){
	filebuf f;
	tpDato temporal;  //registro para almacenar los valores de manera temporal
	if(f.open(nombreArchivo.c_str(),ios::in | ios::out)==0){
		cout << "Error no se puede acceder al archivo";
	}
	istream leer(&f);
	while(!leer.eof()){
		leer >>temporal.region;
		leer >>temporal.comuna;
		leer >>temporal.denuncias2015;
		leer >>temporal.denuncias2016;
		Datos.push_back(temporal);
	}
}
 
int totalDenuncias2015(vector<tpDato> x){
	int nr=0;
	for(int i=0;i<x.size();i++){
		nr+=x[i].denuncias2015;
	}
	return nr;
}
 
int totalDenuncias2016(vector <tpDato> x){
	int nr=0;
	for(int i=0;i<x.size();i++){
		nr+=x[i].denuncias2016;
	}
	return nr;
}
 
void totalDenuncias2016PorRegion(vector <tpDato> x){
     vector <int> regionTemporal;
     vector <int> denunciaTemporal;
 
	int contador=0;
	do{
		regionTemporal.push_back(x[contador].region);
		denunciaTemporal.push_back(x[contador].denuncias2016);
 
		if(contador>=1){
		    if(x[contador].region == x[contador-1].region){
	            x[contador-1].region=x[contador-1].region + x[contador].region;
		    	regionTemporal.pop_back();
				denunciaTemporal.pop_back();
 
			}
		}
 
	}while(++contador < x.size());
 
 
	 for(int z=0; z<regionTemporal.size();z++){
	 	cout << "En la region " << regionTemporal[z] << " ha habido " << denunciaTemporal[z] << " denuncias" << endl;
	 }
}
 
int regionConMasDenuncias2016(vector<tpDato> x){
	int nr=0;
	int region=0;
	for(int i=0; i < x.size(); i++){
		if(x[i].denuncias2016 > nr){
 
			nr=x[i].denuncias2016;
			region=x[i].region;
		}
	}
	return region;
}
 
string comunaConMasDenuncias2016(vector<tpDato> x){
		int nr=0;
	string comuna;
	for(int i=0; i < x.size(); i++){
		if(x[i].denuncias2016 > nr){
			nr=x[i].denuncias2016;
			comuna=x[i].comuna;
		}
	}
	return comuna;
}
 
 
int regionConMayorIncremento2015a2016(vector<tpDato> x){
   double porcentaje=0.0;
   int region;
	for(int i=0; i<x.size();i++){
 
       if (x[i].denuncias2016 != 0 && x[i].denuncias2015 !=0 &&
	   ((x[i].denuncias2016*100)/x[i].denuncias2015) >porcentaje){
			region=x[i].region;
			porcentaje=(x[i].denuncias2016*100)/x[i].denuncias2015;
		}
	}
 
	return region;
}
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar