I have a c++ problem regarding looping. I am writing a program which will include a problem similar to below.
1) ok, i am writing a program that asks the user to enter a number.
2) Then ask the user if the number entered was correct.
3) If the number is correct, the user will enter 'y' or 'yes' and the program will terminate. (pretty simple so far ?
4) If the user enters 'n' or 'no' the program should loop back to the beginning of the program and start again. goes back to 1)
5) However, if the user enters anything other than 'yes' or 'no', the program rejects this input and tells the user to re-enter, using only 'yes' or 'no'.
6) This should be asked infinitely until either 'yes' or 'no' is inputted, after which the program then loops back to the beginning. how would i do this ?
i've been trying do while and switch but no luck. would i have to use a for loop ?
Thanks
ps. i am sorry if this was posted in the wrong forum, but i wasnt quite sure whether to put it here, (as i am a beginner) or in the general forum
Try a the CASE function for yes,no and Error. the case function should be inside a loop(you choose) . Example if you use for(;;) it should do the trick.... and don't forget to put a break; at the end of instructions concerning Yes as answer.(in order to exit the loop) (",) try it let me know how it goes.
#include <iostream.h>
#include <string>
#include <conio.h>
void WeeklySales(); //we make weeklysales a function here too
void yesnofunc();
main()
{
int number;
do
{ //displays the menu
cout << "******Sales System******";
cout << ("\n\n");
cout << "1. Display Company Logo.\n"; endl;
cout << "2. Input/Validate weekly sales data.\n";endl;
cout << "3. Calculate weekly sales.\n";endl;
cout << "4. Display reciept.\n";endl;
cout << "5. SHUT DOWN & LOG OFF.\n";endl;
cout << "\nEnter number...\n";endl;
cin >> number;
cout << ("\n\n");
switch (number) //<--the expression is a variable (number) & controls the switch
//the value of (number) is tested against a list of constants.
//When a match is found, the statement sequence assosciated with that match is executed
{
case 1: //<----- const = 1
cout << ("\n\tUU\tUU \tEEEEEEEE \tLL\t\t \SSSSSSS\n\tUU\tUU \tEE \t\tLL\t\tS\n\tUU\tUU \tEE \t\tLL\t\tS\n\tUU\tUU \tEEEEEEE \t\LL\t\t\ SSSSSS\n\tUU\tUU \tEE \t\tLL\t\t S\n\tUU\tUU \tEE \t \t\LL \t\t S \n\t UUUUUUUU *\tEEEEEEEE *\tLLLLLLL *\tSSSSSSS *\n\n\n\n\n");break;
case 2: //<------const = 2. if match found, executes, then calls the weeklysales function below
cout << ("Weekly sales data\n\----------------- ");
WeeklySales(); //<------------- function call here
break;
case 3:
cout << ("Calculate weekly sales "); break;
case 4:
cout << ("Display receipt "); break;
case 5:
cout << ("Goodbye, and thank you for using U.E.L.S. ");break;
//default statement sequence is executed if no matches are found
default:
cout << ("Enter a number from 1-5 only!");
}
} while (number !=5); //program will NOT stop looping till 5 is entered
getch();
}
void yesnofunc()
{
char answer;
do {
cout << "\nIs this correct ?\n";
cin >> answer;
switch (answer) {
case'y':
cout << "\nThank you!!\n";
break;
}
}while (answer != 'y');
}
void WeeklySales() //<--------weekly sales function not part of main() function
{ //when function is completed, goes back to case 3:
//declare variables
int salescode, bikeprice, modelcode, quantity;
string date;
char answer; //either yes or no
bool check;
do
//the instructions to enter the i.d. code will be repeated (do...while
//loop) as long as the salescode is less than 1 or greater than 20.
{
cout << "\n\nPlease enter your identifiction code ";
cin >> salescode;
//the condition is tested
if (salescode < 1 || salescode > 20)
{
cout << ("\nTHIS I.D. CODE IS NOT VALID. TRY AGAIN \n");
}
}
//the instructions to enter the i.d. code will be repeated (do...while
//loop) as long as the salescode is less than 1 or greater than 20.
while (1 > salescode || salescode > 20);
//another do...while loop
do
{
cout << "\nPlease enter the bike price (one unit = 1 Euro) ";
cin >> bikeprice;
if (bikeprice < 1 || bikeprice > 500)
{
cout << ("\nINVALID PRICE. Bike prices cannot be 0 or more than 500. TRY AGAIN \n");
}
}
while (bikeprice < 1 || bikeprice > 500);
//another do...while loop
do
{
cout << "\nPlease enter the 3 digit model code ";
cin >> modelcode;
if (modelcode < 0 || modelcode > 999)
{
cout << ("\nINVALID MODEL CODE. TRY AGAIN \n");
}
}
while (modelcode < 0 || modelcode > 999);
//another do...while loop
do
{
cout << ("\nPlease enter the quantity sold ");
cin >> quantity;
if (quantity < 1 || quantity > 10)
{
cout << ("\nINVALID QUANTITY. TRY A NUMBER FROM 1-10 \n");
}
}
while (quantity < 1 || quantity > 10);
do {
check = true;//check to see whether to stay in loop or not
cout << "\nPlease enter the date in this format dd/mm/yyyy: ";
cin >> date;
cout << "\nIs this the correct date ?\t" << date << "\tpress y/n: \n\n";
cin >> answer; //gets answer from user
switch (answer) {
case'y':
cout << "\n\n\nThank You!\n\n";
break;
}
}while (answer != 'y');
}