
int chaxun(int a3)
{
int b
b=a3
printf("你的余额为:%d\n",b)
}
int qukuan(int a3)
{
int a,b
printf("请输入您要提取的现金:\n")
scanf("%d",&a)
b=a3-a
if(b<0)
printf("对不起 ,你的余额不足\n")
else
{
printf("请收好您的%d元现金\n",a)
a3=a3-a
}
return (a3)
}
int gaini(int a2)
{
int a,b,c=1,d,e=1
while(e)
{
printf("请输入你的旧密码:\n")
scanf("%d",&d)
if(d==a2)
e=0
else
{
e=1
printf("你输入的密码错误,请重新输入:\n")
}
}
while(c)
{
printf("请输入您的六位数新密码\n")
scanf("%d",&a2)
printf("请确认您的六位数新密码\n")
scanf("%d",&b)
if(a2==b)
{
if(b>100000&&b<999999&&b/(b/100000)!=111111)
{
c=0
printf("密码修改成功\n")
}
else
{
printf("您输入的密码不符合要求,请从新输入\n")
c=1
}
}
else
{
c=1
printf("您两次输入的密码不一致,请重新输入:\n")
}
}
return a2
}
int quka()
{
printf("\n 梦若保保提醒您\n")
printf("请收好您的卡片,谢谢,再见\n\n")
}
int cunkuan(int a3)
{
int i,j,k
printf("请输入你要存的金额\n")
scanf("%d",&k)
if(k<0)
{
printf("对不起,没有负存款\n")
}
else
{
printf("\n您好,您已经存进去了%d元\n",k)
a3=a3+k
}
return a3
}
main()
{
int i,j,b=1,c,k,l,m,n
int a1=123456,a2=123456,a3=1000
printf("欢迎使用自动柜员机:\n\n")
while(b==1)
{
printf("请输入您的账号:\n")
scanf("%d",&k)
printf("请输入您的密码:\n")
scanf("%d",&l)
if(k==a1&&l==a2)
{
b=0
printf("您的账户余额为:%d\n",a3)
}
else
{
b=1
printf("对不起,您输入的账号或者密码有误,请重新输入:\n")
}
}
do
{
printf("\n请选择您要的服务项目:\n")
printf("1.查询余额\n")
printf("2.取款\n")
printf("3.修改密码\n")
printf("4.取卡\n")
printf("5.存款\n")
scanf("%d",&c)
switch(c)
{
case 1:
chaxun(a3)
break
case 2:
a3=qukuan(a3)
break
case 3:
a2=gaini(a2)
break
case 4:
quka()
break
case 5:
a3=cunkuan(a3)
break
}
}while(c!=4)
}
#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 = 0i <userNumberi++)
{
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
}
lass consumerclass ATM // ATM取款机
{
public:
ATM(consumer& cn):cnsm(cn){}
void welcome() // 登陆界面
bool check_passwd(char n[],char pwd[]) // 核对密码
void change_passwd() // 修改密码
void fetchmoney() // 取款
void information() // 查询信息
void exitATM() // 退出系统
void functionshow() // 功能界面
void lock() // 锁机
private:
int times // 记录密码输入次数
consumer& cnsm
}
class consumer // 用户
{
public:
friend class ATM
consumer(char Name[],char Num[],float Money,char Password[])
protected:
char* get_name() // 取得姓名
char* get_num() // 取得卡号
char* get_passwd() // 取得密码
float get_money() // 取得余额
void set_passwd(char pwd[]) // 设置密码
void set_money(float m) // 取钱
private:
char passwd[8] // 用户密码
char name[20] // 用户姓名
char num[20]
float money
}
// ************************************
// * *
// * consumer类的成员函数 *
// * *
// ************************************
#include"function.h"
#include
consumer::consumer(char Name[],char Num[],float Money,char Password[])
{
strcpy(name,Name)
strcpy(num,Num)
money=Money
strcpy(passwd,Password)
}
float consumer::get_money()
{
return money
}
char* consumer::get_name()
{
return name
}
char* consumer::get_num()
{
return num
}
char* consumer::get_passwd()
{
return passwd
}
void consumer::set_money(float m)
{
money-=m
}
void consumer::set_passwd(char pwd[])
{
strcpy(passwd,pwd)
}
// ************************************
// * *
// * ATM类的成员函数 *
// * *
// ************************************
#include "function.h"
#include
#include
void ATM::welcome()
{
times=0
cout<<"$ 欢迎使用若雪银行ATM自动取款机!~! "<< P>
char pwd[8],num[20],ch
int i=0
do
{
i=0
cout<<"请输入卡号:"
do
{
cin.get(ch)
num[i++]=ch
}while(ch!='\n')
num[i-1]='\0'
i=0
cout<<"请输入密码:"
do
{
cin.get(ch)
pwd[i++]=ch
}while(ch!='\n')
pwd[i-1]='\0'
if(!check_passwd(num,pwd))
{
cout<<"你输入的卡号或密码有误,请重新输入"<
times++
}
else
{
functionshow()
}
}while(times<3)
lock()
}
bool ATM::check_passwd(char num[],char pwd[])
{
if(strcmp(num,cnsm.get_num())==0&&strcmp(pwd,cnsm.get_passwd())==0)
return true
else
return false
}
void ATM::functionshow()
{
int n
do
{
cout<<"请你输入相应的 *** 作序号进行 *** 作:"<<ENDL
cout<<"1) 修改密码 "< <<"2) 取款 "< <<"3) 查询余额 "< <<"4) 退出系统 "<
cout<<"$ >\\"
cin>>n
while(n<1||n>4)
{
cout<<"请输入正确的 *** 作序号!"<
cout<<"$ >\\"
cin>>n
}
switch(n)
{
case 1: change_passwd() break
case 2: fetchmoney() break
case 3: information() break
case 4: exitATM() break
}
}while(true)
}
void ATM::change_passwd()
{
char pwd[8],repwd[8]
times=0
do
{
cout<<"请输入旧密码:"
cin>>pwd
if(!check_passwd(cnsm.get_num(),pwd))
times++
else
break
}while(times<3)
if(times==3)
lock()
int t=0
do
{
cout<<"请输入新密码:"
cin>>pwd
cout<<"请再输入一次新密码:"
cin>>repwd
if((t=strcmp(pwd,repwd))!=0)
cout<<"你输入的两次密码不一样,请从新输入!"<
}while(t!=0)
cnsm.set_passwd(pwd)
cout<<"密码修改成功,请牢记!"<< P>
}
void ATM::fetchmoney()
{
float m
char ch
do
{
cout<<"你要取多少钱:"<<"\N$>\\"<
cin>>m
while(m<=0)
{
cout<<"请输入正确的数字!"<
cout<<"$ >\\ "
cin>>m
}
if(cnsm.get_money()-m<0)
{
cout<<"对不起,你的余额不足!"<
}
else
{
cout<<" *** 作成功,请收好钱!"<<ENDL
cnsm.set_money(m)
}
cout<<"是否要继续该项 *** 作:(Y/N) "<
cout<<"$ >\\ "
cin>>ch
while(ch!='n'&&ch!='N'&&ch!='Y'&&ch!='y')
{
cout<<"$ >\\"
cin>>ch
}
}while(ch=='y'||ch=='Y')
}
void ATM::information()
{
cout<<"**********************************"<
cout<<"*"<
cout<<"* 用户姓名:"<<<ENDL
cout<<"* 卡号: "<<<ENDL
cout<<"* 余额: "<<<ENDL
cout<<"**********************************"<< P>
}
void ATM::lock()
{
cout<<"对不起,由于你的 *** 作有误,你的卡已经被没收! ?<<endl
cout<<"请取卡……"<
exit(0)
}
// ************************************
// * *
// * ATM.cpp *
// * *
// ************************************
#include
#include"function.h"
void main()
{
consumer c1("jim","12345",5200.3f,"123") // 先构造一个用户
ATM atm(c1)
atm.welcome()
}
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)