finished Aufgabenblock_1 (mostly)
This commit is contained in:
parent
49bdf31c18
commit
1b3ae9e39b
16 changed files with 640 additions and 2078 deletions
File diff suppressed because it is too large
Load diff
|
@ -1,3 +0,0 @@
|
|||
#Thu Aug 18 14:08:19 CEST 2011
|
||||
avrtarget/perConfig=false
|
||||
eclipse.preferences.version=1
|
|
@ -1,40 +0,0 @@
|
|||
/*
|
||||
* Fahrrad.cpp
|
||||
*
|
||||
* Created on: 18.08.2011
|
||||
* Author: stv0g
|
||||
*/
|
||||
|
||||
#include "Fahrrad.h"
|
||||
|
||||
Fahrrad::Fahrrad() {
|
||||
// TODO Auto-generated constructor stub
|
||||
}
|
||||
|
||||
Fahrrad::~Fahrrad() {
|
||||
// TODO Auto-generated destructor stub
|
||||
}
|
||||
|
||||
double Fahrrad::dGeschwindigkeit() {
|
||||
double dFahrradGeschwindigkeit = p_dMaxGeschwindigkeit;
|
||||
int iReduzierung = (int) p_dGesamtStrecke / 20;
|
||||
|
||||
for (int i = 0; i < iReduzierung; i++) {
|
||||
dFahrradGeschwindigkeit *= 0.9;
|
||||
}
|
||||
|
||||
if (dFahrradGeschwindigkeit < 12) {
|
||||
dFahrradGeschwindigkeit = 12;
|
||||
}
|
||||
|
||||
return dFahrradGeschwindigkeit;
|
||||
}
|
||||
|
||||
static Fahrrad * Fahrrad::erzeuge(string sName, double dMaxGeschwindigkeit) {
|
||||
Fahrrad *rad = new Fahrrad(sName);
|
||||
|
||||
rad->p_dMaxGeschwindigkeit = dMaxGeschwindigkeit;
|
||||
|
||||
return rad;
|
||||
}
|
||||
|
|
@ -1,26 +0,0 @@
|
|||
/*
|
||||
* Fahrrad.h
|
||||
*
|
||||
* Created on: 18.08.2011
|
||||
* Author: stv0g
|
||||
*/
|
||||
|
||||
#ifndef FAHRRAD_H_
|
||||
#define FAHRRAD_H_
|
||||
|
||||
#include "Fahrzeug.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Fahrrad: public Fahrzeug {
|
||||
public:
|
||||
Fahrrad();
|
||||
virtual ~Fahrrad();
|
||||
|
||||
double dGeschwindigkeit();
|
||||
void vAusgabe();
|
||||
|
||||
static Fahrrad * erzeuge(string sName, double dMaxGeschwindigkeit);
|
||||
};
|
||||
|
||||
#endif /* FAHRRAD_H_ */
|
|
@ -1,63 +0,0 @@
|
|||
/*
|
||||
* Fahrzeug.cpp
|
||||
*
|
||||
* Created on: 18.08.2011
|
||||
* Author: stv0g
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include <cmath>
|
||||
|
||||
#include "Fahrzeug.h"
|
||||
|
||||
extern double dGlobaleZeit;
|
||||
|
||||
int Fahrzeug::p_iMaxID = 0;
|
||||
|
||||
Fahrzeug::Fahrzeug() {
|
||||
vInitialisierung();
|
||||
//cout << this->p_sName << ":" << this->p_iID << " wurde initialisiert" << endl;
|
||||
}
|
||||
|
||||
Fahrzeug::Fahrzeug(string sName) {
|
||||
vInitialisierung();
|
||||
p_sName = sName;
|
||||
|
||||
//cout << this->p_sName << ":" << this->p_iID << " wurde initialisiert" << endl;
|
||||
}
|
||||
|
||||
Fahrzeug::~Fahrzeug() {
|
||||
//cout << this->p_sName << ":" << this->p_iID << " wurde gelöscht" << endl;
|
||||
}
|
||||
|
||||
void Fahrzeug::vInitialisierung() {
|
||||
p_iID = ++p_iMaxID;
|
||||
|
||||
p_sName = " ";
|
||||
p_dMaxGeschwindigkeit = 0;
|
||||
p_dGesamtStrecke = 0;
|
||||
p_dGesamtZeit = 0;
|
||||
p_dZeit = 0;
|
||||
}
|
||||
|
||||
void Fahrzeug::vAusgabe() {
|
||||
cout << setprecision(2) << setiosflags(ios::fixed)
|
||||
<< resetiosflags(ios::right) << setiosflags(ios::left)
|
||||
<< setw(4) << this->p_iID
|
||||
<< setw(7) << this->p_sName << ": "
|
||||
<< resetiosflags(ios::left) << setiosflags(ios::right)
|
||||
<< setw(7) << p_dMaxGeschwindigkeit
|
||||
<< setw(12) << p_dGesamtStrecke
|
||||
<< endl;
|
||||
}
|
||||
|
||||
void Fahrzeug::vAbfertigung() {
|
||||
if (fabs(p_dZeit - dGlobaleZeit) < 1e-10) return;
|
||||
|
||||
double dDelta = dGlobaleZeit - p_dZeit;
|
||||
|
||||
p_dGesamtZeit += dDelta;
|
||||
p_dGesamtStrecke += dGeschwindigkeit() * dDelta;
|
||||
p_dZeit = dGlobaleZeit;
|
||||
}
|
|
@ -1,81 +0,0 @@
|
|||
/*
|
||||
* PKW.cpp
|
||||
*
|
||||
* Created on: 18.08.2011
|
||||
* Author: stv0g
|
||||
*/
|
||||
|
||||
#include <iostream>
|
||||
#include <iomanip>
|
||||
|
||||
#include "PKW.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
extern double dGlobaleZeit;
|
||||
|
||||
PKW::PKW(string sName, double dVerbrauch, double dTankvolumen = 55) :
|
||||
Fahrzeug(sName),
|
||||
p_dVerbrauch(dVerbrauch),
|
||||
p_dTankvolumen(dTankvolumen),
|
||||
p_dTankinhalt(dTankvolumen/2) { }
|
||||
|
||||
PKW::PKW(double dVerbrauch, double dTankvolumen = 55) :
|
||||
Fahrzeug(),
|
||||
p_dVerbrauch(dVerbrauch),
|
||||
p_dTankvolumen(dTankvolumen),
|
||||
p_dTankinhalt(dTankvolumen/2) { }
|
||||
|
||||
PKW::~PKW() {
|
||||
// TODO Auto-generated destructor stub
|
||||
}
|
||||
|
||||
double PKW::dTanken(double dMenge = 0) {
|
||||
double dAlterInhalt = p_dTankinhalt;
|
||||
|
||||
if (dMenge == 0) {
|
||||
p_dTankinhalt = p_dTankvolumen;
|
||||
}
|
||||
else {
|
||||
p_dTankinhalt += dMenge;
|
||||
if (p_dTankinhalt > p_dTankvolumen) {
|
||||
p_dTankinhalt = p_dTankvolumen; /* Verhindere Überfüllung */
|
||||
}
|
||||
}
|
||||
|
||||
return p_dTankinhalt - dAlterInhalt;
|
||||
}
|
||||
|
||||
void PKW::vAbfertigung() {
|
||||
if (p_dTankinhalt > 0) { /* prüfen, ob etwas im Tank ist */
|
||||
p_dTankinhalt -= (dGlobaleZeit - p_dZeit) * p_dMaxGeschwindigkeit * p_dVerbrauch / 100;
|
||||
if (p_dTankinhalt < 0) { /* falls Tankinhalt negativ ist */
|
||||
p_dTankinhalt = 0;
|
||||
}
|
||||
Fahrzeug::vAbfertigung();
|
||||
}
|
||||
else {
|
||||
p_dTankinhalt = 0;
|
||||
}
|
||||
}
|
||||
|
||||
void PKW::vAusgabe() {
|
||||
Fahrzeug::vAusgabe();
|
||||
|
||||
cout << setprecision(2) << setiosflags(ios::fixed)
|
||||
<< resetiosflags(ios::left) << setiosflags(ios::right)
|
||||
<< setw(7) << dVerbrauch()
|
||||
<< setw(7) << p_dTankinhalt << endl;
|
||||
}
|
||||
|
||||
double PKW::dVerbrauch() {
|
||||
return p_dGesamtStrecke * p_dVerbrauch / 100;
|
||||
}
|
||||
|
||||
static PKW * PKW::erzeuge(string sName, double dMaxGeschwindigkeit) {
|
||||
Fahrrad *rad = new Fahrrad(sName);
|
||||
|
||||
rad->p_dMaxGeschwindigkeit = dMaxGeschwindigkeit;
|
||||
|
||||
return rad;
|
||||
}
|
|
@ -1,90 +0,0 @@
|
|||
/*
|
||||
* main.cpp
|
||||
*
|
||||
* Created on: 18.08.2011
|
||||
* Author: stv0g
|
||||
*/
|
||||
|
||||
#include <string>
|
||||
#include <iostream>
|
||||
|
||||
#include "Fahrzeug.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
double dGlobaleZeit = 0.0;
|
||||
|
||||
void vAufgabe1() {
|
||||
/* 3. Initialisieren */
|
||||
Fahrzeug fz1("Porsche");
|
||||
Fahrzeug *fz2 = new Fahrzeug();
|
||||
|
||||
string name;
|
||||
cout << "Bitte geben Sie einen Fahrzeugnamen ein: ";
|
||||
cin >> name;
|
||||
|
||||
Fahrzeug *fz3 = new Fahrzeug(name);
|
||||
|
||||
/* 5. Ausgabe */
|
||||
cout << endl << "ID Name : MaxKmh GesamtStrecke" << endl;
|
||||
cout << "++++++++++++++++++++++++++++++++++++++++++" << endl;
|
||||
fz1.vAusgabe();
|
||||
fz2->vAusgabe();
|
||||
fz3->vAusgabe();
|
||||
|
||||
/* 9. Abfertigung */
|
||||
double dAbfertigungsIntervall;
|
||||
cout << endl << "Bitte geben Sie ein Abfertigungsintervall ein: ";
|
||||
cin >> dAbfertigungsIntervall;
|
||||
|
||||
cout << endl << "ID Name : MaxKmh GesamtStrecke" << endl;
|
||||
cout << "++++++++++++++++++++++++++++++++++++++++++" << endl;
|
||||
for (; dGlobaleZeit < 24; dGlobaleZeit += dAbfertigungsIntervall) { /* simuliere für einen Tag */
|
||||
fz1.vAbfertigung();
|
||||
fz2->vAbfertigung();
|
||||
fz3->vAbfertigung();
|
||||
|
||||
cout << "globale Zeit: " << dGlobaleZeit << endl;
|
||||
fz1.vAusgabe();
|
||||
fz2->vAusgabe();
|
||||
fz3->vAusgabe();
|
||||
}
|
||||
|
||||
delete fz2;
|
||||
delete fz3;
|
||||
}
|
||||
|
||||
void vAufgabe1_deb() {
|
||||
Fahrzeug fz1("Opel");
|
||||
Fahrzeug fz2("Benz");
|
||||
Fahrzeug fz3("Ferrari");
|
||||
Fahrzeug fz4("Mini");
|
||||
|
||||
Fahrzeug *feld_name[4] = {&fz1, &fz2, &fz3, &fz4};
|
||||
|
||||
feld_name[2] = 0;
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
feld_name[i]->vAusgabe();
|
||||
}
|
||||
}
|
||||
|
||||
void vAufgabe2() {
|
||||
int iAnzahl;
|
||||
vector<Fahrzeug *> fahrzeuge;
|
||||
|
||||
cout << "Wie viele Fahrzeuge möchten Sie erstellen? ";
|
||||
cin >> iAnzahl;
|
||||
|
||||
for (int j = 0; j < i; j++) {
|
||||
fahrzeuge.push(Fahrrad::erzeuge());
|
||||
}
|
||||
}
|
||||
|
||||
int main() {
|
||||
//vAufgabe1();
|
||||
//vAufgabe1_deb();
|
||||
vAugabe2();
|
||||
|
||||
return 0;
|
||||
}
|
245
Aufgabenblock_1/.cproject
Normal file
245
Aufgabenblock_1/.cproject
Normal file
|
@ -0,0 +1,245 @@
|
|||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||
<?fileVersion 4.0.0?>
|
||||
|
||||
<cproject storage_type_id="org.eclipse.cdt.core.XmlProjectDescriptionStorage">
|
||||
<storageModule moduleId="org.eclipse.cdt.core.settings">
|
||||
<cconfiguration id="cdt.managedbuild.config.gnu.exe.debug.1856697356">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.debug.1856697356" moduleId="org.eclipse.cdt.core.settings" name="Debug">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="Aufgabenblock_1" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.debug,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.debug.1856697356" name="Debug" parent="cdt.managedbuild.config.gnu.exe.debug">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.exe.debug.1856697356." name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.debug.1037000934" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.debug">
|
||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.debug.1917533961" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.debug"/>
|
||||
<builder buildPath="${workspace_loc:/Aufgabenblock_1/Debug}" id="cdt.managedbuild.target.gnu.builder.exe.debug.1070152645" managedBuildOn="true" name="Gnu Make Builder.Debug" superClass="cdt.managedbuild.target.gnu.builder.exe.debug"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.810203748" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug.188657633" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.debug">
|
||||
<option id="gnu.cpp.compiler.exe.debug.option.optimization.level.641087174" superClass="gnu.cpp.compiler.exe.debug.option.optimization.level" value="gnu.cpp.compiler.optimization.level.none" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.exe.debug.option.debugging.level.1631590812" superClass="gnu.cpp.compiler.exe.debug.option.debugging.level" value="gnu.cpp.compiler.debugging.level.max" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.debug.417948505" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.debug">
|
||||
<option defaultValue="gnu.c.optimization.level.none" id="gnu.c.compiler.exe.debug.option.optimization.level.1085212480" superClass="gnu.c.compiler.exe.debug.option.optimization.level" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.exe.debug.option.debugging.level.653996215" superClass="gnu.c.compiler.exe.debug.option.debugging.level" value="gnu.c.debugging.level.max" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.debug.1337783831" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.debug"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug.554711489" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.debug"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.debug.2035335526" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.debug"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
<storageModule moduleId="org.eclipse.cdt.core.externalSettings"/>
|
||||
</cconfiguration>
|
||||
<cconfiguration id="cdt.managedbuild.config.gnu.exe.release.486201907">
|
||||
<storageModule buildSystemId="org.eclipse.cdt.managedbuilder.core.configurationDataProvider" id="cdt.managedbuild.config.gnu.exe.release.486201907" moduleId="org.eclipse.cdt.core.settings" name="Release">
|
||||
<externalSettings/>
|
||||
<extensions>
|
||||
<extension id="org.eclipse.cdt.core.ELF" point="org.eclipse.cdt.core.BinaryParser"/>
|
||||
<extension id="org.eclipse.cdt.core.MakeErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GCCErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GASErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
<extension id="org.eclipse.cdt.core.GLDErrorParser" point="org.eclipse.cdt.core.ErrorParser"/>
|
||||
</extensions>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<configuration artifactName="Aufgabenblock_1" buildArtefactType="org.eclipse.cdt.build.core.buildArtefactType.exe" buildProperties="org.eclipse.cdt.build.core.buildType=org.eclipse.cdt.build.core.buildType.release,org.eclipse.cdt.build.core.buildArtefactType=org.eclipse.cdt.build.core.buildArtefactType.exe" cleanCommand="rm -rf" description="" id="cdt.managedbuild.config.gnu.exe.release.486201907" name="Release" parent="cdt.managedbuild.config.gnu.exe.release">
|
||||
<folderInfo id="cdt.managedbuild.config.gnu.exe.release.486201907." name="/" resourcePath="">
|
||||
<toolChain id="cdt.managedbuild.toolchain.gnu.exe.release.775759335" name="Linux GCC" superClass="cdt.managedbuild.toolchain.gnu.exe.release">
|
||||
<targetPlatform id="cdt.managedbuild.target.gnu.platform.exe.release.1362512594" name="Debug Platform" superClass="cdt.managedbuild.target.gnu.platform.exe.release"/>
|
||||
<builder buildPath="${workspace_loc:/Aufgabenblock_1/Release}" id="cdt.managedbuild.target.gnu.builder.exe.release.14119287" managedBuildOn="true" name="Gnu Make Builder.Release" superClass="cdt.managedbuild.target.gnu.builder.exe.release"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.archiver.base.717208988" name="GCC Archiver" superClass="cdt.managedbuild.tool.gnu.archiver.base"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release.430913885" name="GCC C++ Compiler" superClass="cdt.managedbuild.tool.gnu.cpp.compiler.exe.release">
|
||||
<option id="gnu.cpp.compiler.exe.release.option.optimization.level.781694220" superClass="gnu.cpp.compiler.exe.release.option.optimization.level" value="gnu.cpp.compiler.optimization.level.most" valueType="enumerated"/>
|
||||
<option id="gnu.cpp.compiler.exe.release.option.debugging.level.1259227572" superClass="gnu.cpp.compiler.exe.release.option.debugging.level" value="gnu.cpp.compiler.debugging.level.none" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.compiler.exe.release.376885912" name="GCC C Compiler" superClass="cdt.managedbuild.tool.gnu.c.compiler.exe.release">
|
||||
<option defaultValue="gnu.c.optimization.level.most" id="gnu.c.compiler.exe.release.option.optimization.level.666602387" superClass="gnu.c.compiler.exe.release.option.optimization.level" valueType="enumerated"/>
|
||||
<option id="gnu.c.compiler.exe.release.option.debugging.level.570138469" superClass="gnu.c.compiler.exe.release.option.debugging.level" value="gnu.c.debugging.level.none" valueType="enumerated"/>
|
||||
</tool>
|
||||
<tool id="cdt.managedbuild.tool.gnu.c.linker.exe.release.1435488110" name="GCC C Linker" superClass="cdt.managedbuild.tool.gnu.c.linker.exe.release"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.cpp.linker.exe.release.1114858345" name="GCC C++ Linker" superClass="cdt.managedbuild.tool.gnu.cpp.linker.exe.release"/>
|
||||
<tool id="cdt.managedbuild.tool.gnu.assembler.exe.release.984070152" name="GCC Assembler" superClass="cdt.managedbuild.tool.gnu.assembler.exe.release"/>
|
||||
</toolChain>
|
||||
</folderInfo>
|
||||
</configuration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="scannerConfiguration">
|
||||
<autodiscovery enabled="true" problemReportingEnabled="true" selectedProfileId="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile"/>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.make.core.GCCStandardMakePerFileProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="makefileGenerator">
|
||||
<runAction arguments="-f ${project_name}_scd.mk" command="make" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/${specs_file}" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.cpp" command="g++" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-E -P -v -dD ${plugin_state_location}/specs.c" command="gcc" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfile">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/${specs_file}"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileCPP">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'g++ -E -P -v -dD "${plugin_state_location}/specs.cpp"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
<profile id="org.eclipse.cdt.managedbuilder.core.GCCWinManagedMakePerProjectProfileC">
|
||||
<buildOutputProvider>
|
||||
<openAction enabled="true" filePath=""/>
|
||||
<parser enabled="true"/>
|
||||
</buildOutputProvider>
|
||||
<scannerInfoProvider id="specsFile">
|
||||
<runAction arguments="-c 'gcc -E -P -v -dD "${plugin_state_location}/specs.c"'" command="sh" useDefault="true"/>
|
||||
<parser enabled="true"/>
|
||||
</scannerInfoProvider>
|
||||
</profile>
|
||||
</storageModule>
|
||||
</cconfiguration>
|
||||
</storageModule>
|
||||
<storageModule moduleId="cdtBuildSystem" version="4.0.0">
|
||||
<project id="Aufgabenblock_1.cdt.managedbuild.target.gnu.exe.1838894489" name="Executable" projectType="cdt.managedbuild.target.gnu.exe"/>
|
||||
</storageModule>
|
||||
</cproject>
|
|
@ -1,6 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Aufgabeblock_1</name>
|
||||
<name>Aufgabenblock_1</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
|
@ -31,7 +31,7 @@
|
|||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.buildLocation</key>
|
||||
<value>${workspace_loc:/Aufgabeblock_1/Debug}</value>
|
||||
<value>${workspace_loc:/Aufgabenblock_1/Debug}</value>
|
||||
</dictionary>
|
||||
<dictionary>
|
||||
<key>org.eclipse.cdt.make.core.cleanBuildTarget</key>
|
||||
|
@ -69,7 +69,6 @@
|
|||
</buildCommand>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.cdt.managedbuilder.core.ScannerConfigBuilder</name>
|
||||
<triggers>full,incremental,</triggers>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
|
@ -79,6 +78,5 @@
|
|||
<nature>org.eclipse.cdt.core.ccnature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.managedBuildNature</nature>
|
||||
<nature>org.eclipse.cdt.managedbuilder.core.ScannerConfigNature</nature>
|
||||
<nature>de.innot.avreclipse.core.avrnature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
22
Aufgabenblock_1/Fahrrad.cpp
Normal file
22
Aufgabenblock_1/Fahrrad.cpp
Normal file
|
@ -0,0 +1,22 @@
|
|||
#include <math.h>
|
||||
|
||||
#include "Fahrrad.h"
|
||||
|
||||
Fahrrad::Fahrrad(string sName, double dMaxGeschwindigkeit) :
|
||||
Fahrzeug(sName, dMaxGeschwindigkeit) { }
|
||||
|
||||
Fahrrad::~Fahrrad() { }
|
||||
|
||||
double Fahrrad::dGeschwindigkeit() const {
|
||||
double dGeschwindigkeit;
|
||||
int iReduzierung = p_dGesamtStrecke / 20;
|
||||
|
||||
dGeschwindigkeit = p_dMaxGeschwindigkeit * powl(0.9, iReduzierung);
|
||||
|
||||
if (dGeschwindigkeit < 12) {
|
||||
dGeschwindigkeit = 12;
|
||||
}
|
||||
|
||||
return dGeschwindigkeit;
|
||||
}
|
||||
|
16
Aufgabenblock_1/Fahrrad.h
Normal file
16
Aufgabenblock_1/Fahrrad.h
Normal file
|
@ -0,0 +1,16 @@
|
|||
#ifndef FAHRRAD_H_
|
||||
#define FAHRRAD_H_
|
||||
|
||||
#include "Fahrzeug.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
class Fahrrad: public Fahrzeug {
|
||||
public:
|
||||
Fahrrad(string sName, double dMaxGeschwindigkeit);
|
||||
virtual ~Fahrrad();
|
||||
|
||||
double dGeschwindigkeit() const;
|
||||
};
|
||||
|
||||
#endif /* FAHRRAD_H_ */
|
98
Aufgabenblock_1/Fahrzeug.cpp
Normal file
98
Aufgabenblock_1/Fahrzeug.cpp
Normal file
|
@ -0,0 +1,98 @@
|
|||
#include <iostream>
|
||||
#include <iomanip>
|
||||
#include <cmath>
|
||||
|
||||
#include "Fahrzeug.h"
|
||||
|
||||
extern double dGlobaleZeit;
|
||||
|
||||
int Fahrzeug::p_iMaxID = 0;
|
||||
|
||||
Fahrzeug::Fahrzeug() {
|
||||
vInitialisierung();
|
||||
//cout << this->p_sName << ":" << this->p_iID << " wurde initialisiert" << endl;
|
||||
}
|
||||
|
||||
Fahrzeug::Fahrzeug(Fahrzeug &fz) {
|
||||
vInitialisierung();
|
||||
|
||||
p_sName = fz.p_sName;
|
||||
p_dMaxGeschwindigkeit = fz.p_dMaxGeschwindigkeit;
|
||||
|
||||
/* p_dGesamtStrecke, p_dGesamtZeit, p_dZeit werden auf 0 gesetzt */
|
||||
}
|
||||
|
||||
Fahrzeug::Fahrzeug(string sName) {
|
||||
vInitialisierung();
|
||||
|
||||
p_sName = sName;
|
||||
//cout << this->p_sName << ":" << this->p_iID << " wurde initialisiert" << endl;
|
||||
}
|
||||
|
||||
Fahrzeug::Fahrzeug(string sName, double dMaxGeschwindkeit) {
|
||||
vInitialisierung();
|
||||
|
||||
p_sName = sName;
|
||||
p_dMaxGeschwindigkeit = dMaxGeschwindkeit;
|
||||
}
|
||||
|
||||
Fahrzeug::~Fahrzeug() {
|
||||
//cout << this->p_sName << ":" << this->p_iID << " wurde gelöscht" << endl;
|
||||
}
|
||||
|
||||
void Fahrzeug::vInitialisierung() {
|
||||
p_iID = ++p_iMaxID;
|
||||
|
||||
p_sName = " ";
|
||||
p_dMaxGeschwindigkeit = 0;
|
||||
p_dGesamtStrecke = 0;
|
||||
p_dGesamtZeit = 0;
|
||||
p_dZeit = 0;
|
||||
}
|
||||
|
||||
void Fahrzeug::vAusgabeHeader() {
|
||||
cout << "ID Name : MaxKmh GesamtStrecke Verbrauch Tankinhalt" << endl;
|
||||
cout << "+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++" << endl;
|
||||
}
|
||||
|
||||
void Fahrzeug::vAusgabe() const {
|
||||
cout << endl
|
||||
<< setprecision(2) << setiosflags(ios::fixed)
|
||||
<< resetiosflags(ios::right) << setiosflags(ios::left)
|
||||
<< setw(4) << p_iID
|
||||
<< setw(7) << p_sName << ":"
|
||||
<< resetiosflags(ios::left) << setiosflags(ios::right)
|
||||
<< setw(8) << dGeschwindigkeit()
|
||||
<< setw(16) << p_dGesamtStrecke;
|
||||
}
|
||||
|
||||
ostream& Fahrzeug::ostreamAusgabe(ostream &stream) const {
|
||||
stream << setprecision(2) << setiosflags(ios::fixed)
|
||||
<< resetiosflags(ios::right) << setiosflags(ios::left)
|
||||
<< setw(4) << p_iID
|
||||
<< setw(7) << p_sName << ":"
|
||||
<< resetiosflags(ios::left) << setiosflags(ios::right)
|
||||
<< setw(8) << dGeschwindigkeit()
|
||||
<< setw(16) << p_dGesamtStrecke;
|
||||
|
||||
return stream;
|
||||
}
|
||||
|
||||
void Fahrzeug::vAbfertigung() {
|
||||
/* nicht doppelt abfertigen */
|
||||
if (fabs(p_dZeit - dGlobaleZeit) < 1e-10) return;
|
||||
|
||||
double dDelta = dGlobaleZeit - p_dZeit;
|
||||
|
||||
p_dGesamtZeit += dDelta;
|
||||
p_dGesamtStrecke += dGeschwindigkeit() * dDelta;
|
||||
p_dZeit = dGlobaleZeit;
|
||||
}
|
||||
|
||||
bool Fahrzeug::operator<(Fahrzeug fz) {
|
||||
return (p_dGesamtStrecke < fz.p_dGesamtStrecke);
|
||||
}
|
||||
|
||||
ostream& operator<<(ostream &stream, const Fahrzeug fz) {
|
||||
return fz.ostreamAusgabe(stream);
|
||||
}
|
|
@ -15,13 +15,22 @@ using namespace std;
|
|||
class Fahrzeug {
|
||||
public:
|
||||
Fahrzeug();
|
||||
Fahrzeug(Fahrzeug &fz);
|
||||
Fahrzeug(string sName);
|
||||
Fahrzeug(string sName, double dMaxGeschwindkeit);
|
||||
|
||||
virtual ~Fahrzeug();
|
||||
|
||||
void vAusgabe();
|
||||
virtual void vAusgabe() const;
|
||||
virtual ostream& ostreamAusgabe(ostream &stream) const;
|
||||
|
||||
virtual void vAbfertigung();
|
||||
virtual double dTanken(double dMenge) { return 0; }; /* Kraftfahrzeuge überladen dTanken() */
|
||||
virtual double dGeschwindigkeit() { return p_dMaxGeschwindigkeit; }
|
||||
virtual double dTanken(double dMenge = 0.0) { return 0; };
|
||||
virtual double dGeschwindigkeit() const { return p_dMaxGeschwindigkeit; }
|
||||
|
||||
bool operator<(Fahrzeug fz);
|
||||
|
||||
static void vAusgabeHeader();
|
||||
|
||||
protected:
|
||||
int p_iID;
|
||||
|
@ -37,4 +46,6 @@ private:
|
|||
void vInitialisierung();
|
||||
};
|
||||
|
||||
ostream& operator<<(ostream &out, const Fahrzeug fz);
|
||||
|
||||
#endif /* FAHRZEUG_H_ */
|
69
Aufgabenblock_1/PKW.cpp
Normal file
69
Aufgabenblock_1/PKW.cpp
Normal file
|
@ -0,0 +1,69 @@
|
|||
#include <iostream>
|
||||
#include <iomanip>
|
||||
|
||||
#include "PKW.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
extern double dGlobaleZeit;
|
||||
|
||||
PKW::PKW(string sName, double dMaxGeschwindigkeit) :
|
||||
Fahrzeug(sName, dMaxGeschwindigkeit) { };
|
||||
|
||||
PKW::PKW(string sName, double dMaxGeschwindigkeit, double dVerbrauch, double dTankvolumen) :
|
||||
Fahrzeug(sName, dMaxGeschwindigkeit),
|
||||
p_dVerbrauch(dVerbrauch),
|
||||
p_dTankinhalt(dTankvolumen/2),
|
||||
p_dTankvolumen(dTankvolumen) { };
|
||||
|
||||
PKW::~PKW() { }
|
||||
|
||||
double PKW::dTanken(double dMenge) {
|
||||
double dAlterInhalt = p_dTankinhalt;
|
||||
|
||||
if (dMenge == 0) {
|
||||
p_dTankinhalt = p_dTankvolumen;
|
||||
}
|
||||
else {
|
||||
p_dTankinhalt += dMenge;
|
||||
if (p_dTankinhalt > p_dTankvolumen) {
|
||||
p_dTankinhalt = p_dTankvolumen; /* Verhindere Überfüllung */
|
||||
}
|
||||
}
|
||||
|
||||
return p_dTankinhalt - dAlterInhalt;
|
||||
}
|
||||
|
||||
void PKW::vAbfertigung() {
|
||||
if (p_dTankinhalt > 0) { /* prüfen, ob etwas im Tank ist */
|
||||
p_dTankinhalt -= (dGlobaleZeit - p_dZeit) * p_dMaxGeschwindigkeit * p_dVerbrauch / 100;
|
||||
|
||||
if (p_dTankinhalt < 0) { /* falls Tankinhalt negativ ist */
|
||||
p_dTankinhalt = 0;
|
||||
}
|
||||
|
||||
Fahrzeug::vAbfertigung();
|
||||
}
|
||||
}
|
||||
|
||||
void PKW::vAusgabe() const {
|
||||
Fahrzeug::vAusgabe();
|
||||
|
||||
cout << setprecision(2) << setiosflags(ios::fixed)
|
||||
<< resetiosflags(ios::left) << setiosflags(ios::right)
|
||||
<< setw(12) << dVerbrauch()
|
||||
<< setw(13) << p_dTankinhalt;
|
||||
}
|
||||
|
||||
ostream& PKW::ostreamAusgabe(ostream &stream) const {
|
||||
Fahrzeug::ostreamAusgabe(stream) << setprecision(2) << setiosflags(ios::fixed)
|
||||
<< resetiosflags(ios::left) << setiosflags(ios::right)
|
||||
<< setw(12) << dVerbrauch()
|
||||
<< setw(13) << p_dTankinhalt;
|
||||
|
||||
return stream;
|
||||
}
|
||||
|
||||
double PKW::dVerbrauch() const {
|
||||
return p_dGesamtStrecke * p_dVerbrauch / 100;
|
||||
}
|
|
@ -15,20 +15,21 @@
|
|||
using namespace std;
|
||||
|
||||
class PKW: public Fahrzeug {
|
||||
public:
|
||||
PKW(string sName, double dMaxGeschwindigkeit);
|
||||
PKW(string sName, double dMaxGeschwindigkeit, double dVerbrauch, double dTankvolumen = 55);
|
||||
virtual ~PKW();
|
||||
|
||||
void vAbfertigung();
|
||||
void vAusgabe() const;
|
||||
ostream& ostreamAusgabe(ostream &stream) const;
|
||||
double dVerbrauch() const;
|
||||
double dTanken(double dMenge = 0.0);
|
||||
|
||||
private:
|
||||
double p_dVerbrauch;
|
||||
double p_dTankinhalt;
|
||||
double p_dTankvolumen;
|
||||
|
||||
public:
|
||||
PKW(string sName, double dTankvolumen);
|
||||
PKW(double dTankvolumen);
|
||||
virtual ~PKW();
|
||||
|
||||
void vAbfertigung();
|
||||
void vAusgabe();
|
||||
double dVerbrauch();
|
||||
double dTanken(double dMenge);
|
||||
};
|
||||
|
||||
#endif /* PKW_H_ */
|
163
Aufgabenblock_1/main.cpp
Normal file
163
Aufgabenblock_1/main.cpp
Normal file
|
@ -0,0 +1,163 @@
|
|||
#include <string>
|
||||
#include <vector>
|
||||
#include <iostream>
|
||||
|
||||
#include "Fahrzeug.h"
|
||||
#include "Fahrrad.h"
|
||||
#include "PKW.h"
|
||||
|
||||
using namespace std;
|
||||
|
||||
double dGlobaleZeit = 0.0;
|
||||
|
||||
void vAufgabe1() {
|
||||
/* 3. Initialisieren */
|
||||
Fahrzeug fz1("Porsche");
|
||||
Fahrzeug *fz2 = new Fahrzeug();
|
||||
|
||||
string name;
|
||||
cout << "Bitte geben Sie einen Fahrzeugnamen ein: ";
|
||||
cin >> name;
|
||||
|
||||
Fahrzeug *fz3 = new Fahrzeug(name, 22.5);
|
||||
|
||||
Fahrzeug::vAusgabeHeader();
|
||||
fz1.vAusgabe();
|
||||
fz2->vAusgabe();
|
||||
fz3->vAusgabe();
|
||||
|
||||
/* 9. Abfertigung */
|
||||
double dAbfertigungsIntervall;
|
||||
cout << endl << "Bitte geben Sie ein Abfertigungsintervall ein: ";
|
||||
cin >> dAbfertigungsIntervall;
|
||||
|
||||
Fahrzeug::vAusgabeHeader();
|
||||
for ( ; dGlobaleZeit < 24; dGlobaleZeit += dAbfertigungsIntervall) { /* simuliere für einen Tag */
|
||||
fz1.vAbfertigung();
|
||||
fz2->vAbfertigung();
|
||||
fz3->vAbfertigung();
|
||||
|
||||
cout << endl << "globale Zeit: " << dGlobaleZeit;
|
||||
fz1.vAusgabe();
|
||||
fz2->vAusgabe();
|
||||
fz3->vAusgabe();
|
||||
}
|
||||
|
||||
delete fz2;
|
||||
delete fz3;
|
||||
}
|
||||
|
||||
/**
|
||||
* Testing debugger
|
||||
*/
|
||||
void vAufgabe1_deb() {
|
||||
Fahrzeug fz1("Opel");
|
||||
Fahrzeug fz2("Benz");
|
||||
Fahrzeug fz3("Ferrari");
|
||||
Fahrzeug fz4("Mini");
|
||||
|
||||
Fahrzeug *feld_name[4] = {&fz1, &fz2, &fz3, &fz4};
|
||||
|
||||
feld_name[2] = 0; // NULL pointer => Segmention Fault
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
feld_name[i]->vAusgabe();
|
||||
}
|
||||
}
|
||||
|
||||
void vAufgabe2() {
|
||||
int iPKWs, iFahrraeder;
|
||||
vector<Fahrzeug *> fahrzeuge;
|
||||
|
||||
/* Erzeugen */
|
||||
|
||||
cout << "Wie viele PKWs möchten Sie erstellen? ";
|
||||
cin >> iPKWs;
|
||||
|
||||
cout << "Wie viele Fahrräder möchten Sie erstellen? ";
|
||||
cin >> iFahrraeder;
|
||||
|
||||
for (int i = 0; i < iPKWs + iFahrraeder; i++) {
|
||||
Fahrzeug *fahrzeug;
|
||||
string sName;
|
||||
double dMaxGeschwindkeit;
|
||||
|
||||
cout << "Bitte geben Sie den Namen des Fahrzeugs Nr. " << i+1 << " an: ";
|
||||
cin >> sName;
|
||||
cout << "Bitte geben Sie die maximale Geschwindkeit des Fahrzeugs Nr. " << i+1 << " an: ";
|
||||
cin >> dMaxGeschwindkeit;
|
||||
|
||||
if (i < iPKWs) { /* erzeuge PKW */
|
||||
double dVerbrauch;
|
||||
cout << "Bitte geben Sie den Verbrauch des PKWs Nr. " << i+1 << " an: ";
|
||||
cin >> dVerbrauch;
|
||||
|
||||
fahrzeug = new PKW(sName, dMaxGeschwindkeit, dVerbrauch);
|
||||
}
|
||||
else { /* erzeuge Fahrrad */
|
||||
fahrzeug = new Fahrrad(sName, dMaxGeschwindkeit);
|
||||
}
|
||||
|
||||
fahrzeuge.push_back(fahrzeug);
|
||||
}
|
||||
|
||||
/* Abfertigen */
|
||||
|
||||
double dAbfertigungsIntervall;
|
||||
size_t iNachgetankt = 0;
|
||||
cout << "Bitte geben Sie ein Abfertigungsintervall ein: ";
|
||||
cin >> dAbfertigungsIntervall;
|
||||
cout << endl;
|
||||
|
||||
Fahrzeug::vAusgabeHeader();
|
||||
|
||||
for ( ; dGlobaleZeit < 6; dGlobaleZeit += dAbfertigungsIntervall) {
|
||||
vector<Fahrzeug *>::iterator it;
|
||||
for (it = fahrzeuge.begin(); it != fahrzeuge.end(); it++) {
|
||||
if (dGlobaleZeit > 3 && iNachgetankt < fahrzeuge.size()) {
|
||||
(*it)->dTanken();
|
||||
iNachgetankt++;
|
||||
}
|
||||
|
||||
(*it)->vAbfertigung();
|
||||
(*it)->vAusgabe();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void vAufgabe3() {
|
||||
PKW vw("Golf", 200, 6.7, 88);
|
||||
Fahrrad velo("Haibike", 22);
|
||||
Fahrzeug sch("Schiff", 22);
|
||||
|
||||
PKW::vAusgabeHeader();
|
||||
|
||||
cout << vw << endl << velo << endl << sch;
|
||||
}
|
||||
|
||||
int main() {
|
||||
int iWahl;
|
||||
|
||||
retry:
|
||||
|
||||
cout << "1: vAufgabe1()" << endl;
|
||||
cout << "2: vAufgabe1_deb()" << endl;
|
||||
cout << "3: vAufgabe2()" << endl;
|
||||
cout << "4: vAufgabe3()" << endl;
|
||||
cout << "Bitte wähen Sie eine Aufgabe: ";
|
||||
cin >> iWahl;
|
||||
cout << endl;
|
||||
|
||||
switch (iWahl) {
|
||||
case 1: vAufgabe1(); break;
|
||||
case 2: vAufgabe1_deb(); break;
|
||||
case 3: vAufgabe2(); break;
|
||||
case 4: vAufgabe3(); break;
|
||||
default:
|
||||
cerr << "Ungültige Eingabe! Bitte versuchen Sie es erneut" << endl;
|
||||
goto retry;
|
||||
}
|
||||
|
||||
cout << endl;
|
||||
return 0;
|
||||
}
|
Loading…
Add table
Reference in a new issue