Compare commits

...

3 Commits

Author SHA1 Message Date
Matti
01292040fe Fix Line-Reading caused by \r whitespace 2024-11-12 11:17:05 +01:00
Matti
9b1c0ef213 Add Begin of CrimeStats 2024-11-12 10:20:30 +01:00
Matti
75fde4863d Add Early Return 2024-11-12 10:19:48 +01:00
4 changed files with 139 additions and 1 deletions

View File

@ -2,9 +2,11 @@
#include "Aufg1/forLoop.h"
#include "Aufg2/GuestList.h"
#include "Aufg3/Phonebook.h"
#include "Aufg4/CrimeStats.h"
int main() {
// Aufg1Main();
// Aufg2Main();
Aufg3Main();
// Aufg3Main();
Aufg4Main();
}

View File

@ -68,6 +68,7 @@ void readContactsFromFile(std::vector<Kontaktdaten*> *Telefonbuch, std::string *
if (!infile.is_open()) {
std::cout << "File does not exist" << std::endl;
return;
}
std::string line;

108
Aufg4/CrimeStats.cpp Normal file
View File

@ -0,0 +1,108 @@
#include <iostream>
#include <string>
#include <vector>
#include <fstream>
#include "CrimeStats.h"
#include "../Aufg2/GuestList.h"
// cdatetime,
// address,
// district,
// beat,
// grid,
// crimedescr,
// ucr_ncic_code,
// latitude,
// longitude,
void split(const std::string& s, char c,std::vector<std::string>& v) {
std::string::size_type i = 0;
std::string::size_type j = s.find(c);
while (j != std::string::npos) {
v.push_back(s.substr(i, j-i));
i = ++j;
j = s.find(c, j);
if (j == std::string::npos)
v.push_back(s.substr(i, s.length()));
}
}
std::string readFile(std::string &fileName, std::vector<Crime*> &allCrimes) {
std::string content;
std::ifstream infile;
infile.open(fileName);
if (!infile.is_open()) {
std::cout << "File does not exist" << std::endl;
return "FAILED_TO_READ_FILE";
}
std::string line;
while (std::getline(infile, line)) {
content += line;
std::vector<std::string> actualLines;
split(line, '\r', actualLines);
for (auto actual_line: actualLines) {
allCrimes.push_back(stringToCrime(actual_line));
}
}
return content;
}
Crime* stringToCrime(std::string &input) {
std::vector<std::string> tokens;
split(input, ',', tokens);
Crime* thisCrime = new Crime;
for (int i = 0; i < tokens.size(); i++) {
switch (i%tokens.size()) {
case 0:
thisCrime->cdatetime = tokens[0];
break;
case 1:
thisCrime->address = tokens[1];
break;
case 2:
thisCrime->district = tokens[2];
break;
case 3:
thisCrime->beat = tokens[3];
break;
case 4:
thisCrime->grid = tokens[4];
break;
case 5:
thisCrime->crimedescription = tokens[5];
break;
case 6:
thisCrime->ucr_ncic_code = tokens[6];
break;
case 7:
thisCrime->latitude = tokens[7];
break;
case 8:
thisCrime->longitude = tokens[8];
break;
default:
std::cout << "I am the Default case " << tokens.size() << std::endl;
}
}
return thisCrime;
}
void Aufg4Main() {
std::string fileName = "../Aufg4/IO-Files/SacramentocrimeJanuary2006.csv";
std::vector<Crime*> allCrimes;
std::string content = readFile(fileName, allCrimes);
// std::cout << content << std::endl << "EndOfFile" << std::endl;
std::cout << allCrimes.at(2)->crimedescription << std::endl;
}

27
Aufg4/CrimeStats.h Normal file
View File

@ -0,0 +1,27 @@
#ifndef CRIMESTATS_H
#define CRIMESTATS_H
#include <string>
#include <vector>
typedef struct CRIME{
std::string cdatetime;
std::string address;
std::string district;
std::string beat;
std::string grid;
std::string crimedescription;
std::string ucr_ncic_code;
std::string latitude;
std::string longitude;
} Crime;
void split(const std::string& s, char c,std::vector<std::string>& v);
void Aufg4Main();
std::string readFile(std::string &filename, std::vector<Crime*> &allCrimes);
Crime* stringToCrime(std::string &input);
#endif //CRIMESTATS_H