Don't use
goto
, you don't really need it.
Don't use such an ancient compiler (
conio.h
has gone long time ago).
Do use structured data.
Do use
STL
containers.
A
C++98
implementation sketch
#include <iostream>
#include <vector>
using namespace std;
struct Product
{
string desc;
int price;
Product(string desc, int price):desc(desc), price(price){}
};
void show_menu(const vector<Product> & vp);
int main()
{
vector <Product> vp;
vp.push_back(Product("Veg Chowmein", 100));
vp.push_back(Product("Chili Garlic Noodles", 110));
int sum = 0;
while (true)
{
show_menu(vp);
int index, qty;
cin >> index;
if ( index == -1) break;
--index;
if ( index >= 0 && index < static_cast<int>(vp.size()) )
{
cout << "please enter quantity" << endl;
cin >> qty;
sum += (qty * vp[index].price);
}
}
cout << "the sum is " << sum << endl;
}
void show_menu( const vector<Product> & vp)
{
cout << "please choose product (-1 to exit)" << endl;
for (size_t n=0; n<vp.size(); ++n)
{
const Product & p = vp[n];
cout << (n+1) << " " << p.desc << " " << p.price << endl;
}
}
[update]
Using an array instead of
std::vector
#include <iostream>
using namespace std;
struct Product
{
string desc;
int price;
Product(string desc, int price):desc(desc), price(price){}
};
void show_menu( Product ap[], int ITEMS);
int main()
{
Product ap[] = {
Product("Veg Chowmein", 100),
Product("Chili Garlic Noodles", 110)
};
const int ITEMS = sizeof(ap)/sizeof(ap[0]);
int sum = 0;
while (true)
{
show_menu(ap, ITEMS);
int index, qty;
cin >> index;
if ( index == -1) break;
--index;
if ( index >= 0 && index <ITEMS )
{
cout << "please enter quantity" << endl;
cin >> qty;
sum += (qty * ap[index].price);
}
}
cout << "the sum is " << sum << endl;
}
void show_menu( Product ap[], int ITEMS)
{
cout << "please choose product (-1 to exit)" << endl;
for (int n=0; n<ITEMS; ++n)
{
const Product & p = ap[n];
cout << (n+1) << " " << p.desc << " " << p.price << endl;
}
}
[/update]