kann mir jemand evtl. nen virtuellen getränkeautomat in c erstellen?
>-----Originalnachricht-----
>Hallo,
>
>kann mir jemand evtl. nen virtuellen getränkeautomat in c
erstellen?
>.
Bezahlung??? :)
Sebastian.
Ich würde Dir eher so Werkstoffe wie Alu oder PVC empfehlen.
Eine reine Carbon-Lösung wird vermutlich etwas teuer werden!
;-)
Dietmar
"pascal lonsmeier" <pasca...@t-online.de> wrote in message
news:104d801c21c84$38947770$37ef2ecf@TKMSFTNGXA13...
> kann mir jemand evtl. nen virtuellen getränkeautomat in c erstellen?
Aber gern doch! Wenn bloß meine Probleme auch so einfach wären...
#include <stdio.h>
#include <stdlib.h>
#define NCHOICE 3
int main()
{
char *pcaName[ NCHOICE ] = { "Fanta", "Kaffee", "Schnaps" };
float flaPrice[ NCHOICE ] = { 1.30f, 0.80f, 2.50f };
char caBuf[ 20 ];
int i, nSelect;
float flPaid;
for( ;; )
{
do {
for( i=0; i<NCHOICE; i++ )
printf( "%d=%s%c ", i+1, pcaName[ i ], (i==NCHOICE-1) ? ':'
: ',' );
fgets( caBuf, sizeof( caBuf ), stdin );
nSelect = atoi( caBuf );
if( nSelect < 0 )
return 0;
} while( nSelect<1 || nSelect>NCHOICE );
nSelect -= 1;
flPaid = 0;
while( flPaid < flaPrice[ nSelect ] )
{
printf( "Bitte Geld einwerfen (%.2f/%.2f): ", flPaid,
flaPrice[ nSelect ] );
fgets( caBuf, sizeof( caBuf ), stdin );
if( atof( caBuf ) <= 0 )
break;
flPaid += (float)atof( caBuf );
}
if( flPaid >= flaPrice[ nSelect ] )
{
printf( "Einmal %s. Prost, mein Freund!\n", pcaName[ nSelect] );
flPaid -= flaPrice[ nSelect ];
}
if( flPaid > 0 )
printf( "%.2f Retour.\n", flPaid );
printf( "\n" );
}
}
SCNR :-)
> Aber gern doch! Wenn bloß meine Probleme auch so einfach wären...
Für den Anfänger, der eine Übungsaufgabe lösen soll, ist es das nicht.
Deshalb meine ich, ist mit derartigen Komplettlösungen auch niemandem
tatsächlich geholfen.
OK, und off-topic war es obendrein. Die Fragestellung hatte einfach meinen
Spieltrieb geweckt, und ich hatte gehofft, mit "SCNR" hätte ich das
hinreichend zum Ausdruck gebracht.
Ich tu's jedenfalls nicht wieder, versprochen.
>kann mir jemand evtl. nen virtuellen getränkeautomat in c
erstellen?
Ach wie gut das ich heute frei hab, und somit Zeit hab so
was zu machen ;)
#include <string>
#include <iostream>
#include <list>
//A Getraenk
class Getraenk
{
public:
Getraenk();
Getraenk(std::string strName, double dFuel = 0.33,
double dPreis = 0.50);
virtual ~Getraenk();
void SetGetraenkName(std::string strName);
void SetFuel(double dCL);
void SetPreis(double dPreis);
std::string GetGetraenkName();
double GetFuel();
double GetPreis();
private:
std::string m_strName;
double m_dFuel;
double m_dPreis;
};
Getraenk::Getraenk()
{
m_strName = "Coca Cola";
m_dFuel = 0.33;
m_dPreis = 0.50;
}
Getraenk::Getraenk(std::string strName, double dFuel,
double dPreis)
{
m_strName = strName;
m_dFuel = dFuel;
m_dPreis = dPreis;
}
Getraenk::~Getraenk()
{
}
void Getraenk::SetGetraenkName(std::string strName)
{
m_strName = strName;
}
void Getraenk::SetFuel(double dCL)
{
m_dFuel = dCL;
}
void Getraenk::SetPreis(double dPreis)
{
m_dPreis = dPreis;
}
std::string Getraenk::GetGetraenkName()
{
return m_strName;
}
double Getraenk::GetFuel()
{
return m_dFuel;
}
double Getraenk::GetPreis()
{
return m_dPreis;
}
//Der Automat
class Automat
{
public:
Automat();
virtual ~Automat();
bool AddGetraenk(Getraenk getr, int nAnzahl);
bool DeleteGetraenk(std::string strGetraenk);
int GetAnzahlGetraenk(std::string strGetraenk);
private:
std::list<Getraenk> m_lGetraenk;
typedef std::list<Getraenk>::iterator LI;
};
Automat::Automat()
{
}
Automat::~Automat()
{
}
bool Automat::AddGetraenk(Getraenk getr, int nAnzahl)
{
if(nAnzahl <= 0)
return false;
for(int i=0; i<nAnzahl; i++)
m_lGetraenk.push_back(getr);
return true;
}
bool Automat::DeleteGetraenk(std::string strGetraenk)
{
try
{
for(LI i = m_lGetraenk.begin(); i !=
m_lGetraenk.end(); ++i)
{
if((*i).GetGetraenkName() ==
strGetraenk)
{
i = m_lGetraenk.erase(i);
break;
}
}
}
catch(...)
{
return false;
}
return true;
}
int Automat::GetAnzahlGetraenk(std::string strGetraenk)
{
int cnt = 0;
try
{
for(LI i = m_lGetraenk.begin(); i !=
m_lGetraenk.end(); ++i)
{
if((*i).GetGetraenkName() ==
strGetraenk)
++cnt;
}
}
catch(...)
{
return -1;
}
return cnt;
}
int main(int argc, char* argv[])
{
Getraenk getr("Coca Cola");
Getraenk getr2("Fanta");
Automat automat;
automat.AddGetraenk(getr, 2);
automat.AddGetraenk(getr2, 3);
std::cout << automat.GetAnzahlGetraenk("Coca
Cola") << " Colas\n";
std::cout << automat.GetAnzahlGetraenk("Fanta")
<< " Fantas\n\n";
std::cout << "1 Cola und 2 Fanta
rausgenommen:\n\n";
automat.DeleteGetraenk("Coca Cola");
automat.DeleteGetraenk("Fanta");
automat.DeleteGetraenk("Fanta");
std::cout << automat.GetAnzahlGetraenk("Coca
Cola") << " Colas\n";
std::cout << automat.GetAnzahlGetraenk("Fanta")
<< " Fantas";
std::cin.get();
return 0;
}
HTH
Thomas
> >kann mir jemand evtl. nen virtuellen getränkeautomat in c
> erstellen?
>
> Ach wie gut das ich heute frei hab, und somit Zeit hab so
> was zu machen ;)
>
> #include <string>
> #include <iostream>
> #include <list>
[schnips]
He! Von C++ war nicht die Rede! :-)
>> #include <string>
>> #include <iostream>
>> #include <list>
>[schnips]
>
>He! Von C++ war nicht die Rede! :-)
Shit! Na ja, kommt davon wenn man nicht genau liest.
>> #include <string>
>> #include <iostream>
>> #include <list>
>[schnips]
>
>He! Von C++ war nicht die Rede! :-)
Shit! Na ja, kommt davon wenn man nicht genau liest.
kann mir jemand evtl. nen virtuellen getränkeautomat in c erstellen?
Das passt eher ins www.hausaufgaben.de ?
> Hallo,
> kann mir jemand evtl. nen virtuellen getränkeautomat in c erstellen?
Ich habe auch noch einen Code.
Der befindet sich u.a. in dem Automaten bei mir um die Ecke:
#include <stdlib.h>
#include <stdio.h>
#include <time.h>
#include <systemabhaengig.h>
#include <geldeinwurf.h>
#include <getraenkeausgabe.h>
/*#include <geldrueckgabe.h>*/
int main()
{
int ZuZahlenCent;
int BezahltCent;
int MengeMilliliter;
int Euro;
int Cent;
srand( (unsigned)time( NULL ) );
do{
BezahltCent = 0;
printf("Bitte wählen:\n1: Cola\t0,2 l\t7.00 EUR\n2: Tass Kaff\t0,2
l\t6.00 EUR\n");
do{
c = SystemabhaengigGetOneSingleKey();
} while( c != '1' && c != '2' );
switch( c )
{
case '1':
ZuZahlenCent = 750; /*Inflation*/
break;
case '2':
ZuZahlenCent= 650; /*Inflation*/
break;
}
do{
Euro = (ZuZahlenCent - BezahltCent)/100;
Cent = (ZuZahlenCent - BezahltCent) - Euro*100;
printf("Noch zu zahlen: %d.%02d\n", Euro,Cent );
BezahltCent += GeltEinwurf();
if( !(rand() % 10) )
BezahltCent = 0;
}while(BezahltCent < ZuZahlenCent);
if( BezahltCent > ZuZahlenCent)
TuSoAlsObRestgeldAusgegebenWurdeBehalteEsAber();
if( (rand() % 10) )
GibBecherAus();
MengeMilliliter = 195 - rand()%50;
GibGetraenkAus( c,MengeMilliliter );
while( 1 ); /* Warum denn kein Geld einsacken, wenn der Automat leer ist?*/
return 0;
}
--
Schiko
FAQ: http://www.mpdvc.de
Samples: http://www.codeproject.com
Samples: http://codeguru.earthweb.com
Privat: http://www.schikos.de/MFC.html
>Ich habe auch noch einen Code.
>Der befindet sich u.a. in dem Automaten bei mir um die Ecke:
Unser spezifiziert bei Geldeinwurf noch:
decimal CoinEmUp(EURO eCoin, COUNTRY cFrom)
{
// you lost big time
if ((Random() % 50) == 0)
{
GulpCoin();
return 0.0m;
}
// you lost w/o loss
if ((Random() % 5) == 0)
{
PukeCoin();
return 0.0m;
}
// 20? What? I though the GDR is history?
if (CENT_20 == eCoin)
{
BarfCoin();
return 0.0m;
}
// those freaks ought to be punished
if (BELGIUM == cFrom)
{
CheckWellknownNewgroupsForPorn();
VomitCoin();
return -0.10m;
}
return RealValue(eCoin);
}
Das macht jedes mal Spass. :)
Carsten Witte [MVP]
--
mpdvc-FAQ: http://www.mpdvc.de
Private : http://www.carsti.de/dmfc.html
NewsSuche: http://www.carsti.de/ddeja.html
Ich beantworte keine Fragen, die per e-mail eingehen!
Aaaach sooo?! Na, das trifft sich aber gut ... ich hätte da noch jede Menge
Zeuch zu erledigen, komm' einfach vorbei ...
;-))
PS: Es ist doch immer wieder interessant, was für lange und sinnfreie
Threads durch so kurze Fragen ausgelöst werden können.
PPS: Flames sinnlos, die lese ich morgen eh' nicht.
JensG