一、ATM自动取款机设计要求

1.实现ATM取款机的基本功能,如给用户提供开户、查询余额、取款、修改密码、吃卡、退出系统等服务,可根据实际情况添加(如缴费、转账等服务)。

2.对于用户要求输入相应的帐号和密码,如果三次出错则将卡吃掉并打印出相应凭条。若输入的取款金额超出账户余额,则提示用户输入有误并提供更正功能。

二、功能模块

1.登录模块

主要完成功能为:当用户开始使用本系统,进入登陆模块。屏幕显示菜单提示,用户可根据需要选择相应功能。具体如下:开户、用户登录、退出系统;用户登录里面还有存款、取款、查询余额、修改密码、转账等功能。

主要适用技术:登陆函数主要是使用了循环函数和dowhile函数,还有许多的成员函数OpenAccount()、SaveMoney()、TakeMoney()、Inquiry()、Changepsw()、Transfer();Menus();关键代码如下:

voidmain();主函数;

do{}while(1);//循环结构语句

switch(i);case1:default:

UserLogin();//用户登录界面函数

Menus();//用户操作函数

bank k;//默认构造函数

OpenAccount(); break;//开户

SaveMoney();break;//存款

TakeMoney();break;//取款

Inquiry();break;//查询余额

Changepsw();break;//修改密码

Transfer();break;//转账

2、存款模块

void SaveMoney()//存款函数

3、取款模块

void TakeMoney()//取款函数

4、修改密码

voidChangepsw()//修改密码函数

for(inti=1;i<=N;i++)else//循环结果语句exit(1);//结束函数

5、转账模块

void Transfer()//转账函数

6、退出系统

break;

三、源程序代码

#include <iostream>
#include <string>
#include <stdlib.h>
#include <iomanip>

using namespace std;

class Bank
{
public:
    Bank()//默认构造函数,并初始化
    {
        name="xiaoming";
        cardID=123;
        IC=111111;
        psw=123;
        money=1000;
    }
    void UserLogin();//声明用户登录函数
    void Account();//声明开户函数
    void Menus();//声明用户操作函数
    void SaveMoney();//声明存款函数
    void TakeMoney();//声明取款函数
    void Inquiry();//声明查询函数
    void Transfer();//声明转账函数
    void Changepsw();//声明修改密码函数
private:
    string name;
    double cardID;
    double IC;
    double psw;
    int money;
};

void Bank::UserLogin()//定义用户登录函数
{
    double ID;
    double psw1;
    cout<<setw(20)<<"用户登录:"<<endl;
    cout<<"请输入您的卡号:"<<endl;
    cin>>ID;
    cout<<"请输入您的密码:"<<endl;
    cin>>psw1;
    if(ID==cardID&&psw1==psw)
    {
        Menus();
    }
    else
    {
        cout<<"密码错误,退出!!!"<<endl;
        exit(1);
    }
}

void Bank::Menus()//定义用户操作函数
{
    int a;
    do
    {
        cout<<"*****************************"<<endl;
        cout<<"*         1.存款            *"<<endl;
        cout<<"*         2.取款            *"<<endl;
        cout<<"*         3.查询余额        *"<<endl;
        cout<<"*         4.修改密码        *"<<endl;
        cout<<"*         5.转账            *"<<endl;
        cout<<"*         6.退出系统        *"<<endl;
        cout<<"*****************************"<<endl;
        cout<<"请输入您要办理业务的序号:";
        cin>>a;
        switch (a)
        {
            case 1:SaveMoney();
            break;
            case 2:TakeMoney();
            break;
            case 3:Inquiry();
            break;
            case 4:Changepsw();
            break;
            case 5:Transfer();
            break;
            case 6:exit(0);
            break;
            default:
            {cout<<"你的输入有误,请输入1-6之间的整数!"<<endl;}
        }
        cout<<"##############################################"<<endl;
    }
    while(1);
}

void Bank::Account()//定义开户函数
{
    cout<<"欢迎开户:"<<endl;
    cout<<"请输入您的姓名:"<<endl;
    cin>>name;
    cout<<"请输入身份证号码:"<<endl;
    cin>>IC;
    cout<<"请输入您的卡号:"<<endl;
    cin>>cardID;
    cout<<"请输入您的密码:"<<endl;
    cin>>psw;
    cout<<"请输入您的预存金额:"<<endl;
    cin>>money;
    cout<<"恭喜您,开户成功!"<<endl;
}

void Bank::SaveMoney()//定义存款函数
{
    int money1;
    cout<<"欢迎您使用存款业务"<<endl;
    cout<<"请输入您的存款金额:"<<endl;
    cin>>money1;
    money=money+money1;
    cout<<"存款成功,卡上余额为:"<<money<<endl;
}

void Bank::TakeMoney()//定义取款函数
{
    int money1;
    cout<<"欢迎您使用取款业务"<<endl;
    cout<<"每次取款不能超过5000元"<<endl;
    cout<<"请输入您取款的金额:"<<endl;
    cin>>money1;
    if(money1>5000)
    {
        cout<<"每次取款不能超过5000元"<<endl;
        cout<<"取款金额超出账户余额,请重新输入取款金额:";
        cin>>money1;
    }
    if(money>=money1)
    {
        money=money-money1;
        cout<<"取款成功,您卡上余额为:"<<money<<endl;
    }
    else
    {
        cout<<"取款金额超出账户余额,请重新输入取款金额:";
        cin>>money1;
        money=money-money1;
        cout<<"取款成功,您卡上余额为:"<<money<<endl;
    }
}

void Bank::Inquiry()//定义查询余额函数
{
    cout<<"欢迎进行查询余额业务"<<endl;
    cout<<"卡上余额为:"<<money<<endl;
}

void Bank::Transfer()//定义转账函数
{
    double ID2;
    int money1;
    cout<<"欢迎使用转账业务"<<endl;
    cout<<"每次转账不能超过5000元"<<endl;
    cout<<"请输入您要转账的卡号:"<<endl;
    cin>>ID2;
    cout<<"请输入您要转账的金额:"<<endl;
    cin>>money1;
    if(money1>5000)
    {
        cout<<"每次转账金额不能超过5000元"<<endl;
        cout<<"转账金额超出账户余额,请重新输入转账金额:"<<endl;
        cin>>money1;
    }
    if(money>=money1)
    {
        money=money-money1;
        cout<<"转账成功,您卡上余额为:"<<money<<endl;
    }
    else
    {
        cout<<"金额超出账户余额,请重新输入转账金额:";
        cin>>money1;
        money=money-money1;
        cout<<"转账成功,您卡上余额为:"<<money<<endl;
    }
}

void Bank::Changepsw()//定义修改密码定义
{
    double ID;
    double psw1;
    double psw2;
    cout<<"欢迎使用修改密码业务"<<endl;
    cout<<"请输入您的卡号:"<<endl;
    cin>>ID;
    cout<<"请输入您的密码:"<<endl;
    cin>>psw1;
    if(ID==cardID&&psw1==psw)
    {
        cout<<"请输入您的原始密码:"<<endl;
        cin>>psw1;
        cout<<"请输入您的新密码:"<<endl;
        cin>>psw2;
        psw=psw2;
        cout<<"修改密码成功!"<<endl;
    }
    else
    {
        cout<<"您的卡号或密码错误!"<<endl;
        cout<<"请重新输入您的原始密码:"<<endl;
        cin>>psw1;
        if(psw1==psw)
        {
            cout<<"请输入您的新密码:"<<endl;
            cin>>psw2;
            cout<<"确认新密码:请输入新密码:"<<endl;
            cin>>psw2;
            psw=psw2;
            cout<<"修改密码成功!"<<endl;
        }
        else
        {
            cout<<"温馨提示:密码错误!!!"<<endl;
            exit(1);
        }
    }
}
int main()
{
    int i;
    Bank obj;
    do
    {
        cout<<"欢迎进入人民银行"<<endl;
        cout<<"请选择您要办理的手续:"<<endl;
        cout<<"*****************************"<<endl;
        cout<<"*         1.开户            *"<<endl;
        cout<<"*         2.用户登录        *"<<endl;
        cout<<"*         3.退出系统        *"<<endl;
        cout<<"*****************************"<<endl;
        cout<<"请输入您要办理业务的序号:";
        cin>>i;
        if(3==i)
        {
            break;
        }
        switch(i)
        {
            case 1:obj.Account();
            break;
            case 2:obj.UserLogin();
            break;
            default:
            {cout<<"您的输入有误,请输入1-3之间的整数!"<<endl;}
        }
    }
    while(1);
    return 0;
}



基于C++的ATM自动取款机设计相关推荐

  1. 基于面向对象的ATM自动取款机(未完善)

    利用Java代码实现银行的 查询 存储 取款 转账 等功能 首先需要创建如下结构: 用户信息 package com.gyx;import java.util.ArrayList; import ja ...

  2. C语言ATM自动取款机系统项目的设计与开发

    文章目录 基于C语言的ATM自动取款机系统项目设计与开发 一.ATM自动取款机系统功能分析与介绍 二.开发ATM自动取款机系统的工具以及创建项目的过程 2.1.本项目使用Visual Studio 2 ...

  3. 银行ATM自动取款机模拟程序C语言——课程设计实习

    绪论 ATM即自动取款机的意识,ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务.在ATM自动取款机上也可以进行账户查询和改密的业务.作为 ...

  4. 软件测试面试题:请设计一个关于ATM自动取款机的测试用例?

    请设计一个关于ATM自动取款机的测试用例? 1)功能a)ATM所识别卡的类型:b)密码验证(身份登陆.是否为掩码.输入错误密码时是否提示,连续三次错误吞卡等):c)取款功能:i.金额多少的限制,单次最 ...

  5. 通过Java设计与实现ATM自动取款机系统

    设计一个ATM自动取款机系统. 要求如下:实现欢迎界面.登录.存款.取款.查询.修改密码功能. /** *@author Ben1002 *@version jdk1.8.0_131 */ packa ...

  6. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个 ATM 自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  7. 【历史上的今天】9 月 2 日:互联网的“诞生日”;三星逐步跌落神坛;世界上第一个ATM自动取款机

    整理 | 王启隆 透过「历史上的今天」,从过去看未来,从现在亦可以改变未来. 将计算机网络相互连接在一起称为"网络互联",在其基础上连接覆盖全世界的"网络互联" ...

  8. 模拟atm取款机 php,C语言模拟ATM自动取款机系统

    C语言实验报告 题目名称:C语言模拟ATM自动取款机系统 一:问题描述: C语言模拟实现ATM自动取款机功能:输入密码,余额查询,取款,存款,转账,修改密码,退出功能: 代码实现的功能: 账号及密码输 ...

  9. Java语言实现 ATM 自动取款机系统

    ATM自动取款机 ​​​ 实现 ATM 自动取款机系统,本系统有如下功能: 1.登陆    用户通过输入卡号和密码登陆本系统,如果输入错误,提示错误并重新输入,连续三次错误吞卡. 2.取款    系统 ...

最新文章

  1. OC中的NSArray和NSMutableArray、NSDictionary和NSMutableDictionary用法
  2. 【 C 】const 进一步解读(由switch引出)
  3. boost::core::is_same用法测试实例
  4. ITK:使用分水岭Watershed方法对图像进行分割
  5. 重磅!深度学习的顶级会议ICLR 2020 数据图文详解
  6. 未来计算机的展望800字,展望作文800字【精选】
  7. Git笔记(30) 重写历史
  8. ios 设备获取idfa_iOS获取设备ID总结
  9. Hadoop生态圈-Flume的组件之自定义Sink
  10. Code First 约定
  11. Deep Learning经典论文列表(Reading List)
  12. php flea,Fleaphp常见函数功能与用法示例
  13. xmind8 破解激活教程
  14. 如何搜索得到综述文献?
  15. 记C++坑:3.结构体和类对齐补齐
  16. bittorrent_如何匿名和加密您的BitTorrent流量
  17. 韦东山学习笔记——UART(串口)的使用
  18. MySQL安装问题总结
  19. 惠普微型计算机w7系统,惠普笔记本电脑一键重装系统win7
  20. 【嵌入式百科】003——时钟周期、指令周期、机器周期、总线周期

热门文章

  1. 辞职也需要辞得帅,辞得大家都开心,多为将来考虑,辞职不要急,本是好事要办好
  2. Mipi Lcd调试
  3. 基于Qt Phonon模块实现音乐播放器
  4. 4.服务器如何防止信息泄露,怎样防止共享文件信息泄露
  5. 自己轻松打印电子发票
  6. java面试、笔试题(0815版)
  7. 所有DIN 紧固件 外形规格对照表
  8. linux识别fastboot设备,fastboot 没有识别手机
  9. Bellhop-复杂海底地形仿真
  10. 15、SQL Server 触发器