Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <windows.h>
- #include <fstream>
- std::string inputName ()
- {
- std::cout<<"Please enter your name: ";
- std::string inputn;
- std::getline(std::cin,inputn);//read full line of text into inputn
- return inputn;
- }
- char inputGender ()
- {
- std::cout<<"Please enter your gender (M/m or F/f): ";
- char inputg;
- std::cin>>inputg;
- while(!(inputg=='m'||inputg=='M'||inputg=='f'||inputg=='F'))//for clarity sake,can be simplified via de morgen's law
- {
- std::cout<<"Please key in only in alphabet, M/m for male, F/f for female:";
- std::cin>>inputg;
- }
- return inputg;
- }
- int inputAge ()
- {
- std::cout<<"Please enter your age: ";
- int inputa;
- std::cin>>inputa;
- return inputa;
- }
- int inputHeight ()
- {
- std::cout<<"Please enter your height in cm: ";
- int inputh;
- std::cin>>inputh;
- return inputh;
- }
- int inputWeight ()
- {
- std::cout<<"Please enter your weight in kg: ";
- int inputw;
- std::cin>>inputw;
- return inputw;
- }
- // basal/daily metabolic rate
- // identify average calorie burned
- // when body at total rest
- float calculateBmr (char g, int a, int h, int w)
- {
- float bmr;
- g=toupper(g);//small caps alphabet to big caps
- switch (g)
- {
- //case 'm':
- case 'M':
- bmr=(10.0*w)+(6.25*h)-(5.0*a)+5;
- break;
- //case 'f':
- case 'F':
- bmr=(10.0*w)+(6.25*h)-(5.0*a)-161;
- break;
- }
- return bmr;
- }
- float activityFactor ()
- {
- std::cout<<"How often do you exercise in a week?\n";
- std::cout<<"[1] Sedentary (little-to-no exercise)\n";
- std::cout<<"[2] Lightly active (1-3 days of exercise)\n";
- std::cout<<"[3] Moderately active (3-5 days of exercise)\n";
- std::cout<<"[4] Very active (6-7 days of exercise)\n";
- std::cout<<"Answer: ";
- int answer;
- std::cin>>answer;
- while(answer>4||answer<1)
- {
- std::cout<<"Please key in only 1 to 4.\nAnswer: ";
- std::cin>>answer;
- }
- float factor;//activity factor floating point, stores 1.2 - 1.7
- switch (answer)
- {
- case 1:
- factor=1.2;
- break;
- case 2:
- factor=1.4;
- break;
- case 3:
- factor=1.6;
- break;
- case 4:
- factor=1.7;
- break;
- }
- return factor;
- }
- //BMI = weight (kg) / (height(m)*height (m) )
- float calculateBmi (int h, int w)
- {
- return w/(h*h/10000.0);//.0 for implicit type conversion
- }
- //TDEE = BMR*Activity Factor
- float calculateTdee (float b, float f)
- {
- return b*f;
- }
- int mondayschedule ()
- {
- std::cout<<"Monday - Cardio\n";
- std::cout<<"30 minutes of either one of the following:\n";
- std::cout<<"1. Biking\n";
- std::cout<<"2. Walking\n";
- std::cout<<"3. Hiking\n";
- std::cout<<"4. Running stairs\n";
- std::cout<<"With 1 minute intervals of the following;\n";
- std::cout<<"1. Fast paced walk\n";
- std::cout<<"2. Slow Jog\n";
- std::cout<<"3. Sprint\n\n";
- return 0;
- }
- int tuesdayschedule ()
- {
- std::cout<<"Tuesday - Arms\n";
- std::cout<<"Repeat the following exercises 2 times:\n";
- std::cout<<"1. Bicep Curls 10x\n";
- std::cout<<"2. Tricep Kickbacks 10x\n";
- std::cout<<"3. Shoulder Press 10x\n\n";
- return 0;
- }
- int wednesdayschedule ()
- {
- std::cout<<"Wednesday - Abs and Obliques\n";
- std::cout<<"1. Crunches 20x\n";
- std::cout<<"2. Bicycle Crunches 20x\n";
- std::cout<<"3. Oblique Crunches 20x\n";
- std::cout<<"4. Plank 30 seconds\n";
- std::cout<<"5. Side Plank 30 seconds on each side\n\n";
- return 0;
- }
- int thursdayschedule ()
- {
- std::cout<<"Thursday - Lower Body\n";
- std::cout<<"Repeat the following exercises 2 times:\n";
- std::cout<<"1. Walking Lunges 10x each leg\n";
- std::cout<<"2. Wall Squat 20 seconds (slowly build up to minute)\n";
- std::cout<<"3. Calf Raises 15x each leg\n";
- std::cout<<"4. Jump Squat 10x\n\n";
- return 0;
- }
- int fridayschedule ()
- {
- std::cout<<"Friday - Lower Body\n";
- std::cout<<"1. Walking Lunges 10x each leg\n";
- std::cout<<"2. Wall Squat 20 seconds (slowly build up to minute)\n";
- std::cout<<"3. Calf Raises 15x each leg\n";
- std::cout<<"4. Jump Squat 10x\n\n";
- return 0;
- }
- int saturdayschedule ()
- {
- std::cout<<"Saturday - Rest\n\n";
- return 0;
- }
- int sundayschedule ()
- {
- std::cout<<"Sunday - Rest\n\n";
- return 0;
- }
- int weeklyschedule ()
- {
- system("cls");
- mondayschedule ();
- tuesdayschedule ();
- wednesdayschedule ();
- thursdayschedule ();
- fridayschedule ();
- saturdayschedule ();
- sundayschedule ();
- system("pause");
- }
- int dailyschedule ()
- {
- int d, m, y;
- int num,num2;
- std::cout<<"Please enter a date."<<"\n\n";
- std::cout<<"Day(1-31): ";
- std::cin>>d;
- //error check date
- std::cout<<"\n\n";
- std::cout<<"Month(1-12): ";
- std::cin>>m;
- std::cout<<"\n\n";
- //error check month
- std::cout<<"Year: ";
- std::cin>>y;
- std::cout<<"\n\n";
- //error check year
- //tomohiko sakamoto algorithm
- int t[]={0,3,2,5,0,3,5,1,4,6,2,4};
- y-=m<3;
- int dayofweek=(y+y/4-y/100+y/400+t[m-1]+d)%7;
- switch (dayofweek)
- {
- case 1:
- mondayschedule ();
- break;
- case 2:
- tuesdayschedule ();
- break;
- case 3:
- wednesdayschedule ();
- break;
- case 4:
- thursdayschedule ();
- break;
- case 5:
- fridayschedule ();
- break;
- case 6:
- saturdayschedule ();
- break;
- case 7:
- sundayschedule ();
- break;
- }
- system("pause");
- return 0;
- }
- int suggestedworkout (int tdee)
- {
- system("cls");
- std::cout<<"How many days in a week would you prefer to do exercise?\n";
- std::cout<<"Please choose from 2 to 5 days only.\n";
- std::cout<<"Answer: ";
- int day;
- std::cin>>day;
- //error check here
- system("cls");
- std::cout<<"Your ideal caloric intake is "<<tdee<<" cal.\n\n";
- switch (day)
- {
- //dayofweek determined by evenly distributed rest day
- case 2:
- mondayschedule ();
- thursdayschedule ();
- break;
- case 3:
- mondayschedule ();
- wednesdayschedule ();
- fridayschedule ();
- break;
- case 4:
- mondayschedule ();
- tuesdayschedule ();
- thursdayschedule ();
- fridayschedule ();
- break;
- case 5:
- mondayschedule ();
- tuesdayschedule ();
- wednesdayschedule ();
- thursdayschedule ();
- fridayschedule ();
- break;
- }
- std::cin.ignore();
- return day;
- }
- //writeschedule function is done is reduce messiness
- std::ofstream write;//declare file output stream called write
- int writemondayschedule ()
- {
- write<<"Monday - Cardio\n";
- write<<"30 minutes of either one of the following:\n";
- write<<"1. Biking\n";
- write<<"2. Walking\n";
- write<<"3. Hiking\n";
- write<<"4. Running stairs\n";
- write<<"With 1 minute intervals of the following;\n";
- write<<"1. Fast paced walk\n";
- write<<"2. Slow Jog\n";
- write<<"3. Sprint\n\n";
- return 0;
- }
- int writetuesdayschedule ()
- {
- write<<"Tuesday - Arms\n";
- write<<"Repeat the following exercises 2 times:\n";
- write<<"1. Bicep Curls 10x\n";
- write<<"2. Tricep Kickbacks 10x\n";
- write<<"3. Shoulder Press 10x\n\n";
- }
- int writewednesdayschedule ()
- {
- write<<"Wednesday - Abs and Obliques\n";
- write<<"1. Crunches 20x\n";
- write<<"2. Bicycle Crunches 20x\n";
- write<<"3. Oblique Crunches 20x\n";
- write<<"4. Plank 30 seconds\n";
- write<<"5. Side Plank 30 seconds on each side\n\n";
- return 0;
- }
- int writethursdayschedule ()
- {
- write<<"Thursday - Lower Body\n";
- write<<"Repeat the following exercises 2 times:\n";
- write<<"1. Walking Lunges 10x each leg\n";
- write<<"2. Wall Squat 20 seconds (slowly build up to minute)\n";
- write<<"3. Calf Raises 15x each leg\n";
- write<<"4. Jump Squat 10x\n\n";
- return 0;
- }
- int writefridayschedule ()
- {
- write<<"Friday - Lower Body\n";
- write<<"1. Walking Lunges 10x each leg\n";
- write<<"2. Wall Squat 20 seconds (slowly build up to minute)\n";
- write<<"3. Calf Raises 15x each leg\n";
- write<<"4. Jump Squat 10x\n\n";
- return 0;
- }
- int printschedule (std::string name, int bmr, int bmi, int tdee)//one time use, made it more specific/less modular
- {
- int day=suggestedworkout (tdee);
- {
- std::ofstream write ("Schedule.TXT");
- write<<"Thank you for using Fitness Optimizer NEUTRONIUM7000.\n";
- write<<"Below are "<<name<<"'s personal details and recommended workout schedule.\n";
- write<<"---------------------------------------------------------------------------------------------\n";
- write<<"BMR, Basal Metabolic Rate : "<<bmr;
- write<<"\nBMI, Body Mass Index : "<<bmi;
- write<<"\nTDEE, Total Daily Energy Expenditure: "<<tdee;
- write<<"\n---------------------------------------------------------------------------------------------\n";
- writemondayschedule ();
- switch (day)
- {
- case 2:
- writethursdayschedule ();
- break;
- case 3:
- writewednesdayschedule ();
- writefridayschedule ();
- break;
- case 4:
- writetuesdayschedule ();
- writethursdayschedule ();
- break;
- case 5:
- writetuesdayschedule ();
- writewednesdayschedule ();
- writethursdayschedule ();
- writefridayschedule ();
- break;
- }
- }
- //std::cout<<"Your text file is ready,";
- //system("start Schedule.TXT");
- return 0;
- }
- int page3 (std::string name, int bmr, int bmi, int tdee)
- {
- system("cls");
- std::cout<<"o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o\n";
- std::cout<<"Your BMR, BMI, TDEE were as below.\n";
- std::cout<<"BMR ="<<bmr<<"\n";
- std::cout<<"BMI ="<<bmi<<"\n";
- std::cout<<"TDEE="<<tdee<<"\n\n";
- std::cout<<"Context:\n";
- std::cout<<"BMR =Basal/Daily Metabolic Rate\n";
- std::cout<<"BMI =Body Mass Index\n";
- std::cout<<"TDEE=Total Daily Energy Expenditure\n";
- std::cout<<"o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o\n\n";
- std::cout<<"Options:\n";
- std::cout<<"[1] View weekly workout schedule\n";
- std::cout<<"[2] View daily workout schedule\n";
- std::cout<<"[3] View suggested workout schedule\n";
- std::cout<<"[4] Print suggested workout schedule\n";
- std::cout<<"[5] Restart from first page\n";
- std::cout<<"[6] Developer page and exit\n";
- std::cout<<"Answer: ";
- int choice;
- std::cin>>choice;
- //1-4, loop here
- //5-6, go back, return 0-1
- //other than that, reloop
- while(choice>6||choice<1)//key in wrong while loop
- {
- std::cout<<"Please answer only via number 1-6: ";
- std::cin>>choice;
- }
- switch (choice)
- {
- case 1:
- weeklyschedule ();
- break;
- case 2:
- dailyschedule ();
- break;
- case 3:
- suggestedworkout (tdee);
- break;
- case 4:
- printschedule (name, bmr, bmi, tdee);
- break;
- case 5:
- break;
- case 6:
- break;
- }
- }
- int main()
- {
- //change background/font color
- system("color 3B");
- system("cls");//loop starts here
- //page 1
- std::cout<<"o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o\n";
- std::cout<<" Welcome to Fitness Optimizer NEUTRONIUM7000\n";
- std::cout<<"o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o\n";
- std::string name;
- name = inputName ();
- //page 2
- system("cls");
- std::cout<<"o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o\n";
- std::cout<<" Hello "<<name<<'\n';
- std::cout<<"o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o-o\n";
- char gender;
- gender = inputGender ();
- int age;
- age = inputAge ();
- int height;
- height = inputHeight ();
- int weight;
- weight = inputWeight ();
- //std::cout<<name<<'\n'<<gender<<'\n'<<age<<'\n'<<height<<'\n'<<weight<<'\n';
- float bmr=calculateBmr(gender, age, height, weight);
- std::cout<<"\nYour BMR (Basal Metabolic Rate) is "<<bmr<<"\n\n";//2dp, if needed change it to 0dp
- float factor=activityFactor();
- //std::cout<<factor;
- float bmi=calculateBmi (height, weight);
- //std::cout<<bmi;
- float tdee=calculateTdee (bmr, factor);
- std::cout<<tdee;
- //page 3, continue to class/inheritence
- page3(name, bmr, bmi, tdee);
- //return 1, start from 0
- //return 0, show dev page and end :D
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement