第12周项目4(2)-模拟银行系统完善 (终于做完了\(^o^)/)

/*
*Copyright (c) 2014, 烟台大学计算机学院
*All rights reserved.
*文件名称:week12-project4-2.cpp
*作者:高赞
*完成日期:2014年 11 月 14 日
*版本号:v1.0
*
*问题描述:对模拟银行系统的进一步完善,增加密码次数限制和重复确认等功能
*/
#include <iostream>
#include <string>
#include <stdlib.h>
using namespace std;
void stars();
void showbalance ();
double drawmoney(double);
int pass (int);
double deposit(double);
double transferaccounts(double);
string updatepassword(string);
string PASSWORD="gaozan0902";定义字符串变量作为密码;需要增加改密功能,不再用const
double balance=10000;
int main()
{
    int n=0,choose;
    cout << "欢迎光临!" << endl
         << "请输入密码:";
    n=pass(n);
    if (n==2)
    {
        cout << "对不起,您的银行卡已被冻结,请持相关身份证件到银行柜台解冻..." << endl;
        exit(0);//尝试运用一下exit函数终止程序,需包含头文件#include <stdlib.h>
    }
    while (1)//设置一个死循环,程序里用break终止
    {
        cout << endl
             << "*您可以办理以下业务:" << endl
             << "*1.查询" << endl
             << "*2.取款" << endl
             << "*3.存款" << endl
             << "*4.转账" << endl
             << "*5.改密" << endl
             << "*0.退出" << endl
             << "请输入(0-5):" ;
        cin >> choose;
        if (choose==0)
        {
            cout << "谢谢使用,欢迎您下次再来!" << endl;
            break;//此处跳出循环
        }
        switch (choose)
        {
        case 1:
            showbalance();//输出余额
            break;
        case 2:
            balance=drawmoney(balance);//取款并从余额中扣除相应金额
            break;
        case 3:
            balance=deposit(balance);//存款并加上相应金额
            break;
        case 4:
            balance= transferaccounts(balance);//转账并扣除相应金额
            break;
        case 5:
            PASSWORD=updatepassword(PASSWORD);//更改PASSWORD
            break;
        default:
            cout << "输入不符合要求,请重新输入!"  << endl;
        }
        cout << "系统正在返回..." << endl;
        stars();//每次运行程序分隔开来
        cout << endl;
    }
    return 0;
}

void stars()
{
    for (int n=1; n<=20; ++n)
        cout << "*";
}

void showbalance()
{
    cout << "您当前的余额是" << balance << "元。" << endl;
}

int pass(int n)
{
    string userpassword="0";
    cin >> userpassword;
    while (PASSWORD!=userpassword && n<2)
    {
        ++n;
        cout << "第" << n << "次输入密码错误!" << endl
             << "若三次密码错误 系统将冻结您的银行卡!" << endl
             << "请输入密码:";
        cin >> userpassword;
    }
    return n;
}

double drawmoney(double n)
{
    double m;
    cout << "请输入取款余额:";
    cin >> m;
    if((n-m)>=0)
    {
        n-=m;
        cout << "取款成功,您当前的余额是" << n << "元。" << endl;
    }
    else cout << "余额不足,取款失败!" << endl;
    return n;
}

double deposit(double n)
{
    double m;
    cout << "欢迎存款,请输入您要存款的金额:";
    cin >> m;
    n+=m;
    cout << "存款成功,您当前的余额是" << n << "元。" << endl;
    return n;
}

double transferaccounts(double n)
{
    string i1,i2;
    double m;
    cout << "请输入转账余额:";
    cin >> m;
    cout << "请输入对方的账户:";
    cin >> i1;
    cout << "请再一次确认对方账户:";//增加对方账户确认功能
    cin >> i2;
    if (i1==i2)
    {
        if((n-m)>=0)
        {
            n-=m;
            cout << "转账成功,您当前的余额是" << n << "元。" << endl;
        }
        else
            cout  << "余额不足,转账失败!" << endl;
    }
    else cout << "两次输入的对方账户不一致,转账失败!" << endl;
    return n;
}

string updatepassword(string PASSWORD)
{
    string oldpassword,newpassword1,newpassword2;
    cout << "请输入旧密码:";
    cin >> oldpassword;
    if (PASSWORD==oldpassword)
    {
        cout << "请输入新密码:";
        cin >> newpassword1;
        cout << "请确认新密码:";  //密码重复确认
        cin >> newpassword2;
        if (newpassword1==newpassword2)
        {
            PASSWORD=newpassword1;
            cout << "密码修改成功!" << endl;
        }
        else cout << "两次输入密码不一样,更改失败!" << endl;
    }
    else cout << "密码错误,更改失败!" << endl;
    return PASSWORD;
}

 运算结果: 

  

  

 

  

 总结心得:

 ㊣ 一个人花了一整天时间终于完成了这个项目。。。 

 ㊣每次程序都要反复执行,把能想到的东西都作死地试一遍,才能发现隐藏的BUG和未完善的功能。。。

 ㊣如果发现还有什么BUG,请 ↓  回复我。。。 (╯▽╰)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本方法。编译原理不仅是计算机科学理论的重要组成部分,也是实现高效、可靠的计算机程序设计的关键。本文将对编译原理的基本概念、发展历程、主要内容和实际应用进行详细介绍编译原理是计算机专业的一门核心课程,旨在介绍编译程序构造的一般原理和基本

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值