五家商店的销售条形图

时间:2013-10-18 16:33:43

标签: c++

我已创建此计划,要求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;
} 

2 个答案:

答案 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来存储数据,然后使用迭代器循环生成图形。您可以考虑将绘制图形的单个“条形”的代码分离为一个新函数,以避免相当丑陋的嵌套循环。

现实世界的情况很少,阵列是一个实用的解决方案,因此我认为这是一个精心设计的解决方案。