main
Jan-Niclas Loosen 7 months ago
parent c0fbee2fdf
commit 16d44d3936

@ -10,21 +10,8 @@
</component>
<component name="ChangeListManager">
<list default="true" id="42ed9a51-9564-48c5-b5fa-035301b1578d" name="Changes" comment="">
<change afterPath="$PROJECT_DIR$/_crashkurs/aletoric.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/dialog.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/epsilon.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/eval.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/image.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/koko.jpg" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/object.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/race.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/thread.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_crashkurs/types.py" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_pruefung/begriffe.txt" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_pruefung/codings.cpp" afterDir="false" />
<change afterPath="$PROJECT_DIR$/_pruefung/pointers.cpp" afterDir="false" />
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
<change beforePath="$PROJECT_DIR$/ext_02/exercise.r" beforeDir="false" afterPath="$PROJECT_DIR$/ext_02/exercise.r" afterDir="false" />
<change beforePath="$PROJECT_DIR$/_pruefung/empty.txt" beforeDir="false" afterPath="$PROJECT_DIR$/_pruefung/plan.txt" afterDir="false" />
</list>
<option name="SHOW_DIALOG" value="false" />
<option name="HIGHLIGHT_CONFLICTS" value="true" />
@ -249,6 +236,7 @@
<workItem from="1709140615270" duration="595000" />
<workItem from="1709203607737" duration="12075000" />
<workItem from="1709233146285" duration="5114000" />
<workItem from="1709242307015" duration="45000" />
</task>
<servers />
</component>

@ -0,0 +1,97 @@
#include "iostream"
#include "string"
#include "vector"
#include <numeric>
class University;
class UniMember {
public:
University* uni;
std::string name;
int id;
UniMember(University* university, std::string name, int id) {
this->uni = university;
this->name = name;
this->id = id;
}
};
class UniWorker: public UniMember {
public:
UniWorker(University* university, std::string name, int id)
: UniMember(university, name, id) {}
};
class UniStudent: public UniMember {
public:
UniStudent(University* university, std::string name, int id)
: UniMember(university, name, id) {}
void evaluate_exam(double grade){
grades.push_back(grade);
}
double calc_avg(){
if(grades.empty()) return 0;
auto const count = static_cast<double>(grades.size());
return std::reduce(grades.begin(), grades.end()) / count;
}
private:
std::vector <double> grades;
};
class University {
public:
std::string name;
UniWorker* dean;
University(std::string name) {
this->name = name;
}
UniWorker* create_worker(std::string mem_name) {
int id = members.size() + 1;
UniWorker* worker = new UniWorker(this, mem_name, id);
members.push_back(worker);
return worker;
}
UniStudent* create_student(std::string mem_name) {
int id = members.size() + 1;
UniStudent* student = new UniStudent(this, mem_name, id);
members.push_back(student);
return student;
}
void elect_dean(UniWorker* worker) {
dean = worker;
}
int count_members() {
return members.size();
}
private:
std::vector <UniMember*> members;
};
int main() {
University* trier = new University("Trier");
UniWorker* dean = trier->create_worker("Eva Eckkrammer");
trier->elect_dean(dean);
UniStudent* student = trier->create_student("Jan-Niclas Loosen");
student->evaluate_exam(1.3);
student->evaluate_exam(2.3);
student->evaluate_exam(1.3);
student->evaluate_exam(3.3);
std::cout << "Die Universitaet " << trier->name << " hat " << trier->count_members() << " Mitglieder." << std::endl;
std::cout << "Die Dekanin der Universitaet " << trier->name << " heisst " << trier->dean->name << "." << std::endl;
std::cout << student->name << " hat einen Notenschnitt von " << student->calc_avg() << "." << std::endl;
}

Binary file not shown.

@ -1 +0,0 @@
Ad astra per aspera.

@ -0,0 +1,2 @@
1. Begriffe durchgehen
2. Nochmal C++ mit Pointern und so abchecken (Arrays vs. Vectors insbesondere)
Loading…
Cancel
Save