Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/17.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++;计算公交车日利润(小错误?)_C++_String_Char - Fatal编程技术网

C++ C++;计算公交车日利润(小错误?)

C++ C++;计算公交车日利润(小错误?),c++,string,char,C++,String,Char,我正试图用C++解决一个特定的编程练习(我是新手)。这项工作要求计算公共汽车(公共交通)的每日利润,并打印利润最高的公共汽车的名称、每日利润的总和以及所有公共汽车的总利润。然而,根据乘客的不同,车票有不同的类型(1、2、3、4、5或6):1是满的,满的=3,2是老师=25.5,3是学生=22.10,4、5、6是免费的。 这是我的密码: #include <iostream> #include <string.h> #include <iomanip> usi

我正试图用C++解决一个特定的编程练习(我是新手)。这项工作要求计算公共汽车(公共交通)的每日利润,并打印利润最高的公共汽车的名称、每日利润的总和以及所有公共汽车的总利润。然而,根据乘客的不同,车票有不同的类型(1、2、3、4、5或6):1是满的,满的=3,2是老师=25.5,3是学生=22.10,4、5、6是免费的。 这是我的密码:

#include <iostream>
#include <string.h>
#include <iomanip>

using namespace std;

int main()
{
    int n, j; 
    double full_ticket=0, teacher_ticket=0, std_ticket=0, foreign_ticket=0, polis_card=0, elderly_card=0; //declare tickets
    char ticket, c; 
    string bus, hBus; //declare strings for bus names
    double  fuel_amount, fuel_price, daily_profit,busProfit, hAmount, total_amount; 

    cin>>n>>fuel_price; 
    for (j=1;j<=n;j++) 
    {
        cin>>bus>>fuel_amount; //read string and amount of fuel consumed
        do
        {
            cin>>ticket>>c;  //read ticket type and c is comma, after each ticket there **needs** to be a comma
            if(ticket=='1')   
            {
                full_ticket=full_ticket+30;                 
                total_amount=total_amount+full_ticket;
            }
            if(ticket=='2')
            {
                teacher_ticket=teacher_ticket+25.5;             
                total_amount=total_amount+teacher_ticket;
            }
            if(ticket=='3')
            {
                std_ticket=std_ticket+22.10;                     
                total_amount=total_amount+std_ticket;
            }
            if(ticket=='4')
            {
                foreign_ticket=foreign_ticket+0;                    
                total_amount=total_amount+foreign_ticket;
            }
            if(ticket=='5')
            {
                polis_card=polis_card+0;                         
                total_amount=total_amount+polis_card;
            }
            if(ticket=='6')
            {
                elderly_card=elderly_card+0;                    
                total_amount=total_amount+elderly_card;
            }
        }while(c!=';'); //termination of do-while loop when it reads a semicolon


                    //calculate sum per each bus
        busProfit=(full_ticket+teacher_ticket+std_ticket+foreign_ticket+polis_card+elderly_card)-(fuel_amount*fuel_price);

        daily_profit=daily_profit+busProfit; //calculate daily profit of buses

        if(busProfit>hAmount) //set condition for highest bus
        {
            hAmount=busProfit;            
            hBus=bus;
        }


        full_ticket=0; teacher_ticket=0; std_ticket=0; foreign_ticket=0;polis_card=0;elderly_card=0;
        //set variables to 0 before loop starts again

    }

            cout<<fixed<<setprecision(2);       
            cout<<hBus<<" "<<hAmount<<endl;         //print highest bus and highest amount
            cout<<daily_profit;                     //print daily profit

    return 0;

}
#包括
#包括
#包括
使用名称空间std;
int main()
{
int n,j;
双倍全票=0,教师票=0,标准票=0,外宾票=0,城邦卡=0,老人卡=0;//检票
char-ticket,c;
string bus,hBus;//为总线名称声明字符串
双燃料金额、燃料价格、日利润、公共汽车利润、海蒙特、总燃料金额;
cin>>n>>燃油价格;
对于(j=1;j>总线>>燃油量;//读取字符串和消耗的燃油量
做
{
cin>>票证>>c;//读取票证类型,c为逗号,每个票证后面**需要**为逗号
如果(票证='1')
{
全票=全票+30;
总金额=总金额+全票;
}
如果(票证='2')
{
教师票=教师票+25.5;
总金额=总金额+教师票;
}
如果(票证='3')
{
标准票=标准票+22.10;
总金额=总金额+标准票;
}
如果(票证='4')
{
外国票=外国票+0;
总金额=总金额+国外机票;
}
如果(票证='5')
{
波利斯卡=波利斯卡+0;
总金额=总金额+波利斯卡;
}
如果(票证='6')
{
长者卡=长者卡+0;
总金额=总金额+长者卡;
}
}while(c!=“;”);//读取分号时do while循环的终止
//计算每辆公共汽车的总和
公交利润=(全票+教师票+标准票+外宾票+城邦卡+老人卡)-(燃油金额*燃油价格);
日利润=日利润+公交利润;//计算公交日利润
if(BUSPRITE>hAmount)//为最高总线设置条件
{
哈蒙特=利润;
hBus=总线;
}
全票=0;教师票=0;标准票=0;外国票=0;城市卡=0;老年卡=0;
//在循环再次开始之前,将变量设置为0
}

cout两个问题,尽管第二个问题可能不相关,因为我认为除了计算之外,
total\u amount
没有任何用处:

每日利润
在使用前从未初始化

您的
总金额的值将不正确,请执行以下操作:

   if(ticket=='1')   
    {
        full_ticket=full_ticket+30;                 
        total_amount=total_amount+full_ticket;
    }
在上面的代码中,您将一张
全票的成本添加到我假设的销售全票的总收入中。然后,您将该值添加到
总金额中。问题是,在计算每个tim售出的每张票的价值时,您确实只想在
总金额中添加30e你增加的不是一张票的价值

第一张票:
全票=30,总金额=30
第二张票:
全票=60,总金额=90
第三张票:
全票=90,总金额=180


这种模式在其他票价中重复出现。

两个问题,尽管第二个问题可能不相关,因为我认为除了计算之外,
总金额没有任何用处:

每日利润
在使用前从未初始化

您的
总金额的值将不正确,请执行以下操作:

   if(ticket=='1')   
    {
        full_ticket=full_ticket+30;                 
        total_amount=total_amount+full_ticket;
    }
在上面的代码中,您将一张
全票的成本添加到我假设的销售全票的总收入中。然后,您将该值添加到
总金额中。问题是,在计算每个tim售出的每张票的价值时,您确实只想在
总金额中添加30e你增加的不是一张票的价值

第一张票:
全票=30,总金额=30
第二张票:
全票=60,总金额=90
第三张票:
全票=90,总金额=180


此模式在其他票价中重复。

如果您能在代码中使用调试器,我们将不胜感激。每次执行一条语句并观察变量值。请编辑您的帖子,指出导致问题的语句以及原因。@ThomasMatthews是正确的,调试器将指出代码的某一行at导致问题。运行调试器并发布导致问题的行。
开关
语句可能比多个
if
语句更可读。顺便说一句,您可以删除添加0的语句。向值添加0不会改变值;它们对程序没有任何价值。此外,为什么您的代码如此复杂让它呼吸吧。如果您能在代码中使用调试器,我们将不胜感激。每次执行一条语句,并观察变量值。请编辑您的帖子,指出导致问题的语句以及原因。@ThomasMatthews是正确的,调试器将指出导致问题的代码的某一行。运行t调试器并发布导致问题的行。
switch
语句可能比多个
if
语句更可读。顺便说一句,您可以删除添加0的语句。Addin