Last active
May 11, 2018 17:33
-
-
Save edenizk/f2f92ae45949a75e584486f2c73006c8 to your computer and use it in GitHub Desktop.
coffee machine
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#include <iostream> | |
#include <stdio.h> | |
#include <stdlib.h> | |
#include <time.h> | |
#include <windows.h> | |
#include <iomanip> | |
#include <conio.h> | |
using namespace std; | |
/* run this program using the console pauser or add your own getch, system("pause") or input loop */ | |
/********************************************************/ | |
/********************************************************/ | |
string starl(int x){ | |
string s; | |
while (x--){ | |
s+="*"; | |
} | |
// cout<<s<<endl; | |
return s; | |
} | |
string starh(int x){ | |
string s; | |
while (x--){ | |
s+="\r*\n"; | |
} | |
// cout<<s<<endl; | |
return s; | |
} | |
/********************************************************/ | |
/********************************************************/ | |
void menu(){ | |
cout<<"\t"<<starl(59)<<endl; | |
cout<<"\t\tlist\n\t\t 1-small americano\t\t\t5zl" | |
<<"\n\t\t 2-americano \t\t\t\t3zl" | |
<<"\n\t\t 3-cappuccino with chocolate\t\t4zl" | |
<<"\n\t\t 4-latte\t\t\t\t4zl" | |
<<"\t\n\t\t 5-ristretto\t\t\t\t3zl" | |
<<"\n\t\t 6-hot chocolate\t\t\t5zl" | |
<<"\n\t\t 7-espresso\t\t\t\t3zl" | |
<<"\n\t\t 8-mokachino\t\t\t\t4zl" | |
<<"\n\t\t 9-cold coffee\t\t\t\t5zl\n"; | |
cout<<"\t"<<starl(59)<<endl; | |
cout<<"\n\n ! THIS MACHINE ONLY WORKS WITH 5zl - 2zl - 1zl - 0.50zl - 0.20zl - 0.10zl!\n\t(Please dont use comma between numbers','.Please use dot '.') \n "; | |
} | |
/********************************************************/ | |
/********************************************************/ | |
void sugarbar(int a){ | |
cout<<"\t\t\t\t "; | |
/*Loading bar*/ | |
for(int i=0; i<100/5; i++){ | |
cout<<(char)177; | |
} | |
cout<<"+\r\t\t\t\t"; | |
for(int i = 0; i<=a; i++){ | |
cout << "\r\t\t " << i << "% sugar - " ; | |
for (int o=1;o<i/5;o++){ | |
cout<<(char)219; | |
} | |
//Sleep(50); | |
} | |
cout<<endl; | |
} | |
/********************************************************/ | |
/********************************************************/ | |
void progressbar2(){ | |
cout<<"\t\t\t\t "; | |
/*Loading bar*/ | |
for(int i=0; i<100/5; i++){ | |
cout<<(char)177; | |
} | |
cout<<"<<\r\t\t\t\t"; | |
for(int i = 0; i<=100; i++){ | |
cout << "\r\t\t " << i << "% completed >>" ; | |
for (int o=1;o<i/5;o++){ | |
cout<<(char)219; | |
} | |
switch (i% 4) | |
{ | |
case 0: cout<<"\r\t\t/"; break; | |
case 1: cout<<"\r\t\t-"; break; | |
case 2: cout<<"\r\t\t\\"; break; | |
case 3: cout<<"\r\t\t-"; break; | |
} | |
Sleep(50); | |
} | |
cout<<endl; | |
} | |
//////////////////////////////////////////////////////////////// | |
void cup(){ | |
cout <<"\n\n\n\n\t\t ) (\n\t\t ( ) )\n\t\t ) ( (\n\t\t )\n" | |
<<"\t\t ______________\n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ Coffee / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\____/ \n " | |
<<"\t\t \n\r"; | |
} | |
void cup5(){ | |
cout<<"\t\t\\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\_________/ \n " | |
<<"\t\t |__| \n" | |
<<"\r\t\t "<<char(219)<<char(219); | |
cout <<"\n\n\n\n\n\n\n\t\t ______________\n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ Coffee / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\____/ \n " | |
<<"\t\t \n\r"; | |
} | |
void cup2(){ | |
cout<<"\t\t\\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\_________/ \n " | |
<<"\t\t |__| \n" | |
<<"\r\t\t "<<char(177)<<char(177) | |
<<"\r\n\t\t "<<char(178)<<char(178) | |
<<"\r\n\t\t "<<char(219)<<char(219) | |
<<"\r\n\t\t "<<char(219)<<char(219); | |
cout <<"\n\n\n\n\t\t ______________\n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ Coffee / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\____/ \n " | |
<<"\t\t \n\r"; | |
} | |
void cup3(){ | |
cout<<"\t\t\\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\_________/ \n " | |
<<"\t\t |__| \n" | |
<<"\n\r\t\t "<<char(176)<<char(176) | |
<<"\r\n\t\t "<<char(177)<<char(177) | |
<<"\r\n\t\t "<<char(178)<<char(178) | |
<<"\r\n\t\t "<<char(219)<<char(219) | |
<<"\r\n\t\t "<<char(219)<<char(219); | |
cout <<"\n\n\t\t ______________\n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ Coffee / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\____/ \n " | |
<<"\t\t \n\r"; | |
} | |
void cup4(){ | |
cout<<"\t\t\\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\_________/ \n " | |
<<"\t\t |__| \n" | |
<<"\n\n\n\n\r\t\t "<<char(176)<<char(176) | |
<<"\r\n\t\t "<<char(177)<<char(177) | |
<<"\r\n\t\t "<<char(178)<<char(178); | |
cout <<"\n\t\t ______"<<char(219)<<char(219)<< "______\n" | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ Coffee / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\ / \n " | |
<<"\t\t \\____/ \n " | |
<<"\t\t \n\r"; | |
} | |
void progressbar(){ | |
for(int i=0; i<100/5; i++){ | |
cout<<(char)177; | |
} | |
cout<<"<<\r\t\t"; | |
for(int i = 0; i<=100; i++){ | |
cout<<"\t\t "; | |
for(int i=0; i<100/5; i++){ | |
cout<<(char)177; | |
} | |
cout<<"<<\r\t\t"; | |
cout << "\r " << i << "% completed >>" ; | |
for (int o=1;o<i/5;o++){ | |
cout<<(char)219; | |
} | |
switch (i% 4) | |
{ | |
case 0:cout<<"\n\n\n"; cup5();Sleep(50);system ("CLS"); break; | |
case 1:cout<<"\n\n\n"; cup2();Sleep(50);system ("CLS"); break; | |
case 2:cout<<"\n\n\n"; cup3();Sleep(50);system ("CLS"); break; | |
case 3:cout<<"\n\n\n"; cup4();Sleep(50);system ("CLS"); break; | |
} | |
} | |
cout<<endl; | |
} | |
/********************************************************/ | |
/********************************************************/ | |
/********************************************************/ | |
/********************************************************/ | |
/********************************************************/ | |
/********************************************************/ | |
int main(int argc, char** argv) { | |
char sugar,again; | |
int chosen,sugarc=0,counter,estimate,putmoney=0,othercoffee=1; | |
double money,needmoney,change=0,left=0; | |
bool sugarbool=1,wantagain=1,wantagain2=1; | |
//begin | |
do | |
{ | |
// star(5); | |
menu(); | |
cout<<"\n\t -Please choose your drink\n"; | |
//cin>>chosen; | |
chosen=getch(); | |
//tester | |
if(cin.fail()||chosen<=48||chosen>57) | |
{ | |
cin.clear(); | |
cin.ignore(10, '\n'); | |
cout<<"\n\t -Please press between 1-9\n"; | |
chosen=getch(); | |
if(cin.fail()||chosen<=48||chosen>57) | |
{ | |
cout<<"\n\t -Please next time try to press between 1-9...:("; | |
break; | |
} | |
} | |
//tester | |
//chosen | |
switch(chosen) | |
{ | |
case 49:needmoney=5;break; | |
case 50:needmoney=3;break; | |
case 51:needmoney=4;break; | |
case 52:needmoney=4;break; | |
case 53:needmoney=3;break; | |
case 54:needmoney=5;break; | |
case 55:needmoney=3;break; | |
case 56:needmoney=4;break; | |
case 57:needmoney=5;break; | |
} | |
do | |
{ | |
system ("CLS"); | |
menu(); | |
//sugar | |
while(sugarbool) | |
{ | |
system ("CLS"); | |
menu(); | |
cout<<"\t -Do You Wanna Add Sugar It is Just 10gr ? (press [+] for add and [-] for make it less)" | |
<<"\n\t -(When you are done press[E])\n"; | |
cout<<"\t -You will need pay "<<needmoney<<"zl"<<endl; | |
if((sugarc==100)) | |
{ | |
cout<<"\t!YOU CANNOT PUT MORE SUGAR!\n"; | |
} | |
else if((sugarc==0)&&(counter>0)) | |
{ | |
cout<<"\t!YOU CANNOT PUT LESS SUGAR!\n"; | |
} | |
sugarbar(sugarc); | |
sugar=getch(); | |
if((sugar=='+') && (sugarc<100)) | |
{ | |
sugarc+=25; | |
needmoney+=0.10; | |
} | |
else if((sugar=='-') && (sugarc<=100)&&(sugarc>0)) | |
{ | |
sugarc-=25; | |
needmoney-=0.10; | |
} | |
else if(sugar=='e'||sugar=='E') | |
{ | |
sugarbool=0; | |
} | |
counter++; | |
} | |
if(needmoney<=change) | |
{ | |
left=change; | |
change-=needmoney; | |
needmoney-=left; | |
} | |
//sugar | |
//money | |
else | |
{ | |
system ("CLS"); | |
menu(); | |
sugarbar(sugarc); | |
needmoney-=change; | |
cout<<"\t-You Need to Insert "<<needmoney<<" zl more (for cancel it press 0)\n"; | |
cin>>money; | |
putmoney+=money; | |
//tester | |
if( cin.fail()) | |
{ | |
cin.clear(); | |
cin.ignore(10, '\n'); | |
cout<<"\n\t -Please write 5 for 5zl - 2 for 2zl - 1 for 1zl - 0.50 for 0.50zl - 0.20 for 0.20zl - 0.10 for 0.10zl\n\t(Please dont use comma between numbers','.Please use dot '.')\n"; | |
cin>>money; | |
if(cin.fail()) | |
{ | |
cout<<"\n\t -You made the same mistake again..."; | |
break; | |
} | |
} | |
//tester | |
//check | |
if(money==0.10||money==0.20||money==0.50||money==1.0||money==2.0||money==5.0|money==5.0) | |
{ | |
needmoney=needmoney-money; | |
change=0; | |
} | |
else if (money==0){ | |
cout<<"\t -You cancel the progress \n\t -See you later\n\t -Here is your money "<<putmoney<<"zl"<<endl; | |
othercoffee=0; | |
break; | |
} | |
else | |
{ | |
cout<<"\n\t -Please write 5 for 5zl - 2 for 2zl - 1 for 1zl - 0.50 for 0.50zl - 0.20 for 0.20zl - 0.10 for 0.10zl\n\t(Please dont use comma between numbers','.Please use dot '.')"; | |
cout<<"\n\t\t !!!ITS NOT A COIN~~!!!\n\t-For continue press any key..."; | |
getch(); | |
} | |
} | |
//money | |
//tester | |
//end of checking | |
if(needmoney<0) | |
{ | |
change=needmoney*-1; | |
} | |
cout<<"\n\t -CHANGE:"<<change<<" zl\n"; | |
}while(needmoney>0); | |
//change cheking | |
//end | |
wantagain2=1; | |
while (wantagain2){ | |
cout<<"\t -Do You Want Another Drink?{Y/N}\n"; | |
again=getch(); | |
if(again=='y'||again=='Y') | |
{ | |
system ("CLS"); | |
wantagain=1; | |
sugarc=0; | |
sugarbool=1; | |
counter=0; | |
othercoffee++; | |
wantagain2=0; | |
} | |
else if (again=='N'||again=='n'){ | |
for(int i=1;i<=othercoffee;i++){ | |
cout<<"Your Coffee Is Making Please Wait...\n"; | |
progressbar(); | |
cup(); | |
if((i%10==1)&&(i!=11)) | |
{ | |
cout<<"Here is your 1st coffee please take it(For Take Press Any Key)\n"; | |
getch(); | |
} | |
else if ((i%10==2)&&(i!=12)) | |
{ | |
cout<<"Here is your 2nd coffee please take it(For Take Press Any Key)\n"; | |
getch(); | |
cout.clear(); | |
} | |
else if ((i%10==3)&&(i!=13)) | |
{ | |
cout<<"Here is your 3rd coffee please take it(For Take Press Any Key)\n"; | |
getch(); | |
cout.clear(); | |
} | |
else if (i%10>3) | |
{ | |
cout<<"Here is your "<<i<<"th coffee please take it(For Take Press Any Key)\n"; | |
getch(); | |
cout.clear();} | |
} | |
cout<<"\n\t -PLEASE DON'T FORGET TO TAKE YOUR CHANGE\n\tCHANGE:"<<change; | |
wantagain=0; | |
wantagain2=0; | |
} | |
else { | |
cout<<"\n\tYou press incorrectly please press again\n"; | |
} | |
} | |
}while(wantagain); | |
return 0; | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment