1. 程式人生 > >簡單C++程式的編寫5:模擬ATM機

簡單C++程式的編寫5:模擬ATM機

運用C++語言,模擬24小時運營的ATM機,實現其五大功能:

1、餘額查詢

2、取款

3、存款

4、轉賬

5、密碼修改

程式碼:

#include<iostream.h>
#include<conio.h> 
char *password()               //定義輸入密碼的函式
{
	int j;
	char *n=new char[4];       //定義指向一個具有4個char型元素陣列的首地址
	for(j=0;j<4;j++)           //輸入密碼,並以*顯示
	{
		n[j]=getch();
		cout<<"*";
	}
	cout<<"\n";
	return n;
} 
int login(char *m)            //定義賬戶的登入函式
{
	int i,j;
	char *n;
	cout<<"    登入    "<<endl;
	cout<<"************"<<endl;
	for(i=1;i<4;i++)           //記錄輸錯密碼的次數
	{
		cout<<"請輸入密碼:"<<endl;
		n=password();
		for(j=0;j<4;j++)      //判斷密碼是否錯誤
		{
			if((*m++)!=(*n++)) 
			{
				cout<<"密碼錯誤!"<<endl;
				break;
			}
		}
		if(j==4)
		{
			cout<<"登入成功!"<<endl;
			break;
		}
	}
	return i;
}            //呼叫getch函式的標頭檔案
double yue(double a)             //定義查詢餘額的函式
{
cout<<"當前餘額:"<<a<<"元"<<endl;
return a;
}
double qukuan(double a)        //定於取款的函式
{
	int b;
	while(1)                    //判斷輸入的格式是否正確
	{
		cout<<"請輸入取款金額:"<<endl;
    	cout<<"(注意:金額需為100的整數倍,且在100~10000)"<<endl;
    	cin>>b;
		if((b%100)!=0)
			cout<<"輸入錯誤,請重新輸入"<<endl;
		else break;	
	}
	cout<<"取款成功!\n"<<"請取走您的鈔票"<<endl;
	a-=b;
	return a;
}
double cunkuan(double a)        //定義存款的函式
{
	int b;
	cout<<"請把鈔票放入指定位置!"<<endl;
	while(1)              
	{
    	cout<<"請輸入存款的金額:"<<endl;
	    cin>>b;
	    if((b%100)!=0)
			cout<<"輸入錯誤,請重新輸入"<<endl;
		else break;	
	}
	cout<<"存款成功!\n"<<"請及時檢視!"<<endl;
	a+=b;
	return a;
}
double zhuanzhang(double a)     //定義轉賬的函式
{
	char user[19];
	double b;
	cout<<"請輸入對方的賬號:"<<endl;
    cin>>user;
	while(1)                    
	{
    	cout<<"請輸入轉賬金額:"<<endl;
	    cin>>b;
    	if(b<0)                 
			cout<<"輸入錯誤,請重新輸入"<<endl;
		else break;		
	}
	cout<<"轉賬成功!\n"<<"請及時檢視!"<<endl;
	a-=b;
	return a;
}
char *mima(char m[4])	        //定義修改密碼的函式	
{	
	int i;
	char *s1=new char[4],*s2=new char[4];
	while(1)
	{
		cout<<"請輸入舊密碼:"<<endl;
		s1=password();
		for(i=0;i<4;i++)
		{
			if(s1[i]!=m[i])
			{
				cout<<"密碼錯誤!"<<endl;
				break;
			}
		}
		if(i==4)
		{
			cout<<"密碼正確!"<<endl;
			break;
		}
	}
	cout<<"請輸入新密碼:"<<endl;
	s2=password();
	cout<<"密碼修改成功!"<<endl;
	return s2;
}
void main()
{
	int a,i;
	double balance;
	char name[10],account[19],*word[4];
	cout<<"**歡迎使用24小時運營ATM機**"<<endl;
	cout<<"為了方便您的操作,請提供以下資訊:\n"<<endl;
	cout<<"請輸入您的姓名:";
	cin>>name;
	cout<<"請輸入您的賬號:";
	cin>>account;
	cout<<"請輸入您的密碼:";
    *word=password();
	cout<<"請輸入您的餘額:";
	cin>>balance;
	cout<<"\n";
	i=login(*word);
	if(i==4)
		cout<<"密碼錯誤三次,你的賬號已被凍結!"<<endl;
	else 
	{
		cout<<"****ATM為您服務****"<<endl;
    	cout<<"請選擇操作對應的標號:\n"<<endl;
		while(1)
		{
	    cout<<"1-查詢餘額"<<endl;
	    cout<<"2-取款    "<<endl;
	    cout<<"3-存款    "<<endl;
	    cout<<"4-轉賬業務"<<endl;
	    cout<<"5-密碼修改"<<endl;
	    cout<<"0-退卡\n"<<endl;
	    cin>>a;
		if(a==0)
		{
			cout<<"退卡成功!"<<endl;
			break;
		}
		else switch(a)               //判斷使用什麼功能
		{
	    case 1: yue(balance);break;
		case 2: balance=qukuan(balance);break;
		case 3: balance=cunkuan(balance);break;
		case 4: balance=zhuanzhang(balance);break;
		case 5: *word=mima(*word);break;
		}
		cout<<"\n是否繼續?"<<endl;
		}
	}
}