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

下面的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;
}

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

时间: 2024-10-07 06:29:47

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

用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中

我最近在用java写一个远程视频监控系统,实时监控(类似直播)我想用RPT协议,不知道怎么把RPT协议集成到项目中,第一次写项目,写过这类项目的多多提意见,哪方面的意见都行,有代码或者demo的求赏给我,谢谢

Java小练习之利用面向对象写一个简单的登录系统

import java.util.Scanner; /** * 采用面向对象的方式 写一个登录系统 * @author Administrator * */ //用户信息 class UserInfo{ public static String[] user = new String[10]; public static String[] passwd = new String[10]; public UserInfo() { this.user[0] = "test"; this.p

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

市面上有很多开源的监控系统:Cacti.nagios.zabbix.感觉都不符合我的需求,为什么不自己做一个呢 用Python两个小时徒手撸了一个简易的监控系统,给大家分享一下,希望能对大家有所启发 首先数据库建表 建立一个数据库“falcon”,建表语句如下: 1 CREATE TABLE `stat` ( 2 `id` int(11) unsigned NOT NULL AUTO_INCREMENT, 3 `host` varchar(256) DEFAULT NULL, 4 `mem_fr

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

一:前言 写这个程序主要是用来理解生产者消费者模型,以及通过这个Demo来理解Redis的单线程取原子任务是怎么实现的和巩固一下并发相关的知识:这个虽然是个Demo,但是只要稍加改下Appender部分也是可以用于项目中的,假设项目里确实不需要log4j/logback之类的日志组件的时候: 二:实现方式 1.利用LinkedList作为MQ(还可以用jdk自带的LinkedBlockingQueue,不过这个Demo主要是为了更好的理解原理因此写的比较底层): 2.利用一个Daemon线程作为

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

感觉很纳闷啊,,..好几天几乎通宵了,今晚本来以为有个早觉睡,居然2点多才打电话来让帮忙... 记得前段时间还有博友问过同类的问题.... 名字我就隐藏掉了,呵呵,, 我在网上随便找了一个提供相应接口的网站,其实网站随意,这都是大同小意的... 我用的是短信宝的,大家喜欢用啥随意,绝非收广告费...... <?php header("Content-Type:text/html;charset=utf-8"); $arr = array( array('phome'=>'1

Python+Django写一个本机性能监控应用?

说起自动化运维离不开监控软件,那我们就用一点时间来写一个主机性能监控系统吧,Python+Django使用HighChart.js可以很快实现性能监控的功能: 以下为监控视图效果.本机总内存8G,内存占用一直比较稳定在55%~58%之间,所以图形曲线非常平缓~. CPU使用率监控视图,CPU使用率波动频繁,所以效果很好: 最后贴上任务管理器中的监控对比一下.

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

[刘蔚然 原创作品转载请注明出处 <Linux内核分析>MOOC课程http://mooc.study.163.com/course/USTC-1000029000] WEEK THREE(2.29——3.6)构造一个简单的Linux系统MenuOS SECTION 1 Linux内核源代码简介 1.操作系统的两把宝剑(回顾上一讲) 中断上下文的切换——保存现场&恢复现场 进程上下文的切换 2.Linux内核源代码简介 打开内核源代码页面 arch/目录:支持不同CPU的源代码:其中的

写一个读取hfile的mapreduce之获取HFile内容

之前介绍了关于Mapreduce是进行输入处理的.这一篇将会介绍如何从Hfile中获取内容.这里和一般获取hbase的数据过程不太一样,不会去创建HTable对象而是直接去读取HFile文件.闲话不多说,直接上代码.先写一个单进程读取HFile的程序 1 public class HFileReaderUtil { 2 3 private Configuration conf ; 4 5 private Path path ; 6 7 private HFile.Reader reader; 8

今天面试问了一道题。说一串字符串由这几个符号组成&quot;&lt;&gt;{}[]()”,写一个算法,例如如果组成方式为“&lt;&gt;{[]}{}()”这种,也就是XML格式那种则返回true。否则返回false;

原创 今天面试问了一道题.说一串字符串由这几个符号组成"<>{}[]()",写一个算法,例如如果组成方式为"<>{[]}{}()"这种,也就是XML格式那种则返回true.否则返回false: 当时没想出来, 只想到了回文数解决办法.回文数解决办法是颠倒比较,相等为true: 换xml格式当时真没想到啥好方法: 在回来的路上想到了.. .. 去重,吧临近的一组去掉,在递归调用比较去重直到最后,如果有剩下则不返回false:否则true: 代码