经常用ATM自助存取款机取钱存钱,所以一时兴起,就写了一个小代码模拟了一下ATM的工作原理,全当做是练习C++,使用面向对象方式实现,相互学习。
先看看运行截图:
接着看看代码吧。
#include <iostream>
#include <string>
using namespace std;
class Bank
{
public:
string m_name;
string m_account;
double m_money;
Bank()
{
m_name = "NoName";
m_account = "NoAccount";
m_money = 0;
}
Bank(string name, string account, double money)
{
m_name = name;
m_account = account;
m_money = money;
}
~Bank()
{
cout << "欢迎再次使用自助存取款机ATM\n";
}
void show()
{
cout << "用户名: " << m_name<<" 余额:"<< m_money << endl;
}
void deposit(double in)//存款
{
m_money += in;
cout << "存:"<<in<<" 余额:" << m_money << endl;
}
void draw(double out)//取款
{
if (out > m_money)
{
cout << "取:"<<out<<",余额:"<<m_money<<"。【余额不足,无法取款】\n";
return;
}
m_money -= out;
cout << "取:" <<out<<" 余额:"<< m_money << endl;
}
};
int main()
{
cout << "欢迎使用自助存取款机ATM.\n";
Bank zs("张三", "20130328212140", 100);
zs.show();
zs.deposit(10.1);
zs.draw(1000);
zs.deposit(1056.1);
zs.draw(1000);
return 0;
}
开始包含头文件是string.h,然后不停的提示<<有问题,后来发现在C++中,是包含string头文件,没有.h扩展名的。切记哈。为了方便,就将Bank类定义于main函数前,而且类成员函数直接在类声明时实现了。而且,都使用public权限,而在实际开发,需要将成员变量设置为private。这是出于安全考虑,请注意。
类中提供两个构造函数,方便初始化,提供一个析构函数,用于退出时的提示。根据实际的情况,我们需要对取钱进行控制,如果余额不足,要提示,不能继续取钱。如果只是练习语法,不用管这些。而考虑到实际的开发,这些就要考虑进来,这就是练习和实际开发的区别。或者说,尽可能模拟真实的情况。
你可以在这里继续做一个可以让用户来输入的操作方式,从而更加逼真。或者完全模拟一种ATM的操作流程。这是对开发经验的一个锻炼。