银行多文件系统

01.//文件:bank.cpp   
02.#include<iostream>      
03.using namespace std;   
04.int account1=123;  
05.int pwd1=123456;  
06.double balance1=1000;  
07.  
08.//用全局变量保存当前登录的帐户   
09.int currentAccount;  
10.  
11.//声明自定义函数   
12.int checkStatus();  
13.void work();  
14.  
15.int main()    
16.{    
17.    int status;  
18.    char ch;  
19.    cout<<"贺家银行欢迎您光临……(本系统目前只有一个用户,帐号123,初始密码123456)"<<endl;  
20.    while(1)  //支持用户多次登录办理业务   
21.    {  
22.        status=checkStatus();  
23.        if(1==status)  
24.            work();  
25.        else if(2==status)  
26.            cout<<"欢迎下次光临……"<<endl;  
27.        else  
28.            cout<<"吞卡,请联系就近网点解决……"<<endl;  
29.        cout<<"=====要退出系统,请按键Q,其他键继续下一位用户登录======"<<endl;  
30.        fflush( stdin );  //清空输入缓冲区,否则getchar()自动获得   
31.        ch=getchar();  
32.        if(ch=='q'||ch=='Q')break;  
33.    }  
34.      
35.    return 0;  
36.}  
//文件:bank.cpp
#include<iostream>   
using namespace std; 
int account1=123;
int pwd1=123456;
double balance1=1000;

//用全局变量保存当前登录的帐户
int currentAccount;

//声明自定义函数
int checkStatus();
void work();

int main()  
{  
	int status;
	char ch;
	cout<<"贺家银行欢迎您光临……(本系统目前只有一个用户,帐号123,初始密码123456)"<<endl;
	while(1)  //支持用户多次登录办理业务
	{
		status=checkStatus();
		if(1==status)
			work();
		else if(2==status)
			cout<<"欢迎下次光临……"<<endl;
		else
			cout<<"吞卡,请联系就近网点解决……"<<endl;
		cout<<"=====要退出系统,请按键Q,其他键继续下一位用户登录======"<<endl;
		fflush( stdin );  //清空输入缓冲区,否则getchar()自动获得
		ch=getchar();
		if(ch=='q'||ch=='Q')break;
	}
	
	return 0;
}




[cpp] view plaincopyprint?
01.//文件 password.cpp,有关密码的功能   
02.#include<iostream>      
03.using namespace std;   
04.  
05.//在本文件中需要的函数声明   
06.int checkStatus();  
07.void updatePassword();  
08.  
09.//外部全局变量   
10.extern int account1;  
11.extern int pwd1;  
12.extern double balance1;  
13.extern int currentAccount;  
14.  
15./*检验密码 
16.*在很多的应用程序中,需要涉及到运行实体的“状态” 
17.*相比上一个版密码校验的函数pass(),其返回值:通过-true; 不通过-false 
18.*这个方案用checkStatus()可以返回更多的信息(状态) 
19.*返回值约定: 
20.1 - 用户名、密码正确,可以进一步工作 
21.2 - 用户名放弃登录正常退出 
22.3 - 三次登录失败吞卡后退出 
23.*/  
24.int checkStatus()  
25.{  
26.    int iStatus=3;      //默认吞卡的结局   
27.    int iPass;  
28.    int num=1;  
29.    char goOn;  
30.    cout<<"请输入帐户";  
31.    cin>>currentAccount;  //currentAccount是全局变量   
32.    do  
33.    {     
34.        if(num==1)  
35.            cout<<"请输入密码";  
36.        else  
37.        {  
38.            cout<<"温情提示:这是您第"<<num<<"次输入密码,三次不对将吞卡。"<<endl;  
39.            cout<<"还要继续尝试吗(继续输入Y,退出输入N,之后回车):";  
40.            cin>>goOn;  
41.            if('Y'==goOn||'y'==goOn)  
42.                cout<<"请再次输入密码";  
43.            else  
44.            {  
45.                iStatus=2; //用户放弃登录   
46.                break;  
47.            }  
48.        }  
49.        cin>>iPass;  
50.        num++;  
51.        if(currentAccount==account1&&iPass==pwd1)   //帐户   
52.        {  
53.            iStatus=1;  //密码对了   
54.            break;  
55.        }  
56.    }while(num<4);  //密码不正确且次数在允许范围内循环   
57.    //如果在循环因为num==4为真而退出,iStatus的值还保持初始3,代表吞卡   
58.    return iStatus; //返回状态   
59.}  
60.  
61.void updatePassword()  
62.{  
63.    int p1,p2;  
64.    if(currentAccount==account1)   //确定帐户,目前只有一个帐户,真银行不这样,待改进   
65.    {  
66.        cout << "请输入新密码:";  
67.        cin >> p1;    
68.        cout << "请确认新密码:";  
69.        cin >> p2;    
70.        if(p1==p2)//两次输入相符   
71.        {  
72.            pwd1=p1;     
73.            cout<<"密码修改成功!"<<endl;  
74.        }  
75.        else  
76.        {  
77.            cout<<"两次输入不一致,密码修改失败。"<<endl;  
78.        }  
79.    }  
80.}  
//文件 password.cpp,有关密码的功能
#include<iostream>   
using namespace std; 

//在本文件中需要的函数声明
int checkStatus();
void updatePassword();

//外部全局变量
extern int account1;
extern int pwd1;
extern double balance1;
extern int currentAccount;

/*检验密码
*在很多的应用程序中,需要涉及到运行实体的“状态”
*相比上一个版密码校验的函数pass(),其返回值:通过-true; 不通过-false
*这个方案用checkStatus()可以返回更多的信息(状态)
*返回值约定:
1 - 用户名、密码正确,可以进一步工作
2 - 用户名放弃登录正常退出
3 - 三次登录失败吞卡后退出
*/
int checkStatus()
{
	int iStatus=3;		//默认吞卡的结局
	int iPass;
	int num=1;
	char goOn;
	cout<<"请输入帐户";
	cin>>currentAccount;  //currentAccount是全局变量
	do
	{	
		if(num==1)
			cout<<"请输入密码";
		else
		{
			cout<<"温情提示:这是您第"<<num<<"次输入密码,三次不对将吞卡。"<<endl;
			cout<<"还要继续尝试吗(继续输入Y,退出输入N,之后回车):";
			cin>>goOn;
			if('Y'==goOn||'y'==goOn)
				cout<<"请再次输入密码";
			else
			{
				iStatus=2; //用户放弃登录
				break;
			}
		}
		cin>>iPass;
		num++;
		if(currentAccount==account1&&iPass==pwd1)   //帐户
		{
			iStatus=1;  //密码对了
			break;
		}
	}while(num<4);  //密码不正确且次数在允许范围内循环
	//如果在循环因为num==4为真而退出,iStatus的值还保持初始3,代表吞卡
	return iStatus; //返回状态
}

void updatePassword()
{
	int p1,p2;
	if(currentAccount==account1)   //确定帐户,目前只有一个帐户,真银行不这样,待改进
	{
		cout << "请输入新密码:";
		cin >> p1;  
		cout << "请确认新密码:";
		cin >> p2;  
		if(p1==p2)//两次输入相符
		{
			pwd1=p1;   
			cout<<"密码修改成功!"<<endl;
		}
		else
		{
			cout<<"两次输入不一致,密码修改失败。"<<endl;
		}
	}
}





[cpp] view plaincopyprint?
01.//文件 money.cpp,有关存、取、转款的函数定义   
02.#include<iostream>      
03.using namespace std;   
04.  
05.//外部全局变量   
06.extern int account1;  
07.extern int pwd1;  
08.extern double balance1;  
09.extern int currentAccount;  
10.  
11.//在本文件中需要的函数声明   
12.void showbalance();  
13.void drawmoney();  
14.void deposit();  
15.void transferAccounts();  
16.void updatePassword();  
17.  
18.//处理业务   
19.void work()  
20.{  
21.    char cChoice;  
22.    bool bExit = false;  
23.    do    
24.    {    
25.        cout<<endl<<"*  您可以办理下面的业务:"<<endl;    
26.        cout<<"*  1.查询"<<endl;    
27.        cout<<"*  2.取款"<<endl;    
28.        cout<<"*  3.存款"<<endl;  
29.        cout<<"*  4.转账"<<endl;  
30.        cout<<"*  5.修改密码"<<endl;  
31.        cout<<"*  0.退出"<<endl;    
32.        cout<<"*  请输入(0-4):";    
33.        cin>>cChoice;  
34.        switch(cChoice)  
35.        {  
36.        case '1':  
37.            showbalance();  
38.            break;    
39.        case '2':  
40.            drawmoney();  
41.            break;    
42.        case '3':  
43.            deposit();  
44.            break;    
45.        case '4':  
46.            transferAccounts();  
47.            break;    
48.        case '5':  
49.            updatePassword();  
50.            break;    
51.        case '0':  
52.            cout<<"欢迎您下次来存款. "<<endl;  
53.            bExit=true;  
54.        }         
55.    }while(!bExit);    
56.    return;  
57.}  
58.  
59.//查询余额   
60.void showbalance()  
61.{  
62.    if(currentAccount==account1)   //确定帐户,目前只有一个帐户,真银行不这样,待改进   
63.        cout<<"您的当前余额是:"<<balance1<<"元"<<endl;  
64.}  
65.  
66.//取款   
67.void drawmoney()  
68.{    
69.    double money;    
70.    if(currentAccount==account1)   //确定帐户,目前只有一个帐户,真银行不这样,待改进   
71.    {  
72.        cout << "请输入取款金额:";    
73.        cin >> money;    
74.        //下面不计利息了,从现在起,我们的银行只提供银行卡业务,是定期统一计息的   
75.        if(money<=balance1)  
76.        {  
77.            balance1-=money; //取款成功   
78.            cout<<"取款后,您的余额是:"<<balance1<<"元。"<<endl;  
79.        }  
80.        else  
81.        {  
82.            cout<<"您的余额不足,取款失败。"<<endl;  
83.        }  
84.    }  
85.}     
86.//存款   
87.void deposit()  
88.{  
89.    double money;    
90.    if(currentAccount==account1)   //确定帐户,目前只有一个帐户,真银行不这样,待改进   
91.    {  
92.        cout << "请输入存款金额:";    
93.        cin >> money;    
94.        //下面不计利息了,从现在起,我们的银行只提供银行卡业务,是定期统一计息的   
95.        balance1+=money; //取款成功   
96.        cout<<"存款后,您的余额是:"<<balance1<<"元。"<<endl;  
97.    }  
98.}  
99.  
100.//转帐   
101.void transferAccounts()  
102.{  
103.    double money;    
104.    int iAccount2;  
105.    if(currentAccount==account1)   //确定帐户,目前只有一个帐户,真银行不这样,待改进   
106.    {  
107.        cout << "请输入转帐金额:";  
108.        cin >> money;    
109.        cout << "请输入对方帐户:";  
110.        cin >> iAccount2; //应该判断对方帐户的有效性再转账,暂时不做,待以后改进     
111.          
112.        if(money<=balance1)  
113.        {  
114.            balance1-=money; //取款成功   
115.            //此处应该为对方帐户增加余额,暂时略   
116.            cout<<"转账后,您的余额是:"<<balance1<<"元。"<<endl;  
117.        }  
118.        else  
119.        {  
120.            cout<<"您的余额不足,转账失败。"<<endl;  
121.        }  
122.    }  
123.}             
     现在看不太明白,以后留着再看
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值