Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何避免使用数组?_C++ - Fatal编程技术网

C++ 如何避免使用数组?

C++ 如何避免使用数组?,c++,C++,我的教授希望我们在不使用数组或向量的情况下编写一个程序,如下所示: car------Hours------Charge 1--------2.00--------$5.00 2--------5.00--------$5.00 3--------5.30--------$5.50 etc. total: 3---12.30----$15.50 使用函数编写一个程序,计算并打印将汽车停放在车库中的n位客户的停车费 停车收费: 停车场停车五小时的最低收费为5美元 停车场每超过五小时

我的教授希望我们在不使用数组或向量的情况下编写一个程序,如下所示:

car------Hours------Charge

1--------2.00--------$5.00 

2--------5.00--------$5.00

3--------5.30--------$5.50

etc.

total: 3---12.30----$15.50
使用函数编写一个程序,计算并打印将汽车停放在车库中的n位客户的停车费

停车收费:

  • 停车场停车五小时的最低收费为5美元
  • 停车场每超过五小时,每小时或不足一小时,每小时额外收费0.50美元
  • 任何24小时内的最高费用为10.00美元。假设停车场不再是一次24小时的停车场
您应该输入每位客户的停车时间。您的程序应以整洁的表格格式打印结果,并应计算和打印您的收据总额

程序输出应如下所示:

car------Hours------Charge

1--------2.00--------$5.00 

2--------5.00--------$5.00

3--------5.30--------$5.50

etc.

total: 3---12.30----$15.50
我只做到了这一点:

include <iostream>
include <conio.h>
include <cmath>
include <iomanip>
using namespace std;
double calculate(double);
int main()
{
    double hours,charge;
    int finish;
    double sumhours;
    sumhours=0;
    finish=0;
    charge=0;
    int cars;
    cars=0;

    do
    {
        cout<<"Enter the number of hours the vehicle has been parked: "<<endl;
        cin>>hours;
        cars++;
        sumhours+=hours;
        finish=cin.get();
        if(hours>24)
        {
            cout<<"enter a time below 24hrs."<<endl;
            cars--; 
            sumhours=sumhours-hours;
        }
    }
        while(finish!=EOF);

        double total=calculate(hours);
        cout<<total<<": "<<(cars-1)<<": "<<sumhours;


    while(!_kbhit());
    return 0;
}

double calculate(double time)
{
    double calculate=0;
    double fees;

    if(time<=5)
        return 5;
     if(time>15)
        return 10;

     time=ceil(time);
     fees=5+(.5*(time-5));

    return calculate;

}
包括
包括
包括
包括
使用名称空间std;
双重计算(双重);
int main()
{
双倍小时,收费;
整饰;
两小时;
sumhours=0;
完成=0;
电荷=0;
int轿车;
cars=0;
做
{

cout您可以尝试将值存储在链表结构而不是数组中。链表非常适合动态存储。
尝试本教程,

您可以尝试将值存储在链表结构而不是数组中。链表非常适合动态存储。
试试这个教程,

因为这是家庭作业,这里有一个算法:
1.打印标题。
2.清除正在运行的总变量。
3.虽然不是文件的结尾
3.1读取记录。
3.2打印记录内容
3.3将记录字段值添加到运行的总变量中(提示!提示!)
3.4.结束时
4.打印运行的总变量

您可能需要对运行的总变量进行一些额外的计算,尤其是平均值

编辑1:运行总变量的示例

int sum = 0; // This is the running total variable.
const unsigned int QUANTITY = 23;
for (unsigned int i = 0; i < QUANTITY; ++i)
{
    cout << "Adding " << i << " to sum.\n";
    sum += i;
}
cout << "Sum is: " << sum << "\n";
cout.flush();
char reply = 'n';
while (tolower(reply) != 'y')
{
   cout << "Do you want to quit? (y/n)";
   cout.flush();
   cin >> reply;
   cin.ignore(1000, '\n'); // Eat up newline.
}
cout << "Thanks for the answer.\n";
cout.flush();

因为这是作业,所以这里有一个算法:
1.打印标题。
2.清除正在运行的总变量。
3.虽然不是文件的结尾
3.1读取记录。
3.2打印记录内容
3.3将记录字段值添加到运行的总变量中(提示!提示!)
3.4.结束时
4.打印运行的总变量

您可能需要对运行的总变量进行一些额外的计算,尤其是平均值

编辑1:运行总变量的示例

int sum = 0; // This is the running total variable.
const unsigned int QUANTITY = 23;
for (unsigned int i = 0; i < QUANTITY; ++i)
{
    cout << "Adding " << i << " to sum.\n";
    sum += i;
}
cout << "Sum is: " << sum << "\n";
cout.flush();
char reply = 'n';
while (tolower(reply) != 'y')
{
   cout << "Do you want to quit? (y/n)";
   cout.flush();
   cin >> reply;
   cin.ignore(1000, '\n'); // Eat up newline.
}
cout << "Thanks for the answer.\n";
cout.flush();

在每次迭代中,生成相关的输出,但不要将其流式传输到
std::cout
。相反,将其流式传输到一个对象。然后,在最后,将该对象流式传输到
std::cout
。只需保持输入值的连续累积,即可完成数学运算


当然,这假设使用
std::stringstream
不被视为“欺骗”在本作业练习的上下文中。

在每次迭代中,生成相关输出,但不要将其流式传输到
std::cout
。相反,将其流式传输到对象。然后,在最后,将该对象流式传输到
std::cout
。只需保持输入值的连续累积,即可完成数学运算


当然,这是假设在本家庭作业练习中使用
std::stringstream
不被视为“作弊”。

由于不能使用数组或向量,我认为您应该在处理每辆车时打印其停车数据。伪代码:

While more cars:
    Read data for next car
    Calculate cost
    Print data
    Add to running totals
End while
Print totals

由于不能使用数组或向量,我认为应该在处理每辆车时打印其停车数据。伪代码:

While more cars:
    Read data for next car
    Calculate cost
    Print data
    Add to running totals
End while
Print totals

我的建议是使用一个递归方法,该方法首先接受输入,询问是否有更多的输入。如果有更多的输入,它会调用自己。如果没有更多的输入,它会输出当前的car,然后返回一个到目前为止在结构中添加的总和


这个方法唯一的问题是,它会以与输入相反的方式输出输入的cars,但这样做时不需要保存数组或文件。

我的建议是使用递归方法,该方法首先接受输入,询问是否有更多的输入。如果有更多的输入,它会调用自己。如果没有更多的输入,它会调用自己输出它的当前车,然后返回一个到目前为止在结构中添加的总和



这种方法唯一的问题是,它会以与输入相反的方式输出输入的汽车,但它会在没有数组或文件保存的情况下输出。

那么您面临的问题是什么?也不是私人教师;我们在这里帮助解决特定的代码问题。我不知道数据存储在哪里,因为我们不能使用数组。也许您我们应该用链表来代替。你现在在课堂上学习了什么?我们已经复习了控制结构和functions@John:询问讲师或在网上查询“求和变量”或“运行总计”变量。请参见下面我的回答。顺便问一下,不需要存储数据。您面临的问题是什么?也不是私人教师;我们在这里帮助解决特定的代码问题。我不知道在哪里存储数据,因为我们不能使用数组。也许您应该使用链表。您在中学习了什么现在上课?我们已经复习了控制结构和functions@John:询问讲师或在网上查询“求和变量”或“运行总计”变量。请参阅下面我的回答。顺便说一句,不需要存储数据。+1不建议从数组的行为开始。我可以在其中存储记录吗?因为记录应该是无限扩展的。-1文件是一个可能的解决方案,但学生还没有涵盖任何文件。@oli和我的大多是l我完全正确。问题是用户需要输入所有的小时数,然后程序在用户输入后打印出费用