1

我创建了这个程序,要求 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;
} 
4

2 回答 2

1

您需要将每个商店的值存储在一个数组中,以便稍后将它们打印出来。如果你希望它是动态的,你可以动态分配一个数组:

int stores = 5;
int* stores_stars = NULL;
stores_stars = new int[numberOfStores];

然后,在您分配了每个商店的值之后,您可以循环遍历数组的每个元素,并使用您编写的循环打印出每个商店的星号。

如果你不想使用数组,或者没有学过,你可以只使用单独的变量并使用多个 if 语句,但我建议你使用数组。


因为你不能使用数组(不是写得不好的作业的忠实粉丝)

然后,您将需要使用多个变量。您可以声明 5 个变量来存储每个星星

int storeStars1,storeStars2,storeStars3,storeStars4,storeStars5;

并根据循环中 store 的值分配每个

if (store == 1)
    storeStars1 = //Put your value here
else if (store == 2)
    //You can fill in the rest ;)

然后,您可以为每个 storeStars 变量复制该循环 5 次。更好的是,将该循环放入一个函数中,并调用该函数 5 次。

于 2013-10-18T16:44:19.887 回答
0

我认为这个问题是合理的,通常人们不知道在这些情况下有多少数据点可用。

标准方法是使用带有向量的 STL 来存储数据,然后使用迭代器循环生成图形。您可能会考虑将绘制图形的单个“条”的代码分离到一个新函数中,以避免相当丑陋的嵌套循环。

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

于 2013-10-18T20:32:51.940 回答