在好例子网,分享、交流、成长!
您当前所在位置:首页C/C++ 开发实例C/C++语言基础 → ATM(C++)取款/查询余额 入门级示例源码

ATM(C++)取款/查询余额 入门级示例源码

C/C++语言基础

下载此实例
  • 开发语言:C/C++
  • 实例大小:6.79KB
  • 下载次数:27
  • 浏览次数:751
  • 发布时间:2018-05-10
  • 实例类别:C/C++语言基础
  • 发 布 人:1421096344
  • 文件格式:.cpp
  • 所需积分:2
 相关标签: c++

实例介绍

【实例简介】

【实例截图】

from clipboard

【核心代码】

#include<iostream>
using namespace std;
#include<string> 
#include<stdlib.h>
#define OK 1
#define ture 1
//class User;//定义全局类class 
typedef int Status;

//--------User的存储结构的定义-------------------------- 
typedef struct 
{ 
    string ID;
	string key;
	double money; 
}User;
//------User的操作函数实现----------------- 
void set_user(User &U)
{
	cout<<"请初始化ID、key、money(账号、密码、初始金额)"<<endl;
	cin>>U.ID>>U.key>>U.money;
}

double get_money(User U)      //获取余额函数
{  
	return (U.money);
} 

string get_ID(User U)         //获取卡号
{  
	return (U.ID);
} 

string get_key(User U)        //获取密码 
{ 
	return (U.key);
}  
 
Status revise_money(User &U,double Money) 
{ 
	U.money-=Money;
	return OK;
} 

Status revise_key(User &U,string Key)   
{   
    U.key=Key;
	return OK;
}  
//------------ATM类--------------- 
class ATM
{
 private: 
		 bool j; 
		 int time; 
		 User customer; 
public: 
         ATM(string id,string Key,double Money)
		 {
		 	j=ture;
		 	customer.ID=id;
		 	customer.key=Key;
		 	customer.money=Money;
		   }  	   		   
		 void login();                           //登陆界面      
		 bool check_customer(string id,string Key);    //核对用户信息 
		 bool signlost();                        //挂失
//		 bool check_deal_id(string id);          //核对转入账号
		 void withdrawals();                     //取款
		 void transfermoney();                   //转账
		 Status query();                         //查询  
		 Status change_key();                    //更改密码  
		 void function();                        //功能界面  
		 void lockcard();                        //锁卡  
		 void quit();                            //退出  
};

//---------------ATM类的成员函数的实现------------- 
bool ATM::signlost()
{ 
	char a;   
	do     {       
		cout<<"是否确认挂失:(y/n) 继续请按y 退出请按n "<<endl;   
		cin>>a;   
		if(a=='y')    {      
			cout<<"您已挂失成功!"<<endl;         
			exit(2); 
		}   
		else    {    
			cout<<"您已选择退出!"<<endl;
			function();
		}    
	}
    while(a=='y');  
    return (j=ture); 
}

void ATM::transfermoney()
 {   
	string id;
	double num; 
	
	cout<<"请输入所转账号:"<<endl;    
	cin>>id;    
	cout<<"请输入所转钱数:"<<endl;   
	cin>>num;  
	    
	if(customer.money>num)
	{
		customer.money-=num; 
		cout<<"转账成功!"<<endl;
		cout<<"您的余额为:"<<customer.money<<endl;  
		}    
	
	else       
		cout<<"余额不足!"<<endl; 
	function();
}  
 
 void ATM::login()//登陆界面 
{  
	time=0;  
	string id;
	string Key; 
	int i=0; 
	do   
	 {
  
		  cout<<"     ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇"<<endl; 
		  cout<<"     ◆欢迎使用安阳师院计科班银行!◆"<<endl; 
		  cout<<"     ◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇"<<endl<<endl;  
		  cout<<"         测试卡号为:123456"<<endl;  
		  cout<<"         测试密码为:123456"<<endl;  
		  cout<<"         测试卡号余额为:10000元"<<endl<<endl<<endl; 
		  cout<<"            请输入您的卡号                "<<endl;  
		  cout<<"卡号:";   
		  cin>>id;  

		  cout<<endl<<"             请输入您的密码                "<<endl; 
		  cout<<"密码:";   
		  cin>>Key;
		     
		  if(!check_customer(id,Key))     {    
			  cout<<"对不起,您的卡号或密码有误,请重新输入"<<endl;    
			  time  ;   
		  }    
		  else     {   
			  function();  
		  }   
	 }    
	 while(time<3);  
	 lockcard();
}  

bool ATM::check_customer(string id,string Key)
{ 
	if(customer.ID==id&&customer.key==Key)
			   return true;
	else    
		return false; 
}  
void ATM::function() 
{
	int n;   
	cout<<endl<<endl<<endl; 
	cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆"<<endl;  
	cout<<"☆请输入你想操作的序号:                   ★"<<endl;  
	cout<<"★             1)取款                     ☆"<<endl;  
	cout<<"☆             2)查询余额                 ★"<<endl;  
	cout<<"★             3)更改密码                 ☆"<<endl;
	cout<<"☆             4)挂失                     ★"<<endl;
	cout<<"★             5)转账                     ☆"<<endl;
	cout<<"☆             6)退出系统                 ★"<<endl;    
	cout<<"★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆★☆"<<endl;  
	cin>>n;   
	if(n<0||n>6)   {
		cout<<"您输入的序号不正确,请重新输入:";  
		cin>>n; 
	}   
	switch(n)   {  
	case 1:withdrawals();break;   
	case 2:query();break;  
	case 3:change_key();break;
	case 4:signlost();break;
	case 5:transfermoney();break;
	case 6:quit();break;   
	}  
	while(true);

} 
 
void ATM::withdrawals() 
{   
	double m;                                    //m,money
	char ch;   
	do   {   
		cout<<endl<<"输入您要取多少钱: "<<endl;   
		cin>>m;  
		while(m<=0)    {    
			cout<<"请输入正确的取款数:(100的倍数、每次最多2000元) "<<endl;   
			cin>>m;   
		}
		   if(customer.money-m<0) 
		      { 
			   cout<<"对不起,您的余额不足!"<<endl;  
		   }      
		   else   {   
			   if((int)m%100!=0)    {    
				   cout<<"对不起,您的取款金额必须为100的倍数!"<<endl;    
			   }    
			   else  {   
				   if(m>2000)    {  
					   cout<<"对不起,您每次只能取2000元!"<<endl;  
				   }   
				   else    {     
					   cout<<"操作成功,请稍后!!!"<<endl; 
					   revise_money(customer,m); 
				   }
			   }
		   }    
		   cout<<"请输入(y/n)确认是否取钱!"<<endl; 
		   cin>>ch;   
		   cout<<"您已取款成功!请收好钱!";
		   function();   
		   while(ch!='Y'&&ch!='y'&&ch!='N'&&ch!='n') 
		     { 
			   cin>>ch;  
		   }  
	}    
	while(ch=='y'||ch=='Y'); 
} 
 
Status ATM::query() 
{ 
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl; 
cout<<"                                            "<<endl; 
cout<<"   卡号:"<<get_ID(customer)<<endl; 
cout<<"   余额:"<<get_money(customer)<<"元"<<endl;
cout<<"                                            "<<endl;
cout<<"~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~"<<endl;
function();
return OK;
} 

int ATM::change_key()
 { 
	string Key;
	string key1,key2;
	time=0; 
	do  
	{   
		cout<<"请输入旧密码:";  
		cin>>Key; 
		if(!check_customer(customer.ID,Key))   
			time  ;
		else  
			break; 
	}  
	while(time<3);  
	if(time==3) 
		lockcard(); 
	int t=1; 
	while (t==1)
	{
		cout<<"请输入新密码并牢记好新密码!"<<endl; 
		cin>>key1; 
		cout<<"请再次输入新密码并牢记好新密码!"<<endl; 
		cin>>key2; 
		if(key1==key2)
		 t=0;//对新密码进行比较,如果相等,则返回0   
		if(t!=0)   
			cout<<"您输入的密码不一致,请重新输入!"<<endl; 
	} 
	customer.key=key1;
	cout<<"密码修改成功,请您牢记!"<<endl; 
	function();
	return OK;
} 
void ATM::lockcard()
{  cout<<"对不起,你输入的密码错误已达三次,您的卡已被没收!"<<endl;  
   exit(0);
}
void ATM::quit() 
{ 
	cout<<"请取走您的卡,感谢您的使用,欢迎您下次再来!"<<endl;  
	exit(0); 
} 
int main()
 { 

	ATM a("123456","123456",10000); 
	a.login();  
	a.function();
	return 0;
}

标签: c++

实例下载地址

ATM(C++)取款/查询余额 入门级示例源码

不能下载?内容有错? 点击这里报错 + 投诉 + 提问

好例子网口号:伸出你的我的手 — 分享

网友评论

发表评论

(您的评论需要经过审核才能显示)

查看所有0条评论>>

小贴士

感谢您为本站写下的评论,您的评论对其它用户来说具有重要的参考价值,所以请认真填写。

  • 类似“顶”、“沙发”之类没有营养的文字,对勤劳贡献的楼主来说是令人沮丧的反馈信息。
  • 相信您也不想看到一排文字/表情墙,所以请不要反馈意义不大的重复字符,也请尽量不要纯表情的回复。
  • 提问之前请再仔细看一遍楼主的说明,或许是您遗漏了。
  • 请勿到处挖坑绊人、招贴广告。既占空间让人厌烦,又没人会搭理,于人于己都无利。

关于好例子网

本站旨在为广大IT学习爱好者提供一个非营利性互相学习交流分享平台。本站所有资源都可以被免费获取学习研究。本站资源来自网友分享,对搜索内容的合法性不具有预见性、识别性、控制性,仅供学习研究,请务必在下载后24小时内给予删除,不得用于其他任何用途,否则后果自负。基于互联网的特殊性,平台无法对用户传输的作品、信息、内容的权属或合法性、安全性、合规性、真实性、科学性、完整权、有效性等进行实质审查;无论平台是否已进行审查,用户均应自行承担因其传输的作品、信息、内容而可能或已经产生的侵权或权属纠纷等法律责任。本站所有资源不代表本站的观点或立场,基于网友分享,根据中国法律《信息网络传播权保护条例》第二十二与二十三条之规定,若资源存在侵权或相关问题请联系本站客服人员,点此联系我们。关于更多版权及免责申明参见 版权及免责申明

;
报警