Compare commits

..

3 Commits

Author SHA1 Message Date
Matti
1c704a5ede Delete old Main 2024-11-11 22:48:33 +01:00
Matti
a071a17043 Seperate into diffrent Files 2024-11-11 22:47:51 +01:00
Matti
e274b6b218 Update Demo-Cases 2024-11-11 21:37:51 +01:00
7 changed files with 242 additions and 146 deletions

10
ActualMain.cpp Normal file
View 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
View 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
View 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
View 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
View 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

View File

@ -1,98 +1,8 @@
#include <fstream> #include <fstream>
#include <iostream> #include <iostream>
#include <string>
#include <vector> #include <vector>
#pragma region Aufgabe1
/*
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();
}
#pragma endregion
#pragma region Aufgabe2
/*
* 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;
}
}
}
#pragma endregion
#pragma region Telefonbuch
typedef struct contacts{ typedef struct contacts{
std::string firstName; std::string firstName;
std::string lastName; std::string lastName;
@ -106,6 +16,12 @@ void addContact(Kontaktdaten* person, std::vector<Kontaktdaten*> *Telefonbuch) {
// buch.push_back(person); // buch.push_back(person);
} }
void deleteAllContacts(std::vector<Kontaktdaten*> *Telefonbuch) {
for (Kontaktdaten* pointer: *Telefonbuch) {
delete pointer;
}
}
void printAllContacts(std::vector<Kontaktdaten*> *Telefonbuch) { void printAllContacts(std::vector<Kontaktdaten*> *Telefonbuch) {
for (Kontaktdaten * personpointer: *Telefonbuch) { for (Kontaktdaten * personpointer: *Telefonbuch) {
Kontaktdaten person = *personpointer; Kontaktdaten person = *personpointer;
@ -179,31 +95,10 @@ void readContactsFromFile(std::vector<Kontaktdaten*> *Telefonbuch, std::string *
} }
} }
infile.close(); infile.close();
} }
/* void addFirstSetOfContacts(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 TelefonbuchMain() {
std::string fileName = "../IO-Files/Telefonbuch.txt";
std::vector<Kontaktdaten*> Telefonbuch;
for (int i=0; i<1; i++) {
readContactsFromFile(&Telefonbuch, &fileName);
std::cout << "Done with reading " << i << std::endl;
}
auto * Robin = new Kontaktdaten; auto * Robin = new Kontaktdaten;
auto * Saxo = new Kontaktdaten; auto * Saxo = new Kontaktdaten;
auto * Jesus = new Kontaktdaten; auto * Jesus = new Kontaktdaten;
@ -220,6 +115,53 @@ void TelefonbuchMain() {
Jesus->firstName = "Jesus"; Jesus->firstName = "Jesus";
Jesus->lastName = "Nazarett"; 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->number = 123456;
Robin->firstName = "Robin der Neue"; Robin->firstName = "Robin der Neue";
@ -234,41 +176,23 @@ void TelefonbuchMain() {
Jesus->lastName = "Nazarett"; Jesus->lastName = "Nazarett";
*/ */
addContact(Robin, &Telefonbuch); // addFirstSetOfContacts(&Telefonbuch);
addContact(Saxo, &Telefonbuch); addSecondSetOfContacts(&Telefonbuch);
addContact(Jesus, &Telefonbuch);
// printAllContacts(&Telefonbuch); // printAllContacts(&Telefonbuch);
saveAllContacts(&Telefonbuch, &fileName); saveAllContacts(&Telefonbuch, &fileName);
deleteAllContacts(&Telefonbuch);
delete Robin; /*
delete Saxo; * IDE beschwert sich bei Erstellen von * Robin über leaked Memory
delete Jesus; * 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;
} }
#pragma endregion
// Telefonnummern sollen in Datei gespeichert werden
// Beim Start vorhandene Einträge laden
// Typen sortieren mit Counter und Modulo
int main()
{
TelefonbuchMain();
return 0;
}
// Programm ausführen: STRG+F5 oder Menüeintrag "Debuggen" > "Starten ohne Debuggen starten"
// Programm debuggen: F5 oder "Debuggen" > Menü "Debuggen starten"
// Tipps für den Einstieg:
// 1. Verwenden Sie das Projektmappen-Explorer-Fenster zum Hinzufügen/Verwalten von Dateien.
// 2. Verwenden Sie das Team Explorer-Fenster zum Herstellen einer Verbindung mit der Quellcodeverwaltung.
// 3. Verwenden Sie das Ausgabefenster, um die Buildausgabe und andere Nachrichten anzuzeigen.
// 4. Verwenden Sie das Fenster "Fehlerliste", um Fehler anzuzeigen.
// 5. Wechseln Sie zu "Projekt" > "Neues Element hinzufügen", um neue Codedateien zu erstellen, bzw. zu "Projekt" > "Vorhandenes Element hinzufügen", um dem Projekt vorhandene Codedateien hinzuzufügen.
// 6. Um dieses Projekt später erneut zu öffnen, wechseln Sie zu "Datei" > "Öffnen" > "Projekt", und wählen Sie die SLN-Datei aus.

40
Aufg3/Phonebook.h Normal file
View 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