我已创建此计划,要求5家公司输入当天的销售额。似乎工作正常。我无法弄清楚的是,在所有5家公司进入销售后,如何让图表出现。这是我到目前为止的代码。
#include <cstdlib>
#include <iostream>
using namespace std;
int main()
{
int sales = 0;
int store = 0;
float stars;
for (int store = 1; store <= 5; store++)
{
cout << "Enter today's sale for store " << store << ":";
cin >> sales;
stars = sales/100;
cout << "SALES BAR CHART:" << endl;
cout << "(Each * = $100)" << endl;
cout << "Store" << store << ":";
for (int y = 0; y < stars; y++)
{
cout << "*";
}
cout << endl;
}
system("PAUSE");
return EXIT_SUCCESS;
}
答案 0 :(得分:1)
您需要将每个商店的值存储在一个数组中,以便以后打印出来。如果您希望它是动态的,您可以动态分配一个数组:
int stores = 5;
int* stores_stars = NULL;
stores_stars = new int[numberOfStores];
然后,在分配了每个商店值后,您可以循环遍历数组的每个元素,并使用您编写的循环打印出每个商店的星号。
如果你不想使用数组,或者没有教过,你可以使用单独的变量并使用多个if语句,但我建议你使用数组。
既然你不能使用数组(不是写得不好的作业的忠实粉丝)
然后你需要使用多个变量。您可以声明5个变量来存储每个星星
int storeStars1,storeStars2,storeStars3,storeStars4,storeStars5;
根据循环中商店的值分配每一个
if (store == 1)
storeStars1 = //Put your value here
else if (store == 2)
//You can fill in the rest ;)
然后你可以为每个storeStars变量复制该循环5次。更好的是,将该循环放在一个函数中,并调用该函数5次。
答案 1 :(得分:0)
我认为这个问题是合理的,通常我们不知道这些背景下有多少数据点可用。
标准方法是使用带向量的STL来存储数据,然后使用迭代器循环生成图形。您可以考虑将绘制图形的单个“条形”的代码分离为一个新函数,以避免相当丑陋的嵌套循环。
现实世界的情况很少,阵列是一个实用的解决方案,因此我认为这是一个精心设计的解决方案。