我是 C++ 新手,想知道我是否走在正确的轨道上?我对此有点困惑,但希望可能对我遗漏/有错的事情提供一些有用的提示……我知道它还没有完全完成,我仍然需要对美元、季度进行细分…… ETC
问题:收银机使用自动投币机帮助找零。我们假设给店员钱来支付购买费用。对于找零,店员将任何纸币归还给顾客,并指示投币机分发少于 1 美元的找零。在本练习中,您将模拟职员和机器的动作。
在收银台,我们需要访问购买价格和付款。变化,即支付价格和购买价格之间的差额,是一个实数。整个部分代表美元的变化,小数部分是美分的变化,以四分之一、一角、镍和便士的形式返回。例如,支付 10 美元来支付 3.08 美元的购买,所需的零钱为 6.92 美元。店员分发 6 美元,投币机为 92 美分分配 3 个 25 美分、1 个硬币、1 个镍和 2 个便士。
92 = 3(25) + 1(10) + 1(5) + 2
使用实数对象标识购买价格(价格)、支付金额(付款)和零钱(change)。主程序计算零钱的数量(coinChange)并将其划分为美元(dollars)、四分之一(quarts)、一角钱(dimes)、镍币(nickels)和便士(pennies)。
您必须为季度 (quarters)、角钱 (dimes)、镍币 (nickels) 和便士 (pennies) 声明常量。您必须在计算中使用复合运算符。您必须使用 setreal(w,p) 和 setw(n) 作为输出。
到目前为止我做了什么:
// Me
// A BRIEF PROGRAM DESCRIPTION FOR CHAPTER 2, HOMEWORK 4
// COMMENT THE PREPROCESSOR
#include <iostream.h>
// COMMENT THE PREPROCESSOR STATEMENT
#include "textlib.h"
int main( )
{
// COMMENT THE CONSTANTS
const int QUARTER_AMOUNT = 25;
const int DIME_AMOUNT = 10;
// COMMENT THE OBJECTS
double price;
double payment;
double change;
int numofDollars;
int numofQuarters;
int numofDimes;
int numofNickles;
int numofPennies;
int coinChange;
cout << "Enter the purchase total: ";
cin >> price;
cout << "Enter the payment: $";
cin >> payment;
// COMMENT THE CALCULATION
change = payment - price;
numofDollars = int(change);
coinChange = (int((change / numofDollars) * 100));
numofQuarters = coinChange / 25;
coinChange = coinChange / (numofQuarters * 25);
numofDimes = coinChange / 10;
numofNickles = coinChange / 5;
numofPennies = coinChange / 1;
// OUTPUT THE INFORMATION
return 0;
}