Skip to content

Instantly share code, notes, and snippets.

@edenizk
Last active May 11, 2018 17:33
Show Gist options
  • Save edenizk/f2f92ae45949a75e584486f2c73006c8 to your computer and use it in GitHub Desktop.
Save edenizk/f2f92ae45949a75e584486f2c73006c8 to your computer and use it in GitHub Desktop.
coffee machine
#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