Seperate into diffrent Files
This commit is contained in:
parent
e274b6b218
commit
a071a17043
10
ActualMain.cpp
Normal file
10
ActualMain.cpp
Normal file
@ -0,0 +1,10 @@
|
||||
#include <stdio.h>
|
||||
#include "Aufg1/forLoop.h"
|
||||
#include "Aufg2/GuestList.h"
|
||||
#include "Aufg3/Phonebook.h"
|
||||
|
||||
int main() {
|
||||
// Aufg1Main();
|
||||
// Aufg2Main();
|
||||
Aufg3Main();
|
||||
}
|
29
Aufg1/forLoop.cpp
Normal file
29
Aufg1/forLoop.cpp
Normal file
@ -0,0 +1,29 @@
|
||||
#include <cstdio>
|
||||
#include "forLoop.h"
|
||||
|
||||
/*
|
||||
Ouput der Zahlen 10 bis 0 an die Konsole
|
||||
Ouput aller Buchstaben des Alphabets
|
||||
*/
|
||||
|
||||
void counter() {
|
||||
for (int i = 10; i > 0; i--)
|
||||
{
|
||||
printf("%d\n", i);
|
||||
}
|
||||
}
|
||||
|
||||
void alphabet() {
|
||||
char alpha[27] = "ABCDEFGHIJKLMNOPQRSTUVWXYZ";
|
||||
|
||||
for (char letter : alpha)
|
||||
{
|
||||
printf("%c ", letter);
|
||||
}
|
||||
}
|
||||
|
||||
void Aufg1Main()
|
||||
{
|
||||
counter();
|
||||
alphabet();
|
||||
}
|
10
Aufg1/forLoop.h
Normal file
10
Aufg1/forLoop.h
Normal file
@ -0,0 +1,10 @@
|
||||
#ifndef Aufg1FORLOOP_H
|
||||
#define Aufg1FORLOOP_H
|
||||
|
||||
void counter();
|
||||
|
||||
void alphabet();
|
||||
|
||||
void Aufg1Main();
|
||||
|
||||
#endif //Aufg1FORLOOP_H
|
61
Aufg2/GuestList.cpp
Normal file
61
Aufg2/GuestList.cpp
Normal file
@ -0,0 +1,61 @@
|
||||
#include "GuestList.h"
|
||||
|
||||
#include <iostream>
|
||||
#include <vector>
|
||||
|
||||
/*
|
||||
* GästeListe
|
||||
*
|
||||
* Konsoleninput zur Wahl Liste verlängern/ausgeben/Ende
|
||||
*/
|
||||
|
||||
|
||||
void showMenu() {
|
||||
std::cout << "1 to add Guest"
|
||||
<< std::endl
|
||||
<< "2 to print all Guests"
|
||||
<< std::endl
|
||||
<< "0 to exit"
|
||||
<< std::endl;
|
||||
}
|
||||
|
||||
void getInput(int &input) {
|
||||
|
||||
std::cin >> input;
|
||||
}
|
||||
|
||||
void printAllInVector(std::vector<std::string> &Myvector) {
|
||||
for (std::string name : Myvector)
|
||||
{
|
||||
std::cout << name
|
||||
<< std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void Aufg2Main()
|
||||
{
|
||||
std::vector<std::string> guestList;
|
||||
|
||||
while (true) {
|
||||
showMenu();
|
||||
|
||||
int input;
|
||||
getInput(input);
|
||||
|
||||
std::string name;
|
||||
|
||||
switch (input)
|
||||
{
|
||||
case 0:
|
||||
return;
|
||||
case 1:
|
||||
std::cin >> name;
|
||||
guestList.push_back(name);
|
||||
break;
|
||||
case 2:
|
||||
printAllInVector(guestList);
|
||||
default:
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
22
Aufg2/GuestList.h
Normal file
22
Aufg2/GuestList.h
Normal file
@ -0,0 +1,22 @@
|
||||
#ifndef Aufg2GUESTLIST_H
|
||||
#define Aufg2GUESTLIST_H
|
||||
|
||||
#include <string>
|
||||
#include <vector>
|
||||
/*
|
||||
* GästeListe
|
||||
*
|
||||
* Konsoleninput zur Wahl Liste verlängern/ausgeben/Ende
|
||||
*/
|
||||
|
||||
|
||||
void showMenu();
|
||||
|
||||
void getInput(int &input);
|
||||
|
||||
void printAllInVector(std::vector<std::string> &Myvector);
|
||||
|
||||
void Aufg2Main();
|
||||
|
||||
|
||||
#endif //GUESTLIST_H
|
198
Aufg3/Phonebook.cpp
Normal file
198
Aufg3/Phonebook.cpp
Normal file
@ -0,0 +1,198 @@
|
||||
#include <fstream>
|
||||
#include <iostream>
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
typedef struct contacts{
|
||||
std::string firstName;
|
||||
std::string lastName;
|
||||
int number;
|
||||
} Kontaktdaten;
|
||||
|
||||
|
||||
void addContact(Kontaktdaten* person, std::vector<Kontaktdaten*> *Telefonbuch) {
|
||||
Telefonbuch->push_back(person);
|
||||
// std::vector<Kontaktdaten *> buch = *Telefonbuch;
|
||||
// buch.push_back(person);
|
||||
}
|
||||
|
||||
void deleteAllContacts(std::vector<Kontaktdaten*> *Telefonbuch) {
|
||||
for (Kontaktdaten* pointer: *Telefonbuch) {
|
||||
delete pointer;
|
||||
}
|
||||
}
|
||||
|
||||
void printAllContacts(std::vector<Kontaktdaten*> *Telefonbuch) {
|
||||
for (Kontaktdaten * personpointer: *Telefonbuch) {
|
||||
Kontaktdaten person = *personpointer;
|
||||
std::cout << person.firstName << " " << person.lastName << " " << person.number << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
void saveAllContacts(std::vector<Kontaktdaten*> *Telefonbuch, std::string *fileName) {
|
||||
std::ofstream outfile;
|
||||
outfile.open(*fileName);
|
||||
|
||||
for (Kontaktdaten * personpointer: *Telefonbuch) {
|
||||
Kontaktdaten person = *personpointer;
|
||||
outfile << person.firstName << std::endl << person.lastName << std::endl << person.number << std::endl;
|
||||
}
|
||||
|
||||
outfile.close();
|
||||
}
|
||||
|
||||
int exponentiate(int base, int exponent) {
|
||||
int result = 1;
|
||||
while (exponent > 0) {
|
||||
result *= base;
|
||||
exponent--;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
int intStringToInt(std::string input) {
|
||||
int result = 0;
|
||||
|
||||
int size = input.length();
|
||||
for(int i = 0; i < size; i++) {
|
||||
int digit = input[size - 1 - i] - '0'; // -1 to consider 0-index // -'0' to get ascii indicies right
|
||||
result += digit * exponentiate(10, i); // shift digit
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
void readContactsFromFile(std::vector<Kontaktdaten*> *Telefonbuch, std::string *fileName) {
|
||||
std::ifstream infile;
|
||||
infile.open(*fileName);
|
||||
|
||||
if (!infile.is_open()) {
|
||||
std::cout << "File does not exist" << std::endl;
|
||||
}
|
||||
|
||||
std::string line;
|
||||
int counter = 0;
|
||||
Kontaktdaten * personpointer = new Kontaktdaten;
|
||||
while (std::getline(infile, line)) {
|
||||
|
||||
int attribute = counter % 3;
|
||||
counter++;
|
||||
|
||||
switch (attribute) {
|
||||
case 0:
|
||||
personpointer->firstName = line;
|
||||
break;
|
||||
case 1:
|
||||
personpointer->lastName = line;
|
||||
break;
|
||||
case 2:
|
||||
personpointer->number = intStringToInt(line);
|
||||
addContact(personpointer, Telefonbuch);
|
||||
personpointer = new Kontaktdaten;
|
||||
break;
|
||||
default:
|
||||
std::cout << "This should never happen" << std::endl;
|
||||
}
|
||||
}
|
||||
|
||||
infile.close();
|
||||
}
|
||||
|
||||
void addFirstSetOfContacts(std::vector<contacts*> * Telefonbuch) {
|
||||
auto * Robin = new Kontaktdaten;
|
||||
auto * Saxo = new Kontaktdaten;
|
||||
auto * Jesus = new Kontaktdaten;
|
||||
|
||||
Robin->number = 123456;
|
||||
Robin->firstName = "Robin";
|
||||
Robin->lastName = "Schnaiter";
|
||||
|
||||
Saxo->number = 987654;
|
||||
Saxo->firstName = "Saxobastian";
|
||||
Saxo->lastName = "Brosch";
|
||||
|
||||
Jesus->number = 666;
|
||||
Jesus->firstName = "Jesus";
|
||||
Jesus->lastName = "Nazarett";
|
||||
|
||||
addContact(Robin, Telefonbuch);
|
||||
addContact(Saxo, Telefonbuch);
|
||||
addContact(Jesus, Telefonbuch);
|
||||
}
|
||||
|
||||
void addSecondSetOfContacts(std::vector<contacts*> * Telefonbuch) {
|
||||
auto * Bruno = new Kontaktdaten;
|
||||
auto * Peter = new Kontaktdaten;
|
||||
auto * Ralf = new Kontaktdaten;
|
||||
|
||||
Bruno->number = 462581;
|
||||
Bruno->firstName = "Bruno";
|
||||
Bruno->lastName = "Braunbär";
|
||||
|
||||
Peter->number = 110;
|
||||
Peter->firstName = "Peter";
|
||||
Peter->lastName = "Polizei";
|
||||
|
||||
Ralf->number = 9999;
|
||||
Ralf->firstName = "Ralf";
|
||||
Ralf->lastName = "Rotbart";
|
||||
|
||||
addContact(Bruno, Telefonbuch);
|
||||
addContact(Peter, Telefonbuch);
|
||||
addContact(Ralf, Telefonbuch);
|
||||
}
|
||||
/*
|
||||
Kontaktdaten * createContact(std::string firstName, std::string lastName, int number) {
|
||||
Kontaktdaten person = new Kontaktdaten;
|
||||
|
||||
person.firstName = firstName;
|
||||
person.lastName = lastName;
|
||||
person.number = number;
|
||||
|
||||
return & person;
|
||||
}
|
||||
*/
|
||||
|
||||
void Aufg3Main() {
|
||||
std::string fileName = "../Aufg3/IO-Files/phonebook.thorsten";
|
||||
std::vector<Kontaktdaten*> Telefonbuch;
|
||||
|
||||
for (int i=0; i<1; i++) {
|
||||
readContactsFromFile(&Telefonbuch, &fileName);
|
||||
std::cout << "Done with reading " << i << std::endl;
|
||||
}
|
||||
|
||||
/*
|
||||
*Robin->number = 123456;
|
||||
Robin->firstName = "Robin der Neue";
|
||||
Robin->lastName = "Schnaiter";
|
||||
|
||||
Saxo->number = 987654;
|
||||
Saxo->firstName = "Saxobastian";
|
||||
Saxo->lastName = "Broschianer";
|
||||
|
||||
Jesus->number = 6666666;
|
||||
Jesus->firstName = "Jesus";
|
||||
Jesus->lastName = "Nazarett";
|
||||
*/
|
||||
|
||||
// addFirstSetOfContacts(&Telefonbuch);
|
||||
addSecondSetOfContacts(&Telefonbuch);
|
||||
|
||||
// printAllContacts(&Telefonbuch);
|
||||
saveAllContacts(&Telefonbuch, &fileName);
|
||||
deleteAllContacts(&Telefonbuch);
|
||||
|
||||
/*
|
||||
* IDE beschwert sich bei Erstellen von * Robin über leaked Memory
|
||||
* deleteAllContacts() sollte den Speicher befreien
|
||||
*
|
||||
* Zugriff auf *Robin nach delete Statement führt zu Fehler?
|
||||
* -> IDE ist zu dumm?
|
||||
*/
|
||||
|
||||
//
|
||||
// std::cout << Robin << std::endl;
|
||||
// auto test = *Robin;
|
||||
// std::cout << test.firstName << std::endl;
|
||||
}
|
40
Aufg3/Phonebook.h
Normal file
40
Aufg3/Phonebook.h
Normal file
@ -0,0 +1,40 @@
|
||||
#ifndef PHONEBOOK_H
|
||||
#define PHONEBOOK_H
|
||||
#include <string>
|
||||
#include <vector>
|
||||
|
||||
typedef struct contacts Kontaktdaten;
|
||||
|
||||
void addContact(Kontaktdaten* person, std::vector<Kontaktdaten*> *Telefonbuch);
|
||||
|
||||
void deleteAllContacts(std::vector<Kontaktdaten*> *Telefonbuch);
|
||||
|
||||
void printAllContacts(std::vector<Kontaktdaten*> *Telefonbuch);
|
||||
|
||||
void saveAllContacts(std::vector<Kontaktdaten*> *Telefonbuch, std::string *fileName);
|
||||
|
||||
int exponentiate(int base, int exponent);
|
||||
|
||||
int intStringToInt(std::string input);
|
||||
|
||||
void readContactsFromFile(std::vector<Kontaktdaten*> *Telefonbuch, std::string *fileName);
|
||||
|
||||
void addFirstSetOfContacts(std::vector<contacts*> * Telefonbuch);
|
||||
|
||||
void addSecondSetOfContacts(std::vector<contacts*> * Telefonbuch);
|
||||
/*
|
||||
Kontaktdaten * createContact(std::string firstName, std::string lastName, int number) {
|
||||
Kontaktdaten person = new Kontaktdaten;
|
||||
|
||||
person.firstName = firstName;
|
||||
person.lastName = lastName;
|
||||
person.number = number;
|
||||
|
||||
return & person;
|
||||
}
|
||||
*/
|
||||
|
||||
void Aufg3Main();
|
||||
|
||||
|
||||
#endif //PHONEBOOK_H
|
Loading…
x
Reference in New Issue
Block a user