Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <fstream>
- #include <vector>
- #include <sstream>
- using namespace std;
- #define MAX_COMUNAS 36
- string nombreComuna[MAX_COMUNAS]={
- "VACIO","Cerrillos","Cerro navia","Conchali","El bosque", "Estacion central", "Huechuraba","Independencia","La cisterna",
- "La florida"," La granja","La pintana","La reina", "Las condes","Lo barnechea","Lo espejo", "Lo prado", "Macul",
- " Maipu", "Nunoa","Pedro Aguirre Cerda","Penalolen", "Providencia","Pudahuel", "Puente alto", "Quilicura","Quinta normal",
- "Recoleta","Renca","San bernardo","San joaquin", "San miguel","Santiago","San ramon","Vitacura"};
- int numeroComunaPorNombre(string valor){
- for(int i=1;i<MAX_COMUNAS;i++)
- if(nombreComuna[i]==valor)
- return i;
- return 0;
- }
- string nombreComunaPorNumero(int valor){
- if(valor<MAX_COMUNAS)
- return nombreComuna[valor];
- else
- return "_";
- }
- struct DatosComuna{
- string fecha;
- string origen;
- string destino;
- int viajes;
- };
- void procesarArchivo(string nombreArchivo, DatosComuna lista[], int &cantidad ){
- ifstream archivo;
- archivo.open(nombreArchivo.c_str(), ios::in);
- if(!archivo.is_open()){
- cout << "Error en la apertura del archivo "+nombreArchivo;
- } else {
- string linea;
- while (getline(archivo, linea, '\n')){
- vector<string> items;
- stringstream ss(linea);
- string temp;
- while (getline(ss, temp, ','))
- items.push_back(temp);
- //me saltaré la primera línea
- if(cantidad > 0) {
- lista[cantidad].fecha = items[0];
- lista[cantidad].origen = items[1];
- lista[cantidad].destino = atoi(items[2].c_str());
- lista[cantidad].viajes = atoi(items[3].c_str());
- }
- cantidad++;
- }
- }
- cout <<"se han cargado "<<cantidad<<" registros"<<endl;
- }
- void mostrarVector(DatosComuna lista[], int cantidad ){
- int suma = 0;
- for(int i=0; i<cantidad; i++) {
- suma += lista[i].viajes;
- cout << lista[i].fecha<<" ";
- cout << lista[i].origen<<" ";
- cout << lista[i].destino<<" ";
- cout << lista[i].viajes<<" ";
- cout << suma<<" "<<endl;
- }
- }
- //usar como variable global para que soporte una gran cantidad de datos
- #define MAX_REGISTRO 100000
- DatosComuna lista[MAX_REGISTRO];
- int main()
- {
- //string nombreArchivo = "C:\\Users\\mono\\Desktop\\Calcular listas con n numeros\\ViajesComunas.txt";
- string nombreArchivo = "D:\\TEXTO\\ViajesComunas_std.csv";
- int cantidad = 0;
- //cargamos los datos del archivo a un vector, eso se hace 1 sola vez
- procesarArchivo(nombreArchivo, lista, cantidad);
- //luego para todos los problemas a resolver sólo operamos con el vector.
- mostrarVector(lista, cantidad);
- /**
- Para más información
- Código de ejemplo: https://pastebin.com/8v57miv7
- Cápsula de contenidos "Cápsula-Ejemplo utilización de vectores con estructuras (creada el semestre 2020-01)"
- https://www.youtube.com/watch?v=4YVVcFahKVg
- **/
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement