我在计算书籍问题的手机计划节省的费用时遇到了麻烦。我想指出,我已经完成了第一部分的代码。这是我遇到麻烦的第二部分。好的,这是关于书本的问题(针对上下文):


  第1部分
  
  移动电话服务提供商为其客户提供三种不同的订阅包:
  
  套餐A:每月收费39.99美元,提供450分钟。以后每分钟$ 0.45。
  
  套餐B:每月900美元,收费59.99美元。以后每分钟$ 0.40。
  
  套餐C:每月69.99,无限制分钟。
  
  编写一个计算客户每月账单的程序。它应该询问客户购买了哪个包裹以及使用了多少分钟。然后,它应显示应付款总额。
  
  第2部分
  
  修改第1部分中的程序,以便它还显示套餐A客户如果购买了套餐B或C,将节省多少钱,以及套餐B客户如果购买了套餐C,将节省多少钱。如果没有节省,则没有消息应打印。


在第二部分中,如何计算计划的节省额?我似乎无法正确实施它们。我最初的想法是从每月总账单中减去额外总分钟数的超额费用,但我无法按我想要的那样工作。这是我的代码:

#include <iostream>
#include <iomanip>

using namespace std;

int main()

{

    double minUsed, minLeft, extraMinCost, monthTotal, planSaveB, planSaveC;
    char choice;
    const double planCostA = 39.99, planCostB = 59.99, planCostC = 69.99, monthlyMinA = 450, monthlyMinB = 900;;


        cout<<"Enter your monthly package plan: Ex. A, B or C"<<endl<<endl;
        cin>>choice;
        cout<<endl;

        cout<<"Enter the amount of minutes you used: "<<endl;
        cin>>minUsed;
        cout<<endl;

        if (choice == 'a' || choice == 'A')
        {

            minLeft=monthlyMinA-minUsed;
            if (minLeft < 0)

            {
                extraMinCost=minLeft*(-0.45);
                monthTotal=planCostA+extraMinCost;
                planSaveB = (planCostB-extraMinCost)-(-planCostB);
                planSaveC = planCostC - (planCostC-extraMinCost);
                cout << "Your total bill amount is: " << setprecision(2) << fixed << "$" << monthTotal << endl<<endl;
                cout << "You could save " << setprecision(2) << fixed << "$" << planSaveB << " if you switch to plan B or ";
                cout << "save " << setprecision(2) << fixed << "$" << planSaveC << " If you switch to plan C." << endl << endl;;
            }
            else if (minLeft >= 0)
            {
                monthTotal = planCostA;

                cout << "Your total bill amount is: " << setprecision(2) << fixed << "$" << monthTotal << endl;
            }

        }

        /*else if (choice == 'b'|| choice == 'B')
            {

                minLeft=monthlyMinB-minUsed;

                if (minLeft < 0)

                {
                    extraMinCost=minLeft*(-0.40);
                    monthTotal=planCostB+extraMinCost;
                }
                else
                    monthTotal=planCostB;

            cout<<"Your total bill amount is: "<<setprecision(2)<<fixed<<"$"<<monthTotal<<endl;

}
        else if (choice == 'c' || choice == 'C')
            {


                monthTotal=planCostC;

                cout<<"Your total bill amount is: "<<setprecision(2)<<fixed<<"$"<<monthTotal<<endl;
                cout<<"Current plan has unlimited minutes!"<<endl;


            }*/



        cout<<choice;

    return 0;
}


相关的部分是选择我的代码的一部分。当我可以正确获取该包的一部分时,我将修改其余部分。

最佳答案

我想你可能想写一个像

float getPlanACost( int minutes ) { ... }


如果客户拥有计划A并使用了“分钟”分钟数,则返回该客户将被收取的费用。然后为计划B和计划C编写类似的功能。使用这些功能打印您的每月账单,并根据要求计算可用的节省额。

软件开发的很大一部分将一个大问题分解为一些小问题。

关于c++ - 我应如何处理编写确定订阅包节省量的代码的逻辑,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/28685501/

10-11 21:59