首页 热点资讯 义务教育 高等教育 出国留学 考研考公

用c语言编写ATM自动取款机 不要c++的

发布网友 发布时间:2022-04-23 09:46

我来回答

1个回答

热心网友 时间:2023-10-10 00:31

既然是银行类,那么C++也可以吧。
今天写了一个,时间少,写的比较粗糙,但基本功能都有。
写了一个Account(帐户)类,实现创建帐户,对存款进行操作,保存帐户和打开帐户等。

Account类的头文件

//Account.h

#ifndef ACCOUNT_H_
#define ACCOUNT_H_

#include <string>
using std::string;
class Account
{
private:
string name; //帐户名
string password; //密码
int deposit; //存款
bool modify; //帐户是否被修改
public:
Account();
Account(string na, string psw, int dps);
~Account();
bool openAccount(string accName); //从文件打开帐户
bool saveAccount(); //将帐户保存到文件
bool land(string psw); //帐户登录
bool saving(int money); //存款
bool fetch(int money); //取款
void showBalance(); //显示余额
};
#endif

Account类的实现,在Account.cpp文件中

//Account.cpp
#include <iostream>
#include <fstream>
#include <string>
#include "Account.h"

using namespace std;

Account::Account()
{
name = "";
password = "";
deposit = 0;
}
Account::Account(string na, string psw, int dps)
{
name = na;
password = psw;
deposit = dps;
}

Account::~Account()
{
}

bool Account::openAccount(string accName)
{
ifstream fin(accName.c_str(), ios_base::in);
if(!fin.is_open())
{
std::cout<<"打开帐户错误,请检查是否有该帐户!"<<std::endl;
return false;
}
fin>>name;
fin>>password;
fin>>deposit;
fin.close();
return true;
}

bool Account::saveAccount()
{
if(modify == false)
return true;
ofstream fout;
fout.open(name.c_str(), ios_base::out);
if(!fout.is_open())
{
std::cout<<"保存帐户错误,不能创建文件!"<<std::endl;
return false;
}
if(name=="")
{
std::cout<<"帐户为空,不能保存!"<<std::endl;
return false;
}
fout<<name<<std::endl;
fout<<password<<std::endl;
fout<<deposit<<std::endl;
fout.close();
return true;
}

bool Account::land(string psw)
{
if(psw == password)
return true;
else
return false;
}

bool Account::saving(int money)
{
if(money<=0)
{
std::cout<<"错误!存入款额不能小于等于0!"<<std::endl;
return false;
}
deposit += money;
modify = true;
return true;
}

bool Account::fetch(int money)
{
if(money<=0)
{
std::cout<<"错误!取出款额不能小于等于0!"<<std::endl;
return false;
}
else if(money<=deposit)
{
deposit -= money;
modify = true;
return true;
}
else if((money - deposit)<=2000)
{
deposit -= money;
std::cout<<"您的帐户已透支,透支额为:"<<-deposit<<"元"<<std::endl;
modify = true;
return true;
}
else
{
std::cout<<"错误!取款超过允许透支额!"<<std::endl;
return false;
}
}

void Account::showBalance()
{
std::cout<<"您目前的帐户存款余额为 "<<deposit<<" 元"<<std::endl;
}

说明:
bool saveAccount()以帐户名为文件名,以文本格式,保存帐户名、密码、存款信息,保存的文件没有扩展名,但可以用记事本打开。

至于主程序文件,由于百度*,不能贴出来,我用百度的消息发送给你。

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com