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.}
现在看不太明白,以后留着再看
银行多文件系统
最新推荐文章于 2023-01-08 13:50:00 发布