下面的4个用户是我宿舍的,当然我是钱最多的,呵呵!

#include<iostream>
#include<string>
using namespace std;

class consumer
{
public:
void int_consumer(string ,string ,string ,float ); //初始化
string get_name(); //读取姓名
string get_id(); //读取账号
string get_password(); //读取密码
float get_money(); //读取金额

void set_name(string N); //开用户名
void set_id(string I); //账户
void set_password(string P); //密码
void set_money(float M); //金额
void change_password(); //改密码
void transfer_money(); //转账
void show_me(); //显示账户信息
void withdraw_money(); //取款
void deposit_money(); //存款
private:
string name;
string id;
string password;
float money;
};

class bank
{
public:
void welcome(); //欢迎界面
void exit_system(); //退出系统
void menu(); //选择菜单
int seek(string); //查找卡号
void int_consumer(int i,string N,string I,string P,float M);

string get_name();
string get_id();
string get_password();
float get_money();
void change_password();
void show_me();
bool check();
void transfer_money();
void withdraw_money();
void deposit_money();
private:
int i;
string pass;
consumer cs[4];
};

void consumer::int_consumer(string N,string I,string P,float M)
{
name=N;
id=I;
password=P;
money=M;
}
void consumer::transfer_money()
{
cout<<"请输入对方账号"<<endl;
int a1;
cin>>a1;
cout<<"请输入转账金额"<<endl;
float a;
cin>>a;
if(money-a<0)
{
cout<<"对不起你的余额不足"<<endl;
}
else
{
money=money-a;
cout<<"转账成功"<<endl;
}

}
string consumer::get_name()
{
return name;
}
string consumer::get_id()
{
return id;
}
string consumer::get_password()
{
return password;
}
float consumer::get_money()
{
return money;
}
void consumer::change_password()
{
cout<<"*******欢迎进入更改密码界面*******"<<endl;
string p1;
cout<<"请输入原密码: ";
cin>>p1;
string p2,p3;
if(p1==password)
{
cout<<"请输入您的新密码: ";
cin>>p2;
cout<<"请再次输入您的新密码: ";
cin>>p3;
if(p2==p3)
{
password=p3;
cout<<"密码修改成功"<<endl;
}
else
cout<<"您两次输入的密码不一致,修改失败!"<<endl;
}
else
cout<<"您输入的密码错误!"<<endl;
}
void consumer::deposit_money()
{
float a=0.0;
cout<<"请输入存款金额:"<<endl;
cin>>a;
while(a<=0)
{
cout<<"输入金额有误,请重新输入"<<endl;
cin>>a;
}
cout<<"正在存钱......"<<endl;
money=money+a;
cout<<"交易成功"<<endl;

}
void consumer::withdraw_money()
{

float a=0.0;
cout<<"请输入取款金额:"<<endl;
cin>>a;
while(a<=0)
{
cout<<"输入金额有误,请重新输入"<<endl;
cin>>a;
}
if(money-a<0)
{
cout<<"对不起你的余额不足"<<endl;
cout<<"你可以透支3元,若要透支请按1"<<endl;
int b;
cin>>b;
if(b==1)
{
if(money-a<-3)
{
cout<<"余额不足"<<endl;
}
else
{
cout<<"正在取款中......"<<" 您的透支金额为"<<a-money<<endl;
money=money-a;
}
}
else
cout<<"交易取消"<<endl;
}
else
{
cout<<"正在取款中......"<<endl;
money=money-a;
cout<<"交易成功!"<<endl;
}
}
void consumer::show_me()
{
cout<<"**********************"<<endl;
cout<<"*****当前账号信息*****"<<endl;
cout<<"**用户姓名:"<<name<<endl;
cout<<"**银行卡号:"<<id<<endl;
cout<<"**卡内余额:"<<money<<endl;
cout<<"**********************"<<endl;
}

void bank::welcome()
{
cout<<"**********欢迎使用**********"<<endl;
cout<<"请输入卡号:"<<endl;
string id;
int flag=-1;
cin>>id;
flag=seek(id);
}
void bank::transfer_money()
{
cs[i].transfer_money();
}
void bank::exit_system()
{
cout<<"**********谢谢使用**********"<<endl;
cout<<"********请收好您的卡********"<<endl;
exit(0);
}
void bank::menu()
{
int n;
do
{
cout<<"**********************"<<endl;
cout<<"*请输入相应的操作序号*"<<endl;
cout<<"**** 1 修改密码 ****"<<endl;
cout<<"**** 2 进行取款 ****"<<endl;
cout<<"**** 3 显示余额 ****"<<endl;
cout<<"**** 4 退出系统 ****"<<endl;
cout<<"**** 5 进行转账 ****"<<endl;
cout<<"**** 6 进行存款 ****"<<endl;
cout<<"**********************"<<endl;
cin>>n;
while(n<1||n>6)
{
cout<<"操作错误,请重新输入!"<<endl;
cin>>n;
}
switch(n)
{
case 1: change_password();break;
case 2: withdraw_money();break;
case 3: show_me();break;
case 4: exit_system();break;
case 5: transfer_money();break;
case 6: deposit_money();break;
}
}while(true);
}
int bank::seek(string id)
{
for(int j=0;j<4;j++)
{
if(id==cs[j].get_id())
{
i=j;
break;
}
}
if(j>=4)
{
i=-1;
}
return i;
}
void bank::int_consumer(int i,string N,string I,string P,float M)
{
cs[i].int_consumer(N,I,P,M);

}
string bank::get_name()
{
return cs[i].get_name();
}
string bank::get_id()
{
return cs[i].get_id();
}
string bank::get_password()
{
return cs[i].get_password();
}
float bank::get_money()
{
return cs[i].get_money();
}
bool bank::check()
{
cout<<"请输入密码:"<<endl;
cin>>pass;
if(pass==cs[i].get_password())
return true;
else
return false;
}
void bank::show_me()
{
cs[i].show_me();
}
void bank::change_password()
{
cs[i].change_password();
}
void bank::withdraw_money()
{
cs[i].withdraw_money();
}
void bank::deposit_money()
{
cs[i].deposit_money();
}

int main()
{
bank b;
b.int_consumer(0,"王璐瑶","001","111111",1000);
b.int_consumer(1,"赵龙辉","002","222222",2000);
b.int_consumer(2,"刘晓伟","003","333333",3000);
b.int_consumer(3,"焦晓东","004","444444",4000);
b.welcome();
if(b.check())
{
cout<<"密码正确!"<<endl;
b.menu();
}
else
cout<<"密码错误!"<<endl;
return 0;
}

转载请说明出处,谢谢!!!

这是第二道题内容要求写一个银行的ATM系统 这个浪费了好长时间 ,遇到了许多问题,不过都解决了,上程序的更多相关文章

  1. 如何写一个c++插件化系统

    1.为什么需要插件化系统 “编程就是构建一个一个自己的小积木, 然后用自己的小积木搭建大系统”. 但是程序还是会比积木要复杂, 我们的系统必须要保证小积木能搭建出大的系统(必须能被组合),有必须能使各 ...

  2. Python运维三十六式:用Python写一个简单的监控系统

    市面上有很多开源的监控系统:Cacti.Nagios.Zabbix.感觉都不符合我的需求,为什么不自己做一个呢? 用Python两个小时徒手撸了一个简易的监控系统,给大家分享一下,希望能对大家有所启发 ...

  3. 第二十八篇 -- 写一个简陋的WIFI服务器界面

    效果图: Dlg.cpp // WIFIWMITestDlg.cpp : implementation file // #include "stdafx.h" #include & ...

  4. 利用生产者消费者模型和MQ模型写一个自己的日志系统-并发设计里一定会用到的手段

    一:前言 写这个程序主要是用来理解生产者消费者模型,以及通过这个Demo来理解Redis的单线程取原子任务是怎么实现的和巩固一下并发相关的知识:这个虽然是个Demo,但是只要稍加改下Appender部 ...

  5. 双11抢券,写一个自动打开页面的html,仅仅是设定时间打开抢券的页面

    <!DOCTYPE html> <html lang="en" xmlns="http://www.w3.org/1999/xhtml"> ...

  6. 手写一个React-Redux,玩转React的Context API

    上一篇文章我们手写了一个Redux,但是单纯的Redux只是一个状态机,是没有UI呈现的,所以一般我们使用的时候都会配合一个UI库,比如在React中使用Redux就会用到React-Redux这个库 ...

  7. 我去,徒弟半夜来电让写一个PHP短信验证(和群发)

    感觉很纳闷啊,,..好几天几乎通宵了,今晚本来以为有个早觉睡,居然2点多才打电话来让帮忙... 记得前段时间还有博友问过同类的问题.... 名字我就隐藏掉了,呵呵,, 我在网上随便找了一个提供相应接口 ...

  8. 大一C语言学习笔记(11)---编程篇--写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积,要求 0 bug;

    考核内容: 写一个程序,可以获取从键盘上输入的的三个数,并能够判断是否可以以这三个数字作为边长来构成一个三角形,如果可以的话,输出此三角形的周长及面积: 答案: #include<stdio.h ...

  9. 《Linux内核分析》第三周 构建一个简单的Linux系统MenuOS

    [刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE ...

随机推荐

  1. js操作iframe框架时应该屡清楚的一些概念

    1.获取iframe的window对象 存在跨域访问限制. iframeElement.contentWindow 兼容 2.获取iframe的document对象 存在跨域访问限制. chrome: ...

  2. EasyUI时间格式化

    changeDateFormatNodate: function (cellval) { var date = new Date(parseInt(cellval.replace("/Dat ...

  3. java替换字符串和用indexof查找字符

    java自带替换 String s="hlz_and_hourui哈哈"; String new_S=s.replaceAll("哈", "笑毛&qu ...

  4. 手工启动oracle EM

    在WINDOWS上安完ORACLE发现没有EM没有启动,在网上找了一个手工启动的方法,试了,在WIN下同样可用. 人家的原文如下: oracle@linux:~> sqlplus/ as sys ...

  5. Java并发编程之ThreadLocal类

    ThreadLocal类可以理解为ThreadLocalVariable(线程局部变量),提供了get与set等访问接口或方法,这些方法为每个使用该变量的线程都存有一份独立的副本,因此get总是返回当 ...

  6. C# 读取xml节点类容

    这是一个测试节点类容的获取 这是控制台代码部分 注意的应用文件 :using.system.Xml using System; using System.Collections.Generic; us ...

  7. 向Oracle数据库中CLOB插入数据报错问题

    今天在项目中向数据库的CLOB属性插入一段篇文章(1000~2000)字就会报一个字符串过长的错误. 网上说用流来处理,没有这么做.这像是一个Bug,只要把插入的数据,默认扩充到2000以上就ok了. ...

  8. tcl/tk demo

    环境及版本说明: OSX10.9 tclsh -> tclsh8.5 wish -> wish8.5 查看本机运行环境: which wish; 2 /usr/bin/wish which ...

  9. Python之路第十一天,高级(3)-Python操作 Memcached、Redis

    Memcached Memcached 是一个高性能的分布式内存对象缓存系统,用于动态Web应用以减轻数据库负载.它通过在内存中缓存数据和对象来减少读取数据库的次数,从而提高动态.数据库驱动网站的速度 ...

  10. EntityFramework+Autofac+MVC+EasyUI 搭建公司基本服务项目

    去年年底用了2个星期的时间搭建了 这套框架,从ORM,IOC,MVC,EasyUI都仔细的研究了下,还有日志,异常等等.mvc 我已经开发过很多项目了,我就觉得自己写套框架,看看自己的水平如何.欢迎大 ...