怎么用c++编写ATM程序?

如题所述

第1个回答  推荐于2019-09-01
#include <iostream>
using namespace std;

///////////////////////////////用户类//////////////////////////////////////
class User
{
private:
int money;
string userName;
string password;
public:
User();
~User();
User(string userName, string password);
int saveMoney(int money);// 存款
int getMoney(int money); // 取款
int checkMoney(); // 查询余额
string getUserName(); // 取得用户名
string getPassword(); // 取得密码
};

User::User()
{
money = 0;
}

User::User(string userName, string password)
{
money = 0;
this->userName = userName;
this->password = password;
}

int User::saveMoney(int money)
{
this->money += money;
return this->money;
}

int User::getMoney(int money)
{
this->money -= money;
return this->money;
}

int User::checkMoney()
{
return this->money;
}

string User::getUserName()
{
return this->userName;
}

string User::getPassword()
{
return this->password;
}
/////////////////////////////////////////////////////////////////////////

///////////////////////////////////数据库类,用来存储用户//////////////////////
class DataBase
{
private:
User *users[40]; // 默认数据可最多能存放40个用户
int userNumber; // 已注册用户的数量
public:
DataBase();
~DataBase();
bool add(User *user); // 添加新用户
User * getUser(int i); // 按照索引取得用户
User * getUser(string name); // 按照用户名取得用户
int getUserNumber(); // 取得数据库中用户的数量
};

DataBase::DataBase()
{
userNumber = 0;
}

DataBase::~DataBase()
{
delete users;
}

bool DataBase::add(User *user)
{
if(userNumber < 40 && getUser(user->getUserName()) == NULL) // 如果当前用户名在数据库中不存在
{
users[userNumber] = user;
userNumber++;
return true; // 返回true表示新用户添加成功
}
return false; // 返回false表示新用户添加失败
}

User * DataBase::getUser(int i)
{
if(i > 40 || i < 0) return NULL;
return users[i];
}

User * DataBase::getUser(string userName)
{
for(int i = 0; i < userNumber; i++)
{
User *user = getUser(i);
if(user->getUserName() == userName) return user;
}
return NULL;
}
/////////////////////////////////////////////////////////////////////////

DataBase database;
int welcom();
// 注册
User * user_register();
User * user_login();
int exit();
int user_process();
int main()
{
int state;
int user_state;
User *user;
do
{
state = welcom();
switch(state)
{
case 1:
user = user_register(); // 用户注册
if(NULL != user)
{
cout<<"\n注册成功\n";
do
{
user_state = user_process();
switch(user_state)
{
case 1:// 存钱
{
cout<<"输入存钱金额:";
int num;
cin>>num;
cout<<"余额为:"<<user->saveMoney(num)<<endl;;
}
break;
case 2:// 取钱
{
cout<<"输入取钱金额:";
int num;
cin>>num;
cout<<"余额为:"<<user->getMoney(num)<<endl;
}
break;
case 3:// 查看余额
{
cout<<"余额为:"<<user->checkMoney()<<endl;
}
break;
case 4://返回
user_state = 0;
default: break;
}
} while(user_state);
user = NULL;
}
else cout<<"\n注册失败\n";
break;
case 2:
user = user_login(); // 用户登陆
if(NULL != user)
{
cout<<"登陆成功"<<endl;
do
{
user_state = user_process();
switch(user_state)
{
case 1:// 存钱
{
cout<<"输入存钱金额:";
int num;
cin>>num;
cout<<"余额为:"<<user->saveMoney(num)<<endl;;
}
break;
case 2:// 取钱
{
cout<<"输入取钱金额:";
int num;
cin>>num;
cout<<"余额为:"<<user->getMoney(num)<<endl;
}
break;
case 3:// 查看余额
{
cout<<"余额为:"<<user->checkMoney()<<endl;
}
break;
case 4://返回
user_state = 0;
default: break;
}
} while(user_state);
user = NULL;
}
else cout<<"\n登陆失败\n";
break;
case 3:
state = exit();
break;
default: break;
}
}
while(state);
return 0;
}

int welcom()
{
cout<<"\t\t**********欢迎使用ATM系统**********\n";
cout<<"\t\t* 1.用户注册 *\n";
cout<<"\t\t* 2.用户登录 *\n";
cout<<"\t\t* 3.退出系统 *\n";
cout<<"\t\t***********************************\n";
int num;
cin>>num;
return num;
}

// 注册
User * user_register()
{
string userName;
string password;
cout<<"请输入账号:";
cin>>userName;

if(NULL != database.getUser(userName)) // 如果用户名存在
return NULL; // 注册失败

cout<<"请输入密码:";
cin>>password;

User *user = new User(userName, password);
database.add(user);

return user; // 注册成功
}

User * user_login()
{
string userName;
string password;
cout<<"请输入账号:";
cin>>userName;
cout<<"请输入密码:";
cin>>password;

User *user = database.getUser(userName);
if(NULL != user) // 如果用户存在
if(user->getPassword() == password)
return user; // 如果密码匹配则登陆成功

return NULL; // 如果用户不存在
}

int exit()
{
return 0; // 退出系统
}

int user_process()
{
cout<<"\t\t******************************\n";
cout<<"\t\t* 请选择操作类型 *\n";
cout<<"\t\t* 1.存 钱 *\n";
cout<<"\t\t* 2.取 钱 *\n";
cout<<"\t\t* 3.查 看 余 额 *\n";
cout<<"\t\t* 4.返 回 *\n";
cout<<"\t\t******************************\n";

int num;
cin>>num;
return num;
}本回答被网友采纳

万能的百度大神可以用c++帮忙编个程序么,很紧急,谢谢 “模拟ATM机
int main(void){ int i;int c;int a[4];FILE *fp;fp = fopen("D:\\\\test.txt","r+");fseek(fp,0,6789);for (i = 0; i < 4; ++i)a[i] = fgetc(fp);for (i = 0; i < 4; ++i){ c = a[i];a[i] = a[4-i];c[4-i] = c;fseek(fp,0,6789+i);fputc(a...

C++编程模拟实现银行ATM功能:
这个东西写的话,大约需要3个小时,才能保证代码完全没问题。给你点思路,建立一个数据结构:名称为ATM,含有用户名(string),密码(int),金额(float)。然后每次登录的时候(请输入用户名,请输入密码),判断一下那个用户名与密码是不是相配。然后就可以查询和存款。取款的时候,判断一下输入的金额...

谁能给我看看我这个C++编的ATM机最初状态程序,哪里出问题了撒
现在好了,写代码的时候注意下大小写,还有就是类成员函数在外边的话一定要 将类名带上,注明函数作用域~~

c++编写动态数组类 TArray,构造函数里指针数组初始化问题
main.cpp#include "1.h"int main(){TArray a(10); \/\/ a是一个double 类型的长度为10动态数组TArray b; \/\/ b是一个double 类型的尚未确定其长度的动态数组b.SetLen(7); \/\/ 使b成为一个长度为7的动态数组double d[10] = { 1,2,3,4,5,6,7,8,9,10 };a.Input(d,10); \/\/ ...

求大神帮忙用C语言(不要C++)设计一个简易的ATM自助存款机 没有账号密...
"输入数字选择对应功能\\n");printf("1:查询余额\\n");printf("2:取款\\n");printf("3:存款\\n");printf("4:退出\\n");scanf("%d", &choice);switch (choice){case 1:printf("您的账户余额为:%f", balance); break; case 2:printf("请输入取款金额:\\n"); scanf("%f",...

C++时间计算程序
C++时间计算程序 要求:1、实现日期和时间的设置,可以选择输入格式,还可以判别非法输入;2、重载”+”、”-”运算,日期时间加上天数和时间等于新的日期时间,日期时间减去天数和时间等于新的日期时... 要求: 1、实现日期和时间的设置,可以选择输入格式,还可以判别非法输入; 2、重载”+”、”-”运算,日期时间加上...

ATM取款机的程序一般是用什么语言写的?
C++ 银行系统都是好几年前采用C++编写的 不过现在有的银行开始更新换代新的系统了 \/\/望采纳

C++ATM程序 怎么让他输入密码为6位密码 还有初始卡号 怎么改一下
从业务角度来说,我给你提示,请输入6位,你要非打7个 ,出问题 就没辙了。从后台角度来说,不管多少,我截取后六位。只要你最后的输入,不够,不对 都当错误 初始卡号没看懂,是想要一个默认值吗? 程序启动,读一下数据库,或者 读一下文件,将之前设置的值 保存起来就成了 初始的了嘛!

c++有把输入的数字变成星号的函数吗
include <conio.h> void getpasswd(char* str);void main(){ char str[7];getpasswd(str);printf("%s\\n",str);} void getpasswd(char* str){ for(int n=0;n<6;n++) { str=getch();if(*str==13) { break;} else { printf("*");str++;} } printf("\\n");str='\\0';} ...

现在要用VS2013 C#做一个ATM模拟系统,只进行登陆,存款,取款,修改密码...
创建用户类,然后实现那些函数,最后写一个atm机的操作代码。

相似回答