我在正确的轨道上吗?出纳程序 C++

Posted

技术标签:

【中文标题】我在正确的轨道上吗?出纳程序 C++【英文标题】:am i on the right track? Cashier Program C++ 【发布时间】:2013-02-12 18:55:58 【问题描述】:

我是 C++ 新手,想知道我是否走在正确的轨道上?我对此有点困惑,但希望可能对我遗漏/有错的事情提供一些有用的提示……我知道它还没有完全完成,我仍然需要对美元、季度进行细分……等等

问题:收银机使用自动投币机帮助找零。我们假设给店员钱来支付购买费用。对于找零,店员将任何纸币归还给顾客,并指示投币机分发少于 1 美元的找零。在本练习中,您将模拟职员和机器的动作。

在收银台,我们需要访问购买价格和付款。变化,即支付价格和购买价格之间的差额,是一个实数。整个部分代表美元的变化,小数部分是美分的变化,以四分之一、一角、镍和便士的形式返回。例如,支付 10 美元来支付 3.08 美元的购买,所需的零钱为 6.92 美元。店员分发 6 美元,投币机为 92 美分分配 3 个 25 美分、1 个硬币、1 个镍和 2 个便士。

92 = 3(25) + 1(10) + 1(5) + 2

使用实数对象来标识购买价格(price)、支付金额(payment)和零钱(change)。主程序计算找零的数量(coinChange)并将其分成美元(dollars)、夸特(quarts)、角钱(dimes)、镍币(nickels)和便士(pennies)。

您必须为季度(quarts)、角钱(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;

【问题讨论】:

那么……你有什么问题? 您可以将代码粘贴到您的问题中,然后突出显示所有内容并点击代码按钮 欢迎来到 ***! *** 的独特之处在于它是一个问答网站。它不是一个讨论站点、一个代码审查站点,也不是一个家庭作业存储库。在 *** 上,你提出一个问题,人们就会做出回应。你有一个具体的问题(至少,比“我在正确的轨道上吗?”更具体)?如果是这样,请编辑您的帖子以询问它。 【参考方案1】:

是的,你在正确的轨道上。你的总体结构是合理的。这些家庭作业几乎总是有这样的结构:

int main () 
  // read in the data
  ...

  // Do the math
  ...

  // Write out the data
  ...

你确实有一些数学错误。试着用铅笔和纸逐句检查代码,假装是计算机。此外,尝试使用调试器单步执行代码,检查每一行之后的变量。将实际发生的情况与您的预期进行比较。

【讨论】:

我强烈建议尽可能尝试使用调试器。当程序变得更复杂时,了解如何使用断点、监视和其他调试工具至关重要。 同意。我更改了帖子的语言以反映您的建议。 所以我让我的程序工作了......有点......当我去运行它时......我输入 3.08 作为成本 10.00 作为付款,它给出我是正确的 6.92 总...但是当它分成 1 美分硬币 1 美分硬币和 1 美分硬币时,它似乎缺少 1 美分硬币 1 硬币和 1 便士......有什么建议吗?? 使用调试器并逐行执行您的代码。每个步骤中的变量应该保持什么?他们持有什么?出乎意料的第一件事是什么?为什么会这样?

以上是关于我在正确的轨道上吗?出纳程序 C++的主要内容,如果未能解决你的问题,请参考以下文章

在向量c ++中对复数进行排序

椭圆面片之间的仿射变换

枚举器、迭代器、IEnumerable - 有点困惑

如何快速创建由类实例填充的数组?

使用 Int 13H 读取磁盘参数

带有 API 密钥和 JWT 令牌的 Net Core API