在 switch() 中更改数据,累积
changing datas inside switch(), accumulation
>我正在做一个刺激 ATM 的项目,C++并且累加器遇到了一些麻烦,我的问题是:我使用 switch(这里是情况 1)来更改在包含 switch() 的函数中声明的 2 个变量的值,但是这些值仅在情况 1 内更改,并且它们将自己重置为原始值(如 const 声明), 因此,当我尝试打印支票并保存(在情况 3 和 4 中)时,它会打印出原始金额 (1000)。所以我不知道我在这里做错了什么。问题不在于金额,我尝试用数值替换金额,但仍然不起作用。请帮忙
int transactions()
{
double checking = 1000.00, saving = 1000.00;
double amount;
switch (inputRange(menu()))
{
case 1: system("cls");
amount = getAmount("Enter an amount to transfer from checking to saving: ");
checking -= amount;
saving += amount;
cout << checking << " " << saving; // they only change inside case 1
cout << "nTransaction completed! nnPress ENTER to return to main menu...";
cin.ignore(99,'n');
break;
更新***我已经明白了,伙计们,谢谢,只是忘记了&,这有效
int transactions(double &checkBal, double &saveBal)
{
double amount;
//set precision
cout << fixed << showpoint << setprecision(2);
switch (inputRange(menu()))
{
case 1: system("cls");
checkingToSaving (getAmount("Enter an amount to transfer from checking to saving: "), checkBal, saveBal);
cout << "nTransaction completed! nnPress ENTER to return to main menu...";
cin.ignore(99,'n');
break;
问题是checking
和saving
只存在于对transactions()
的一次调用期间。
当调用transactions()
时,它们就会出现,被初始化,你的代码会改变它们,它们会在transactions()
返回的那一刻消失。当再次调用该函数时,整个循环将重复。
这两个变量需要存在于函数之外(可能作为某个类的数据成员)。
声明一个"客户"类(带有名称、地址、储蓄、支票等成员)。 在"事务"之外创建实例,并将实例作为参数传入。
那个,或者DB。
对直接问题的一个粗略答案是使用静态变量:
int transactions()
{
static double checking = 1000.00;
static double saving = 1000.00;
.
.
这种类型的方法只为您提供一个检查和保存的实例。 如果要扩展程序以具有多个帐户,则应考虑使用类实例来保存数据:
class Account{
double checking;
double saving;
public:
int transactions();
};
相关文章:
- 防止主数据类型C++的隐式转换
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 芬威克树(BIT).找到具有给定累积频率的最小索引,单位为 O(logN)
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 在cuda线程之间共享大量常量数据
- C++将文本文件中的数据读取到结构数组中
- 如何在C++中序列化结构数据
- 在C++中打印指向不同基元数据类型的指针的内存地址
- 通过套接字[TCP]传输数据 如何在C / C ++中打包多个整数并使用send() recv()传输数据
- 在c代码之间共享数据的最佳方式
- 如何使用 std::累积在 C++ 中计算总和立方体
- 链表,反向函数,数据结构
- 数据成员SFINAE的C++17测试:gcc vs clang
- C++浮点数据类型和字符串数据类型无法子到模板函数中
- 如何对点云数据进行排序
- 累积从 C++11 中的文件中读取数据的整数
- 在 switch() 中更改数据,累积